Università Statale di Milano - Dipartimento di Informatica: 2a lezione sul Linguaggio GO (Golang)

Programmi semplici in Golang con l'uso di variabili intere


Coding in Golang
Esercizio1
/*
  AreaRettangolo calcola l'area di un rettangolo: è un
  programma interattivo!! Può calcolare l'area di
  qualsiasi rettangolo che abbia lati a valori interi */

package main

import . "fmt"

func main() {
var min, max int
Println("Inserire le lunghezze (valori interi) del lato minore e del lato maggiore del rettangolo (e.g., 3 7):")
Scan(&min, &max)
if max < min {
Println("Hai sbagliato! Scambio i valori!")
min, max = max, min
} else {
Println("Sei stato attento alle mie indicazioni!")
}
Print("Area del rettangolo = ", max*min)

}


Esercizio 2: Realizzare un programma "AltezzaRettangoloInterattivo" che legga l'area e la base di un rettangolo e ne stampi l'altezza.
Verificare come si comporta il programma
– quando l'area inserita non è un multiplo esatto della base;
– quando viene immesso 0 come valore per la base.

Coding in Go

/*
Legge area e base di un rettangolo e stampa l'altezza.
Verifica che la base non sia uguale a 0.
*/
package main

import . "fmt"

func main() {
var area, base int
Println("Inserire area e base di un rettangolo:")
Scan(&area, &base)
if base != 0 {
Println("L'altezza del rettangolo è: ", area/base)
} else {
Println("La base deve essere diversa da 0")
}
}

Esercizio 3: Scrivete un programma che richiede all’utente di immettere il raggio di un cerchio, e calcola e stampa la sua area

Per risolvere questo problema è necessario avere capito come trattare i numeri con la virgola. 

Coding in Golang
/*
Chiede all'utente il raggio di un cerchio e ne calcola e stampa l'area
*/
package main

import (
. "fmt"
. "math"
)

func main() {
var raggio float64
Println("Inserire il raggio di un cerchio:")
Scan(&raggio)
Println("L'area del cerchio è: ", raggio*raggio*Pi)
}

Esercizi 4,5,6 e 7: Scrivere un programma ConvertiDaKilometriAMiglia che realizzi la conversione tra kilometri e miglia, tenuto conto del fatto che un miglio equivale a 1.61 kilometri
• Scrivere un programma ConvertiDaOreAMinuti che realizzi la conversione tra ore e minuti.
• Scrivere un programma ConvertiDaMinutiAOre che realizzi la conversione tra minuti e ore.
• Fate la stessa cosa tra ore (minuti) e secondi, tra secondi e ore (minuti

Coding in Goland

/*
converte km in miglia
*/
package main

import . "fmt"

func main() {
var km, miglia float64
Println("Inserire i km:")
Scan(&km)
miglia = km / 1.61
Println("Le miglia sono: ", miglia)
}

----------------------------------------------------------------------


/*

Converte minuti in ore

*/
package main

import . "fmt"

func main() {
var minuti, ore float64
Println("Inserire i minuti: ")
Scan(&minuti)
ore = minuti / 60
Print("Le ore sono: ", ore)
}

-------------------------------------------------------------------------

/*
Converte minuti in secondi
*/
package main

import . "fmt"

func main() {
var minuti, secondi int
Println("Inserire i minuti: ")
Scan(&minuti)
secondi = minuti * 60
Print("I secondi sono: ", secondi)
}

----------------------------------------------------------------------------------

/*
Converte ore in minuti
*/
package main

import . "fmt"

func main() {
var ore, minuti int
Println("Inserire le ore: ")
Scan(&ore)
minuti = ore * 60
Print("I minuti sono: ", minuti)
}

--------------------------------------------------------------------------------------

/*
Converte ore in secondi
*/
package main

import . "fmt"

func main() {
var ore, secondi int
Println("Inserire le ore: ")
Scan(&ore)
secondi = ore * 60 * 60
Print("I secondi sono: ", secondi)
}

----------------------------------------------------------------------------------------

package main

import "fmt"

func main() {
var secondi, minuti float64
fmt.Println("Inserire i secondi: ")
fmt.Scan(&secondi)
minuti = secondi / 60
fmt.Printf("I minuti sono: %f", minuti)
}

-----------------------------------------------------------------------------------------

/*
Converte secondi in ore
*/
package main

import . "fmt"

func main() {
var secondi, ore float64
Println("Inserire i secondi: ")
Scan(&secondi)
ore = secondi / (60 * 60)
Print("Le ore sono: ", ore)
}

-----------------------------------------------------------------------------------------

Esercizio 8: Scrivere un programma che:

• chieda l’inserimento delle età dei vostri genitori
• calcoli e stampi la somma e la media delle età
• calcoli e stampi la somma (e la media) delle età che i componenti avevano n anni fa (dove il valore della variabile "n" è chiesto all'utente).

Coding in Golang


/*

Chiede all'utente l'età dei genitori e un numero n, poi:

- calcola e stampa somma e media
- calcola e stampa somma e media delle età n anni fa
*/
package main

import . "fmt"

func main() {
var genitore1, genitore2, n int
Print("Inserire l'età dei propri genitori: ")
Scan(&genitore1, &genitore2)
Print("Inserire n: ")
Scan(&n)
Println("somma: ", genitore1+genitore2)
Println("media: ", (genitore1+genitore2)/2)
genitore1 -= n
genitore2 -= n
Println("somma: ", genitore1+genitore2)
Print("media: ", (genitore1+genitore2)/2)
}

-------------------------------------------------------------------

Esercizio 9 – Area di un poligono regolare
Scrivere un programma che chieda l’inserimento di due numeri che chiameremo n e l e calcoli l’area di un poligono regolare con n lati di lunghezza l.
Tale area si calcola come
𝐴=𝑛∗𝑙2/4∗tan⁡(𝜋/𝑛) dove tan(.) è l’operatore che restituisce la tangente di un numero (usate math.tan(x) per calcolare la tangente di un valore double x). Il valore 𝜋 è invece immagazzinato nella costante Pi del package Math (per richiamare tale costante scrivete math.Pi).
Per calcolare il valore da assegnare alla variabile area usando tale equazione, l’istruzione in codice go sarà:

area :=(n*math.Pow(l,2))/(4*math.Tan(math.Pi/n))

Coding in Golang


/*
Dato numero dei lati e lunghezza il programma calcola l'area del poligono regolare
*/
package main

import (
. "fmt"
. "math"
)

func main() {
var n int
var l float64

Println("Inserire numero dei lati: ")
Scan(&n)
Println("Inserire lunghezza dei lati: ")
Scan(&l)
area := (float64(n) * Pow(l, 2.0)) / (4 * Tan(Pi/float64(n)))
Println("Area del poligono: ", area)
}




per eseguire l'esercizio on line, andare sul sito ufficiale di Golang:
https://play.golang.org/

Buon lavoro

Paolo Latella

tag: #C, #coding, #Dipartimentoinformatica, #go, #Golang, #Googlecoding, #Lambrate, #PaoloLatella, #programmazione, #Unimi, #UniversitàStataleMilano, #polouniversitario

Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)