Algoritmi Nella vita quotidiana ci troviamo ad affrontare problemi di varia natura e per i quali dobbiamo trovare procedimenti risolutivi sulla base delle informazioni e dei dati che abbiamo a disposizione. Il procedimento che risolve un problema viene detto algoritmo, usando un termine che indica in matematica, la sequenza delle azioni da compiere per effettuare un calcolo o un’elaborazione di dati. Se l’algoritmo deve essere eseguito da un’altra persona o da una macchina, esso deve essere composto da un numero finito di comandi, o di istruzioni, che l’esecutore dovrà seguire con precisione. Inoltre per i computer occorre usare linguaggi speciali, detti linguaggi di programmazione, che traducono le istruzioni in una forma comprensibile al computer. La traduzione dell’algoritmo si chiama programma per il computer. Si usa uno pseudo linguaggio di programmazione che usa parole della lingua italiana per rappresentare le istruzioni. Essendo istruzioni per l’esecutore, esse sono scritte nella forma imperativa. Es.: descrivere le operazioni che vengono eseguite dal suono della sveglia all’uscita di casa. Analisi: al suono della sveglia mi stiracchio assonnato, scendo dal letto di malavoglia e vado in bagno a fare una doccia tonificante; in cucina mi aspetta una ricca colazione, al termine della quale mi vesto e mi pettino. Dopo aver controllato il contenuto dello zaino sono pronto per uscire: indosso il giubbotto, saluto la mamma, esco di casa e mi dirigo verso la fermata dell’autobus. Algoritmo: è mattina: svegliati. Fai una doccia. Fai colazione. Vestiti. Pettinati. Controlla lo zaino. indossa il giubbotto. Saluta la mamma. Esci di casa. Dirigiti alla fermata dell’autobus. Questo algoritmo però tiene conto solo di tutte le operazioni da svolgere nei giorni feriali, invece un algoritmo deve avere valenza generale, quindi deve essere applicabile a tutti i giorni (domeniche e feste comprese). Al suono della sveglia ho diverse possibilità: 1) è giorno festivo non vado a scuola 2) è un giorno feriale ho diverse possibilità: è un giorno di vacanza non vado a scuola non mi sento bene non vado a scuola negli altri casi vado a scuola Algoritmo: è mattina: svegliati se è un giorno feriale, non è vacanza e non sei malato Fai una doccia. Fai colazione. Vestiti. Pettinati. Controlla lo zaino. Indossa il giubbotto. Saluta la mamma. Esci di casa. Dirigiti alla fermata dell’autobus. altrimenti rimani a dormire L’algoritmo può essere descritto anche usando uno schema grafico, detto diagramma di flusso (o diagramma a blocchi), che utilizza alcuni simboli standard per rappresentare le azioni comunemente presenti in un procedimento risolutivo del problema: inizio - simboli ovali per l’inizio e la fine del diagramma fine - il parallelogramma per indicare l’acquisizione dei dati in ingresso (input) e l’uscita dei risultati (output) - il rettangolo per indicare un’operazione o un calcolo - il rombo per indicare la scelta tra due strade possibili (vero/falso, sì/no) inizio Input A falso A > 10 vero B=Ax3 Output B vero altri numeri? falso fine vero falso Es.: controllare il livello dell’olio del motore. Analisi: per controllare il livello dell’olio del motore è necessario aprire il cofano e, dopo aver individuato l’asta indicatrice, estrarla, pulirla e riporla; quindi estrarla nuovamente per effettuare la verifica del livello. Se tale livello è inferiore al minimo, si reinserisce l’asta nell’alloggiamento, si svita il tappo e si aggiunge un po’ d’olio, alternando successivi controlli finché si raggiunge una situazione soddisfacente. Quindi si ripone l’asta e si chiudono il tappo e il cofano dell’auto. INIZIO Aprire il cofano Individuare l’asta indicatrice Aprire il cofano Estrarre l’asta Individuare l’asta indicatrice Pulire l’asta Estrarre l’asta Riporre l’asta Riestrarre l’asta Pulire l’asta Effettuare la verifica del livello Riporre l’asta Il livello è inferiore al minimo? Riporre l’asta nell’alloggiamento Svitare il tappo Riestrarre l’asta SÌ Aggiungere un po’ d’olio alternando il controllo finché si raggiunge una situazione soddisfacente Riporre l’asta Chiudere il tappo Chiudere il cofano dell’auto NO Il livello è minore del minimo? Riporre l’asta Riporre l’asta Svitare il tappo Chiudere il cofano Aggiungere olio Chiudere il tappo FINE Esercizi Descrivere la procedura per la preparazione del budino e realizzare il corrispondente diagramma di flusso. Descrivere la procedura per prelevare una lattina di bibita dalla macchina distributrice automatica che non dà resto e realizzare il corrispondente diagramma di flusso. Descrivere la procedura per ottenere il diploma di maturità e realizzare il corrispondente diagramma di flusso. Descrivere la procedura per ottenere in prestito un libro dalla biblioteca e realizzare il corrispondente diagramma di flusso. Descrivere la procedura per vincere i campionati mondiali di calcio partendo dalle selezioni continentali e realizzare il corrispondente diagramma di flusso. Descrivere la procedura per una ricetta di un piatto regionale tipico a piacere e realizzare il corrispondente diagramma di flusso.