Program wczytuje od użytkownika liczbę tworzy tablice i wczytuje do niej tyle liczb ile podał w zmiennej n, dodatkowo oblicza średnią arytmetyczną, odchylenie, oraz wartość najwyższą.
Treść zadania:
2. Napisać program, który:
a. wczyta liczbę N określającą ile ma być liczb rzeczywistych kontrolując, aby wprowa¬dzona wartość nie była mniejsza od 2 ani większa od rozmiaru zdefiniowanej tablicy zmiennych typu double,
b. wczyta N liczb do tablicy wypisując do stderr zaproszenia w postaci np. X[n]= (n=1, 2, ..., N),
c. obliczy i wypisze średnią arytmetyczną wprowadzonych liczb oraz największą z nich.
3. W napisanym programie wyodrębnij trzy funkcje: wczytywania tablicy, obliczania wartości średniej, obliczania liczby największej. Zadbaj, aby funkcje nie używały zmiennych globalnych.
4. Funkcję obliczającą wartość średnią rozbuduj tak, aby obliczała też standardowe odchylenie wyrażające się wzorem , gdzie S jest wartością średnią. Wartość odchylenia D, niech funkcja zapisuje pod wskazaną zmienną (jeden z argumentów funkcji powinien być wskaźnikiem do tej zmiennej).
Listing
#include <cstdlib>
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
double srednia(double b, double n ){
cout << "\nSrednia arytmetyczna wynosi: " << b/n << "\n\n";
}
double max(double liczbaMax ){
cout << "\nWartosc najwyzsza wynosi: " << liczbaMax << "\n\n";
}
double getN(double n, double s, double A[ 10]){
int i;
double b,liczbaMax=0, sa;
float dodaj=0, sum=0;
float odchylenie=0;
do{
cout << "Podaj N gdzie 2<N<=10:"; cin >> n;
}
while(n<2 || n>10);
for(i=0; i < n; i++){
cout << "Podaj liczbe na pozycje" << i << " : "; cin >> s;
A[ i] = s;
cout << "A[" << i << "] = " << A [i] << endl;
b += A [i];
if(A[ i] > liczbaMax ) { liczbaMax = A[ i];}
}
srednia(b,n);
max(liczbaMax);
sa = b/n;
for(int i=0;i<n;i++)
{ dodaj=(A[i]-sa)*(A[i]-sa);
sum += dodaj;
}
odchylenie=sqrt(sum/n);
cout<<"\nOdchyodchylenie wynosi "<<odchylenie<< "\n" <<endl;
}
int main(int argc, char *argv[])
{
double n, s, b=0, A[ 10];
getN(n,s,A);
//srednia(b,n,A);
system("PAUSE");
return EXIT_SUCCESS;
}
Ranga: Administrator serwisu Punktów: 0