C++
İş mantığı
Fonksiyonlar ve koşullu mantıkla iş kurallarını yazarsın.
addTask ve listTasks işlevleri
Görev ekleme ve listeleme işlemlerini işlevlere taşıyacağız. addTask işlevi yeni bir Task oluşturup tasks vector'üne ekler. listTasks işlevi ise aralık tabanlı for ile tüm görevleri yazdırır.
İşlevlere parametre vermek kodu esnek kılar; aynı işlevi farklı başlık ve durumlarla çağırabilirsin. vector<Task>& referans parametresi, vector'ü kopyalamadan değiştirmeyi sağlar. Bu derste her iki işlevi de tanımlayıp main içinde kullanacağız.
Aralık for ile listeleme
listTasks işlevinin içinde for (Task t : tasks) döngüsü vector'ün her görevini sırayla t değişkenine kopyalar. Döngü gövdesinde t.title ve t.status ile görevin bilgilerine ulaşırız.
Örnek: for (Task t : tasks) { cout << t.title << " - " << t.status << endl; } satırı her görevi yeni bir satırda yazdırır. Aralık for, vector'ün uzunluğunu bilmeden tüm görevleri dolaşmanın güvenli ve kısa yoludur.
Uygulama addTask ve listTasks ekle
void addTask(vector<Task>& tasks, string title, string status) işlevini tanımla; içinde yeni bir Task oluşturup üyelerine title ve status ata, sonra tasks.push_back(t); ile ekle. void listTasks(const vector<Task>& tasks) işlevini tanımla; aralık for ile her görevi cout << t.title << " - " << t.status << endl; ile yazdır. main içinde printMenu(); çağrısından sonra addTask(tasks, "Ödev", "bekliyor");, addTask(tasks, "Spor", "bekliyor"); ve listTasks(tasks); çağrıları ekle.
Örnek çözümü göster
#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct Task {
string title;
string status;
};
void printMenu() {
cout << "1 - Ekle" << endl;
cout << "2 - Listele" << endl;
cout << "3 - Çıkış" << endl;
}
void addTask(vector<Task>& tasks, string title, string status) {
Task t;
t.title = title;
t.status = status;
tasks.push_back(t);
}
void listTasks(const vector<Task>& tasks) {
for (Task t : tasks) {
cout << t.title << " - " << t.status << endl;
}
}
int main() {
printMenu();
vector<Task> tasks;
addTask(tasks, "Ödev", "bekliyor");
addTask(tasks, "Spor", "bekliyor");
listTasks(tasks);
return 0;
}
Kendini test et
-
addTask işlevinin vector parametresi nasıl bildirilir?
- vector<Task> (değerle)
- vector<Task>* (işaretçi)
- vector<Task>& (referans)
- Task& (referans)
Cevabı göster
vector<Task>& (referans) — vector<Task>& referansı kopyalamayı önler.
-
Boşluğu doldur: for döngüsü
for (Task t : ____) {
cout << t.title << " - " << t.status << endl;
}
Cevabı göster
for (Task t : tasks) {
cout << t.title << " - " << t.status << endl;
}
-
İşlevi göreviyle eşleştir
- addTask
- görev ekler
- listTasks
- görevleri yazdırır
- for (Task t : tasks)
- listeyi dolaşır
Sıradaki ders: Hata yönetimi