Esercizi in preparazione alla verifica sugli algoritmi

Esercizi in preparazione alla verifica sugli algoritmi.
Per ogni esercizio stabilire le variabili in ingresso e in uscita, specificandone il tipo e il nome.
Definire poi l’algoritmo risolutivo descrivendolo o con un diagramma a blocchi o in pseudocodifica
1. Calcolare il resto della divisione intera tra un numero N e 7 (senza usare l’operazione MOD)
2. Determinare se un numero è divisibile per 7.
3. Su alcuni voli aerei il bagaglio fino a 20 Kg. non paga. Oltre questo limite si deve pagare per ogni Kg. in
più il 2% della tariffa del biglietto aereo. Visualizzare il prezzo totale del biglietto.
4. Una ditta produce una partita di viti. Le viti perfette hanno un diametro di 30 mm. Un cliente è disposto
ad accettare a prezzo intero anche quelle viti che , pur non essendo perfette, hanno un diametro che
non si discosta per meno di 0.5 dal valore fissato; realizzare il segmento di programma che, letta la
misura del diametro, visualizzi il messaggio “OK” se il diametro sta nell’intervallo voluto, “da scartare”
nell’altro caso.
5. Dati tre numeri, visualizzare il maggiore.
6. Scrivere un programma che legge un anno (esempio 1978) e determina se `e bisestile.
Usare il fatto che un anno `e bisestile se il suo numero `e divisibile per 400, oppure se `e
divisibile per 4 ma non per 100.
variabili di ingresso: Anno - numerica intera
Variabile in uscita: messaggio di testo.
inizio
acquisisci Anno
F
V
Anno mod 4 =0
“Anno non bisestile”
F
“Anno bisestile”
fine
Anno mod 100=0 And
Anno mod 400<>0
Inizio
acquisisci Anno
se Anno mod 4 =0
allora
se Anno mod 100=0 And Anno mod 400<>0
allora
visualizza “Anno non bisestile”
altrimenti
visualizza “Anno bisestile”
fine se
altrimenti
visualizza “Anno non bisestile”
fine se
fine
V
“Anno non bisestile”
Private Sub Bisestile_Click()
Dim Anno As Integer
Anno = Val(InputBox("Inserisci l'anno"))
If Anno Mod 4 = 0 Then
If Anno Mod 100 = 0 And Anno Mod 400 <> 0
Then
MsgBox "Anno Non Bisestile"
Else
MsgBox "Anno bisestile"
End If
Else
MsgBox "Anno Non bisestile"
End If
End Sub