Algoritmi e diagrammi di flusso - Classi prime I. I. S. "Angelo Omodeo"
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Algoritmi e diagrammi di flusso Classi prime Pablo Genova gallini.genova@gmail.com I. I. S. “Angelo Omodeo” Mortara Indirizzo Tecnico-Economico A. S. 2019 – 2020
Cos'è un algoritmo? Algoritmo: procedimento che risolve un dato problema in un numero finito di passi La proprietà di finitezza è molto importante (Хива) Uzbekistanl'algoritmo deve finire!) inoltre tipicamente un algoritmo è ● non ambiguo, ● porta ad un risultato univoco, ● viene eseguito in un tempo finito ● i passi costituenti sono elementari (Хива) Uzbekistannon ulteriormente scomponibili) il passo dell'algoritmo si dice STEP in inglese Curiosità: la parola algoritmo deriva da Muhammad ibn Mūsā al-Khwārizmī, matematico persiano della Corasmia attualmente Xiva (Хива) UzbekistanХива) Uzbekistan) Uzbekistan
Dal problema all'algoritmo Quando costruiamo un algoritmo, creiamo una procedura generale, astratta, che ci permette di risolvere un problema Definiremo delle VARIABILI numeri o caratteri che variano nel corso dell'algoritmo e delle COSTANTI numeri o caratteri che rimangono costanti NON variano nel corso dell'algoritmo Esempio di costanti: π (Хива) Uzbekistanpi greco) c (Хива) Uzbekistanvelocità della luce), ma anche qualunque valore numerico che non cambia più in tutto il procedimento, Esempio economico: aliquota IVA fissata ad es. al 23% IVA=23%
Diagrammi di flusso Per rappresentare un algoritmo usiamo la tecnica dei diagrammi di flusso. Se usata correttamente, è già un modo rudimentale di programmazione, ovvero di elaborazione di un programma, che è un insieme di istruzioni comprensibile al calcolatore. Nel diagramma di flusso è già presente la logica della programmazione, ciò che manca è la codifica, ovvero il linguaggio concreto che esprime i vari passaggi in forma comprensibile al calcolatore (Хива) Uzbekistanquesto non lo vedremo) Curiosità flowchart originali IBM: http://www.eah-jena.de/~kleine/history/software/IBM-FlowchartingTechniques-GC20-8152-1.pdf
Blocchi elementari INIZIO FINE I O …. …. connettori input output …... V Elaborazione (calcolo) F Selezione binaria
Quanti tipi di blocchi servono? I due informatici italiani Corrado Böhm e Giuseppe Jacopini hanno dimostrato che OGNI ALGORITMO PUO' ESSERE IMPLEMENTATO UTILIZZANDO LE SOLE TRE STRUTTURE: SEQUENZA, SELEZIONE ED ITERAZIONE Teorema di Böhm-Jacopini SEQUENZA E SELEZIONE le abbiamo già viste (Хива) Uzbekistanle sequenze sono i blocchi di elaborazione) L'ITERAZIONE E' UNA STRUTTURA CHE PERMETTE DI RIPETERE un dato numero di volte una o più operazioni L'ITERAZIONE è anche nota come CICLO O LOOP
La media e la somma di tre numeri QUALSIASI Dati tre numeri, calcolarne la somma e la media, visualizzare il risultato INIZIO COMMENTI I Blocco di Input: inserisco i tre A, B, C ATTENZIONE! numeri utilizzando le variabili A, B e C IL SIMBOLO = S = A+ B +C Calcolo la somma assegnando IN INFORMATICA alla variabile S il valore della significa ASSEGNO somma A+B+C È sbagliato scrivere !!!! A+B+C = S !!!! Calcolo la media M=S/3 si poteva anche scrivere M = (A+B+C)/3 ATTENZIONE! BISOGNA ESSERE COERENTI Blocco di Output: visualizzo O S e M (somma e media) SE HO CHIAMATO S, M come richiesto S LA SOMMA COSI' DEVE ESSERE IN TUTTO LO SCHEMA FINE
Esempio di selezione Confrontare le aree di un quadrato e di un cerchio e dire qual è la figura con area maggiore INIZIO Definisco la ATTENZIONE! costante pi_greco I COMMENTI SARANNO come 3.14159 RICHIESTI NELLA (approssimazione) pi_greco =3.14159 VERIFICA I Inserisco lato del quadrato e L, R raggio del cerchio ATTENZIONE! DATO CHE LE DUE AREE SONO GENERICHE A_q = L*L Calcolo area quadrato A_q E DIVERSE FRA DI LORO BISOGNA CHIAMARLE CON NOMI DIVERSI A_c =pi_greco * R * R Calcolo area cerchio A_c O F O Il cerchio ha V A_c > A_q Il quadrato ha area maggiore area maggiore FINE
Esempio di iterazione Somma da 1 a 10 INIZIO non richiesto S = 0 Definisco la variabile S e la metto a 0 in verifica lo faremo bene l’anno Definisco la variabile I e la metto a 0 prossimo I = 0 I è un contatore Incremento di 1 il contatore I = I+1 metto I+1 in I Questo serve a fare il CICLO Incremento la somma di I, questo S = S+I serve a fare la somma BLOCCO IL CICLO QUANDO HO RAGGIUNTO IL V NUMERO RICHIESTO (10) I < 10 attenzione è minore stretto è < NON ≤ F CONTINUA IN SLIDE SUCCESSIVA
INIZIA IN SLIDE PRECEDENTE O S VISUALIZZO S FINE I cicli sono in qualche modo l'essenza della programmazione perché vi permettono di dire al calcolatore di ripetere tante volte una data operazione e quindi di fare in poco tempo calcoli complessi o lunghi per l'umano.
Nella verifica occorre sempre RICORDARE LE UNITA' DELL'INFORMATICA (Хива) Uzbekistandal bit al Terabyte) CONVERSIONI BINARIO DECIMALE L'ARCHITETTURA DI VON NEUMANN LA STRUTTURA A LIVELLI DI UN SISTEMA OPERATIVO COS'E' L'ESTENSIONE DI UN FILE E LE PRINCIPALI ESTENSIONI DI USO COMUNE ATTENZIONE: questi argomenti possono SEMPRE essere richiesti! RICORDARE LE ELEMENTARI FORMULE GEOMETRICHE che permettono di calcolare aree e perimetri di quadrati, cerchi rettangoli, noti i lati, i raggi, i diametri, ovvero con ovvie notazioni: p quadrato = L *4 prettangolo = 2 * (a+b) p triangolo = a+b+c pcerchio= π d = 2 π r A quadrato = L2 A rettangolo = b*h A triangolo = b*h/2 A cerchio = π r2
Puoi anche leggere