C++
Görev listeleme
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.
Örnek çözümü göster
#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;
}
Kendini test et
-
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
- Ekmek al
- 1
Cevabı göster
1. Ekmek al — İlk görevin numarası 1, başlığı 'Ekmek al'; ilk satır '1. Ekmek al' olur.
-
İfadeyi anlamına eşle
- void listTasks
- Fonksiyon imzası
- for (size_t i...
- Döngü
- tasks[i].title
- Eleman erişimi
- listTasks(tasks)
- Çağrı
-
listTasks gövdesi
for (size_t i = 0; i < ____.size(); ++i) { std::cout << i + 1; }
Cevabı göster
for (size_t i = 0; i < tasks.size(); ++i) { std::cout << i + 1; }
Sıradaki ders: Görev tamamlama