C++
Görev tamamlama
completeTask ile görev durumunu güncellemeyi öğrenirsin.
Görev tamamlama
Şimdi completeTask fonksiyonunu yazacağız. Bu fonksiyon, verilen indeksdeki görevi tamamlandı olarak işaretler. İmza: void completeTask(std::vector<Task>& tasks, size_t index).
Gövdede önce if (index < tasks.size()) ile sınır denetimi yapılır; geçersiz indekste işlem yapılmaz. Sonra tasks[index].done = true ile görev tamamlanır. Ayrıca listTasks'i güncelleyip done durumunu göstermek, uygulamanın daha kullanışlı olmasını sağlar.
Liste güncelleme
listTasks fonksiyonunu güncelleyip done durumunu gösterelim. Her görevin önüne, tamamlandıysa [x], olmadıysa [ ] yazdırırız. Bu, kullanıcının görev durumunu kolayca görmesini sağlar.
Yeni gövde: if (tasks[i].done) { std::cout << "[x] " << tasks[i].title; } else { std::cout << "[ ] " << tasks[i].title; }. Böylece liste hem numarasız hem de durumlu olur. Bu ders, listTask'i güncellemeni ve completeTask'ı eklemeni ister.
Uygulama completeTask ve liste güncelleme
void completeTask(std::vector<Task>& tasks, size_t index) fonksiyonunu tanımla; gövdede if (index < tasks.size()) ile sınır denetimi yap, tasks[index].done = true; yaz. listTasks'i güncelle: if (tasks[i].done) ile "[x] ", değilse "[ ] " yazdır, sonra tasks[i].title. main içinde iki görev ekle, completeTask(tasks, 0) ve 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) {
if (tasks[i].done) {
std::cout << "[x] " << tasks[i].title << "\n";
} else {
std::cout << "[ ] " << tasks[i].title << "\n";
}
}
}
void completeTask(std::vector<Task>& tasks, size_t index) {
if (index < tasks.size()) {
tasks[index].done = true;
}
}
int main() {
std::vector<Task> tasks;
addTask(tasks, "Ekmek al");
addTask(tasks, "Süt al");
completeTask(tasks, 0);
listTasks(tasks);
return 0;
}
Kendini test et
-
completeTask gövdesi
if (index < tasks.size()) {
tasks[index].____ = true;
}
Cevabı göster
if (index < tasks.size()) {
tasks[index].done = true;
}
-
completeTask(tasks, 0) sonrası tasks[0].done nedir?
std::vector<Task> tasks;
addTask(tasks, "Ekmek al");
completeTask(tasks, 0);
std::cout << (tasks[0].done ? "true" : "false");
Cevabı göster
true — completeTask tasks[0].done = true yapar.
-
İfadeyi anlamına eşle
- void completeTask
- Fonksiyon imzası
- if (index < tasks.size())
- Sınır denetimi
- tasks[index].done = true
- Tamamlama
- [x]
- Tamamlandı işareti
Sıradaki ders: Birleştirme