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 görev, mevcut dilime yeni görevler ekleyerek görev listenizi genişleten bir işlev oluşturmaya odaklanır.

Önemli Not: Görev adları boşluk içerebileceğinden (örneğin "Buy groceries"), girişin tamamını okumak için bufio.Scanner kullanmanız gerekir. fmt.Scanln işlevi ilk boşlukta okumayı durdurur ve bu da boşluk içeren görev adlarının bozulmasına neden olur. bufio.NewScanner(os.Stdin) kullanın ve tam satırları okumak için scanner.Scan() işlevinin ardından scanner.Text() işlevini çağırın.

İki girdi alacaksınız:

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

Göreviniz:

  1. Önceki görevdeki aynı Task yapısını Name (string) ve Completed (bool) alanlarıyla tanımlamak
  2. Parametre olarak bir Task yapıları dilimi ve bir görev adı (string) alan addTask adlı bir işlev oluşturmak
  3. addTask işlevinin, eklenen görevle birlikte yeni bir dilim döndürmesini sağlamak (yeni görevin Completed değeri false olarak ayarlanmalıdır)
  4. Boşluk içeren görev adlarını doğru şekilde işlemek için giriş satırlarını okumada bufio.Scanner kullanmak
  5. İlk girdide belirtilen mevcut görev sayısına göre başlangıç görevleri dilimi oluşturmak:
    • Sayı "0" ise boş bir dilimle başlamak
    • Sayı "0"'dan büyükse, adları "Existing Task 1", "Existing Task 2" vb. olan ve tamamlanmamış olarak işaretlenen bu sayıda yer tutucu görev oluşturmak
  6. İkinci girdideki virgülle ayrılmış görev adlarını ayrıştırmak
  7. Her yeni görevi dilime eklemek için addTask işlevinizi kullanmak
  8. Son dilimdeki her görevi şu biçimde yazdırmak: "Task: [name], Completed: [true/false]"
  9. Toplam görev sayısını şu biçimde yazdırmak: "Total tasks: [count]"

Örneğin, 1 mevcut göreviniz varsa ve "Buy groceries,Call dentist" eklemek istiyorsanız çıktınızda önce mevcut görev, ardından iki yeni görev ve son olarak toplam sayı gösterilmelidir. Bu görev, append işleviyle dilim değiştirme pratiği yaptırır ve veri yapılarını 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

Kendi başına pratik yap: Online Go derleyicisi