Menu
Coddy logo textTech

Pointer ve Dinamik Dizi

Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası — ders 56 / 56.

challenge icon

Görev

Kolay

Esnek bir sayı depolama ve işleme sistemi oluşturarak dinamik bellek yönetimini gösteren bir program oluşturun. Bu görev; dinamik diziler, bellek ayırma, dizi manipülasyonu ve uygun bellek temizleme konularındaki anlayışınızı test edecektir.

Aşağıdaki girdiler sağlanacaktır:

  • Saklanacak tam sayı adedini temsil eden bir tam sayı size
  • Ardından dinamik dizide saklanacak sayıları temsil eden size adet tam sayı

Programınız şunları yapmalıdır:

  1. Girdiden boyutu okumalı
  2. Belirtilen boyutta new[] kullanarak dinamik olarak bir tam sayı dizisi ayırmalı
  3. Girdiden tam sayıları okumalı ve bunları dinamik olarak ayrılmış dizide saklamalı
  4. Dizideki tüm sayıların toplamını hesaplamalı
  5. Dizideki maksimum değeri bulmalı
  6. Sonuçları belirtilen formatta yazdırmalı
  7. delete[] kullanarak belleği uygun şekilde serbest bırakmalı

Aşağıdaki tam çıktı formatını kullanın:

Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]

Dinamik bellek ayırmanın, boyutu çalışma zamanında kullanıcı girdisine göre belirlenen diziler oluşturmanıza olanak tanıdığını unutmayın. Diziyi ayırmak için new int[size] kullanın ve elemanlara dizi notasyonu array[index] kullanarak erişin. Diziyi kullanmayı bitirdikten sonra, ayrılan belleği boşaltmak ve bellek sızıntılarını önlemek için delete[] array çağırmalısınız. Dizi yığında (heap) bulunur ve siz onu açıkça serbest bırakana kadar varlığını sürdürür.

Kendin dene

#include <iostream>
using namespace std;

int main() {
    // Dizinin boyutunu oku
    int size;
    cin >> size;
    
    // YAPILACAK: Kodunuzu buraya yazın
    // 1. new[] kullanarak dinamik olarak bir dizi tahsis edin
    // 2. Tam sayıları okuyun ve bunları dizide saklayın
    // 3. Tüm sayıların toplamını hesaplayın
    // 4. Maksimum değeri bulun
    // 5. delete[] kullanarak belleği geri vermeyi unutmayın
    
    // Sonuçları yazdır (gerçek değişkenlerle değiştirin)
    cout << "Array size: " << size << endl;
    cout << "Sum: " << /* toplam değişkeni */ << endl;
    cout << "Maximum: " << /* maksimum değişkeni */ << endl;
    
    return 0;
}

Mantık & Akış bölümündeki tüm dersler