Obliczanie średniej arytmetycznej i odchylenia standardowego – potrzebna pomoc

0

Witam jestem studentem informatyki i zaczynam swoja przygode z programowaniem, nie tylko w jezyku C. Jako ze zrobilem wszystkie zadania ze swojej grupy postanowilem zrobic zadania innej grupy i natrafilem na problem. Otoz nie wiem jak sie za to zabrac. Oto zadanie:

Napisać program, który czyta ciąg liczb ze standardowego wejścia aż do wystąpienia
znaku końca pliku (kombinacja klawiszy Ctrl–D na klawiaturze), a następnie
oblicza średnią arytmetyczną i odchylenie standardowe, po czym wyprowadza
wyniki na standardowe wyjście. W pierwszej wersji programu, dane mogą być
przechowywane w jednowymiarowej tablicy liczb zmiennoprzecinkowych o ustalonym
rozmiarze maksymalnym (np. Nmax = 1000) zadeklarowanym jako stała
całkowita. Proszę poeksperymentować z typami wprowadzanych danych (float i
double) oraz formatami wprowadzanych i wyprowadzanych danych. Gotowy program
proszę wykorzystać do czytania danych z pliku, z wykorzystaniem mechanizmu
potoków unixowych (np. ./srednia.out < moje_dane.dat).
Dodatkowo, można zastanowić się i spróbować napisać identycznie działający (przynajmniej
z punktu widzenia użytkownika) program, który nie korzysta z tablic liczbowych
i nie zakłada z góry ograniczenia na liczbę danych. (Czy to w ogóle jest
możliwe?) Jakie będą zalety a jakie wady takiej wersji programu?

Czy mogłby ktos pomoc z takim (pewnie dla innych prostym) programem?

1

Zaznacz proszę, których punktów nie rozumiesz i nie znasz.

  1. wczytanie ciągu liczb ze standardowego wejścia aż do wystąpienia znaku końca pliku.
  2. obliczenie średniej arytmetycznej
  3. obliczenie odchylenie standardowego
  4. wypisanie wyniku na wyjście standardowe
  5. przechowywane danych w tablicy jednowymiarowej liczb zmiennoprzecinkowych o ustalonym
    rozmiarze maksymalnym zadeklarowanym jako stała
    całkowita.
  6. wczytanie danych przez potok do programu
    +7. wczytanie danych nie korzystając z tablic liczbowych
    +8. brak ograniczenia na liczbę danych
    +9. wady i zalety różnych podejść
0

ostatnie pytanie sugeruje ze autor zadania moze tego nie wiedziec wiec drobna podpowiedz: da sie napisac stabilny numerycznie algortm bez tablicy.

4
Bartosz Krawiec napisał(a):

Witam jestem studentem informatyki
Jako ze zrobilem wszystkie zadania ze swojej grupy postanowilem zrobic zadania innej grupy

Biorąc pod uwagę, stopień złożoności zadania i stopień w jakim go wykonałeś, to trudno uwierzyć w twoją historyjkę

0

Jeśli chodzi o czysto matematyczne sprawy to nie mam z tym problemu ale mam problem z tymi podpunktami:

  1. czy chodzi o kilkukrotne zastosowanie funkcji "scanf"?
  2. wydaje mi się ze chodzi o funkcje "printf", czy mam racje?
  3. tego nie rozumiem w ogóle
  4. jak wykonać ten podpunkt też nie rozumiem
0
MarekR22 napisał(a):
Bartosz Krawiec napisał(a):

Witam jestem studentem informatyki
Jako ze zrobilem wszystkie zadania ze swojej grupy postanowilem zrobic zadania innej grupy

Biorąc pod uwagę, stopień złożoności zadania i stopień w jakim go wykonałeś, to trudno uwierzyć w twoją historyjkę

To jest wszystko co udało mi się wyskrobać ale nie wiem czy jest to wykonane zgodnie z poleceniem ponieważ czasem nie rozumiem takich "fachowych" okreslen typu "przechowywane w jednowymiarowej tablicy liczb zmiennoprzecinkowych o ustalonym
rozmiarze maksymalnym" :

   #include <stdio.h>
   #include <math.h>

   int main()
   {
      double a, b, c, d, e, f, x, w, o;
      scanf("%lf", &a);
      scanf("%lf", &b);
      scanf("%lf", &c);
      scanf("%lf", &d);
      scanf("%lf", &e);
      scanf("%lf", &f);
  
      x = (a+b+c+d+e+f)/6;
  
      w = ( (a-x)*(a-x) + (b-x)*(b-x) + (c-x)*(c-x) + (d-x)*(d-x) + (e-x)*(e-x) + (f-x)*(f-x) )/6;

      o = sqrt(w);
  
  
  
      printf("Srednia to %lf\n", x);
  
      printf("Odchylenie to %lf\n", o);


      return 0;
    }
1
double x;
while (1 == scanf("%lf", &x)) {
    … … …
}
… … …
0

Myślę że powinieneś przeczytać co to jest 'input/output redirection', może spróbować z inną strukturą danych(co to jest struktura danych?) niż tablica, może wygooglać czy ktoś wpadł na algorytm policzenia wariancji 'za jednym razem'.

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