Vektör Veri Filtreleme
Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 54 / 56.
Görev
KolayBir 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
nadet tam sayı - Filtreleme için minimum değeri temsil eden bir tam sayı
threshold
Programınız şunları yapmalıdır:
- Parametre olarak bir
std::vector<int>ve bir tam sayı eşiği (threshold) alanfilterNumbersadında bir fonksiyon oluşturun - 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 - Ana fonksiyonda (main function), girdi değerlerini okuyun ve
nadet tam sayı ile bir vektörü doldurun - Doldurulan vektör ve eşik değeri ile
filterNumbersfonksiyonunu çağırın - Ö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: 0filterNumbers 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
1İşaretçiler ve Bellek
İşaretçi Nedir?Adres OperatörüDereference OperatörüNull İşaretçilerİşaretçiler ve Diziler'new' ile Dinamik Bellek'delete' ile Belleği Serbest BırakmaÖzet - İşaretçi Pratiği2Vektörler (Dinamik Diziler)
std::vector'a GirişBir Vektör OluşturmaEleman EklemeElemanlara ErişmeVektör BoyutuFor Döngüsü ile YinelemeAralık Tabanlı For DöngüsüEleman SilmeÖzet - Vektör İşlemleri3Proje: Görev Listesi Aracı
Projeye Genel BakışGörev EklemeKendi başına pratik yap: Online C++ derleyicisi