Ad es. se il programmatore volesse programmare la macchina del caffè una volta trovata la soluzione dovrebbe comunicarla alla macchina.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Ad es. se il programmatore volesse programmare la macchina del caffè una volta trovata la soluzione dovrebbe comunicarla alla macchina."

Transcript

1 Che cosa è un computer? E una macchina 1 superveloce nel fare i calcoli ma non è intelligente, cioè essa deve essere informata su cosa deve fare quando riceve certi dati di input, attraverso i programmi. Che significa programmare un computer? Programmare un computer significa descrivere un procedimento capace di far fare ad una macchina una serie ordinata di azioni in modo che il risultato finale sia il lavoro da svolgere. Chi è il programmatore? Chi è l utente? L uomo che programma un computer. E utente qualsiasi persona che usa il computer anche se non è in grado di programmarlo. 2 Es. quale è la serie ordinata di azioni che deve svolgere il barista per preparare un caffè? La serie ordinata di azioni da svolgere è a grandi linee la seguente: 1. Accettare le monete dal cliente in modo che siano in quantità sufficienti 2. Inserire la polvere del caffè nella macchina 3. Erogare il caffè nella tazzina 4. Aggiungere il cucchiaino alla tazzina Analogamente quali azioni deve compiere la macchina del caffè del corridoio? Le stesse (in più essa effettua anche l azione di aggiungere lo zucchero) in modo automatico, cioè senza l intervento dell uomo, in modo che il risultato finale, l erogazione del caffè sia il risultato da svolgere ovvero il lavoro che dovrebbe svolgere l uomo se non avesse la macchina del caffè. Ad es. se il programmatore volesse programmare la macchina del caffè una volta trovata la soluzione dovrebbe comunicarla alla macchina. In quale linguaggio dovrebbe parlare il programmatore con il computer? Il programmatore dovrebbe parlare: - in linguaggio macchina (linguaggio binario) o - nel suo linguaggio 3 e usare un traduttore. Ad esempio se noi dovessimo comunicare con una persona che parla solo l inglese o parliamo l inglese o parliamo l italiano e cerchiamo una persona che faccia da traduttore. Negli anni 50 i primi programmatori comunicavano con la macchina in linguaggio macchina basato sul sistema binario costruito dalle sole due cifre 0 e 1 perciò detto anche linguaggio binario. Tale linguaggio riflette la logica dei componenti interni della macchina e quindi la sua sintassi è strettamente legata alle caratteristiche del computer per il quale è stato definito. Intorno alla seconda metà degli anni 50 l uomo ha iniziato a definire diverse linguaggi di programmazione cosiddetti ad alto livello, perché più vicini alle modalità umane di comunicazione come ad es.: il ForTran (Formula Translation) nato nel 1954 per scopi scientifici, il COBOL (Common Business Oriented Language) nato nel 1960 per scopi commerciali, il BASIC (Beginner s All Purpose Symbolic Instruction Code) nato nel 1965 per avere un linguaggio che 1 In questa dispensa sono usati come sinonimi i termini di: macchina, calcolatore e computer. 2 Nota al prof.: la differenza che c è tra utente e programmatore è la stessa che c è tra l utente e il costruttore di case. 3 In realtà, come vedremo, il linguaggio usato dal programmatore sarà non il suo linguaggio naturale ma un linguaggio tecnico costituito da parole aventi un solo significato e da regole molto precise in modo che esso sia privo di sinonimi, ambiguità, eccezioni (perché si discostano dalle regole generali), allegorie, metafore, ecc. Per tutti questi motivi che un linguaggio tecnico è detto anche artificiale. 1

2 fosse molto semplice da imparare e da usare da parte del programmatore, il PASCAL nato nel 1971 ad opera di N. Wirth progettato come linguaggio per l insegnamento della programmazione strutturata, l ADA nel 1980 in onore di Lady Augusta Ada Byron che assistente di Charles Babbage è ritenuta essere la prima programmatrice della storia, il C, il Java, Il Visual Basic, ecc. Inoltre, il programmatore ha iniziato a definire dei particolari programmi detti compilatori o interpreti che traducessero un programma scritto in un linguaggio di programmazione ad alto livello in un programma scritto in linguaggio macchina (a basso livello o binario). I passi da compiere per realizzare un programma Dato un problema, i cinque passi che devono essere effettuati dal programmatore per arrivare ad avere un programma eseguibile dalla macchina sono: 1. capire il problema e individuarne la soluzione. 2. progettare la soluzione e comunicarla alla macchina. 3. creare il programma eseguibile. 4. provare il programma eseguibile sugli errori di logica (testing o collaudo) 5. documentare il programma sorgente (documentazione interna ed esterna) Vediamo i passi suddetti un po più nel dettaglio: 1. Capire il problema e individuarne la soluzione Dato un problema, capirlo significa individuare nel testo del problema quali sono i dati a disposizione cosiddetti dati di input e quali sono i risultati che ci si attende dal programma cosiddetti dati di output e individuarne la soluzione significa trovare una formula o strategia risolutiva che permetta alla macchina di trasformare i dati di input in risultati da fornire in output come mostra la figura seguente: Dati di Input Macchina Dati di Output Esempio: capire e individuare la soluzione nel problema seguente: Calcolare l area a di un triangolo sapendo la base b e l altezza h Per capire il problema, come suddetto, bisogna innanzitutto individuare nel testo quali sono i dati di input e i dati di output. Ebbene essi sono: - b e h sono dati di input - a è un dato di output La soluzione 4, invece, ci viene fornita dalla geometria che dice che l area a = (b * h) / 2. A partire dalla soluzione possiamo ricavare la serie ordinata di azioni principali da comunicare alla macchina per programmarla. 2. Progettare la soluzione e comunicarla alla macchina Trovata la soluzione di un problema, progettarla significa descriverla con una serie ordinata di azioni principali. I metodi più usati per progettare la soluzione sono: il metodo del diagramma a blocchi e la pseudocodifica. Esempio Ad es. a partire dalla soluzione del calcolo dell area di un rettangolo la serie ordinata di azioni è la seguente: 4 La soluzione è semplicemente l idea logica trovata per risolvere il problema, in tal caso la formula. 2

3 1. leggere la base b; 2. leggere l altezza h; 3. calcolare l area a = (b * h) / 2; 4. scrivere l area a Da questo es. si deduce come ad es. l azione 3 non può essere eseguita prima delle azioni 1 e 2. Questo sottolinea il fatto che le azioni da seguire deve essere ordinate. Successivamente per comunicare alla macchina la soluzione, la serie ordinata di azioni deve essere, tradotta in un linguaggio di programmazione ad alto livello e salvata in un file detto programma sorgente. I programmi sorgenti essendo dei file hanno solitamente un estensione scelta in base al linguaggio di programmazione ad alto livello usato come:.pas nel linguaggio Pascal,.bas nel linguaggio Basic,.c nel linguaggio C,.cbl nel linguaggio Cobol,,java nel linguaggio java, ecc. 3. Creare il programma eseguibile Per trasformare un programma sorgente in un programma direttamente eseguibile dalla macchina bisogna usare un programma traduttore. Di programmi traduttori ne esistono di due tipi: compilatore e interprete. Con il compilatore il programma sorgente, per essere trasformato in un programma direttamente eseguibile dalla macchina, deve passare la fase di compilazione e la fase di link come mostra la figura seguente: Programma sorgente Fase di Compilazione Programma oggetto Fase di Link Programma eseguibile Nella fase di compilazione il programma sorgente se non presenta errori sintattici e lessicali 5 viene tradotto in un programma in linguaggio macchina e salvato in un file, detto programma oggetto avente l estensione.obj Nella fase di link il programma oggetto, mediante un programma detto linker 6, viene unito ad alcune librerie dell ambiente del linguaggio di programmazione scelto e salvato in un altro file, detto programma eseguibile avente l estensione.exe Con l interprete il programma sorgente viene tradotto immediatamente in programma eseguibile, nel senso che l interprete traduce ed esegue, un istruzione alla volta, tutte le istruzioni del programma sorgente. La traduzione si interrompe solo in presenza di errori sintattici o lessicali nell istruzione corrente Provare il programma eseguibile sugli errori di logica (testing o collaudo) Creato il programma eseguibile, per poter dire che esso è veramente funzionante è necessario verificare che esso fornisca l output corretto a fronte dei dati forniti in input. Tale attività è cosiddetta di testing o di collaudo. Per essere sicuri che il programma eseguibile funzioni perfettamente vanno effettuate molte prove verificando tutti i casi possibili di errore. Esempio: Riprendendo il programma che calcoli l area di un triangolo, se vengono forniti in input i valori b=5 e h=4 ci si aspetta che il programma eseguibile fornisca in output l area a = 10. Se, invece, il 5 Es. di errori sintattici e lessicali possono essere rispettivamente la mancanza di un punto e virgola e l uso della parola leggi al posto della parola read se read è la parola usata dal lessico del linguaggio di programmazione usato. 6 Il linker oltre a collegare il programma oggetto con le librerie, permette di unire anche più programmi oggetto in un unico programma. 7 Nota al prof.: in questa occasione non ha senso parlare delle differenze tra compilatore e interprete visto che l argomento di studio non è I linguaggi di programmazione ma i passi da compiere per realizzare un programma. Es. di linguaggi interpretati sono: VisualBasic, Lisp, Prolog, Jav, ecc. 3

4 risultato è 20 vuol dire che il programma non funziona bene e quindi esiste qualche errore di logica ( ad es. non è stata effettuata la divisione per 2 del prodotto b * h). Gli errori di logica o errori semantici vengono detti bachi (in inglese bug) che significa pulce per indicare la fastidiosità e la difficoltà di individuazione e di eliminazione. Per aiutare il programmatore ad eliminare tali errori esistono dei programmi detti debugger, il cui compito è quello di far eseguire il programma eseguibile passo dopo passo in modo che il programmatore possa visualizzare lo stato corrente dei dati del programma e quindi verificare la corretta esecuzione di una istruzione alla volta del programma. 5. Documentare il programma sorgente (documentazione interna ed esterna) I programmi sorgenti realizzati devono essere opportunamente documentati, in modo che chiunque debba modificarli in seguito possa sapere quale è la logica del programma. La documentazione di un programma sorgente può essere di due tipi: esterna e interna. La documentazione esterna è quella che fornisce le funzionalità del programma realizzato. 8 La documentazione interna è quella interna al programma sorgente sottoforma di commento. I commenti sono istruzioni che non vengono tradotte in linguaggio macchina dal programma traduttore (compilatore o interprete) perchè servono solo al programmatore per ricordargli come ha risolto le parti più difficili del programma. Definizione di algoritmo 9. Un algoritmo è una sequenza ordinata di azioni o istruzioni che permettono di risolvere tutti i problemi di una certa classe nel modo più efficiente possibile. 10 Le istruzioni, inoltre, devono soddisfare ai seguenti requisiti: 1. elementari, cioè non ulteriormente scomponibili 2. in numero finito, nel senso che l algoritmo deve avere un punto di inizio e un punto di fine 3. non ambigue, cioè che non lasciano dubbi di interpretazione al computer che dovrà eseguirla 4. deterministiche, in modo da garantire che i risultati ottenuti siano sempre gli stessi a prescindere dalla macchina che le esegue. Ad esempio: l istruzione moltiplica 3 per 4 produce sempre il medesimo risultato, anche se è eseguita su calcolatrici diverse. Che significa dire che l algoritmo deve risolvere tutti i problemi di una certa classe? Significa che esso deve essere generale, cioè si deve occupare della risoluzione della più ampia famiglia di problemi, ovvero due o più problemi appartenenti alla stessa famiglia devono poter essere risolti con lo stesso tipo di algoritmo. Ad es. l algoritmo che risolve il problema del calcolo dell area di un rettangolo è generale se permette risolvere anche il problema del calcolo dell area di un quadrato. Che significa dire che l algoritmo deve essere il più efficiente possibile? Significa dire che esso deve risolvere il problema con il numero minimo di istruzioni. Per uno stesso problema ci possono essere più algoritmi. Un algoritmo si dice che è più efficiente o più efficace di un altro quando permette di risolvere il problema con un numero di istruzioni minore rispetto all altro. Esempio Consideriamo i due seguenti problemi: 8 Nei programmi la documentazione esterna è ad es. la guida in linea. 9 Nota al prof.: un algoritmo rispetto al concetto di soluzione di un problema più generico usato prima ha in più il fatto di soddisfare ai quattro requisiti: finitezza, deterministico, non ambiguità ed elementare su definiti. 10 Un algoritmo deve essere generale cioè si deve occupare della risoluzione di famiglie di problemi 4

5 Problema 1 Trovare l algoritmo che calcoli l area di un rettangolo conoscendo la base b e l altezza h. Quindi l area a = b * h Problema 2 Trovare l algoritmo che calcoli l area di un quadrato conoscendo il lato l. Quindi l area a = l * l ovvero posto b = l e h = l anche l area di un quadrato è a = b * h Questo significa che l algoritmo che calcola l area di un rettangolo deve essere formulato in modo che possa essere applicato anche al calcolo dell area di un quadrato ovvero deve essere generale. Alcuni esempi di algoritmi 1. Trovare l algoritmo che permetta di risolvere il problema della sostituzione della ruota forata di un automobile L algoritmo da usare per risolvere tale problema è a grandi linee il seguente: 1. solleva l auto con il crick 2. svita i bulloni della ruota 3. togli la ruota forata 4. metti la ruota 5. avvita i bulloni 6. abbassa l automobile Osservazioni: le istruzioni di tale algoritmo verificano tutte le proprietà di un algoritmo? - L istruzione 1 solleva l auto con il crick, non elementare infatti può essere sostituita con la sequenza delle tre istruzioni elementari seguenti: prendi il crick, inserisci il crick sotto l automobile e solleva l automobile. - Anche l istruzione 2 svita i bulloni della ruota, non elementare infatti può essere sostituita con la sequenza delle quattro istruzioni elementari seguenti: svita il 1 bullone, svita il 2 bullone, svita il 3 bullone, svita il 4 bullone, ecc 11 - L istruzione 4 metti la ruota è ambigua poiché non specifica quale ruota bisogna inserire sotto l automobile, la ruota forata appena tolta o la ruota di scorta. Tale istruzione 4, quindi, deve essere sostituita con l istruzione metti la ruota di scorta - Anche l istruzione 5 avvita i bullono può essere ulteriormente scomposta. - La proprietà di finitezza è garantita. - La proprietà di essere deterministico è garantito dal fatto che le istruzioni se sono eseguite da persone diverse permettono di cambiare la ruota forata allo stesso modo. 2 Trovare l algoritmo che permetta di risolvere il problema della preparazione di una torta al cioccolato I dati di input del problema, ovvero gli ingredienti sono: - ¼ di litro di latte, 300gr di farina, 3 uova, 200 gr di zucchero, 160 gr di burro, 20 gr di lievito. Il dato di output è la torta pronta Quale è l algoritmo da usare per risolvere tale problema? La ricetta che è a grandi linee la seguente: 1. Mescolare in sequenza farina, zucchero, uova e cacao fino ad ottenere un impasto omogeneo Infatti, ci sono automobili le cui ruote hanno più di quattro bulloni. 5

6 2. Aggiungere 150 gr di burro fuso e il lievito sciolto nel latte e mescolare fino ad amalgamare il tutto. 3. mettere il composto in una teglia imburrata (10 gr di burro). 4. far cuocere in forno per 40 min. alla temperatura di 160 gradi. Il diagramma a blocchi o di flusso o flowchart Per progettare 13 un algoritmo negli esempi di algoritmi precedenti abbiamo usato il linguaggio naturale umano poco formale e rigoroso in quanto si trattava di risolvere problemi molto semplici. Quando i problemi da risolvere sono più complessi uno strumento a noi utile per riuscire a progettare l algoritmo in modo più formale e rigoroso è il metodo del diagramma a blocchi. Esso consiste nel descrivere la sequenza ordinata di azioni di un algoritmo in modo grafico attraverso l uso di simboli detti blocchi, collegati tra loro da frecce orientate che indicano il flusso delle azioni. I blocchi principali 14 sono quattro e di forma geometrica diversa: ovale, parallelogramma, rettangolo e rombo. Ciascun blocco ha un proprio significato. All interno di ogni blocco è presente un breve testo sintetico non ambiguo. I blocchi sono: blocco di inizio o di fine, blocco di lettura o di scrittura, blocco di elaborazione e blocco di decisione o di condizione. Ma vediamoli più nel dettaglio: 1. Blocco di inizio e di fine. Esso, rappresentato graficamente con un ovale, si usa per indicare il punto di partenza e quello di terminazione dell algoritmo. Dal blocco inizio parte una sola freccia che raggiunge la prima azione dell algoritmo e verso inizio non arriva alcuna freccia. Invece, verso il blocco fine arrivano una o più frecce (in questa fig. solo una), ma da esso non ne parte nessuna come mostra la fig.: 2. Blocco di lettura o scrittura. Esso, rappresentato graficamente con un parallelogramma, si usa per indicare un operazione di immissione di dati (detta operazione di lettura o di input) o un operazione di emissione di dati (detta anche operazione di scrittura o di output). Verso il blocco, in genere, ci sono una o più frecce di entrata (in questa fig. solo una) e dal blocco c è una sola freccia di uscita, come mostra la fig.: 3. Blocco di elaborazione. Esso, rappresentato graficamente con un rettangolo, si usa per indicare un azione di calcolo. Verso il blocco, in genere, ci sono una o più frecce di entrata (in questa fig. solo una) e dal blocco c è una sola freccia di uscita, come mostra la fig.: 12 Nota al prof.: ora che gli alunni hanno capito, con il 1 es. di algoritmo come si procede, in tale 2 es. puoi andare più spedito facendo solo osservare che ciascuna delle quattro istruzioni non è elementare e quindi si può scomporre ulteriormente 13 Nota al Prof.: progettare sta per descrivere. Uso questo per conformità rispetto a quanto detto precedentemente nei passi da compiere per realizzare un programma 14 Più avanti si introdurrà un nuovo blocco, l esagono, per la struttura a iterazione prestabilita. 6

7 4. Blocco di decisione o di condizione. Esso, rappresentato graficamente con un rombo, si usa per indicare un operazione di confronto tra due dati, per stabilire se la condizione in esso inserita è vera o è falsa. Verso il blocco c è una sola freccia di entrata e dal blocco ci sono solo due frecce di uscita in corrispondenza delle quali si trovano indicazioni del tipo si/no, vero/falso o V/F come mostra la fig.: I quattro concetti base per la descrizione degli algoritmi 1) La variabile In tutti i linguaggi di programmazione il programmatore ha necessità di memorizzare temporaneamente alcuni valori durante l esecuzione di un programma. Una variabile è fisicamente una celletta della RAM 15 in cui è possibile memorizzare temporaneamente dei dati. Essa è individuata da: - un nome scelto a piacere ( battezzato ) dal programmatore composto da lettere e numeri ma che deve sempre iniziare per lettera, es: alfa, a1, cont, ecc. - un tipo di dati che stabilisce l insieme dei possibili valori che essa può assumere. - un valore suscettibile a cambiamenti a seconda che si verificano o meno condizioni, eventi, ecc. da qui il nome variabile. Possiamo immaginare intuitivamente una variabile come una celletta, inizialmente vuota, contraddistinta da un nome in grado di contenere dei valori, come mostra la fig.: celletta N nome Dalla figura si evince che il nome N della variabile individua il contenitore mentre il valore della variabile individua il suo contenuto in un certo istante, quindi una variabile esiste indipendentemente dal suo contenuto. Una variabile deve essere dichiarata prima di poter essere usata, e nel momento della dichiarazione viene definito anche il suo tipo. Una variabile potrà contenere solo valori appartenenti al tipo di cui è stata dichiarata, se si tenta di assegnare ad una variabile un valore di un tipo diverso si commette un errore. Esempi d uso - Se il programmatore deve conservare temporaneamente un numero intero letto dall utente definirà ad es. una variabile intera N. Essa è una variabile perché? Essa è individuata da: un nome (N), un tipo che è il tipo intero che rappresenta l insieme dei valori possibili che la variabile può assumere e da un valore ovvero il valore che la variabile assumerà in un certo istante - Se il programmatore tra tutti i numeri interi letti dall utente dovrà calcolarne la media aritmetica definirà ad es. una variabile reale Media. Essa è una variabile perché? Essa è individuata da: un nome (MEDIA), un tipo che è il tipo reale che rappresenta l insieme dei valori possibili che la variabile può assumere e da un valore ovvero il valore che la variabile assumerà in un certo istante. 15 Nota al prof.: disegnare lo schema del modello di Von Neumann individuando la CPU, la RAM, le unità di Input e Output ed infine le cellette che rappresentano in RAM le variabili 7

8 - Se il programmatore tra tutte le lettere minuscole dell alfabeto lette dall utente dovrà ricordarne l ultima inserita definirà ad es. una variabile CARATERE. Essa è una variabile perché? Essa è individuata da: un nome (CARATTERE), un tipo che è il tipo carattere che rappresenta l insieme dei valori possibili 16 che la variabile può assumere e da un valore ovvero il valore che la variabile assumerà in un certo istante. I vantaggi dell uso delle variabili 1) E comodo usare il nome di una variabile al posto del suo valore difficile da ricordare. Pensiamo alla SIM del nostro cellulare. Essa contiene una memoria permanente in cui noi salviamo i nostri contatti. Tale memoria può essere immaginata come una sequenza di celle di memoria del tipo: Mario Paolo Mario Paolo2 Mario dove ciascuna cella è identificata da un nome che è il nome del contatto e da un valore il numero di telefono, che può anche modificare nel tempo se il nostro amico cambia numero. Per ricondurci al primo vantaggio, noi usiamo i nomi dei contatti al posto del loro valore perché sono più semplici da ricordare. 2) Usare il nome di una variabile al posto del suo valore per eseguirvi sopra delle operazioni nel senso che se ad es. le variabili A e B contengono i valori 2 e -3,14 ha senso fare le seguenti quattro operazioni: A + B; A - B; A / B; A * B L assegnazione Essa serve ad attribuire un valore ad una variabile. La sintassi è la seguente: nome Espressione compatibile riceve Esempi - N 1 (si legge la variabile intera N riceve il valore 1); - N M +1 (si legge la variabile intera N riceve il valore della variabile intera M+1) - N 3,14 (si legge la variabile intera N non può ricevere il valore reale 3,14); - N 5,5 (si legge la variabile intera N non può ricevere il valore reale 5,5) 3) L input L istruzione di input rappresenta un secondo modo per attribuire un valore ad una variabile. A differenza dell assegnazione però tale valore non viene specificato dal programmatore durante la descrizione dell algoritmo ma viene acquisito durante l esecuzione dell algoritmo stesso attraverso un dispositivo di input come ad es. la tastiera. Nei diagrammi a blocchi indicheremo l input con la sintassi: leggi (nome variabile) ad es. leggi(n) 16 I valori possibile di una variabile di tipo carattere sono i 26 caratteri dell alfabeto minuscoli e maiuscoli, le cifre 0, 1,, 9 e i segni di punteggiatura. 8

9 4) L output L output ha come effetto quello di presentare su un dispositivo di output come ad es. il monitor del PC il valore di una variabile o di un calcolo. 17 Nei diagrammi a blocchi indicheremo l output con la sintassi: scrivi (nome variabile) ad es. scrivi (N) Esempi di algoritmi descritti con il metodo del diagramma a blocchi Problema1: Scrivere un algoritmo che dato un numero intero A letto dall utente, calcoli e scriva in output il suo quadrato B 18 e il suo doppio C. 19 Capiamo il problema: 20 - I dati di ingresso sono: A - I dati di uscita sono: B e C - Le variabili sono: A B C Quindi, come mostra la figura a sinistra, dopo aver individuato i dati di ingresso e di uscita affinché il computer possa fornire i dati di uscita a noi non resta di comunicare al computer l algoritmo che è: Quindi sul valore contenuto nella variabile A, letto in input è possibile fare comodamente l operazione di somma e di prodotto 21 Problema2: Scrivere un algoritmo che calcoli l area di un triangolo conoscendo la base e l altezza e poi la scriva in output Non ha senso effettuare un calcolo e poi non portarlo in uscita. E come dire non ha senso programmare la macchina del caffé a preparare il caffé se richiesto dall utente e poi a non erogarlo nella tazzina. 18 Nelle classi degli istituti professionali conviene fermarsi, come primo es di algoritmo, al calcolo del quadrato B e conviene far notare agli alunni che per calcolare il doppio di un numero A possiamo seguire due strade alternative ed equivalenti: A + A o 2*A. 19 Nota al prof.: dire agli alunni di ricordare ora sia tutti i blocchi elencati e sia la sintassi dei quattro concetti fondamentali studiati. Inoltre per i primi algoritmi elencare a sinistra i dati di ingresso, di uscita e le variabili usate ed a destra disegnare la figura del conputer che riceve i dati di input e che grazie all algoritmo fornisce i risultati voluti. 20 Nota al prof.: far notare agli allievi che si parte sempre da qui: d altra parte abbiamo detto in precedenza che il primo passo per risolvere un problema è capire il problema. 21 Ciò sottolinea il secondo vantaggio dell uso delle variabili poc anzi elencato 22 Basta sfruttare la soluzione trovata in precedenza attraverso l uso del linguaggio naturale umano e cosi riassunto: 1. leggere la base; 2. leggere l altezza; 3. calcolare l area = (base * altezza ) / 2; 4. scrivere l area. 9

10 Capiamo il problema: I dati di ingresso sono: base e altezza I dati di uscita sono: area Le variabili sono: base altezza area Problema3: Scrivere un algoritmo che letti due numeri x e y, calcoli e scriva in output la loro somma SOM. Capiamo il problema: I dati di ingresso sono: x e y I dati di uscita sono: SOM Le variabili sono: x y SOM Problema4: Scrivere un algoritmo che dati tre numeri interi A, B e C letti in input, calcoli la media aritmetica e la stampi in output ovvero graficamente: Capiamo il problema: I dati di ingresso sono: A, B e C I dati di uscita sono: M Le variabili sono: A B C M Tale algoritmo prevede, quindi, per comodità l introduzione di un altra variabile M che conterrà il risultato. La programmazione strutturata Per progettare un algoritmo, oltre agli strumenti finora studiati, si possono utilizzare alcuni schemi logici elementari, detti strutture. Esse, che permettono di costruire qualsiasi algoritmo 23 dai più semplici come quelli visti finora ai più complessi, si possono classificare in tre tipologie: 23 Nota al prof.: conferma di quanto detto è fornito dal teorema di Bohm-Jacopini che afferma che qualsiasi algoritmo può essere definito usando esclusivamente le strutture di sequenza, di selezione e di iterazione. 10

11 1. struttura di sequenza o sequenziale 2. struttura di selezione o condizionale o alternativa 3. struttura di ripetizione o iterativa Quando nello studio della programmazione dei computer si fa uso sistematico di queste strutture allora la programmazione strutturata. La struttura sequenza In un algoritmo si parla di struttura di sequenza quando le azioni descritte sono eseguite una di seguito all altra, secondo l ordine con cui sono state definite, come mostra la figura: Come esempio di quanto detto consideriamo il seguente problema: Problema5 Trovare l algoritmo che permetta di calcolare lo sconto del 20% sul prezzo di un articolo letto in input. Problema6: Trovare un algoritmo che permetta di effettuare lo scambio dei valori di due variabili intere x e y lette in input e di scrivere a video i nuovi valori assunti da esse. X Y Capiamo il problema: Cerchiamo di visualizzare il problema prima di risolverlo. Esempio1: Fissato il vincolo che in una mano ci può stare solo 1 penna alla volta, se ho una penna rossa nella mano sinistra e una penna nera nella mano destra per scambiarle come faccio? Uso un tavolo di appoggio per scambiarle, quindi seguo il percorso seguente: - sposto la penna rossa dalla mano sinistra sul tavolo; - nella mano sinistra rimasta vuota sposto la penna nera - nella mano destra rimasta vuota sposto la penna rossa prendendola dal tavolo. 11

12 Esempio2: Supponiamo che X = 5 e che Y = 10 come faccio a scambiarne i valori? 1) se faccio X Y; Y X ottengo che X = Y = 10 e quindi non raggiungo il risultato voluto. 2) se faccio Y X; X Y ottengo che X = Y = 5 e quindi non raggiungo il risultato voluto. quindi, per effettuare lo scambio devo usare un appoggio anche qui. Tale appoggio si chiama variabile di appoggio e noi per comodità la chiameremo TEMP 24 che dovendo contenere un valore di X e/o Y sarà anch essa di tipo intero. Quale è la sequenza di azioni che ci permettono di risolvere il problema? Leggo x; 2. Leggo y; 3. Sposto il valore di x in temp; 4. Sposto il valore di y in x; 5. Sposto il valore di temp in y ; 6. Scrivo x; 7. Scrivo y I dati di ingresso sono: X e Y I dati di uscita sono: X e Y Le variabili sono: X, Y e TEMP X Y TEMP Problema7 26 Scrivere un algoritmo che accetti in input quattro variabili A, B, C e D di tipo intero, ruoti il loro valore di uno step in senso orario e scriva in output il loro valore modificato. 27 Capiamo il problema: 24 La definiamo TEMP perché il suo valore è temporaneo e perché è una variabile ne di input e ne di output. 25 Nota al prof.: In tal caso essendo il problema da risolvere abbastanza articolato e essendo che gli allievi, a questo punto della trattazione, ancora non sono padroni dei simboli del diagramma a blocchi conviene separare la difficoltà del disegno del diagramma a blocchi dalla difficoltà della logica. Quindi, in tale esercizio è giusto puntare l attenzione prima sulla logica trovando la soluzione del problema come descrizione informale delle azioni ordinate da eseguire. 26 Nota al prof.: poiché tale problema usa di nuovo la variabile temp già spiegata, anziché spiegarlo alla lavagna cosicché tutti copiano, conviene organizzare gli allievi per gruppi di lavoro, chiedere a ciascun gruppo di produrre l algoritmo su unico foglio bianco, assegnare un tempo max dopo il quale dovranno presentarlo al restante della classe. 27 Nota al prof.: al gruppo che risolve subito il problema, puoi assegnare il calcolo dell analogo algoritmo che anziché ruotare di uno step in senso orario, ruota di due step in senso orario. Esso si può risolvere in due modi: applicando lo stesso algoritmo della rotazione di uno step due volte di seguito (modo più lungo) o osservando la fig. denominata prima notare che basta scambiare il valore della variabile A con C e il valore della variabile B con D (modo più breve) 12

13 prima rotazione di uno step in senso orario dopo I dati di ingresso sono: A, B, C, e D I dati di uscita sono: A, B, C e D Le variabili sono: A, B, C, D e TEMP A B C D TEMP Per capire bene l algoritmo fare il test con e poi senza l uso della variabile TEMP La struttura di selezione La struttura di selezione permette di impostare nell algoritmo percorsi o rami diversi in base a condizioni che possono essere o meno verificate. Un es, tratto dalla vita di tutti i giorni, potrebbe essere: se l evento atmosferico pioverà si verificherà allora prenderò l autobus altrimenti se esso non si verificherà farò una passeggiata. La struttura di selezione, nel metodo del diagramma a blocchi, si rappresenta cosi: Essa è detta, più precisamente, struttura di selezione a due vie in quanto presenta solo i due percorsi vero e falso detti anche allora e altrimenti, V e F, Si e NO, 1 e 0, Acceso e Spento, ecc. Casi particolari della struttura di selezione 1) Si parla di struttura di selezione ad una via, quando il percorso falso non è presente. Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: 2) Si parla di struttura di selezione a più vie, quando oltre ai percorsi vero e falso ce ne sono altri. Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: 13

14 3) Si parla di struttura di selezione annidata, quando in almeno uno dei due percorsi vero o falso è presente un qualsiasi altro tipo di struttura di selezione. Un es. di struttura di selezione annidata, nel metodo del diagramma a blocchi, si rappresenta così: All interno di una s. di selezione ad una via c è una s. di selezione a due vie 4) Si parla di struttura di selezione in cascata, quando dopo la chiusura di una struttura di selezione ci sono in cascata altre strutture di selezione ad una via, a due vie, a più vie o annidate. Esempi con la struttura di selezione (a due vie) Problema8: Descrivere un algoritmo che calcoli la media di 3 voti A, B e C di informatica letti in input. Se la media è maggiore o uguale di 6 stampare a video il messaggio hai la sufficienza in informatica Esso è solo lievemente diverso dal problema4 su visto e perciò lo lascio come esercizio. Problema9: Descrivere un algoritmo che permetta di calcolare e di scrivere in output il maggiore tra due numeri interi N1 e N2 letti dall utente. Capiamo il problema: I dati di ingresso sono: N1 e N2 I dato di uscita è il maggiore. Le variabili sono: N1 e N2 e MAX N2 N1 MAX Problema10: Descrivere un algoritmo che permetta di calcolare e di scrivere in output il minore tra due numeri interi N1 e N2 letti dall utente. 14

15 Esso è solo lievemente diverso dal problema9 su visto e perciò lo lascio come esercizio. Problema11 Letti in input due numeri interi N1e N2, scriverlo in output i due numeri ordinati in ordine crescente (cioè dal più piccolo al più grande) La logica proposizionale di Boole 28 Le operazioni che un computer esegue non sono unicamente di tipo aritmetico. Nella CPU del computer sappiamo che c è l ALU, una unità che permette di eseguire operazioni sia aritmetiche: somma, differenza, divisione e prodotto che operazioni logiche: congiunzione, disgiunzione e negazione. In programmazione le operazioni logiche sono applicate alle cosiddette proposizioni Una proposizione p è una frase composta per lo meno da soggetto e predicato che può assumere solo due stati possibili: vero o falso. Esempi di proposizioni e non 1. Londra è la capitale d Italia è una proposizione in quanto ha valore decisamente falso. 2 4 è un numero pari una proposizione in quanto ha valore decisamente vero 3. Oggi splende il sole è una proposizione in quanto in quanto ha valore vero se il effettivamente splende e il valore falso in caso contrario. 4. Prendimi il libro! Oppure Che ora sono? non sono proposizioni in quanto non è possibile stabilire i rispettivi valori (vero o falso) di verità. Le proposizioni per i quali si può immediatamente affermare se sono veri o falsi prendono il nome di proposizioni semplici o atomici. Una combinazione di proposizioni legati da particolari operatori logici detti connettivi o operatori logici prende il nome di proposizione composta. Esempi di proposizioni composti 1. Io ascolto un cd e mangio un panino è un enunciato composto in quanto è formato dalle proposizioni semplici: io ascolto un cd e mangio un panino legati dall operatore logico e. 2. Stasera studierò o andrò al cinema è un enunciato composto in quanto è formato dai proposizioni semplici: Stasera studierò e Andrò al cinema legati dall operatore logico o. Il valori di verità: vero o falso dei due es. di proposizioni composte precedenti sarà definito dalla valutazione delle proposizioni semplici e dall operatore logico che li congiunge. 28 Gorge Boole ( ) è stato un matematico e logico inglese che ha posto le basi per la moderna logica matematica utilizzata oggi anche nel dialogo con il computer (Minerva, vol. 1, pag. 103) 15

16 Gli operatori logici che useremo sono: - AND (che significa congiunzione) - OR (che significa disgiunzione) - NOT (che significa negazione) Per ognuno di tali operatori esiste una tabella detta tavola della verità Tavola di verità dell operatore logico AND Siano p e q due proposizioni semplici, il valore di verità di p AND q è dato dalla seguente tabella: p Q p AND q falso falso falso falso vero falso vero falso falso vero vero vero La tabella mostra che solo se entrambe le proposizioni semplici p e q sono vere, la proposizione composta p AND q è vera. 29 Ad es. solo se le proposizioni p = io ascolto un cd e q = mangio un panino sono vere, la proposizione composta p AND q = io ascolto un cd e mangio un panino è vera. Tavola di verità dell operatore logico OR Siano p e q due proposizioni semplici, il valore di verità di p OR q è dato dalla seguente tabella: p Q p OR q falso falso falso falso vero vero vero falso vero vero vero vero La tabella mostra che solo se entrambe le proposizioni semplici p e q sono false, la proposizione composta p OR q è falsa. 30 Ad es. solo se le proposizioni p = io ascolto un cd e q = mangio un panino sono false, la proposizione composta p OR q = io ascolto un cd o mangio un panino è falsa. Tavola di verità dell operatore logico NOT Sia p una proposizione semplice, il valore di verità di NOT p è dato dalla seguente tabella: p falso vero NOT p vero falso Ad es. data la proposizione p = Io faccio sport, la proposizione negata è NOT p = Io non faccio sport Gli operatori logici: AND, OR e NOT si useranno nelle condizioni composte presenti nelle strutture di selezione e nei cicli a condizione iniziale e a condizione finale (vedi in seguito). Tre esempi con la struttura di selezione in cascata Problema12: Trovare un algoritmo che permetta di calcolare e di scrivere in output il maggiore 29 Questa osservazione serve a ricordarsi per esclusione gli altri tre casi della colonna p AND q. 30 Questa osservazione serve a ricordarsi per esclusione gli altri tre casi della colonna p AND q. 16

17 di tre numeri interi N1, N2 e N2 letti dall utente. 31 Capiamo il problema: - Che significa dire che ad es. N1 è il maggiore? Significa dire che N1>N2 e che N1>N3 - Quali sono i casi possibili? Supponendo che i numeri letti N1, N2 e N3 siano rispettivamente 1, 2 e 3 i casi possibili sono? N1 N2 N3 1) caso: il maggiore è N1 vuol dire che N1 > N2 e che N1 > N3 2) caso: il maggiore è N2 vuol dire che N2 > N1 e che N2 > N3 3) caso: il maggiore è N3 vuol dire che N3 > N1 e che N3 > N2 - Visto che per ognuno dei tre casi analizzati dobbiamo considerare due condizioni semplici ovvero una condizione composta sicuramente capiamo che nei rombi che confideremo ci saranno degli operatori logici AND. Per tale problema ci sono diversi algoritmi. Il 1 Algoritmo del Problema 12 è: Osservazione: Tale algoritmo in tutti e tre i casi per determinare il maggiore Max effettua 6 confronti. Ci sono algoritmi migliori? 2 Algoritmo del Problema12 31 Nota al prof.: agli studenti professionali, se non fai per semplicità il paragrafo sulla logica preposizionale di Boole, prima di scrivere alla lavagna l algoritmo detta la seguente regola: quando in un rombo ci sono due condizioni semplici collegate dalla congiunzione e, la condizione totale composta è vera solo se entrambe le condizioni semplici sono vere. In tutti gli altri casi la condizione totale composta è falsa. Tale regola si applicherà nell algoritmo seguente scrivendo, altresì, all interno dei rombi la congiunzione e ed non AND come mostra l algoritmo. 17

18 Osservazione: Tale algoritmo in tutti e tre i casi per determinare il maggiore Max effettua 2 confronti. La variabile conteggio Una variabile conteggio è un contatore che viene inizializzato al valore zero 32 incrementato di una unità ogni qual volta si verifica una certa condizione. e poi viene Problema13: Trovare un algoritmo che permetta di calcolare quanti numeri positivi sono presenti tra tre numeri interi N1, N2 e N3 letti dall utente. Scrivere in output la quantità dei numeri positivi calcolata. 33 Osservazione Un esempio, quindi, di variabile conteggio è Cont, che dopo essere stata inizializzata a zero conta tra i numeri letti dall utente quanti sono quelli positivi. 32 Nota al Prof.: per far capire il perché la variabile conteggio viene inizializzata a zero, dire che essa è simile al contatore del contachilometri dell automobile o al contasecondi del cronometro di un orologio: tutti partono da zero. In seguito, però, ci saranno anche variabili a conteggio che saranno inizializzata ad un valore diverso come ad es. la variabile indice ciclo (ad 1, a 2) ecc. 33 I casi significativi di test sono dei tre numeri: tutti e tre positivi, tutti e tre negativi, alcuni positivi e alcuni negativi. 18

19 Problema14: Trovare un algoritmo che calcoli la somma di tre numeri interi negativi N1, N2 e N3 letti dall utente. Scrivere in output la somma calcolata. Problema15: Trovare un algoritmo che permetta di calcolare quanti numeri pari 34 sono presenti tra tre numeri interi A, B e C letti dall utente. Scrivere in output la quantità dei numeri pari calcolata. Capiamo il problema: 1) Osservazione Analizzando le divisioni seguenti: fig si nota che i numeri pari 4 e 6 se divisi per due forniscono resto pari a 0, mentre i numeri dispari 1 e 3 se divisi per due forniscono resto pari a 0. Questa è una regola generale valida per qualunque intero n. Pertanto, possiamo asserire che, grazie alla 1) osservazione, il problema del calcolo dei numeri pari è stato ricondotto al problema del calcolo del resto e alla verifica che tale resto è = 0. 2) Osservazione Per conoscere il resto dobbiamo trovare una formula. Ebbene, la formula cercata si ricava guardando una delle divisioni precedenti. Ad es. guardando la divisione di fig. 1 ricaviamo che il resto 1 = 1 2*0. Questa è regola generale valida per qualunque intero n. Pertanto, possiamo asserire che in generale: (1) il resto = numero 2* quoziente ove quoziente = numero / 2 ( parte intera del quoziente) Nota al Prof.: conviene presentare agli allievi il calcolo dei numeri pari come mostrato nell algoritmo ovvero usando le variabili Q e poi R e non usando direttamente la funzione MOD del TurboPascal e del VisualBasic. Tale funzione sarà introdotta più avanti quando si dovrà codificare l algoritmo in programma: basterà sostituire alla coppia di istruzioni relative al calcolo del quoziente e del resto per il numero A, B e C rispettivamente l istruzione R A MOD 2, R B MOD 2 e R C MOD Nota al Prof.: Per giustificare ai ragazzi l uso del simbolo simile al simbolo del valore assoluto usato in matematica dire: in matematica il simbolo rappresenta la parte positiva di un n.ro; in informatica rappresenta la sua parte intera. 19

20 Calcolando a mente le divisioni precedenti abbiamo visto che il quoziente è sempre un numero intero. Calcolando, invece, con la calcolatrice le stesse divisioni, ci accorgiamo che se il numero è pari il quoziente continua ad essere un numero intero mentre se il numero è dispari il quoziente è un numero frazionario, cioè un numero con parte intera e parte decimale. Poiché a noi nella formula (1) per il calcolo del resto ci interessa solo la parte intera del quoziente in tal caso tronchiamo la parte decimale del quoziente ovvero ci prendiamo solo la sua parte intera. Trovata la formula che ci permette di calcolare il resto abbiamo trovata la soluzione al nostro problema, quindi, l algoritmo è: Algoritmi per casa - Trovare un algoritmo che permetta di calcolare la somma dei soli numeri positivi in una sequenza di tre numeri. Scrivere in output la somma calcolata. - Trovare un algoritmo che permetta di calcolare la somma dei soli dispari negativi in una sequenza di tre numeri. Scrivere in output la somma calcolata. - Trovare un algoritmo che permetta di calcolare quanti sono i pari e quanti sono i positivi in una sequenza di tre numeri. Scrivere in output il numero dei pari e il numero dei positivi trovati. Tre esempi con la struttura di selezione innestata 3 Algoritmo Problema12 20

21 Osservazione: Tale algoritmo in tutti e tre i casi per determinare il maggiore Max effettua 2 confronti. La sua complessità computazionale è la stessa dell algoritmo 2 del problema12 su visto. 2. Poiché dopo la chiusura della prima struttura di selezione ci sono altre strutture di selezione tale algoritmo è un es. d uso di struttura di selezione annidata. Problema16 Trovare un algoritmo che risolvi il problema del calcolo delle radici x 1 e x 2 di un equazione di 2 grado ax 2 +bx+c = 0 con a diverso da zero (altrimenti l equazione diventa di primo grado). Capiamo il problema: I dati di ingresso sono: a, b e c; I dati di uscita sono x 1 e x 2 ; delta = b 2 b ± delta - 4ac e x 1,2 = 2a Dalla matematica sappiamo che per calcolare le radici di un equazione di 2 grado bisogna studiare il segno del discriminante delta 36 e analizzare tutti e tre i casi: < 0, = 0 e > 0 Problema17 Letta una temperatura, si vuole classificarla scrivendo in output un messaggio secondo il seguente schema: 36 Se delta < 0 non si hanno radici reali (ma due radici complesse e coniugate); se delta = 0 si hanno due radici reali e coincidenti, se delta > 0 si hanno due radici reali e distinte. 21

22 L algoritmo è: Due es. di struttura di selezione a più vie Notare l assenza dopo ogni istruzione eccetto l ultima che chiude il costrutto If - Then - Else Problema18 Trovare un algoritmo che legga una sequenza di caratteri minuscoli chiusa dal carattere *, conti e scriva a video quante vocali a, quante vocali e, quante vocali i, quante vocali o e quante vocali u sono presenti nella sequenza letta. Le variabili da usare sono: car: contenente il carattere corrente letto di tipo carattere ca, ce, ci, co e cu: le cinque variabili contatore di vocali di tipo intero. I concetti di codice, codifica e decodifica Gli elaboratori operano al loro interno su dati binari ovvero scritti usando l alfabeto {0,1}. L utente opera su dati alfanumerici ovvero scritti usando l alfabeto { , mamma, lunedì, 0, 1, 9, %, $, +, -,,, ecc }. Affinché ci sia una continua conversazione tra gli elaboratori ed l utente è necessaria che ci sia una associazione tra l insieme dei dati binari e l insieme dei dati alfanumerici e viceversa come mostra la figura: Insieme dei dati binari Insieme dei dati alfanumerici 22

23 Il codice è l associazione tra l insieme dei dati binari interni e l insieme dei dati alfanumerici esterni e viceversa. La codifica è la traduzione dall alfabeto esterno alfanumerico nell alfabeto interno binario La decodifica è la traduzione dall alfabeto interno binario all alfabeto esterno alfanumerico Il codice ASCII Uno dei codici più diffusi e usati dagli elaboratori è il codice ASCII acronimo di American Standard Code for Information Interchange che significa codice americano standard usato per lo scambio di informazioni tra il computer e il mondo esterno. Esso è un codice alfanumerico a 7 bit 37. Ciò significa che permette di codificare (rappresentare in binario) 2 7 = 128 simboli alfanumerici diversi con combinazioni binarie. I 128 = simboli alfanumerici sono così suddivisi: - i primi 32 simboli sono caratteri di controllo non stampabili come ad es. il comando per andare a capo, il comando pr scendere o salire di una linea o di una pagina, il comando per dare uno spazio, ecc. - i successivi 16 simboli sono i segni di interpunzione seguenti:!,,, (, ), la virgola, il punto e lo spazio, i simboli speciali: #, %, $, &, e i simboli delle 4 operazioni: +, -, *, /. - i successivi 80 simboli sono i simboli alfanumerici seguenti: numerali (0,1,,9), le 26 lettere minuscole e le 26 lettere maiuscole dell alfabeto, oltre ad altri caratteri:?, <, >, =, [, ], ~, {, }, ecc. I suddetti 80 simboli alfanumerici, oltre ad essere codificati nel codice ASCII in binario, sono codificati anche in decimale nel modo seguente: 38 - i numeri (0,1,,9) sono tradotti in decimale con i numeri che vanno da 48 (0) a 57 (9); - le 26 lettere maiuscole (A..Z) sono tradotti in decimale con i numeri che vanno da 65 (A) a 90 (Z); - le 26 lettere minuscole (a..z) sono tradotti in decimale con i numeri che vanno da 97 (a) a 122 (z) 39 Sapendo che tra i numeri sia in binario che in decimale è possibile stabilire una relazione d ordine, cioè stabilire chi è più piccolo e chi è più grande, grazie ai simboli: <,, > e possiamo affermare che è possibile stabilire una relazione d ordine anche tra gli 80 simboli alfanumerici. Per tal motivo possiamo dire che ad es. - la condizione a < b fornisce a come minore - la condizione a < A fornisce A come minore - 9 < a fornisce 9 come minore La tabella ASCII I 7 bit del codice ASCII sono suddivisi logicamente in 7 campi rispettivamente di 3 e 4 bit. 37 Oltre al codice ASCII a 7 bit esiste un codice ASCII a 8 bit detto esteso. Esso coincide con il codice ASCII a 7 bit a patto di forzare l ottavo bit a zero 38 Nell editor Blocco note di Windows è possibile inserire un carattere non presente nella tastiera attraverso la pressione contemporanea dei tasti Alt + il numero decimale corrispondente al carattere. Ad es. per inserire nell editor Blocco note la parentesi graffa aperta { basta digitare Alt Ciò può essere confermato dal computer usando la combinazione dei tasti Alt + numero decimale 23

24 ove i primi tre bit rappresentano categorie di caratteri, mentre gli ultimi quattro servono a rispettare l ordinamento dei caratteri all interno di ogni categoria. Infatti, per ricavare la sequenza binaria corrispondente a ciascun carattere alfanumerico, la tabella 40 ASCII seguente si dovrà leggere cosi: - individuare il carattere alfanumerico di cui si vuole determinare la sequenza binaria ASCII - annotare prima i 3 bit sulla riga che invidiano la categoria e poi il nibble (semibyte) sulla colonna. Tabella ASCII: rappresenta le corrispondenze tra sequenze binarie e simboli alfanumerici Esempio 1: da carattere alfanumerico codice ASCII (CODIFICA) Supponiamo che l utente inserisca, tramite tastiera la parola computer. Come essi saranno codificati in ASCII, all interno del computer? Sapendo che: c o m p u t e r la parola computer è codificata in ASCII così: Si usa una tabella per rappresentare il codice ASCII perché la tabella permette di rappresentare graficamente le corrispondenze tra le sequenze binarie dell alfabeto interno con i simboli dell alfabeto alfanumerico esterno. 24

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare

Dettagli

Matematica in laboratorio

Matematica in laboratorio Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli

Appunti di Sistemi Elettronici

Appunti di Sistemi Elettronici Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense di Informatica per l ITG Valadier La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di

Dettagli

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Cenni su algoritmi, diagrammi di flusso, strutture di controllo Cenni su algoritmi, diagrammi di flusso, strutture di controllo Algoritmo Spesso, nel nostro vivere quotidiano, ci troviamo nella necessità di risolvere problemi. La descrizione della successione di operazioni

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI Diagramma di flusso L algoritmo può essere rappresentato in vari modi, grafici o testuali. Uno dei metodi grafici più usati e conosciuti è il cosiddetto diagramma

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Nozione di algoritmo. Gabriella Trucco

Nozione di algoritmo. Gabriella Trucco Nozione di algoritmo Gabriella Trucco Programmazione Attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su particolari informazioni (dati), allo scopo di risolvere

Dettagli

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni Linguaggi per COMUNICARE Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni Sintassi e semantica dei linguaggi Un informazione può : Essere

Dettagli

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio Il Concetto Intuitivo di Calcolatore Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini I Problemi e la loro Soluzione Problema: classe

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO SISTEMI DI NUMERAZIONE DECIMALE E BINARIO Il sistema di numerazione decimale (o base dieci) possiede dieci possibili valori (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9) utili a rappresentare i numeri. Le cifre possiedono

Dettagli

Funzionalità di un Algoritmo

Funzionalità di un Algoritmo ALGORITMI Cosa è un algoritmo Un algoritmo è una sequenza di azioni che consente di pervenire alla soluzione di un problema mediante una sequenza finita di operazioni, completamente e univocamente determinate.

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un programma, cioè di una sequenza di istruzioni descritte nel linguaggio interpretabile dal calcolatore

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione 4 LEZIONE: Programmazione su Carta a Quadretti Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10 Minuti Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione SOMMARIO:

Dettagli

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch. Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE Comunicazione importante dalla prossima settimana, la lezione del venerdì si terrà: dalle 15:00 alle 17.15 in aula 311 l orario

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come ragiona il computer. Problemi e algoritmi Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Problema Strategia

Dettagli

Alcune nozioni di base di Logica Matematica

Alcune nozioni di base di Logica Matematica Alcune nozioni di base di Logica Matematica Ad uso del corsi di Programmazione I e II Nicola Galesi Dipartimento di Informatica Sapienza Universitá Roma November 1, 2007 Questa é una breve raccolta di

Dettagli

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza vers.3 in lavorazione Docente SAFFI FABIO Contenuti 01.Esercizi generici sul diagramma di flusso - flow chart... 2

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Errori più comuni. nelle prove scritte

Errori più comuni. nelle prove scritte Errori più comuni nelle prove scritte Gli errori più frequenti, e reiterati da chi sostiene diverse prove, sono innanzi tutto meta-errori, cioè errori che non riguardano tanto l applicazione delle tecniche,

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli

Problemi, Algoritmi e Programmi

Problemi, Algoritmi e Programmi MASTER Information Technology Excellence Road (I.T.E.R.) Problemi, Algoritmi e Programmi Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Introduzione

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Algoritmi. Maurizio Palesi. Maurizio Palesi 1 Algoritmi Maurizio Palesi Maurizio Palesi 1 Cos è Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Un algoritmo è un metodo per la soluzione

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

USO DI EXCEL CLASSE PRIMAI

USO DI EXCEL CLASSE PRIMAI USO DI EXCEL CLASSE PRIMAI In queste lezioni impareremo ad usare i fogli di calcolo EXCEL per l elaborazione statistica dei dati, per esempio, di un esperienza di laboratorio. Verrà nel seguito spiegato:

Dettagli

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. PROGETTO SeT Il ciclo dell informazione Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. Scuola media Istituto comprensivo di Fagagna (Udine) Insegnanti referenti: Guerra Annalja, Gianquinto

Dettagli

Alessandro Pellegrini

Alessandro Pellegrini Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione

Dettagli

Logica e codifica binaria dell informazione

Logica e codifica binaria dell informazione Politecnico di Milano Corsi di Laurea in Ingegneria Matematica e Ingegneria Fisica Dipartimento di Elettronica ed Informazione Logica e codifica binaria dell informazione Anno Accademico 2002 2003 L. Muttoni

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE LE SUCCESSIONI 1. COS E UNA SUCCESSIONE La sequenza costituisce un esempio di SUCCESSIONE. Ecco un altro esempio di successione: Una successione è dunque una sequenza infinita di numeri reali (ma potrebbe

Dettagli

Calcolatori: Algebra Booleana e Reti Logiche

Calcolatori: Algebra Booleana e Reti Logiche Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato

Dettagli

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 In questo documento vengono illustrate brevemente le operazioni aritmetiche salienti e quelle logiche ad esse strettamente collegate.

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Come costruire una distribuzione di frequenze per caratteri quantitativi continui

Come costruire una distribuzione di frequenze per caratteri quantitativi continui Come costruire una distribuzione di frequenze per caratteri quantitativi continui Consideriamo i dati contenuti nel primo foglio di lavoro (quello denominato dati) del file esempio2.xls. I dati si riferiscono

Dettagli

I PROBLEMI ALGEBRICI

I PROBLEMI ALGEBRICI I PROBLEMI ALGEBRICI La risoluzione di problemi è una delle attività fondamentali della matematica. Una grande quantità di problemi è risolubile mediante un modello algebrico costituito da equazioni e

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA Tutti gli anni, affrontando l argomento della divisibilità, trovavo utile far lavorare gli alunni sul Crivello di Eratostene. Presentavo ai ragazzi una

Dettagli

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa. Algebra booleana Nel lavoro di programmazione capita spesso di dover ricorrere ai principi della logica degli enunciati e occorre conoscere i concetti di base dell algebra delle proposizioni. L algebra

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X. Algebra Di Boole L algebra di Boole è un ramo della matematica basato sul calcolo logico a due valori di verità (vero, falso). Con alcune leggi particolari consente di operare su proposizioni allo stesso

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

REVISIONE-CORREZIONE. La Revisione è un momento molto importante nel processo della produzione scritta.

REVISIONE-CORREZIONE. La Revisione è un momento molto importante nel processo della produzione scritta. REVISIONE-CORREZIONE La Revisione è un momento molto importante nel processo della produzione scritta. Il termine viene dato ai ragazzi verso la quarta, ma in realtà dovrebbe essere considerata parte integrante

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

Interesse, sconto, ratei e risconti

Interesse, sconto, ratei e risconti TXT HTM PDF pdf P1 P2 P3 P4 293 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 293 129.1.1 Esercizio per il calcolo dell

Dettagli

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione

Dettagli