A.A. 2007-2008 Università degli Studi di Messina Facoltà di Medicina e Chirurgia Corsi di Laurea in Dietistica, Tecniche di Laboratorio Biomedico, Scienze delle Professioni Sanitarie, Tecniche e Diagnostiche, Tecniche Audioprotesiche, Tecniche Audiometriche. Corso di Sistemi di elaborazione delle informazioni Docente: Ing. Maurizio Patanè Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Argomenti del corso • Modulo 1: Concetti generali sui calcolatori elettronici • Modulo 2: Hardware • Modulo 3: Software di sistema • Modulo 4: Software applicativi • Modulo 5: Reti di calcolatori Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Modulo 1 Concetti generali sui calcolatori elettronici • Struttura del calcolatore • Il sistema binario • Rappresentazione dell’informazione nel calcolatore • Linguaggio macchina • Linguaggio assemblatore • Linguaggi di alto livello •Algoritmi Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Nozioni generali sul computer Definizione Un computer (o elaboratore elettronico o calcolatore elettronico) è una macchina elettronica capace di immagazzinare, trasmettere ed elaborare dati, risolvendo i più svariati problemi con straordinaria velocità ed efficienza. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Il flusso delle informazioni Il computer, in generale, riceve le informazioni, cioè i dati, in ingresso (input) e, dopo averle elaborate in base ad un programma prestabilito, le restituisce in uscita (output) trasformate in risultati. dati istruzioni calcolatore risultati Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Cosa è un programma Per poter risolvere un problema tramite l’uso del computer è necessario programmarlo ovvero bisogna fornire al calcolatore un insieme finito ed ordinato di opportune istruzioni che si chiama programma. Anche il computer più veloce non è in grado di svolgere alcuna attività se nella sua memoria non è stato introdotto il programma che gli insegni il procedimento per risolvere il problema. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Perché utilizzare un computer Alcuni dei vantaggi derivanti dall’utilizzo di un computer sono i seguenti: • • • • Rapidità di esecuzione Precisione nei calcoli Esecuzione di lavori ripetitivi Gestione di grandi quantità di dati Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Limiti di un elaboratore Un elaboratore presenta comunque i seguenti limiti: • non ha una propria intelligenza • non ha creatività • non è in grado di risolvere problemi nuovi se non opportunamente istruito • non è in grado di gestire informazioni non strutturate Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Struttura di un calcolatore Memoria di massa CPU Unità di ingresso Memoria di lavoro (o centrale) Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Unità di uscita Architettura di un calcolatore Esistono due differenti architetture: • Architettura di Von Neumann: dati ed istruzioni sono memorizzati all’interno della stessa memoria • Architettura Harvard: dati ed istruzioni sono memorizzati in due memorie distinte (memoria DATI e memoria ISTRUZIONI rispettivamente) Attualmente l’architettura di Von Neumann è la più utilizzata Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Architettura di von Neumann Memoria Dispositivi di input CPU Dispositivi di output Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Architettura Harvard Memoria DATI Dispositivi di input Memoria ISTRUZIONI CPU Dispositivi di output Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazione dell’informazione nei calcolatori • I componenti base della CPU e delle memorie (transistor) sono in grado di rappresentare due stati: OFF e ON (ovvero chiuso/aperto ovvero 0/1) • L’unità base di informazione viene chiamata b it (da Binary Digit ovvero cifra binaria) • Al loro interno i calcolatori utilizzano sequenze di 0 e 1 per rappresentare ogni tipo di informazione (testi, immagini, suoni, programmi, istruzioni, dati…) Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazione dell’informazione nei calcolatori • Tutte le informazioni (dati ed istruzioni) sono trattate da un calcolatore a gruppi di bit di dimensione finita (solitamente 32 o 64) • Per convenzione le sequenze di bit sono raggruppate per otto. Un gruppo di 8 bit `e detto b y te . Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazione dell’informazione nei calcolatori La capacità di memoria di un computer e l’occupazione di memoria da parte di un programma si misura in byte e, più di frequente, mediante uno dei suoi seguenti multipli: 1 KiloByte (KB) = 1024 byte 1 MegaByte (MB) = 1024 KB 1 GigaByte (GB) = 1024 MB 1 TeraByte(TB) = 1024 GB Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazione dei numeri naturali I sistemi di numerazione possono essere suddivisi in due categorie: • Sistemi additivi • Sistemi posizionali Alla prima categoria appartiene il sistema di numerazione romana mentre alla seconda appartengono i sistemi decimale, binario, ottale, esadecimale, etc. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Sistemi di numerazione additivi Un tipico esempio di sistema additivo è quello romano in cui per ottenere il valore di un numero basta sommare le singole cifre che lo compongono. Esempio: MDCCLXIV `e pari a 1000 + 500 + 100 + 100 + 50 + 10 − 1 + 5 = 1764 N.B. Se un valore non `e in ordine crescente si sottrae Svantaggi • Sono necessari molti simboli per un numero • E’ difficile gestire numeri con molte cifre significative • Fare dei calcoli `e molto complesso Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Sistemi posizionali • I simboli assumono valore a seconda della loro posizione rispetto ad un numero b detto base; per rappresentare qualsiasi numero naturale sono sufficienti b simboli. • La base 10 è la più utilizzata. Il sistema di numerazione a base 10 è detto s is te m a d e c im ale • L’utilizzo dei sistemi posizionali semplifica lo svolgimento manuale di calcoli. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Sistema decimale • Nel sistema di numerazione decimale si utilizzano dieci simboli per rappresentare un numero secondo il seguente schema: (Cn-1 . . . C 0)10 con Ck [0,1, …, 9] La rappresentazione precedente è equivalente al seguente polinomio: Cn-1 x 10n-1+ Cn-2 x 10n-2 +. . . + C0 x 100 Esempio: 1512=1x103+5x102+1x101+2x100 Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Sistema binario • Nel sistema di numerazione binario si utilizzano soltanto due simboli: 0 ed 1 • Un numero binario è pertanto una sequenza di 0 ed 1 • Ogni cifra di un numero binario è detta bit • Con n bit è possibile rappresentare i numeri naturali [0 , 2n-1] Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Sistema binario Un generico numero binario ad n cifre (o n bit) si esprime nella forma: (Bn-1 . . . B 0)2 con Bk [0,1] L’equivalente decimale del numero binario è: Bn-1 x 2n-1+ Bn-2 x 2n-2 . . . + B0 x 20 Esempio: (11)2=1x21+1x20=2+1=310 Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Sistema binario Rappresentazione dei numeri negativi Per rappresentare i numeri negativi si utilizza la rappresentazione in complemento a due in cui il primo bit è quello di segno (se è pari ad 1 il numero è negativo, se è zero è positivo) Per ottenere il complemento a due di un numero si procede nel modo seguente: • si invertono i bit del numero (01, 10) • si somma 1 al risultato dell’inversione Esempio: 01010b (= +10d) 10101b+1b 10110b (= -10d) Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazione dei caratteri • La rappresentazione interna si basa sulla codifica mediante un intero • E’ sufficiente 1 byte per la rappresentazione dei caratteri necessari per le lingue anglosassoni • Per altre lingue (Cinese, Giapponese, ecc.) sono adottate altre codifiche (con almeno 2 byte per carattere) • Una codifica molto diffusa `e quella ASCII (American Standard Code for Information Interchange – 7 o 8 bit) Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Codice ASCII Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazioni delle immagini • Le immagini digitali sono costituite da un numero finito di punti detti pixel (da picture elements ovvero elementi dell’immagine) ovvero sono il risultato di un campionamento spaziale di una scena reale. • Ad ogni pixel è associato una opportuna codifica binaria che ne rappresenta la luminosità (tono di grigio) o il colore. Poiché ad ogni pixel è possibile associare un numero finito di bit anche i corrispondenti livelli di grigio o le tonalità di colore (per un’immagine a colori) saranno in numero finito. Il processo che consente di approssimare la luminosità ( o la tonalità di colore) di un pixel mediante un numero finito di livelli è detto quantizzazione. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazioni delle immagini Caratteristiche principali • Profondità di colore: è determinata dal numero di bit utilizzato per codificare un pixel. Maggiore è la profondità di colore, più elevato è il numero di toni di grigio o di colori che si possono rappresentare. • Risoluzione: è legata alla frequenza spaziale di campionamento ed incide sul grado di dettaglio che si può apprezzare in una immagine. Generalmente la risoluzione è espressa in dpi (dot per inch) ovvero punti per per pollice o pixel per inch. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazione delle immagini Ingrandendo l’immagine è possibile discernere i singoli pixel che la costituiscono Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazioni delle immagini Caratteristiche principali Dimensione in pixel: un’immagine digitale può essere assimilata ad una matrice di punti (pixel) di tipo N x M dove il numero delle righe N è pari al numero dei pixel lungo la direzione orizzontale mentre il numero delle colonne M è pari al numero dei pixel lungo la direzione verticale. Il numero di pixel, le dimensioni geometriche (larghezza e altezza) e la risoluzione di un’immagine sono legati dalle seguenti relazioni: N = W x Res M = H x Res dove W ed H sono rispettivamente la larghezza e l’altezza dell’immagine espresse in pollici (inches) e Res è la risoluzione espressa in dpi (dot per inches) Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazioni delle immagini Esempio: un’immagine digitale, di dimensioni pari a 56,44cm X 42,33cm ha una risoluzione di 72 dpi. Calcolare il numero di punti (in orizzontale e verticale) dell’immagine. Essendo 1cm 0.393 inches si ha: W = 56,44 X 0.393 = 22.2 inches (larghezza) H = 42,33 X 0.393 = 16.667 inches (altezza) N = W x Res = 22.22 x 72 = 1600 M = H x Res = 16.667 x 72= 1200 Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazione delle immagini Immagini in bianco e nero Ogni pixel è rappresentato da un solo bit che può assumere il valore 0 (pixel spento) o 1 (pixel acceso) Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazione delle immagini Immagini a toni di grigio • Nelle immagini a toni di grigio, se si utilizzano n bit per codificare la luminosità di un singolo pixel, si avranno a disposizione un totale di 2n livelli di grigio. Esempi: 1 bit (21) = 2 toni 2 bit (22) = 4 toni 3 bit (23) = 8 toni 4 bit (24) = 16 toni 8 bit (28) = 256 toni 16 bit (216) = 65.536 toni 24 bit (224) = 16.7 milioni toni Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazione delle immagini Immagini a toni di grigio Con 4 bit per pixel i livelli di grigio corrispondenti sono 16 (da 0 a 15) Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Rappresentazione delle immagini Immagini a colori Un’immagine a colori è tipicamente rappresentata da una profondità di colore che va da 8 a 24 bit ed oltre. In un’immagine a 24 bit i bit sono spesso suddivisi in 3 gruppi: 8 per il rosso (Red), 8 per il verde (Green) ed 8 per il blu (Blu). Le combinazioni di tali bit sono utilizzate per ottenere le altre sfumature di colore. Esempio: immagine RGB a 24 bit 28 x 28 x 28 = 22416.7 milioni di colori Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggi di programmazione Tramite un linguaggio di programmazione è possibile fornire ad un computer delle istruzioni finalizzate all’esecuzione di un determinato compito ovvero alla produzione di determinati risultati di uscita in corrispondenza di determinati dati di ingresso. Esistono due categorie di linguaggi di programmazione: • Linguaggio macchina o binario • Linguaggi simbolici o di alto livello Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggio macchina • Ogni CPU è in grado di interpretare e di eseguire un certo numero di istruzioni • Tali istruzioni sono costituite da sequenze di bit che corrispondono al tipo di operazione da effettuare ed ai relativi operandi. Esempio: 001000100011 0101010111 1100101001 Codice operazione Operando 1 Operando 2 Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggio macchina • • • • Svantaggi È fortemente legato alla macchina e quindi poco portabile È difficile da interpretare Richiede molto tempo per essere scritto Il debugging può risultare complesso Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggio assemblatore • E’ stato introdotto per ridurre le difficoltà connesse all’utilizzo del linguaggio macchina • E’ un linguaggio simbolico di basso livello • Ancora oggi è utilizzato per realizzare porzioni di codice ottimizzato • Nel linguaggio assembler le istruzioni, gli indirizzi e gli operandi vengono rappresentati in forma simbolica Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggio assemblatore Esempio1: istruzione per la memorizzazione nel registro R1 del contenuto della locazione di memoria FFh Codice operativo 001000100011 Operando1 0001 Operando2 0000 0000 1111 1111 Istruzione in linguaggio macchina LOAD R1 FFh Istruzione in linguaggio assembly Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggio assemblatore Esempio 2: il seguente programma trasferisce il contenuto delle locazioni di memoria IND1 ed IND2 nei registri R1 ed R2, esegue la somma tra R1 ed ed R2 e ne memorizza il risultato in R3. Infine il contenuto di R3 è trasferito nella locazione di memoria IND3. LOAD R1,IND1; copia il contenuto di IND1 in R1 LOAD R2,IND2; copia il contenuto di IND2 in R2 ADD R3, R1, R2; somma R1 ad R2 e memorizza il risultato in R3 STORE IND3, R3; copia il contenuto di R3 in IND3 Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggio assemblatore Un programma scritto nel linguaggio assembly non è direttamente eseguibile dall’elaboratore, pertanto deve essere tradotto da un apposito programma (assembler) in codice macchina Programma Sorgente (in codice assembly) assembler Programma Oggetto (in codice macchina) Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggio assemblatore Svantaggi • I programmi scritti in codice assembly sono difficili da interpretare • Il codice assembly è legato alla macchina e quindi poco “trasportabile” • È più vicino al modo di “pensare” del calcolatore che non a quello umano Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggi di alto livello • Per superare i limiti e le difficoltà intrinseche del linguaggio macchina e del codice assembly sono stati introdotti dei linguaggi di programmazione ad alto livello. • Tali linguaggi, detti anche linguaggi algoritmici, prescindono dalle caratteristiche strutturali della macchina e sono caratterizzati da un notevole livello di astrazione ovvero tendono ad avvicinarsi in modo sempre più consistente alle espressioni della comunicazione e della logica di pensiero caratteristiche dell’uomo. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggi di alto livello • • • • • • • • Ada Basic Cobol Pascal Fortran Visual Basic C C+ + Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggi di alto livello Esempio: programma per il calcolo dell’area di un rettangolo in notazione lineare strutturata e corrispondente implementazione nel linguaggio Pascal INIZIO scrivi ‘introduci la base’ leggi b scrivi ‘introduci l’altezza’ leggi h area a b*h scrivi area FINE program rettangolo; var b, h, area :real; begin writeln(‘introduci la base’); readln(b); writeln(‘introduci la altezza’); readln(h); area:=b*h; writeln(area); end. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Linguaggi di alto livello dichiarazione delle variabili (di tipo real ovvero reale) legge il valore immesso da tastiera e lo memorizza nella variabile assegna ad area il risultato del prodotto tra a e b program rettangolo; var b, h, area :real; begin writeln(‘introduci la base’); readln(b); writeln(‘introduci la altezza’); readln(h); area:=b*h; writeln(area); end. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Interpreti e compilatori Prima di poter essere eseguito da un calcolatore un programma scritto in un linguaggio ad alto livello deve essere convertito in linguaggio macchina. I programmi in grado di effettuare la conversione da linguaggio di alto livello a codice macchina appartengono ad una delle due seguenti categorie: • Compilatori • Interpreti Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Compilatore • Il compilatore riceve in ingresso il codice sorgente ovvero il programma scritto in un linguaggio di alto livello e lo converte in linguaggio macchina • Il risultato della compilazione è detto codice oggetto. • Il programma può essere eseguito solo dopo che il processo di traduzione dell’intero codice sorgente in codice oggetto ha avuto termine. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Compilatore • Il linker provvede successivamente a collegare il file oggetto alle librerie (predefinite o definite dall’utente) generando il file eseguibile. • Il file eseguibile varia a seconda della piattaforma • Il file sorgente, che consentirebbe di modificare il programma, rimane di esclusiva pertinenza del programmatore. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Dal codice sorgente al file eseguibile File sorgente editor File oggetto compilatore librerie File eseguibile Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè L i n k e r Interprete • L’interprete traduce il codice sorgente in linguaggio macchina istruzione per istruzione • Non appena una istruzione del codice ad alto livello è interpretata è pronta per essere eseguita. • Su ogni piattaforma deve essere disponibile il programma interprete per la traduzione in linguaggio macchina Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Il linguaggio Java Java adotta una strategia mista • il file sorgente contenente un programma Java viene prima compilato, generando un file in ByteCode • il file in ByteCode è un file in linguaggio macchina per una macchina non esistente, detta macchina virtuale o Java VirtualMachine • per essere eseguito il ByteCode viene interpretato su ogni piattaforma • esistono programmi interpreti, che realizzano una Java VirtualMachine, per ogni piattaforma • in questo modo il file sorgente non viene distribuito, mentre il file ByteCode distribuito è il medesimo per tutte le piattaforme Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Il linguaggio Java Il calcolatore con un programma compilatore riceve in ingresso il programma sorgente in linguaggio Java e lo traduce producendo in uscita il corrispondente programma nel linguaggio intermedio ByteCode. Programma Sorgente (Java) Compilatore Java Programma ByteCode Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Il linguaggio Java Il calcolatore con un programma interprete Java Virtual Machine riceve il programma ByteCode ed i relativi dati in ingresso, lo interpreta e lo esegue, istruzione dopo istruzione, producendo i dati in uscita. Programma ByteCode Java Virtual Machine Dati di uscita Dati di ingresso Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Errori in un programma • • • • • Gli errori di sintassi sono in genere commessi durante la scrittura del programma mediante la tastiera. I più frequenti sono: Parole chiave scritte in modo inesatto Parentesi aperte e non chiuse Apici aperti e non chiusi Confusione del punto con la virgola Identificatori che iniziano con una cifra anziché con un numero Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Errori in un programma Gli errori di logica si commettono quando si scrive un’istruzione o una serie di istruzioni imprecise da un punto di vista logico ossia quando il ragionamento che le ha prodotte è in parte o completamente errato. I più frequenti sono: • Divisioni per lo zero • Radici quadrate di numeri negativi • Espressioni che producono risultati diversi da quelli che il programmatore si aspettava Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Errori in un programma Gli errori di sintassi sono in genere segnalati con degli appositi messaggi di errore durante la fase di compilazione o di interpretazione del programma. Sono meno insidiosi degli errori logici in quanto più facilmente rilevabili durante la fase di “debugging” del programma. Gli errori logici sono, invece, più difficili da individuare in quanto spesso si verificano solo in corrispondenza di particolari valori dei dati di ingresso pertanto è necessario sottoporre il programma ad appropriati test di verifica allo scopo di individuarli. Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Algoritmi • Per risolvere un problema è necessario individuare una successione finita di istruzioni interpretabili ed eseguibili da un esecutore che, a partire dai dati di ingresso, conducano ai dati finali (soluzione del problema) • L’insieme di tali istruzioni si definisce Algoritmo Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Algoritmi Rappresentazione schematica di un algoritmo algoritmo Dati di ingresso esecutore Dati di uscita Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Algoritmi Rappresentazione di un algoritmo Esistono due differenti modalità di rappresentazione di un algoritmo: • Diagramma di flusso: rappresentazione grafica mediante l’utilizzo di simboli ad ognuno dei quali corrisponde un’azione da parte dell’esecutore • Notazione lineare strutturata: i simboli grafici sono rimpiazzati da parole riservate fra le quali vanno incluse le istruzioni da eseguire Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Algoritmi Simboli dei diagrammi di flusso Questo simbolo viene utilizzato per identificare l’inizio e la fine di un algoritmo Questo simbolo indica un’azione elementare ovvero un’azione non ulteriormente scomponibile Questo simbolo indica che viene effettuato un controllo da parte dell’esecutore dell’algoritmo per verificare se una determinata condizione è vera o falsa Questo simbolo indica un’operazione di ingresso o uscita dei dati Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Diagrammi di flusso Struttura sequenziale inizio Istruzione 1 Istruzione 2 fine segna l’inizio della sequenza di istruzioni Le istruzioni che compongono la sequenza vengono eseguite in successione segna la fine della sequenza di istruzioni Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Diagrammi di flusso Struttura di selezione binaria falso condizione vero istruzione L’istruzione viene eseguita solo se la condizione è vera. Se la condizione è falsa si passa direttamente all’ esecuzione di un’eventuale istruzione successiva istruzione successiva Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Diagrammi di flusso Struttura di selezione binaria vero falso condizione istruzione 1 se la condizione è vera viene eseguita l’istruzione 1 se è falsa l’istruzione 2 istruzione 2 istruzione successiva Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Diagrammi di flusso Struttura di ripetizione falso condizione vero istruzione Finché la condizione è vera l’istruzione viene eseguita. Quando la condizione diventa falsa il ciclo termina. Se la condizione non è mai vera l’istruzione presente all’interno del ciclo non viene eseguita nemmeno una volta. istruzione successiva Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Diagrammi di flusso Struttura di ripetizione istruzione condizione vero falso L’istruzione presente all’interno del ciclo viene ripetuta fino a quando la condizione rimane falsa. Se la condizione diventa vera si esce dal ciclo e si procede con l’esecuzione di un’eventuale istruzione successiva. In ogni caso l’istruzione presente all’interno del ciclo viene sempre eseguita almeno una volta. istruzione successiva Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Notazione lineare strutturata Struttura di sequenza INIZIO Istruzione 1 Istruzione 2 Parole riservate FINE Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Notazione lineare strutturata Strutture di selezione binaria SE condizione vera ALLORA SE condizione vera ALLORA Istruzione Istruzione 1 FINE SE ALTRIMENTI Istruzione 2 FINE SE Parole riservate Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Notazione lineare strutturata Strutture di ripetizione FINCHE’ condizione vera ESEGUI RIPETI Istruzione Istruzione FINE CICLO FINCHE’ condizione è falsa FINE CICLO Parole riservate Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Algoritmi inizio Leggi A Leggi B A+B fine Esempio 1 INIZIO Leggi A Leggi B Somma A a B FINE Questo semplice algoritmo utilizza una struttura sequenziale per leggere due numeri A e B (immessi ad esempio tramite la tastiera) e sommarli Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè inizio Algoritmi Esempio 2 leggi X vero falso X>=0 scrivi X scrivi -X fine INIZIO leggi X SE X>=0 ALLORA scrivi X ALTRIMENTI scrivi –X FINE Algoritmo per il calcolo del modulo di un numero X attraverso la struttura di selezione binaria Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè inizio Algoritmi XX1 Esempio 3 falso X<=10 vero scrivi X X XX+1 INIZIO XX1 FINCHE’ X<=10 ESEGUI Scrivi X X XX+1 FINE CICLO FINE fine Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè Fine Modulo 1 Corso di Sistemi di elaborazione delle informazioni - Autore: Ing. Maurizio Patanè