Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione Programmazione in C Il concetto di algoritmo Sequenza di azioni (prescrizioni) per effettuare un dato compito ossia La descrizione di una serie di operazioni la cui esecuzione permette di risolvere un dato problema La definizione di un algoritmo è basata sulla rappresentazione di informazioni e implica una loro trasformazione e un’eventuale produzione di nuove informazioni Esempio: ricetta per la realizzazione di un piatto istruzioni di montaggio di un elettrodomestico prelievo bancomat ecc….. Il concetto di algoritmo Gli algoritmi sono espressi mediante un linguaggio e sono uomo realizzati da un esecutore macchina Nell’elaboratore gli algoritmi per la soluzione di particolari problemi sono espressi mediante un linguaggio di programmazione I linguaggi di programmazione sono i linguaggi formali che la macchina è in grado di comprendere Un programma è la descrizione di un algoritmo ed è costituito da una sequenza di istruzioni che il calcolatore è in grado di comprendere ed eseguire. Il concetto di algoritmo La descrizione è quindi costituita da: Istruzioni, cioè costrutti linguistici che prescrivono l’esecuzione di operazioni Strutture di controllo, cioè costrutti linguistici che indicano all’esecutore l’ordine in cui eseguire le operazioni Tre principali strutture di controllo: • Sequenza • Selezione • Iterazione Il concetto di algoritmo Struttura di selezione permette la prescrizione di un azione sulla base del verificarsi di una condizione struttura di controllo SE condizione ALLORA istruzione1 ALTRIMENTI istruzione2 Esempio: telefonata SE il numero è occupato ALLORA ricomponi numero ALTRIMENTI inizia conversazione Il concetto di algoritmo Struttura di iterazione permette la prescrizione di ripetizione di un azione sino al momento in cui si verifica una determinata condizione RIPETI istruzione struttura di controllo FINCHE’ condizione Il controllo viene fatto dopo l’esecuzione dell’istruzione Uscita per condizione verificata (vera) Esempio: telefonata RIPETI componi numero sulla tastiera FINCHE’ utente cercato ha segnale libero Il concetto di algoritmo Altre espressioni di struttura di iterazione RIPETI istruzione MENTRE condizione Esempio: telefonata RIPETI componi numero sulla tastiera MENTRE utente cercato ha segnale occupato Il concetto di algoritmo Requisiti fondamentali di un algoritmo Univocità La descrizione è effettuata in un linguaggio comprensibile all’esecutore e mediante un insieme finito di operazioni elementari, note all’esecutore Completezza Tiene conto di tutte le possibili condizioni che si possono verificare durante la sua esecuzione Finitezza In un numero finito di passi il compito viene portato a termine Rappresentazione a blocchi Rappresentazione schematica di un algoritmo: Istruzione 1 Sequenza Istruzione 2 RIPETI condizione falsa Iterazione Istruzione 3 FINCHE’ condizione condizione vera Istruzione 4 Selezione allora Istruzione 5 SE condizione altrimenti Istruzione 6 Esempio di algoritmo: effettuare una telefonata Sollevare i ricevitore Attendere il segnale di linea Ripeti Comporre il numero Componi una cifra Finchè numero intero Attendere la risposta Se la linea è libera Se l’interlocutore risponde Condurre la conversazione Deporre il ricevitore Altrimenti Deporre il ricevitore Altrimenti (se la linea è occupata) Deporre il ricevitore Esempio di algoritmo: calcolo del massimo tra due numeri Inizio Lettura xey Passo P1 x– y Sì >0? Scrittura “max è x” No Scrittura “max è y” Fine Passo P2 Esempio di algoritmo: calcolo del massimo Inizio tra n numeri Lettura numeri x1, x2, … Prendi i primi due numeri x1 e x2 Passo P1 mmax(x1, x2) Passo P2 Sì Passo P3 Altri numeri da esaminare? Prendi il successivo, xi mmax(m, xi) No Scrittura “max è m” Fine Algoritmi Equivalenti Inizio Inizio Lettura numeri x1, x2, … ma x 0 Pre nd i i p rim i d ue num e ri x1 e x2 Pa sso P1 Lettura num m ma x(x1, x2) Pa sso P2 Sì Altri num eri d a esa mina re? Pa sso P3 Prend i il suc c essivo , xi m ma x(m, xi) Sì num>0? No No Sc rittura Sc rittura “ ma x è m” Fine No num>ma x ? Sì m a x num “ ma x” Fine