Menu
CoddyTech

Typowe operacje na tablicach

Część sekcji Podstawy ścieżki C++ w Coddy. Lekcja 66 z 74.

Oto kilka typowych operacji na tablicach:

  • Znajdź sumę wszystkich elementów tablicy:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
    sum += number;
}
std::cout << "Sum: " << sum;
  • Znajdź średnią elementów tablicy:
int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
    sum += number;
}
double average = sum / std::size(numbers);
std::cout << "Average: " << average;
  • Znajdź największy element w tablicy:
int numbers[] = {1, 5, 2, 9, 3};
int max = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
    if (numbers[i] > max) {
        max = numbers[i];
    }
}
std::cout << "Max: " << max;
  • Znajdź element minimalny w tablicy:
int numbers[] = {1, 5, 2, 9, 3};
int min = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
    if (numbers[i] < min) {
        min = numbers[i];
    }
}
std::cout << "Min: " << min;
challenge icon

Wyzwanie

Łatwy

Utwórz funkcję o nazwie calculateStats, która przyjmuje jako dane wejściowe tablicę wartości typu double oraz rozmiar tablicy i wykonuje następujące operacje:

  1. Oblicza sumę wszystkich elementów tablicy.
  2. Oblicza średnią elementów tablicy.
  3. Znajduje największy element tablicy.
  4. Znajduje najmniejszy element tablicy.

Funkcja powinna zwrócić tablicę wartości typu double zawierającą kolejno sumę, średnią, wartość maksymalną i wartość minimalną.


Ważne uwagi:
  • Użyj parametru size, aby kontrolować pętlę: nie używaj std::size().
  • Aby zainicjalizować max i min, ustaw je na arr[0]. Działa to poprawnie również wtedy, gdy tablica zawiera wyłącznie liczby ujemne.
  • Wstępnie napisany kod w main() już alokuje tablicę dynamiczną za pomocą new i zwalnia ją za pomocą delete[]. Musisz jedynie zaalokować tablicę wynikową wewnątrz swojej funkcji za pomocą new double[4] i ją zwrócić. Uwaga: wskaźniki i pamięć dynamiczna z użyciem new zostaną szczegółowo omówione w późniejszej sekcji. Tutaj wystarczy zastosować pokazany wzorzec new double[4].

Sugerowane podejście:
  1. Zainicjalizuj sum = 0, max = arr[0] i min = arr[0].
  2. Wykonaj pętlę od i = 0 do i < size, sumując wartości i w razie potrzeby aktualizując max/min.
  3. Oblicz średnią jako sum / size.
  4. Przydziel nową tablicę za pomocą new double[4], zapisz w niej kolejno cztery wyniki i zwróć ją.

Spróbuj swoich sił

#include <iostream>

double* calculateStats(double arr[], int size) {
    // Przed zapisaniem ich w newArr musisz obliczyć 4 wartości
    // Zainicjalizuj zmienne sum (wartość początkowa 0), max i min (obie z wartością początkową arr[0])
    // Użyj pętli for, aby przejść przez tablicę
    // Wewnątrz pętli:
    //   - Dodaj każdy element do sum
    //   - Porównaj każdy element z max i zaktualizuj max, jeśli element jest większy
    //   - Porównaj każdy element z min i zaktualizuj min, jeśli element jest mniejszy
    // Oblicz average = sum / size (po zakończeniu pętli)
    

    double* newArr = new double[4];
    newArr[0] = sum;
    newArr[1] = average;
    newArr[2] = max;
    newArr[3] = min;

    return newArr;
}

int main() {
    int n;

    std::cin >> n;
    std::cin.ignore();
    double arr[n];

    for (int i = 0; i < n; i++) {
        double val;
        std::cin >> val;
        arr[i] = val;
    }

    double* stats = calculateStats(arr, n);
    std::cout << "Sum: " << stats[0] << std::endl;
    std::cout << "Average: " << stats[1] << std::endl;
    std::cout << "Maximum: " << stats[2] << std::endl;
    std::cout << "Minimum: " << stats[3] << std::endl;
    delete[] stats;
    return 0;
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator C++ online