Görev listeleme
- C++ kursu
- Başlangıç
- Ders 85/116
- 6 dk
listTasks ile görevleri formatlı yazdırmayı öğrenirsin.
Görev listeleme
Şimdi listTasks fonksiyonunu yazacağız. Bu fonksiyon, listeyi okunaklı biçimde ekrana yazdırır. const std::vector<Task>& parametresi alır; const çünkü liste yalnızca okunur, değiştirilmez.
Gövdede bir for döngüsüyle her görevi indeksle gezer, i + 1 ile numaralandırıp tasks[i].title ile başlığı yazdırırsın. Bu, öğrenciye 'kaçıncı görev' bilgisini verir ve listeyi okunaklı yapar.
Döngüyle gezme
Bir vektörü indeksle gezmek için klasik for döngüsü kullanılır: for (size_t i = 0; i < tasks.size(); ++i). size_t, size()'ın dönüş türüyle uyuşan işaretsiz bir tamsayı türüdür.
Döngü içinde tasks[i] ile i'inci elemana erişilir; tasks[i].title ile de başlığı alınır. i + 1 yazarak kullanıcıya 1'den başlayan numara gösterirsin; çünkü insanlar 0'dan değil 1'den sayar. Bu, liste çıktısını okunaklı yapar.
Uygulama listTasks fonksiyonu
void listTasks(const std::vector<Task>& tasks) fonksiyonunu tanımla. Gövdede for (size_t i = 0; i < tasks.size(); ++i) ile her görevi gez; her satırda i + 1, ". " ve tasks[i].title yazdır. main içinde addTask ile "Ekmek al" ve "Süt al" ekle, listTasks(tasks) çağır.
Başlangıç kodu
#include <iostream>
#include <string>
#include <vector>
struct Task {
std::string title;
bool done;
};
void addTask(std::vector<Task>& tasks, const std::string& title) {
Task t;
t.title = title;
t.done = false;
tasks.push_back(t);
}
// listTasks fonksiyonunu tanımla
int main() {
std::vector<Task> tasks;
addTask(tasks, "Ekmek al");
addTask(tasks, "Süt al");
// listTasks çağrısı ekle
return 0;
}Örnek çözüm
#include <iostream>
#include <string>
#include <vector>
struct Task {
std::string title;
bool done;
};
void addTask(std::vector<Task>& tasks, const std::string& title) {
Task t;
t.title = title;
t.done = false;
tasks.push_back(t);
}
void listTasks(const std::vector<Task>& tasks) {
for (size_t i = 0; i < tasks.size(); ++i) {
std::cout << i + 1 << ". " << tasks[i].title << "\n";
}
}
int main() {
std::vector<Task> tasks;
addTask(tasks, "Ekmek al");
addTask(tasks, "Süt al");
listTasks(tasks);
return 0;
}Beklenen çıktı
1. Ekmek al 2. Süt al
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 listTasks çıktısının ilk satırı nedir?
std::vector<Task> tasks;
addTask(tasks, "Ekmek al");
addTask(tasks, "Süt al");
listTasks(tasks);- 2. Süt al
- 1. Ekmek al Doğru cevap
- Ekmek al
- 1
Açıklama: İlk görevin numarası 1, başlığı 'Ekmek al'; ilk satır '1. Ekmek al' olur.
2 İfadeyi anlamına eşle
| Kavram | Anlamı |
|---|---|
void listTasks |
Fonksiyon imzası |
for (size_t i... |
Döngü |
tasks[i].title |
Eleman erişimi |
listTasks(tasks) |
Çağrı |
3 listTasks gövdesi
for (size_t i = 0; i < ____.size(); ++i) { std::cout << i + 1; }
for (size_t i = 0; i < tasks.size(); ++i) { std::cout << i + 1; }
Açıklama: for (size_t i = 0; i < tasks.size(); ++i) ile görevler gezilir.