Go - Lezione 4 - Esercizi su cicli annidati e stringhe
/* Scrivere un programma che legge un intero positivo n e stampa un quadrato di asterischi di lato n. */ package main import "fmt" func main() { var n int fmt.Print("Inserire il lato del quadrato: ") fmt.Scan(&n) for i:=0; i<n; i++ { for j:=0; j<n; j++ { fmt.Print("*") } fmt.Println() } }
/* Scrivere un programma che legge un intero positivo n e stampa un triangolo di asterischi di cateto n. */ package main import "fmt" func main() { var n int fmt.Print("Inserire la lunghezza del cateto: ") fmt.Scan(&n) for i:=1; i<=n; i++ { for j:=1; j<=i; j++ { fmt.Print("*") } fmt.Println() } }
/* Scrivere un programma che legge un intero positivo n (nr di righe) e stampa la lettera V es: Input=3; Output= * * * * * Metodi diversi */ /* package main import "fmt" func main(){ var n int fmt.Print("Inserire il numero di righe della V: ") fmt.Scan(&n) for i:=0;i<n;i++{ for j:=0;j<(n*2)-1;j++{ if i==j || j==(n*2)-2-i{ fmt.Print("*") }else{ fmt.Print(".") } } fmt.Println() } } */ package main import "fmt" func main() { var n int fmt.Print("Inserire il numero di righe: ") fmt.Scan(&n) for i:=1; i<n; i++ { for j:=0; j<i; j++ { fmt.Print("-") } fmt.Print("*") for k:=1; k<2*(n-i); k++ { fmt.Print("_") } fmt.Println("*") } for j:=0; j<n; j++ { fmt.Print(".") } fmt.Println("*") } /* package main import "fmt" func main(){ var n int fmt.Print("Inserire il numero di righe della V: ") fmt.Scan(&n) for i := 1; i <= n; i++ { for j:= 1; j <= 2*n - i - 1; j++ { if j == i { fmt.Print("*") } else { fmt.Print(" ") } } fmt.Println("*") } } */
/* Scrivere un programma che legge un intero positivo n e disegna una capanna /\ //\\ // \\ */ package main import "fmt" func main(){ var n int fmt.Print("Inserisci n: ") fmt.Scan(&n) for i:=n;i>0;i--{ for j:=0;j<=2*n;j++{ if j == i || (j == i+1 && i != n){ fmt.Print("/") }else if j == 2*n-i+1 || j == 2*n-i{ fmt.Print("\\") if j > 2*n-i{break} }else{ fmt.Print(" ") } } fmt.Println() } } /* package main import "fmt" func main() { var n int fmt.Print("Il programma stampa una capanna di altezza n. Inserire il valore n: ") fmt.Scan(&n) for r:=0;r<n;r++ { for c:=0;c<n*2;c++ { if (c==n-r && c!=n) || c==n-1-r { fmt.Print("/") } else if c==n+r || c==n-1+r { fmt.Print("\\") } else { fmt.Print(" ") } } fmt.Println() } } package main import "fmt" func main () { var n int fmt.Println("inserire lato n capanna") fmt.Scan(&n) for i:=0;i<n;i++ { fmt.Print(" ") if i==n-1 { fmt.Println("/\\") } } for x:=n-1;x>0;x-- { for y:=0;y<n*2;y++ { if x==y { fmt.Print("//") } if y==n*2-x-2 { fmt.Print("\\\\") } else { fmt.Print(" ") } } fmt.Println() } } */
/* Dati giorno e ora precisa di nascita di qualcuno, calcolare quando ha raggiunto (o raggiungerà) un miliardo di secondi di età */ package main import( "time" "fmt" ) func main(){ var year, month, day, hour int fmt.Print("Inserire data nel formato \"anno mese giorno ora\" ") fmt.Scan(&year, &month, &day, &hour) t := time.Date(year, time.Month(month), day, hour, 0, 0, 0, time.UTC) nt, _ := time.ParseDuration("1000000000s") fmt.Println(t.Add(nt)) }
/* Calcolare la distanza di Hamming tra due stringhe */ package main import( "fmt" ) func main(){ var string1, string2 string var distance int fmt.Print("Inserire le due stringhe da confrontare: ") fmt.Scan(&string1, &string2) for i, c := range string1 { for j, k := range string2 { if i == j && c != k { distance++ } } } fmt.Println("La distanza di Hamming è", distance) }
/* Scrivere un programma che faccia il conto alla rovescia da 10 a 0 in secondi. Hint: usare le funzioni Now, Sub e Seconds del package time; non usare Sleep! */ package main import( "fmt"; "time" ) func main(){ seconds := 10 for ; seconds >= 0; seconds-- { fmt.Println(seconds) start := time.Now() for time.Now().Sub(start).Seconds() < 1 {} } }