Wątek przeniesiony 2014-11-17 10:29 z C/C++ przez ŁF.

Dlaczego program za każdym razem pokazuje 0 przecięć zer?

0

Przecięcie zera następuje każdorazowo, gdy po zmierzonej wartości dodatniej następuje wartość ujemna lub po wartości ujemnej dodatnia (także, gdy między tymi wartościami pojawia się jedno lub więcej zer). W przypadku wykroczenia wyliczanej częstotliwości poza zadany przedział na wyjściu programu powinien pojawić się odpowiedni komunikat. W szczególności:

pod uwagę mają być brane jedynie liczby z przedziału od -10 do 10 oraz liczba 99 oznaczająca koniec strumienia danych; pozostałe wartości są uznawane za niepoprawne i pomijane;
częstotliwość ma być określana jako liczba wystąpień przecięcia zera w kolejnych grupach złożonych z 99 liczb (co odpowiada okresowi pomiaru równemu 10 sekund) - wartość częstotliwości spoza przedziału od 8 do 14 (co odpowiada pulsowi spoza zakresu 50-80 uderzeń na minutę) uznawana jest za niepoprawną i powoduje pojawienie się na wyjściu programu odpowiedniego komunikatu; w pozostałych przypadkach nie jest generowany żaden komunikat
#include<stdio.h>
#include<math.h>
#define MAX 10
#define MIN -10
#define KONIEC 99
#define ROZMIAR 99
#define CZESTOTLIWOSC_MAX 14
#define CZESTOTLIWOSC_MIN 8

   int main()
   {
  float wartosc1=0, wartosc2=0;   
   
   int   licznik=0 , przeciecia=0;   /* licznik-licznik liczb */

   printf("Program liczy częstotliwość przecięć zera\n\n");

   while(wartosc1!=KONIEC)
  {
   scanf("%f", &wartosc1);


    if(MIN<=wartosc1 && wartosc1<=MAX)
    {

   licznik++;

     if(wartosc1*wartosc2<0) /*następuje przecięcie*/
     {
    przeciecia++;
     }

      if(wartosc1!=0)
      {
     wartosc1=wartosc2;
      }
       if(licznik==ROZMIAR)
       {

        if(przeciecia<CZESTOTLIWOSC_MIN &&  przeciecia>CZESTOTLIWOSC_MAX)
        {
       printf("Niepoprawna liczba przeciec %d\n" ,przeciecia);
        }
        else 
        {
       printf("Liczba przecięć %d\n" ,przeciecia);
        }

  przeciecia=0;
  licznik=0;
  wartosc2=0;
     
       }

           }
             }
       

    return 0;
      }

 

widzicie co jest nie tak z moim kodem? za kazdym razem wyswietla liczba przeciec 0

0

Zrozumiesz czemu tak się dzieje po sformatowaniu kodu.

0

Twoje odpowiedzi są bezcenne

1 użytkowników online, w tym zalogowanych: 0, gości: 1