1 Algoritmi 2 Esercizi risolti

1
Algoritmi
Per risolvere un problema, prima di partire con lo sviluppo di un programma, dobbiamo
analizzare il problema posto. in particolare dobbiamo analizzare questi aspetti:
• Individuare i dati di Input
• Individuare i dati di Output
• Individuare le relazioni che intercorrono tra essi, per utilizzarle al fine di risolvere il
problema desiderato
A questo punto si pu´o procedere alla scrittura della sequenza di istruzioni necessaria a
risolvere il problema, eventualmente rappresentandola con un diagramma flow-chart.
Le caratteristiche dell’algoritmo devono essere le seguenti:
• Finitezza: deve essere una sequenza di passi elementari in numero finito
• Non-ambiguit´a : l’esecutore deve poter interpretare ogni passo in modo univoco
• Eseguibilit´a : l’esecutore deve poter eseguire ogni singola azione in un tempo finito
con le risorse a disposizione
1.1
Variabili e costanti
Le variabili sono gli oggetti utilizzati dalle istruzioni del programma. Esse risiedono nella
memoria dell’elaboratore e corrispondono ai contenitori dei valori che sono elaborati durante l’esecuzione del programma. Alle variabili ´e associato un nome, detto identificatore,
che le individua univocamente all’interno del programma. Sono chiamate variabili perch´e
a loro viene associato un valore che pu´o cambiare durante l’esecuzione del programma.
Esempio: la variabile area di un triangolo pu´o essere indicata con l’identificatore A, ad
essa corrisponde una porzione di memoria pronta ad accogliere il valore di area che verr´a
assegnato o calcolato.
1.2
Algobuild software
Negli esempi seguenti il diagramma di flusso (flow chart) ´e stato disegnato col programma
algobuild, che esegue anche una codifica dell’algoritmo e permette di testarlo direttamente,
per capire se sia effettivamente risolutivo del problema.
Il software ´e disponibile gratuitamente per diverse piattaforme sul sito http://algobuild.com/
dove si trova anche il manuale di utilizzo.
2
Esercizi risolti
• Problema 1 : Calcolare la media di tre numeri assegnati
Input:a, b, c (tre numeri assegnati)
Output: m (media)
Risoluzione: m = (a + b + c)/3
1. Inizio
1
2. Leggi i dati in imput: a, b, c
3. Calcola media = (a + b + c)/3
4. Scrivi i dati in output: m
5. Fine
• Problema 2 : calcolare il prezzo scontato di un prodotto con prezzo iniziale P sul
quale ´e applicato uno sconto s
Input: P (Prezzo), s (sconto percentuale)
Output: P s (Prezzo scontato)
Risoluzione: P s = P − (P ∗ s/100)
1. Inizio
2. Leggi i dati in imput: P, s
3. Calcola P s = P − (P ∗ s/100)
4. Scrivi i dati in output: P s
5. Fine
• Problema 3 : Ricevute in ingresso le lunghezze dei tre lati di un triangolo, dire se si
tratta di un triangolo equilatero, isoscele o scaleno
Input:a, b, c con a, b, c > 0 (lati del triangolo, devono essere maggiori di zero)
Output: ”Equilatero” o ”Isoscele” o ”Scaleno”
Risoluzione: Se a = b e b = c il triangolo ´e Equilatero; se a = b o b = c o c = a il
triangolo ´e Isoscele; se a 6= b 6= c il triangolo ´e Scaleno
1. Inizio
2. Leggi i dati in input: a, b, c
3. Se a > 0 AND b > 0 AND c > 0 vai a 5, altrimenti vai a 4
4. Scrivi in output: ”Dati non corretti”
2
5. se a = b AND b = c vai a 6, altrimenti vai a 8
6. Scrivi in output: ”Equilatero”
7. vai a 13
8. Se a = b OR b = c OR c = a vai a 9, altrimenti vai a 11
9. Scrivi in output: ”Isoscele”
10. vai a 13
11. Scrivi in output: ”Scaleno”
12. vai a 13
13. Fine
3
3
Esercizi
Elabora l’algoritmo risolutivo del problema posto. Utilizza Algobuild per disegnare il flowchart e testare l’algoritmo.
1. Calcolare il minimo tra tre numeri diversi tra di loro
2. Calcolare il prezzo di una casa conoscendo il prezzo al metro quadro e la superficie
3. Effettuare il login se password e username sono corrette, altrimenti visualizzare messaggio
4. Sommare due numeri se entrambi maggiori di zero, sottrarli alrimenti
5. Il termostato accende il riscaldamento se la temperatura misurata ´e minore di quella
impostata dall’utente, spegne il riscaldamento se la temperatura ´e maggiore o uguale
a quella impostata
6. Calcola l’et´a di una persona, conoscendo l’anno di nascita
7. Leggi un numero e calcola il suo reciproco, se il numero ´e diverso da zero
8. Leggi una data di nascita, e controlla se ´e compresa tra 1990 e 2010
9. leggi un voto, scrivi ”Gravemente insufficiente” se <= 4, ”Insufficiente” se > 4 e < 6,
”Sufficiente” se >= 6 e < 8, ”Ottimo” se >= 8
10. Calcola l’ipotenusa di un triangolo rettangolo noti i cateti utilizzando il teorema di
Pitagora
11. Leggi 3 numeri e scrivi quanti sono i negativi
12. Calcola il prezzo della spesa sapendo che sono stati acquistati 3 articoli ed ´e stato
applicato uno sconto
4