Cvičení – použití toků řízení v Go

Dokončeno

Procvičte si, co jste se v tomto modulu naučili, a to dokončením některých programovacích cvičení. Tato cvičení nejsou složitá a v další lekci najdete řešení.

Zkuste nejprve vyřešit cvičení na vlastní pěst. Pak porovnejte výsledky s řešeními. Modul si můžete kdykoli prohlédnout, pokud si nepamatujete důležité podrobnosti.

Napsání programu FizzBuzz

Nejprve napište program, který vytiskne čísla 1 až 100, s následujícími změnami:

  • Pokud je číslo dělitelné číslem 3, vytiskněte Fizz ho.
  • Pokud je číslo dělitelné číslem 5, vytiskněte Buzz ho.
  • Pokud je číslo dělitelné 3 i 5, vytiskněte FizzBuzz ho.
  • Pokud se žádná z předchozích případů neshoduje, vytiskněte číslo.

Zkuste použít switch příkaz.

Vyhledání nábídek

Napište program, který najde všechna prime čísla menší než 20. První číslo je libovolné číslo větší než 1, které lze rovnoměrně rozdělit pouze sám o sobě a 1. "Rovnoměrně rozdělené" znamená, že po operaci dělení neexistuje žádný zbytek. Stejně jako většina programovacích jazyků nabízí Go způsob, jak zkontrolovat, jestli operace dělení vytvoří zbytek. Můžeme použít operátor modulu ( % znak procenta).

V tomto cvičení aktualizujete funkci s názvem findprimes , abyste zkontrolovali, jestli je číslo prime. Funkce má jeden celočíselnou hodnotu a vrátí logickou hodnotu. Funkce testuje, jestli je vstupní číslo základní kontrolou zbytku. Pokud je číslo první, vrátí funkce hodnotu true.

Jako výchozí bod použijte následující fragment kódu a nahraďte všechny instance ?? správnou syntaxí:

package main

import "fmt"

func findprimes(number int) bool {
	for i := 2; i ?? number; i ?? {
        if number ?? i == ?? {
			return false
        }
    }

	if number ?? {
		return true
	} else {
	    return false
	}
}

func main() {
    fmt.Println("Prime numbers less than 20:")

    for number := ??; number ?? 20; number++ {
        if ?? {
            fmt.Printf("%v ", number)
        }
    }
}

Tento program zkontroluje čísla 1 až 20 a vytiskne číslo, pokud je první. Upravte příklad podle popisu.

  • main Ve funkci projděte všechna čísla, která chcete zkontrolovat. Ukončete smyčku po kontrole posledního čísla.
  • Voláním findprimes funkce zkontrolujte číslo. Pokud funkce vrátí hodnotu true, vytiskněte prime.
  • findprimes Ve smyčce začněte od 2 a opakujte, dokud čítač není větší nebo roven hodnotěnumber.
  • Zkontrolujte, jestli number je rovnoměrně dělitelná aktuální hodnotou čítače. Pokud ano, ukončete smyčku.
  • Pokud je první, number vraťte hodnotu true, jinak vrátí hodnotu false.
  • Tip: Nezapomeňte správně zpracovat případ, kdy je vstupní číslo 1.

Zeptejte se čísla, panice, pokud je negativní

Napište program, který uživatele požádá o číslo. Jako výchozí bod použijte následující fragment kódu:

package main

import "fmt"

func main() {
    val := 0
    fmt.Print("Enter number: ")
    fmt.Scanf("%d", &val)
    fmt.Println("You entered:", val)
}

Tento program požádá o číslo a vytiskne ho. Upravte ukázkový kód tak, aby:

  • Požádejte průběžně o celé číslo. Výstupní podmínkou smyčky by měla být položka uživatele, která je záporné číslo.
  • Program se chybově ukončí, když uživatel zadá záporné číslo. Pak vytiskněte chybu trasování zásobníku.
  • Pokud je číslo 0, vytiskněte 0 is neither negative nor positiveho . Pokračujte v žádosti o číslo.
  • Pokud je číslo kladné, vytiskněte You entered: X (kde X je zadané číslo). Pokračujte v žádosti o číslo.

Prozatím ignorujte možnost, že uživatel může zadat něco jiného než celé číslo.