3 / 4 📖 Teorija
Pseudokodas → Go
Dabar — pažadėtas tiltas. Kairėje mintyse laikyk 1 žingsnio pseudokodą, dešinėje — tikras Go kodas:
package main
import "fmt"
func main() {
numbers := []int{7, 42, 13, 8}
biggest := numbers[0] // start from the FIRST value, not from 0
for _, n := range numbers {
if n > biggest {
biggest = n
}
}
fmt.Println("Largest:", biggest)
}
Sulygink eilutes su pseudokodu:
- „Paimk pirmą skaičių" →
biggest := numbers[0] - „Eik per likusius po vieną" →
for _, n := range numbers - „Jei didesnis — pakeisk" →
if n > biggest { biggest = n } - „Atsakymas" →
fmt.Println("Largest:", biggest)
Naujos konstrukcijos ([]int, range, if) — dar ne šios pamokos tema; jas išsamiai nagrinėsim 5 ir 7 pamokose. Šiandien svarbu viena: kodas yra pseudokodo vertimas, ne magija.
Spąstai. Kodėl
biggest := numbers[0], o nebiggest := 0? Jei sąraše visi skaičiai neigiami (pvz.,{-7, -3, -12}), pradėjus nuo 0 atsakymas būtų 0 — skaičius, kurio sąraše nėra. Pradėk nuo pirmo tikro elemento, ir algoritmas teisingas visada.