Görev listeleme
- C kursu
- Başlangıç
- Ders 85/116
- 6 dk
ListTasks ile görevleri formatlı yazdırmayı öğrenirsin.
list_tasks fonksiyonu
Tüm görevleri yazdırmak için list_tasks fonksiyonu yazıyoruz. Bir for döngüsü 0'dan count'a kadar döner ve her görevi yazdırır.
void list_tasks(struct Task tasks[], int count) {
for (int i = 0; i < count; i++) {
printf("%d %s %d\n", tasks[i].id, tasks[i].title, tasks[i].done);
}
}Fonksiyon void döndürür; yalnızca yazdırır, bir şey değiştirmez. count kadar görev yazdırılır.
for döngüsü ile gezme
for (int i = 0; i < count; i++) kalıbı 0'dan başlar ve count'a kadar (hariç) her elemanı gezer. i indis, tasks[i] ise o indisteki görevdir.
for (int i = 0; i < count; i++) {
printf("%d %s\n", tasks[i].id, tasks[i].title);
}Bu kalıp dizilerin gezilmesinde standarttır. count sınırı dizinin kullanılan kısmını belirler.
Uygulama list_tasks fonksiyonunu ekle
Aşağıdaki koda void list_tasks(struct Task tasks[], int count) fonksiyonunu ekle. İçinde for (int i = 0; i < count; i++) döngüsü ile her görevi printf("%d %s %d\n", tasks[i].id, tasks[i].title, tasks[i].done); biçiminde yazdır. main içindeki iki printf yerine list_tasks(tasks, count); çağrısı koy. Çıktı 1 Alışveriş 0 ve 2 Spor 0 olmalı.
Başlangıç kodu
#include <stdio.h>
#include <string.h>
struct Task {
int id;
char title[50];
int done;
};
int add_task(struct Task tasks[], int count, const char *title) {
tasks[count].id = count + 1;
strcpy(tasks[count].title, title);
tasks[count].done = 0;
return count + 1;
}
int main(void) {
struct Task tasks[10];
int count = 0;
count = add_task(tasks, count, "Alışveriş");
count = add_task(tasks, count, "Spor");
printf("%d %s %d\n", tasks[0].id, tasks[0].title, tasks[0].done);
printf("%d %s %d\n", tasks[1].id, tasks[1].title, tasks[1].done);
return 0;
}Örnek çözüm
#include <stdio.h>
#include <string.h>
struct Task {
int id;
char title[50];
int done;
};
int add_task(struct Task tasks[], int count, const char *title) {
tasks[count].id = count + 1;
strcpy(tasks[count].title, title);
tasks[count].done = 0;
return count + 1;
}
void list_tasks(struct Task tasks[], int count) {
for (int i = 0; i < count; i++) {
printf("%d %s %d\n", tasks[i].id, tasks[i].title, tasks[i].done);
}
}
int main(void) {
struct Task tasks[10];
int count = 0;
count = add_task(tasks, count, "Alışveriş");
count = add_task(tasks, count, "Spor");
list_tasks(tasks, count);
return 0;
}Beklenen çıktı
1 Alışveriş 0 2 Spor 0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Tüm görevleri listelemek için ne kullanılır?
- Tek bir printf
- for döngüsü ile tüm görevler Doğru cevap
- if deyimi
- switch
Açıklama: for döngüsü 0'dan count'a kadar tüm görevleri gezer.
2 Listeleme kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
list_tasks |
listeleme fonksiyonu |
for |
döngü |
count |
görev sayısı |
%d %s %d |
yazdırma biçimi |
3 Döngü sınırı
for (int i = 0; i < ____; i++) { /* görev yazdır */ }
for (int i = 0; i < count; i++) { /* görev yazdır */ }
Açıklama: count kadar görev yazdırılır.