Algoritmi ................................................................................................................................................ 1 introduzione ........................................................................................................................................ 1 Come si arriva all’algoritmo ............................................................................................................... 1 Definizione: ........................................................................................................................................ 2 Caratteristiche di un algoritmo: .......................................................................................................... 2 Schema di progetto ................................................................................................................................. 3 Visual Basic:Istruzioni fondamentali e corrispondenza con Diagrammi di flusso ................................ 4 Algoritmi introduzione Quando, nella vita di tutti i giorni, ci troviamo di fronte alla necessità di risolvere un problema, seguiamo, anche se non ce ne rendiamo conto, una sequenza di passi abbastanza costante: 1) Nella prima fase si definisce il problema, cercando di descrivere con la maggior precisione possibile quali sono i dati che in esso sono coinvolti e “dividendoli” in: a) quali sono quelli che abbiamo a disposizione b) quali sono i risultati che ci aspettiamo dalla soluzione del problema. 2) Nella seconda fase vanno definite quali azioni intraprendere e viene stabilita, tenuto conto dei dati a disposizione, l’esatta sequenza delle azioni da compiere per ottenere la soluzione del problema e per raggiungere il tipo di risultati attesi. 3) Infine si procede all’esecuzione delle azioni definite nella fase precedente. Vediamo qualche esempio. • preparazione pane frattau: Dosi per 4 persone: 400 gr. Di carasau 500 gr. di salsa, brodo di pecora etc. Scaldare il brodo in una pentola larga, immergere (velocemente) il carasau ... La prima cosa che è specificata nella ricetta è il numero di persone, seguono le dosi e gli ingredienti: tutto ciò costituisce l’insieme dei dati iniziali del problema. Vanno poi elencate le risorse che, nel nostro caso, sono i tipi di pentole da utilizzare e, se è necessario, il forno e quale tipo di fuoco. Da ultimo è indicato il processo di preparazione della pietanza. I medesimi passi, descritti sopra per la soluzione di problemi della vita quotidiana, devono essere seguiti quando si utilizzano le risorse dell’elaborazione automatica dei dati. Come si arriva all’algoritmo Passo 1: Analisi-Descrizione del problema In questa prima fase occorre definire con precisione: i dati che abbiamo a disposizione, i risultati attesi e i passaggi per elaborare i dati iniziali e ottenere la soluzione del problema. Schematicamente gli elementi che caratterizzano un problema sono (solitamente): 1) dati iniziali ovvero i dati che servono e sui quali basare la soluzione del problema da affrontare. I dati iniziali vengono anche detti dati di input. 2) dati di uscita ovvero i risultati che si vogliono ottenere che vengono anche detti anche dati di output. 1 3) le risorse a disposizione sia dal punto di vista logico (tabelle, criteri di calcolo, schemi logici, ecc.) sia dal punto di vista fisico o hardware (strumenti di calcolo quali macchine calcolatrici, personal computer o calcolatori di grosse dimensioni). 4) le soluzioni adottate, ovvero il procedimento e il percorso che permettono di passare dai dati iniziali ai risultati attesi. Passo 2: Stesura dell’algoritmo La soluzione del problema, così come è stata descritta nella prima fase, deve essere ora organizzata e sviluppata in una serie di operazioni da attuare secondo un ben definito ordine, che permette di giungere ai risultati attesi a partire dai dati iniziali. La scomposizione del procedimento risolutivo di un problema, in una sequenza di operazioni elementari da seguire per ottenere i risultati attesi, costituisce la stesura dell’algoritmo risolutivo Definizione: un algoritmo può quindi essere definito in maniera semplice ed intuitiva come: un insieme finito di istruzioni che eseguite in un ordine prefissato risolvono un problema. Caratteristiche di un algoritmo: 1) Eseguibile Le istruzioni devono poter essere eseguite dall’esecutore scelto (per noi elaboratore-PC) 2) Finito Deve avere un numero finito di passi (eventualmente ripetuti un numero finito di volte) 3) Generale Deve risolvere una classe di problemi (cioè problemi simili es. calcolare l’area del quadrato, di un QUALSIASI quadrato NON di uno in particolare ) 4) NON ambiguo Le istruzioni devono essere precise ed interpretabili univocamente (es. X = 3*2+5 è ambigua in quanto può essere eseguita in due modi: 1) X = 3*(2+5) 2) X = (3*2)+5 5) Deterministico A fronte degli stessi dati di input produrrà sempre gli stessi output 2 Schema di progetto Istituto Tecnico Commerciale “GP Chironi” Progetto di Laboratorio di Informatica Classe ___________ A.S. 20__/20__ Cognome e Nome: Titolo del progetto: Data di inizio: Data di consegna: 1. Analisi del problema. Comprende tutta la parte in cui si analizza il problema, si capisce quello che si vuole realizzare, tenendo presente gli obiettivi e si stabilisce un progetto di massima. Il problema va definito con una documentazione scritta. 2. Analisi dei dati. Vengono definiti chiaramente le variabili e le strutture dati, sia per quanto riguarda i dati di I e di O sia per quelli che vengono usati durante l’elaborazione. Identificatore Descrizione Tipo V/C I/O/L 3. Rappresentazione Algoritmo (flow-chart). Viene approfondito il progetto dal p.d.v. realizzativo e vengono descritte le specifiche di dettaglio utilizzando ad esempio un flow-chart. Si tratta di una descrizione dettagliata di tutte le azioni del processo risolutivo ( indipendentemente dal linguaggio di programmazione utilizzato). 4. Codifica. Vengono codificate nel linguaggio di programmazione (Visual Basic) le varie procedure,una volta eliminati gli errori sintattici vengono effettuate le prime prove di funzionamento per eliminare gli errori logici più grossolani. 5. Test. Vengono effettuati alcuni test più approfonditi tramite cui è possibile individuare e correggere gli errori di logica. 3 Visual Basic:Istruzioni fondamentali e corrispondenza con Diagrammi di flusso INIZIO SEMANTICA (significato del comando: come VB (sintassi ed esempio) viene eseguito dall’elaboratore) Indica l’inizio dell’algoritmo ovvero della sequenza Private sub <nome sub-routine> Private sub cmdCalcola_click di istruzioni FINE Indica la fine della sequenza di istruzioni ovvero dell’algoritmo SINTASSI ed esempio O “ <messaggio> ” “Saluti da HAL” End sub End sub OUTPUT: (messaggio fisso) Invia in output (es. fà MsgBox <messaggio> apparire a video) il messaggio compreso fra le MsgBox “Saluti da HAL” virgolette O Appare a video: Saluti da HAL OUTPUT: (valore di una variabile) Invia in output (es. fa apparire a video) il VALORE della variabile il cui nome corrisponde all’identificatore di variabile <Identificatore di variabile> O Prezzo MsgBox < identificatore variab.> Msgbox Prezzo Es. Appare a video il valore della variabile Prezzo in questo esempio 3 I <Identificatore di variabile> I Prezzo <ident. variab.>=InputBox(“ ...”) ASSEGNAMENTO: Valuta l’espressione e ne assegna il valore in memoria RAM nella variabile il cui nome corrisponde all’identificatore di RAM variabile Es. Viene assegnato alla variabile Prezzo 3 Totale 15 Totale il risultato del prodotto <ident. Variab.> = <espressione> Inserisce 3 O <Identificatore di variabile> <espressione> Totale Prezzo * 5 INPUT: Aspetta dall’input (es. tastiera) un VALORE e lo inserisce in memoria RAM nella variabile il cui nome corrisponde all’identificatore RAM di variabile Prezzo 3 Es. DOPO che l’utente Totale Fra il valore della variabile Prezzo e 5 SEQUENZA: Le istruzioni vangono eseguite in sequenza Num1 = InputBox (“”) Cognome = InputBox(“Inserire il proprio cognome.”) Totale = Prezzo * 5 Lato = 52 X1 = Totale <Istruzione1> <istruzione2> InputBox Cognome MsgBox “Ciao” Msgbox Cognome 4