Menu
Coddy logo textTech

Yaygın Dizi İşlemleri

Coddy'nin C++ Journey'sinin Temeller bölümünün bir parçası. Ders 66 / 74.

İşte bazı yaygın dizi işlemleri:

  • Bir dizideki tüm öğelerin sum değerini bulun:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
    sum += number;
}
std::cout << "Sum: " << sum;
  • Bir dizideki öğelerin ortalamasını bulma:
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;
  • Bir dizideki en büyük öğeyi bulma:
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;
  • Bir dizideki minimum öğeyi bulun:
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

Görev

Kolay

calculateStats adında, girdi olarak bir double dizisi ve dizinin boyutunu alan ve aşağıdaki işlemleri gerçekleştiren bir işlev oluşturun:

  1. Dizideki tüm elemanların toplamını hesaplar.
  2. Dizideki elemanların ortalamasını hesaplar.
  3. Dizideki en büyük elemanı bulur.
  4. Dizideki en küçük elemanı bulur.

İşlev; toplamı, ortalamayı, en büyük ve en küçük değeri bu sırayla içeren bir double dizisi döndürmelidir.


Önemli notlar:
  • Döngünüzü kontrol etmek için size parametresini kullanın: std::size() kullanmayın.
  • max ve min değerlerini başlatmak için onları arr[0] olarak ayarlayın. Bu, dizi yalnızca negatif sayılar içerdiğinde bile doğru şekilde çalışır.
  • main() içindeki önceden yazılmış kod, new kullanarak dinamik bir dizi ayırır ve bu diziyi delete[] ile serbest bırakır. Yalnızca işlevinizin içinde new double[4] kullanarak sonuç dizisini ayırmanız ve bu diziyi döndürmeniz gerekir. Not: işaretçiler ve new ile dinamik bellek kullanımı ilerideki bir bölümde ayrıntılı olarak tanıtılacaktır. Burada yalnızca gösterilen new double[4] kalıbını uygulamanız gerekir.

Önerilen yaklaşım:
  1. sum = 0, max = arr[0] ve min = arr[0] değerlerini başlatın.
  2. i = 0 değerinden i < size koşuluna kadar döngü kurarak toplamı biriktirin ve gerektiğinde max/min değerlerini güncelleyin.
  3. Ortalamayı sum / size olarak hesaplayın.
  4. new double[4] ile yeni bir dizi ayırın, dört sonucu sırayla bu diziye kaydedin ve diziyi döndürün.

Kendin dene

#include <iostream>

double* calculateStats(double arr[], int size) {
    // newArr'a kaydetmeden önce 4 değer hesaplamanız gerekecek
    // sum (0'dan başlat), max ve min (ikisi de arr[0]'dan başlar) için değişkenleri başlatın
    // Diziyi dolaşmak için bir for döngüsü kullanın
    // Döngünün içinde:
    //   - Her elemanı sum'a ekleyin
    //   - Her elemanı max ile karşılaştırın ve daha büyükse güncelleyin
    //   - Her elemanı min ile karşılaştırın ve daha küçükse güncelleyin
    // average = sum / size hesaplayın (döngüden sonra)
    

    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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online C++ derleyicisi