Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tablice. Liczenie średniej oraz mediany i sumy.

Ostatnio zmodyfikowano 2024-11-08 15:57
Autor Wiadomość
Beni
Temat założony przez niniejszego użytkownika
Tablice. Liczenie średniej oraz mediany i sumy.
» 2024-11-08 12:19:49
Nie potrafię ogarnąć tego tematu na tablicach. Mam za zadanie za pom. tablic przechować po 7 ocen dla 5 uczniów.
Oceny dla uczniów muszą zostać odczytane z konsoli, a po ich zebraniu program ma wyliczyć i wyświetlić dla każdego ucznia: sumę, średnią i medianę ocen. Proszę o pomoc.
P-181846
DejaVu
» 2024-11-08 12:54:09
ChatGPT 4o:
Oczywiście! Oto przykładowy kod w C++, który pozwala na przechowywanie ocen w tablicach, a następnie oblicza sumę, średnią i medianę dla każdego z 5 uczniów.

C/C++
#include <iostream>
#include <algorithm>  
// do sortowania tablicy
using namespace std;

const int NUM_UCZNIOW = 5; // liczba uczniów
const int NUM_OCEN = 7; // liczba ocen dla każdego ucznia

// Funkcja obliczająca sumę ocen
int obliczSume( const int oceny[ ], int n ) {
   
int suma = 0;
   
for( int i = 0; i < n; i++ ) {
       
suma += oceny[ i ];
   
}
   
return suma;
}

// Funkcja obliczająca średnią ocen
double obliczSrednia( const int oceny[ ], int n ) {
   
int suma = obliczSume( oceny, n );
   
return static_cast < double >( suma ) / n;
}

// Funkcja obliczająca medianę ocen
double obliczMediane( int oceny[ ], int n ) {
   
// Sortujemy tablicę przed obliczeniem mediany
   
sort( oceny, oceny + n );
   
if( n % 2 == 0 ) {
       
// Gdy liczba ocen jest parzysta, mediana to średnia z dwóch środkowych wartości
       
return( oceny[ n / 2 - 1 ] + oceny[ n / 2 ] ) / 2.0;
   
} else {
       
// Gdy liczba ocen jest nieparzysta, mediana to środkowa wartość
       
return oceny[ n / 2 ];
   
}
}

int main() {
   
int oceny[ NUM_UCZNIOW ][ NUM_OCEN ];
   
   
// Wprowadzanie ocen dla każdego ucznia
   
for( int i = 0; i < NUM_UCZNIOW; i++ ) {
       
cout << "Podaj " << NUM_OCEN << " ocen dla ucznia " << i + 1 << ": ";
       
for( int j = 0; j < NUM_OCEN; j++ ) {
           
cin >> oceny[ i ][ j ];
       
}
    }
   
   
// Obliczanie i wyświetlanie sumy, średniej i mediany dla każdego ucznia
   
for( int i = 0; i < NUM_UCZNIOW; i++ ) {
       
int suma = obliczSume( oceny[ i ], NUM_OCEN );
       
double srednia = obliczSrednia( oceny[ i ], NUM_OCEN );
       
       
// Tworzymy kopię tablicy ocen, by nie zmieniać oryginalnych ocen podczas sortowania do mediany
       
int ocenyKopia[ NUM_OCEN ];
       
copy( oceny[ i ], oceny[ i ] + NUM_OCEN, ocenyKopia );
       
       
double mediana = obliczMediane( ocenyKopia, NUM_OCEN );
       
       
cout << "\nUczeń " << i + 1 << ":\n";
       
cout << "  Suma ocen: " << suma << endl;
       
cout << "  Średnia ocen: " << srednia << endl;
       
cout << "  Mediana ocen: " << mediana << endl;
   
}
   
   
return 0;
}

### Wyjaśnienie działania kodu:

1. **Struktura tablicy**: Używamy tablicy `int oceny[NUM_UCZNIOW][NUM_OCEN]` do przechowywania ocen dla każdego z uczniów.
2. **Odczyt ocen**: W pętli `for` odczytujemy oceny z konsoli dla każdego ucznia.
3. **Obliczenia**:
   - **Suma**: Funkcja `obliczSume` iteruje przez oceny i zwraca ich sumę.
   - **Średnia**: Funkcja `obliczSrednia` używa sumy i oblicza średnią.
   - **Mediana**: Funkcja `obliczMediane` najpierw sortuje kopię tablicy ocen, a potem oblicza medianę. W zależności od parzystości liczby ocen, medianą jest wartość środkowa lub średnia dwóch środkowych wartości.
4. **Wyniki**: Dla każdego ucznia wyświetlana jest suma, średnia i mediana jego ocen.

Przetestuj kod, wpisując odpowiednie liczby ocen dla każdego ucznia, a zobaczysz wyniki zgodnie z założeniami zadania.

PS. Wykorzystuj AI do zrozumienia zagadnienia, a nie jego przekopiowania, bo kopiując nie nauczysz się programować.
P-181847
Beni
Temat założony przez niniejszego użytkownika
» 2024-11-08 13:27:38
Heh, jestem z epoki kiedy sztuczna inteligencja była tylko w książkach SF. A to takie sprytne... Temat mam do rozwiązania na podstawach informatyki, które to są na wydziale Matematyczno-Przyrodniczym i tu hit: kierunek pielęgniarstwo. Stąd niestety mój poziom wiedzy na ten temat jest ubogi. Dzięki za pomoc i pokazanie mi kierunku, w którym powinnam zacząć bardziej się  rozejrzeć (AI). Program sobie przeanalizuję, a komentarze na pewno mi pomogą w ogarnięciu tematu. Dzięki.
P-181848
Beni
Temat założony przez niniejszego użytkownika
» 2024-11-08 14:15:45
No to jeszcze dodałam, żeby sprawdzać czy ocena jest z zakresu "ocenowego" od jedynki do szóstki i miód malina :). Chat GPT.. Pomyślałby kto... :)
P-181849
DejaVu
» 2024-11-08 15:57:35
No i fajnie :) Poświęć tylko jeszcze czas na zrozumienie i spróbuj samemu to napisać linijka po linijce, aby nauczyć się 'samemu' takie rzeczy pisać.

Zacznij od funkcji głównej main-a i sukcesywnie dodawaj kod, który jest Ci potrzebny.
P-181851
« 1 »
  Strona 1 z 1