Średnia arytmetyczna

advertisement
Średnia arytmetyczna
Średnią arytmetyczną a zbioru n liczb a1 , a 2 ,…, a n obliczamy sumując te liczby i dzieląc wynik
przez ilość liczb:
a=
a1 + a 2 +
n
+ an
.
Warto pamiętać, że istnieją też inne rodzaje średnich: do najczęściej używanych należą średnia
geometryczna oraz średnia harmoniczna.
Użytkownik wprowadza liczbę naturalną n oraz n-elementową tablicę liczb rzeczywistych A. Podaj algorytm
znajdowania średniej arytmetycznej elementów tablicy A.
Specyfikacja algorytmu:
Dane wejściowe:
liczba naturalna n
tablica liczb rzeczywistych A posiadająca n elementów
Dane wyjściowe:
liczba rzeczywista średnia – średnia arytmetyczna elementów
tablicy A
a)
Przedstaw ten algorytm w formie opisu kolejnych kroków.
b) Zaprezentuj ten algorytm w formie schematu blokowego.
c)
Napisz program realizujący ten algorytm w wybranym przez siebie języku programowania (Pascal, C
lub C++). Oto przykład działania takiego programu:
Podaj n: 5
Podaj elementy tablicy: 12
Średnia arytmetyczna = 10.2
3
19
10
7
Przykładowe rozwiązanie
Potrzebna będzie nam jedna pomocnicza zmienna i – liczba naturalna oznaczająca numer kolejnego elementu
tablicy A. Do obliczenia wartości sumy elementów można wykorzystać wymienioną w specyfikacji zmienną
średnia. Na początku otrzyma ona wartość 0, po czym będziemy do niej dodawać kolejne elementy tablicy A. Po
przeszukaniu całej tablicy zmienna średnia zawiera więc sumę wszystkich elementów tablicy. Teraz wystarczy
jedynie podzielić ją przez n i otrzymujemy żądaną średnią arytmetyczną.
Uzupełniamy zatem specyfikację algorytmu o potrzebne elementy:
Zmienna
pomocnicza:
Notacja:
liczba naturalna i – numer kolejnego elementu tablicy A
elementy tablicy są numerowane od 1 do n
Opis kolejnych kroków – pkt a)
Krok 1:
Wczytaj liczbę n oraz elementy tablicy A[1], ..., A[n].
Krok 2:
Zmiennej średnia przypisz wartość 0. Zmiennej i przypisz wartość 1.
Krok 3:
Jeśli i jest większe od n, wtedy zmiennej średnia przypisz wartość ilorazu
średnia/n, a następnie wypisz wartość zmiennej średnia i zakończ działanie
algorytmu.
Krok 4:
Powiększ wartość zmiennej średnia o wartość A[i].
Krok 5:
Powiększ o 1 wartość zmiennej i, po czym przejdź do kroku 3.
Schemat blokowy – pkt b)
Wczytaj n,
A[1], ..., A[n]
Start
średnia ← 0
i←1
NIE
średnia ← średnia + A[i]
i←i+1
i>n
?
TAK
średnia ← średnia/n
Wypisz max
Stop
Program w języku Pascal – pkt c)
program SredniaArytmetyczna;
{ Obliczanie średniej arytmetycznej }
const ROZMIAR = 1000;
var
A: array [1..ROZMIAR] of real;
srednia: real;
n, i: integer;
begin
write('Podaj n: ');
readln(n);
write('Podaj elementy tablicy: ');
for i:=1 to n do
read(A[i]);
srednia := 0;
for i:=1 to n do
srednia := srednia + A[i];
srednia := srednia/n;
writeln('Średnia arytmetyczna = ', srednia)
end.
Uwaga: Stała ROZMIAR określa maksymalną liczbę elementów tablicy.
Program w języku C++ – pkt c)
// Obliczanie średniej arytmetycznej
#include <iostream>
#define ROZMIAR 1000
main()
{
int n;
double A[ROZMIAR], srednia=0;
cout << "Podaj n: ";
cin >> n;
cout << "Podaj elementy tablicy: ";
for(int i=0; i<n; i++)
cin >> A[i];
for(int i=0; i<n; i++)
srednia += A[i];
cout << "Średnia arytmetyczna = " << srednia;
}
Uwaga: Stała ROZMIAR określa maksymalną liczbę elementów tablicy.
Download