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
© Copyright 2024 Paperzz