Menu
Coddy logo textTech

Vektör Veri Filtreleme

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

challenge icon

Görev

Kolay

Bir koleksiyondan belirli sayıları ayıklamak için bir veri filtreleme sistemi uygulayan bir program oluşturun. Bu zorluk; verileri seçici bir şekilde işlemek için vektörleri, yinelemeyi (iteration), koşullu mantığı ve fonksiyon tasarımını birleştirme yeteneğinizi test edecektir.

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

  • Koleksiyondaki tam sayıların sayısını temsil eden bir tam sayı n
  • Ardından, filtrelenecek sayıları temsil eden n adet tam sayı
  • Filtreleme için minimum değeri temsil eden bir tam sayı threshold

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

  1. Parametre olarak bir std::vector<int> ve bir tam sayı eşiği (threshold) alan filterNumbers adında bir fonksiyon oluşturun
  2. Fonksiyon, orijinal vektördeki sayılardan yalnızca eşikten (threshold) büyük olanları içeren yeni bir std::vector<int> döndürmelidir
  3. Ana fonksiyonda (main function), girdi değerlerini okuyun ve n adet tam sayı ile bir vektörü doldurun
  4. Doldurulan vektör ve eşik değeri ile filterNumbers fonksiyonunu çağırın
  5. Önce filtrelenen sayıların sayısını yazdırın, ardından filtrelenen her bir sayıyı ayrı bir satıra yazdırın

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

İlk satır - filtrelenen sayıların sayısı:

Filtered count: [number_of_filtered_elements]

Ardından her bir filtrelenmiş sayı ayrı satırlarda:

[filtered_number_1]
[filtered_number_2]
...

Eğer hiçbir sayı filtreyi geçemezse, sadece şunu yazdırın:

Filtered count: 0

filterNumbers fonksiyonunuzun yeni bir boş vektör oluşturması, aralık tabanlı bir for döngüsü (range-based for loop) kullanarak girdi vektörü üzerinde gezinmesi ve her sayıyı eşiğe karşı kontrol etmek için bir if ifadesi kullanması gerektiğini unutmayın. Yalnızca eşikten kesinlikle büyük olan sayılar push_back() kullanılarak sonuç vektörüne eklenmelidir. Fonksiyon, yalnızca filtrelenmiş öğeleri içeren yeni vektörü döndürmelidir.

Kendin dene

#include <iostream>
#include <vector>
using namespace std;

// YAPILACAK: filterNumbers fonksiyonunu burada oluşturun

int main() {
    // Tam sayıların sayısını oku
    int n;
    cin >> n;
    
    // Tam sayıları bir vektöre oku
    vector<int> numbers;
    for (int i = 0; i < n; i++) {
        int num;
        cin >> num;
        numbers.push_back(num);
    }
    
    // Eşik değerini oku
    int threshold;
    cin >> threshold;
    
    // YAPILACAK: filterNumbers fonksiyonunu çağırın ve sonucu saklayın
    
    // YAPILACAK: Filtrelenmiş sayıyı ve sayıları istenen formata göre yazdırın
    
    return 0;
}

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

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