Menu
Coddy logo textTech

Görev Ekleme

Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 21 / 68.

challenge icon

Görev

Kolay

Görev yönetimi temelinizi geliştirerek, şimdi sisteminize yeni görevler eklemek için temel işlevselliği uygulayacaksınız. Bu zorluk, mevcut dilime (slice) yeni görevler ekleyerek görev listenizi genişleten bir fonksiyon oluşturmaya odaklanmaktadır.

Önemli Not: Görev adları boşluk içerebileceğinden (örneğin "Buy groceries"), tüm girdi satırlarını okumak için bufio.Scanner kullanmanız gerekecektir. fmt.Scanln fonksiyonu ilk boşlukta okumayı durdurur, bu da boşluk içeren görev adlarını bozar. Tam satırları okumak için bufio.NewScanner(os.Stdin) kullanın ve scanner.Scan() ardından scanner.Text() fonksiyonlarını çağırın.

İki girdi alacaksınız:

  • Mevcut görevlerin sayısını temsil eden bir dize (örneğin, "2")
  • Virgülle ayrılmış görev adlarını içeren bir dize (örneğin, "Buy groceries,Call dentist,Finish project")

Göreviniz şunları yapmaktır:

  1. Önceki zorluktaki Name (string) ve Completed (bool) alanlarına sahip aynı Task yapısını (struct) tanımlayın
  2. Parametre olarak bir Task yapısı dilimi ve bir görev adı (string) alan addTask adında bir fonksiyon oluşturun
  3. addTask fonksiyonu, eklenen görevle birlikte yeni bir dilim döndürmelidir (yeni görevin Completed değeri false olarak ayarlanmalıdır)
  4. Boşluk içeren görev adlarını düzgün bir şekilde işlemek için girdi satırlarını okurken bufio.Scanner kullanın
  5. İlk girdide belirtilen mevcut görev sayısına göre başlangıçta bir görev dilimi oluşturun:
    • Sayı "0" ise, boş bir dilimle başlayın
    • Sayı "0"'dan büyükse, "Existing Task 1", "Existing Task 2" gibi adlara sahip ve tamamı tamamlanmamış olarak işaretlenmiş o kadar sayıda yer tutucu görev oluşturun
  6. İkinci girdideki virgülle ayrılmış görev adlarını ayrıştırın
  7. Her yeni görevi dilime eklemek için addTask fonksiyonunuzu kullanın
  8. Son dilimdeki her görevi şu formatta yazdırın: "Task: [name], Completed: [true/false]"
  9. Toplam görev sayısını şu formatta yazdırın: "Total tasks: [count]"

Örneğin, 1 mevcut göreviniz varsa ve "Buy groceries,Call dentist" eklemek istiyorsanız, çıktınız önce mevcut görevi, ardından iki yeni görevi ve son olarak toplam sayıyı göstermelidir. Bu zorluk, append fonksiyonu ile dilim manipülasyonu pratiği yaptırır ve veri yapılarınızı genişleten işlevselliğin nasıl oluşturulacağını gösterir.

Kendin dene

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

type Task struct {
	Name      string
	Completed bool
}

// TODO: Burada addTask fonksiyonunu oluşturun

func main() {
	// Giriş satırlarını okumak için tarayıcı (scanner) oluşturun
	scanner := bufio.NewScanner(os.Stdin)
	
	// Mevcut görevlerin sayısını okuyun
	scanner.Scan()
	existingTasksStr := scanner.Text()
	
	// Görev adlarını okuyun
	scanner.Scan()
	taskNamesStr := scanner.Text()
	
	// TODO: Uygulamayı tamamlayın
	// 1. existingTasksStr değerini tam sayıya dönüştürün
	// 2. Mevcut görevlerle başlangıç dilimini (slice) oluşturun
	// 3. taskNamesStr değerini ayrıştırın ve yeni görevleri ekleyin
	// 4. Tüm görevleri ve toplam sayıyı yazdırın
}

Mantık ve Akış bölümündeki tüm dersler