#include #include #include using namespace std; void losujTablice(int* tablica, const int rozmiar); void wypiszTablice(int* tablica, const int rozmiar, int wynikowNaWiersz); int usrednijWyniki(int* tablica, const int rozmiar); void ileDanychOcen(int* ocena, const int ocenaRozm, int* dane, const int daneRozm); void najwiecejOcen(int* oceny, const int ocenyRozm, int* wyniki); void wypiszNajwyzszeWyniki(int* oceny, const int ocenyRozm); void narysujHistogram(int *oceny, const int ocenyRozm, char symbol); #define STUDENT_ROZM 100 #define LICZBA_OCEN_ROZM 6 int main() { srand(time(NULL)); const int studentRozm = STUDENT_ROZM, liczbaOcenRozm = LICZBA_OCEN_ROZM; int student[studentRozm]; int liczbaOcen[liczbaOcenRozm] = {0}; int najwOcen[liczbaOcenRozm] = {-1, -1, -1, -1, -1, -1}; // Poczatkowe zapelnienie tabeli wartosciami losowymi z przedzialu 0-5 losujTablice(student, studentRozm); // Wypisanie wylosowanej tablicy cout << "Wylosowano tablice.\nWyswietlenie tablicy - ile wynikow na jeden wiersz konsoli? "; int tmp; cin >> tmp; wypiszTablice(student, studentRozm, tmp); // Wypisanie usrednionej oceny cout << "\nSrednia ocena z tablicy student: " << usrednijWyniki(student, studentRozm) << endl; // Obliczenie i wypisanie, ilu studentow przyznalo dane oceny cout << "\n\nWyliczono, ile danych ocen przyznano.\nWyswietlenie tablicy - ile wynikow na jeden wiersz konsoli? "; cin >> tmp; ileDanychOcen(liczbaOcen, liczbaOcenRozm, student, studentRozm); wypiszTablice(liczbaOcen, liczbaOcenRozm, tmp); // Obliczanie, ktorych ocen bylo najwiecej najwiecejOcen(liczbaOcen, liczbaOcenRozm, najwOcen); wypiszNajwyzszeWyniki(najwOcen, liczbaOcenRozm); // Histogram narysujHistogram(liczbaOcen, liczbaOcenRozm, '*'); return 0; } void losujTablice(int* tablica, const int rozmiar) { for(int i = 0; i < rozmiar; i++) { tablica[i] = rand() % 6; } } void wypiszTablice(int* tablica, const int rozmiar, int wynikowNaWiersz) { for(int i = 0; i < rozmiar; i++) { cout << tablica[i]; if((i+1) % wynikowNaWiersz) cout << "\t"; else cout << endl; } } int usrednijWyniki(int* tablica, const int rozmiar) { int wynik = 0; for(int i = 0; i < rozmiar; i++) wynik += tablica[i]; wynik /= rozmiar; return wynik; } void ileDanychOcen(int* ocena, const int ocenaRozm, int* dane, const int daneRozm) { for(int i = 0; i < daneRozm; i++) { for(int j = 0; j < ocenaRozm; j++) { if(dane[i] == j) { ocena[j]++; break; } } } } void najwiecejOcen(int* oceny, const int ocenyRozm, int* wyniki) { int *max = &oceny[0]; int maxIdx = 0; unsigned int tmp = 1; for(int i = 1; i < ocenyRozm; i++) { if((*max) < oceny[i]) { max = &oceny[i]; maxIdx = i; } } wyniki[0] = maxIdx; for(int i = 0; i < ocenyRozm; i++) { if((*max == oceny[i]) && (i != maxIdx)) wyniki[tmp++] = i; } } void wypiszNajwyzszeWyniki(int* oceny, const int ocenyRozm) { cout << "\n\nNajwyzsze oceny: "; for(int i = 0; i < ocenyRozm; i++) if(oceny[i] >= 0) cout << oceny[i] << " "; cout << endl; } void narysujHistogram(int *oceny, const int ocenyRozm, char symbol) { for(int i = 0; i < ocenyRozm; i++) { cout << i << " "; for(int j = 0; j < oceny[i]; j++) cout << symbol; cout << endl; } }