Il linguaggio Pascal. Piero Gallo Fabio Salerno

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il linguaggio Pascal. Piero Gallo Fabio Salerno"

Transcript

1 Il linguaggio Pasal Piero Gallo Fabio Salerno

2 Introduzione alla programmazione in Pasal In ogni momento della nostra vita siamo hiamati a risolvere dei problemi. A volte operiamo senza riflettere, spinti dalla onsuetudine e, omunque, senza badare al proedimento appliato. Quando però i problemi diventano più omplessi o si presenta no per la prima volta, l approio è del tutto diverso. In questi asi, infatti, si deve: analizzare il problema; onsiderare solo le informazioni utili per la soluzione del problema (proesso di astrazione); individuare una sequenza di passi he i permette di ottenere il risultato. Si ostruise ioè un algoritmo. Se vogliamo automatizzare la soluzione del problema, ioè delegarla a un omputer, dobbiamo fare qualos altro o l algoritmo è suffiiente? La risposta è semplie: trovato l algoritmo oorre rappresentarlo in un sistema formale he onsenta di omuniarlo al omputer. Questo sistema formale è il linguaggio di pro grammazione, he si basa su un modello detto paradigma di programmazione. L attività di traduzione dell algoritmo nel linguaggio adottato è detta odifia o imple mentazione, termine molto usato in informatia on il preiso signifiato di onretiz zazione di un astrazione. L algoritmo osì tradotto prende il nome di programma. La disiplina he si oupa dell automatizzazione dei pro essi risolutivi dei problemi prende il nome di programmazione. Programmare è, quindi, un attività reativa e appassionante he rihiede onosenze te nihe e metodologihe. Il termine paradigma, presente anhe in ampo linguistio, è utilizzato dalla filosofia della sienza on il suo originario signifiato di modello (dal greo parádeigma ). Pertanto, on paradigma di programmazione i riferiamo a un modello in base al quale il programmatore deve srivere il programma. In questo orso faremo riferimento al paradigma di programmazione imperativo. 2 IL LINGUAGGIO PASCAL

3 Introduzione alla programmazione in Pasal Il paradigma imperativo è fondato sul onetto di imperio (omando), vale a dire su un e spliita rihiesta inviata all eseutore. La rihiesta ha ome sopo quello di produrre un ambiamento di stato degli oggetti presenti nell ambiente in ui l eseutore dovrà agire (ad esempio, l istruzione A B+4 produe un ambiamento di stato dell area di memoria on tenente la variabile A, nel senso he il preedente valore assunto da questa variabile viene ora sostituito on il valore prodotto dalla somma della variabile B on 4). In tale ontesto, il programmatore rappresenta il proesso di alolo ome una sequenza di azioni. La ostru zione della soluzione si basa su tre onetti ardine: la memoria, le azioni e i ili. Il linguaggio Pasal Il linguaggio Pasal fu elaborato intorno alla fine degli anni 60 da Niklans Wirth, doen te presso l Università di Zurigo. Si diffuse dapprima negli ambienti sientifii di riera e, nell aro di poo tempo, onobbe un ben più vasto utilizzo non solo negli ambienti sien tifii ma anhe in quelli gestionali. Attualmente, il linguaggio Pasal è utilizzato prettamente per sopi didattii, poihé affian a alla sempliità sintattia un rigido impianto strutturale he onsente a hi si avviina al mondo della programmazione di appliare orrettamente i anoni della programmazione strutturata. Pasal è un linguaggio di programmazione ompilato. Ciò signifia he le istruzioni di un programma Pasal devono essere tradotte in istruzioni mahina, ioè istruzioni ompren sibili al omputer, prima di poter essere eseguite. Uno speiale software detto ompila tore si oupa di questa traduzione. Il file he ontiene le istruzioni Pasal viene hiamato file sorgente, mentre il file he ontiene le istruzioni mahina viene hiamato file eseguibile. IL LINGUAGGIO PASCAL 3

4 Linguaggio e ambiente Oorre fare attenzione alla differenza tra linguaggio di programmazione e ambiente di sviluppo. Gli ambienti di sviluppo aiutano il programmatore a sviluppare programmi sritti in un linguaggio di programmazione. In partiolare, l ambiente Dev-Pasal, l ambiente he uti lizzeremo per programmare in Pasal, ontiene quanto serve al programmatore per rea re, provare ed eseguire un programma. Per un linguaggio di programmazione possono esistere molti ambienti, anhe molto diver-si tra loro. Quindi: Pasal è un linguaggio di programmazione; Dev-Pasal è una ambiente di sviluppo per il linguaggio Pasal. Come prourarsi il Dev-Pasal? Dev-Pasal è un ambiente he onsente di reare, provare ed eseguire programmi Pasal. Lo abbia mo selto perhé è ompleto, utilizzabile on Windows e, soprattutto, è gratuito. L ambiente è un luogo opportunamente attrezzato per svolgere determinate attività. Ad esempio, Windows è un ambiente he onsente di opiare, spostare file e artelle, di gestire il sistema. Dev-Pasal è un ambiente he permette di programmare. Installiamo e onfiguriamo Dev-Pasal Dev-Pasal è disponibile su Internet, basta erarlo on un qualsiasi motore di riera. Per installarlo sul omputer, è suffiiente seguire questa proedura: 1. sariare da Internet il file di installazione hiamato Devpas192.exe; 2. fare doppio li su questo file per avviare il programma di installazione; 3. seguire le indiazioni della proedura di installazione inserendo i dati he vengono rihiesti; 4. a fine installazione verrà inserito il file devpas.exe. Per avviare il programma, fare doppio li su questo file, oppure reare un ollegamento sul desk top a tale file eseguibile. Primi passi on l ambiente Dev-Pasal La prima volta he si avvia Dev-Pasal, oorre segliere il tipo di grafia per le ione visualizzate nella finestra prinipale dell ambiente: ione di default; ione in stile Gnome. Non bisogna preouparsi se la selta potrà apparire prematura o non indovinata: sarà sempre possibile ambiare stile suessivamente. Segliere, ad esempio, lo stile di default e onfermare. Compare la finestra prinipale dell ambiente, mostrata nella figura a pagina seguente. Dalla figura si evine he l ambiente si suddivide in: un menu prinipale he rahiude tutte le funzioni dell ambiente; un area delle ione omposta da più toolbar; un area per l output del ompilatore (ompiler output); in quest area il ompilatore mostra i suoi messaggi; un area per la gestione dei progetti (projet manager); un area di lavoro per la srittura dei programmi (work area). È l area utilizzata per sri vere e orreggere i programmi. 4 IL LINGUAGGIO PASCAL

5 Linguaggio e ambiente Configuriamo l ambiente Le impostazioni iniziali dell ambiente onsentono la visualizzazione di tutte le aree e delle ione. Negli esempi he seguiranno, però, utilizzeremo solo alune aree e solo alune ione. È quindi opportuno modifiare la onfigurazione iniziale in modo da rendere visi bile solo il neessario. Ad esempio, è possibile nasondere l area Projet Manager in quanto non onsidereremo la gestione dei progetti. Per fare questo: 1. utilizzare la voe View del menu prinipale; 2. deselezionare la asella di ontrollo Projet Manager, he è attualmente spuntata (sele zionata), ome si vede nella figura: l area Projet Manager somparirà dalla fine stra prinipale di Dev-Pasal. È anhe possibile nasondere alune ione. Per farlo: 1. aprire il menu View; 2. aprire il sottomenu Toolbars; 3. deselezionare le aselle di ontrollo Projet, Options and help, Speials. Il risultato finale è l ambiente più snello mostrato nella figura, dove ompaiono solo il menu prinipale, alune ione nella toolbar e l area di lavoro. IL LINGUAGGIO PASCAL 5

6 Programmazione strutturata e doumentazione La programmazione strutturata e il teorema di Bohm-Jaopini Con programmazione strutturata si intende l insieme delle fasi di progettazione, realizzazione e ollaudo di un programma. In essa i sono parti he dipendono l una dall altra, seondo un modello organizzativo definito. In termini meno formali potremo definirla ome un metodo di programmazione, ostituito da un insieme di pohe regole, he rende più faile la stesura, la lettura e la manuten zione dei programmi. Il punto prinipale della definizione è l organizzazione di un modello, ioè la selta di un insieme di regole, o meglio, di direttive da seguire. In pratia, si tratta di dare una struttura al nostro programma. La programmazione strut turata onsidera l algoritmo ome un insieme di blohi di istruzioni, ognuno fornito di un solo ingresso e di una sola usita. Ciasun bloo è isolato dagli altri, nel senso he non è possibile, ad esempio, saltare dall interno di uno all interno di un altro. A questo proposito, due matematii italiani, Corrado Bohm e Giuseppe Jaopini, nel 1966 enuniarono il seguente teorema: Un algoritmo sritto seondo le regole della programmazione a salti, per quanto omplesso, può sempre essere trasformato in un algoritmo a esso equivalen te he utilizzi eslusivamente tre strutture di ontrollo (ostrutti sintattii) fondamentali: sequenza, selezione e iterazione. Chiariamo subito due onetti utilizzati nella definizione: Due algoritmi si diono equivalenti se, a partire da uguali situazioni iniziali, pro duono uguali risultati. Un ostrutto sintattio india il modo in ui omporre le istruzioni. La doumentazione del lavoro Per uno studio orretto della programmazione è importantissimo abituarsi a doumenta re ogni fase del lavoro on grafii, tabelle, ommenti, sritti. Constaterai he, program mando, avrai spesso la neessità di tornare indietro per rivedere aluni punti, per orreg gere errori o per sviluppare meglio un problema già risolto. Anhe a distanza di tempo, un lavoro ben doumentato sarà siuramente più semplie da rileggere e da orreggere. Realizzare una buona doumentazione, è una regola fondamentale per uno sviluppo ompleto ed esauriente della soluzione di un problema. Per questo motivo suggeriamo aluni aorgimenti: realizzare la doumentazione ontemporaneamente alla progettazione e mai sues sivamente; attribuire nomi signifiativi alle variabili, ioè nomi he favorisano la omprensione dello sopo per ui vengono utilizzate. A titolo di esempio, a una variabile he dovrà ontenere il valore più grande di una serie di numeri, non attribuiremo mai il nome X oppure K, bensì preferiremo NumeroMax oppure NumeroMassimo, o semplie mente Max; ommentare in modo semplie le istruzioni, evitando annotazioni superflue. Durante la lettura di un algoritmo, i ommenti alle istruzioni rappresentano la prima e più imme diata doumentazione disponibile. Essi aiutano a omprendere e a giustifiare la presen za di alune istruzioni e a favorire la verifia della orrettezza formale dell algoritmo. 6 IL LINGUAGGIO PASCAL

7 Programmazione strutturata e doumentazione Non tutte le istruzioni hanno bisogno di essere ommentate: in generale saranno trasu rate tutte quelle istruzioni il ui ontenuto è failmente deduibile dal ontesto; aggiornare la doumentazione immediatamente allorquando dovessero essere nees sarie modifihe all algoritmo o al programma. Per ottenere un lavoro ben doumentato, quindi, è onsigliabile proedere affrontando i seguenti passaggi: lettura del testo del problema. È indispensabile leggere attentamente e interpretare orrettamente la traia del problema per poter passare alle fasi suessive; analisi del problema. È una delle fasi più deliate in assoluto. Consiste nell esporre l interpretazione seguente alla lettura del testo del problema e nel mettere in eviden za tutti gli aspetti fondamentali di esso (gli obiettivi da raggiungere e tutti i punti he, in base alla nostra interpretazione, rihiedono un maggiore approfondimento). Durante questa fase oorre individuare on grande attenzione di quali dati di input è neessario servirsi e quali dati di output oorre produrre; analisi dei dati. Consiste nell analizzare i dati individuati durante l analisi del proble ma e nel desriverli dettagliatamente. Per far iò utilizzeremo la tabella delle variabi li he india il nome, il tipo e la desrizione (ioè il signifiato e l utilizzo) di ogni variabile oinvolta nell elaborazione e se è di input, di output o di lavoro. NOME TIPO DESCRIZIONE I/O/L Per ora i limiteremo nei nostri eserizi a definire una variabile di tipo numerio o alfanumerio in base al suo ontenuto, rimandando lo studio dei tipi di dato ad altre parti del omplesso didattio. formalizzazione dell algoritmo. È la fase di dettaglio. Consiste nello sviluppo del-l algoritmo usando la pseudoodifia o un qualsiasi altro metodo di desrizione forma-le onosiuto; test (o trae). A questo punto oorre testare l algoritmo per verifiare se i passi det tagliati risolvono il problema dato; Per far iò i serviremo di un altra tabella, la tavola di traia. Inserendo dati opportunamente selti, seguiremo, passo dopo passo, i valori assunti dalle varia bili. Così ontrolleremo l esattezza delle istruzioni e il raggiungimento dell obiettivo; odifia. L algoritmo osì testato potrà, a questo punto, essere odifiato nel linguag gio di programmazione selto. Se durante questa fase, però, dovessero essere nees sarie delle modifihe, queste andranno riportate prima nelle altre fasi preedentemen te trattate e poi nel programma. ISTRUZIONE VARIABILE 1 VARIABILE 2... VARIABILE N? OUTPUT Istruzione 1 Istruzione Istruzione N IL LINGUAGGIO PASCAL 7

8 Il ostrutto sequenza La sequenza è il più semplie fra i tre ostrutti fondamentali. Si utilizza quando le azioni devono essere eseguite ordinatamente una dopo l altra senza aluna possibilità di selta. B1, B2 e BN possono essere blohi semplii o blohi omposti. Un bloo semplie è, ad esempio, un istruzione di assegnazione, un i struzione di I/O (input/ output) o uno degli altri ostrutti fondamentali. Il bloo omposto, invee, è un insieme di più blohi semplii. Per questa ragione, anhe un intero algoritmo strutturato è in realtà una struttura sequenziale. Esponiamo ora un esempio nel quale le istruzioni sono organizzate seondo una struttura sequenziale. B1 B2... BN Problema: sambiare il ontenuto di due variabili A e B A prima vista la soluzione immediata può sembrare: prendi il ontenuto di B e mettilo in A; prendi il ontenuto di A e mettilo in B. Questa soluzione è però errata, in quanto l eseuzione della prima azione omporta la perdita immediata del ontenuto iniziale della variabile A. Per evitare questo problema, dobbiamo serviri di una terza variabile Temp, nella quale salvare temporaneamente il ontenuto di A. È un po ome se volessimo sambiare il ontenuto di due bottiglie ontenenti una del vino e l altra del latte: non possiamo versa-re il vino direttamente nella bottiglia del latte! Così faendo, otterremmo soltanto un oktail poo gradevole, senza risolvere il problema: per farlo, è neessario utilizzare una terza bottiglia. Nel dettaglio, quindi, le azioni da fare sono le seguenti: 1. prendi il ontenuto di A e mettilo in Temp; 2. prendi il ontenuto di B e mettilo in A; 3. prendi il ontenuto di Temp e mettilo in B. Vediamole grafiamente, riorrendo all analogia on le satole e supponendo he inizial mente A abbia il valore 2, B valga 6 e Temp 0. Inizialmente avremo: 1. prendi il ontenuto di A e mettilo in Temp 2. prendi il ontenuto di B e mettilo in A 8 IL LINGUAGGIO PASCAL

9 Il ostrutto sequenza 3. prendi il ontenuto di Temp e mettilo in B Diamo uno sguardo alla tabella delle variabili. NOME TIPO DESCRIZIONE I/O/L A Numerio Variabile he ontiene il prino valore da sambiare. I B Numerio Variabile he ontiene il seondo valore da sambiare. I Temp Numerio Variabile he onsentirà di effettuare lo sambio. L Siamo pronti per realizzare l algoritmo risolutivo. ALGORITMO Sambio INIZIO SCRIVI( Inserisi il primo numero ) LEGGI(A) SCRIVI( Inserisi il seondo numero ) LEGGI(B) Temp A A B B Temp SCRIVI(A, B) FINE Per onludere ompiliamo la tavola di traia in modo da testare l algoritmo e vedere se fornise i risultati attesi. ISTRUZIONE A B Temp OUTPUT LEGGI(A) 2 LEGGI(B) 6 Temp A 2 A B 6 B Temp 2 SCRIVI(A, B) 6 2 L esito è soddisfaente: il risultato fornito dall algoritmo è proprio quello he i aspetta vamo! IL LINGUAGGIO PASCAL 9

10 Sriviamo il primo programma Per srivere un nuovo programma, fare li sull iona New soure file nella toolbar, oppure aprire il menu File e segliere la voe New soure file. Compare una finestra intitolata Untitled1, ioè senza titolo. Questa è una finestra di editing del file sorgente, he onsente di effettuare le modifihe ome on un normale programma di videosrittura. Si può, quindi, tagliare, inollare, opiare, er are e, alla fine delle modifihe, salvare e usire. Come è possibile notare dalla figura, Dev-Pasal inserise, ini zialmente, la struttura minima di un semplie programma Pasal. La struttura di programma Pasal he utilizzeremo, però, è anora più semplie di quella proposta. La struttura di base per il più semplie algoritmo he è possibile srivere in pseudolin guaggio è: ALGORITMO NomeAlgoritmo INIZIO FINE La struttura di base del orrispondente programma Pasal è: PROGRAM NomeProgramma; BEGIN END. Sostituiamo, allora, questa struttura di base a quella proposta dall ambiente Dev- Pasal: otteniamo quanto visualiz zato nella figura a pagina seguente. Ogni programma Pasal deve, quindi, ominiare on la parola hiave PRO GRAM, seguita dal nome del program ma e dal punto e virgola. Le parole hiave BEGIN ed END rahiudono le istruzioni del programma. PROGRAM NomeProgramma; BEGIN Istruzioni END. 10 IL LINGUAGGIO PASCAL

11 Sriviamo il primo programma Ora siamo pronti a srivere il primo programma Pasal. Consideriamo l algoritmo ripor tato di seguito, he visualizza la frase: Ciao a tutti. ALGORITMO Primo INIZIO SCRIVI( Ciao a tutti ) FINE PROGRAM Primo; BEGIN WRITE( Ciao a tutti ); END. In questo semplie programma, l unia istruzione rahiusa tra BEGIN ed END è WRITE, he è un istruzione di output e ha la seguente sintassi: WRITE (Frase); dove (Frase) dovrà essere sostituita on una stringa rahiusa tra virgolette. L editor di Dev-Pasal aiuta a srivere il odie. Ad esempio, non appena si srive una parola hiave orretta, l editor la visualizza in neretto. Così, tutte le parole hiave risulta no evidenti e il odie è più leggibile. Una parola hiave è una parola he ha un signifiato e un uso ben definiti e non può essere utilizzata in altro modo. Ad esempio, BEGIN ed END sono parole hiave. In Pasal le istruzioni possono essere sritte indifferentemente in maiusolo o minusolo. Si die he il Pasal non è ase sensitive. Ad esempio, la parola hiave BEGIN può essere sritta BeGin o begin, e osì via, senza alun problema per il ompilatore. Suggeriamo, omunque, di srivere sempre le parole hiave in maiusolo, per onvenzione. Per salvare il file sorgente appena modifiato, fare li sull iona Save urrent file, oppu re, aprire il menu File e segliere la voe Save unit. La voe Save unit as serve, invee, per ambiare nome a un file già salvato in preedenza. Oorre, ora, stabilire il nome da assegnare al file sorgente e la artella he lo onterrà. Questo nome di file dovrà avere estensione.pas (pas sta per pasal) he l ambiente Dev-Pasal propone. Ad esempio, possiamo assegnare il nome Primo.pas e salvare il file nella artella C:\pasal esempi. Il titolo della finestra diverrà quello mostrato nella figura. IL LINGUAGGIO PASCAL 11

12 Compilazione ed eseuzione Compiliamo il primo programma Compare subito una finestra he india il risultato della ompilazione. Come è possibile osservare in figura, il ompilatore segnala: il nome del file sorgente; il numero di errori; la dimensione del file ompilato. Il numero di errori eventualmente individuati dal ompila tore è 0 (ome nell esempio della figura se non sono stati ommessi errori nel digitare le istruzioni, quindi il programma è orretto. Eseguiamo il primo programma Per eseguire il programma appena ompilato, premere il pulsante Exeute nella finestra vista in preedenza. Il ompilatore produe un file eseguibile on lo stesso nome del file sorgente, ma on estensione.exe. Nel nostro aso produrrà Primo.exe. È anhe possibile eseguire un programma ompilato faendo li sull iona Run projet presente nella toolbar, oppure aprendo il menu Exeute e segliendo Run. Il risultato dell eseuzione viene visualizzato in una finestra del prompt di MS-DOS ome quel la mostrata nella figura. In questo esempio, il programma visualizza: Ciao a tutti!. La finestra del prompt di omandi si apre automatiamente per la visualizzazione del risul tato del programma e poi si hiude appena termina l eseuzione. Questo può essere un inonveniente he impedise la lettura. Per evitarlo, inserire l istruzione READLN prima della fine del programma. Si ottiene: PROGRAM Primo; BEGIN WRITE( Ciao a tutti ); READLN; END. Compilare anora ed eseguire il nuovo file ompilato. L istruzione READLN evita he la finestra del prompt di MS-DOS si hiuda immediatamen te dopo l eseuzione del programma, senza he si possa vedere il risultato dell elabora zione. Il programma si ferma in attesa he l utente prema il tasto INVIO, dopodihé la finestra si hiude. Per maggiore hiarezza, invee della sola READLN, è onsigliabile inserire: WRITELN( Premi INVIO per usire ); READLN; in modo he l utente sappia osa fare. È buona norma non dimentiare mai di essere sempre hiari ed espliiti osì, he l utente non abbia mai a trovarsi di fronte a situazio ni ambigue o non hiare. 12 IL LINGUAGGIO PASCAL

13 Compilazione ed eseuzione Analizziamo i messaggi di errore del ompilatore Consideriamo l esempio del primo programma. Supponiamo di aver ommesso un errore durante la srittura delle istruzioni. Ad esempio, di non aver hiuso la parentesi tonda del l istruzione WRITE. Nella finestra he india il risultato della ompilazione è visualizzato il numero totale di errori verifiati: in questo aso 1, ome in figura. premendo il pulsante Show all ompiler results si apre una finestra in ui sono elenati i messaggi di errore del ompilatore in forma dettagliata e ompleta ome mostrato nella figura. Le stesse desrizioni possono essere lette nell area di output del ompilatore. Infatti, ome si può osservare nella figura, ompare il messaggio di errore: 3/27 primo.pas Fatal: Syntax error, ) expeted but ; found Analizziamo il messaggio. Il ompilatore die in sostanza: alla riga 3 (3/27 signifia alla 3a riga di 27) del file Primo.pas ho rilevato un erro re grave ( Fatal ) di sintassi ( Syntax error ). Aspettavo una parentesi hiusa ( ) expeted ) e invee ( but ) ho trovato un punto e virgola ( ; found ) di fine istruzione. Correggiamo l errore tornando all editor e aggiungendo la parentesi manante, riompilia mo e rieseguiamo il programma! Può aadere he ompaiano messaggi relativi a più errori, nonostante ne sia stato ommesso sol-tanto uno. Questo perhé il primo errore ausa gli altri a atena. Oorre ominiare a orreggere il primo, e poi gli altri a seguire. Spesso, quando si orregge il primo gli altri sompaiono da soli. Chiudiamo l ambiente Dev-Pasal Dopo aver eseguito un programma, si può terminare il lavoro e usire dall ambiente Dev-Pasal. Basta utilizzare il pulsante di hiusura della finestra, quello on la X in alto a destra, oppure aprire il menu File e utilizzare la voe Exit Dev-Pasal. Apriamo e modifihiamo un programma già salvato Una volta avviato nuovamente Dev-Pasal, si può aprire un file di un pro gramma preedentemente salvato. Aprire il menu File e utilizzare la voe Open projet or file. Selezionare la artella e il file desiderato. Si apre la finestra dell editor relativa: ora è possibile apportare modifihe, ompilare ed eseguire il programma. IL LINGUAGGIO PASCAL 13

14 Dihiarazione di variabili La dihiarazione delle variabili deve essere fatta in un apposita area, situata tra il nome del programma e la parola hiave BEGIN di inizio programma, detta sezione dihiara tiva. La sezione dihiarativa si distingue dalla sezione eseutiva, he è l area ompresa tra la parola hiave BEGIN di inizio programma e la parola hiave END di fine program ma, e ontiene le istruzioni vere e proprie. Analizziamo il seguente programma Saluta: PROGRAM Saluta; VAR Nome: String; BEGIN WRITE ( Inserisi il tuo nome: ); READLN (Nome); WRITELN ( Ciao, Nome); READLN; END. Sezione dihiarativa Sezione eseutiva Consideriamo, quindi, questo nuovo shema per ogni programma Pasal: PROGRAM NomeProgramma; Dihiarazioni BEGIN Istruzioni END. Sezione dihiarativa Sezione eseutiva La sezione dihiarativa ominia on la parola hiave VAR. Ogni dihiarazione di variabile deve rispettare la sintassi: NomeVariabile : TipoVariabile; Nell esempio del programma Saluta, nella sezione dihiarativa è presente la seguente dihiarazione: VAR Nome: STRING; Attribuire un TIPO a una variabile signifia indiare quali valori può assumere quella variabile e quali operazioni si possono ompiere. La variabile Nome, ad esempio, può assumere ome valore una qualsiasi sequenza di aratteri (ioè una qualsiasi stringa). Si die he il Pasal ha un Controllo forte sui tipi delle variabili. Il ompilatore segnala errore, infatti, quando si tenta di assegnare a una variabile di un erto tipo un valore di tipo diverso. Ad esempio, quando si assegna un valore reale a una variabile di tipo intero. 14 IL LINGUAGGIO PASCAL

15 Dihiarazione di variabili Se due o più variabili sono dello stesso tipo, si possono raggruppare separandole on la virgola: VAR NomeVariabile1, NomeVariabile2 : TipoVariabile; Se X e Y sono due variabili di tipo intero, srivere: VAR X, Y : INTEGER; Infine, è possibile srivere due dihiarazioni sulla stessa riga. VAR NomeVariabile1 : Tipo1; NomeVariabile2 : Tipo2; Se, ad esempio, Z è di tipo reale e W è di tipo arattere, srivere: VAR Z :REAL; W:CHAR; Non è possibile utilizzare, ome nome di una variabile, quello di una parola hiave ome ad esempio BEGIN, END, PROGRAM e osì via. IL LINGUAGGIO PASCAL 15

16 Tipi di dati in Pasal: integer Il tipo Integer rappresenta un sottoinsieme finito dell insieme Z dei numeri interi. I suoi ele menti sono ompresi nell intervallo ( 32768, ). Un dato di tipo integer oupa due byte in memoria, ioè 16 bit. Di questi: 15 sono riservati al valore e uno al segno (0 per il segno positivo, 1 per il segno negativo). Il massimo numero rappresentabile on due byte quindi è segno Operatore he, onvertito in deimale, rappresenta il valore Gli operatori aritmetii assoiati al tipo integer, ossia gli operatori he agisono su ope randi interi e fornisono risultati interi, sono: Esempio + per l addizione = = 3 per la sottrazione = = 37 * per la moltipliazione 2 * 8 = 16 DIV MOD per la divisione intera (non onsidera i deimali). Se viene appliato a numeri interi dello stesso segno fornise risultato positivo, altrimenti negativo. Se il seondo operando è 0 viene segnalato un errore. per il modulo (resto della divisione tra gli operandi indiati). Si applia solo on un seondo operando positivo e fornise sempre risultati positivi. ** per l elevamento a potenza 2 ** 3 = 8 ( 20) DIV ( 3) = 6 ( 5) DIV 2 = 2 4 DIV ( 3) = 1 8 DIV 5 = 1 5 DIV 0 = ERRORE 24 MOD 4 = 0 15 MOD 6 = 3 20 MOD 2 = ERRORE 15 MOD 2 = 7 Sugli operandi interi è possibile appliare anhe i seguenti operatori relazionali he, in questo ontesto, restituisono un risultato booleano (Vero = TRUE e Falso = FALSE): = uguale 10 = 10 5 = 4 <> diverso 10 <>10 12<>42 < minore 5< 4 5<10 <= minore o uguale 2<=12 12<=4 > maggiore 18>14 7>19 >= maggiore o uguale 24>=24 36>=48 (restituise TRUE) (restituise FALSE) (restituise FALSE) (restituise TRUE) (restituise FALSE) (restituise TRUE) (restituise TRUE) (restituise FALSE) (restituise TRUE) (restituise FALSE) (restituise TRUE) (restituise FALSE) 16 IL LINGUAGGIO PASCAL

17 Tipi di dati in Pasal: integer È evidente he, se lavoriamo on espressioni aritmetihe, queste devono essere ompo ste eslusivamente da operandi ed operatori interi ed i risultati forniti devono sempre appartenere allo stesso insieme. Un altra onsiderazione. Se il omputer deve eseguire può non interrompere l eseuzione e segnalare un messaggio di errore, ma può eseguire l addizione fornendo ome risultato Per apire questo strano metodo immaginiamo un orologio, i ui numeri fanno parte di un insieme numerio finito. Analizziamo l aritmetia dell orologio: = = 12 = = 15 ioè 3 (provate a verifiare sull orologio rappresentato in alto!) = 17 ioè 5 Risultati di questo tipo sono possibili solo in insiemi finiti e l aritmetia di questo tipo viene detta aritmetia modulare: pertanto l aritmetia dell orologio è modulo 12. Analogo ragionamento vale per il nostro tipo integer: infatti l aritmetia dell insieme inte ger è modulo (65536 è il numero massimo rappresentabile in 16 bit ioè la somma di ) e presenta una struttura ilia identia a quella dell orologio, ma solo un po più in grande. Per risparmiare memoria oppure per rappresentare dati più grandi ma sempre interi, il Dev Pasal mette a disposizione altri quattro tipi di dati interi, riassunti nella seguente tabella, sui quali si appliano gli operatori visti preedentemente. Tipo di dati Intervallo di definizione Oupazione di memoria Byte byte Shortint byte Word byte Longint byte IL LINGUAGGIO PASCAL 17

18 Tipi di dati in Pasal: real, har e boolean Il tipo real Il tipo real rappresenta un sottoinsieme finito dell insieme R dei numeri reali ed è ompo sto da tutti i numeri deimali relativi ompresi tra 2.9 * e 1.7 * aventi al massi mo 11 ifre signifiative. Un dato di tipo real oupa 6 byte in memoria entrale. Il Dev-Pasal mette a disposizione anhe altri tipi real: Tipo di dati Intervallo di definizione Cifre signigiative Single 1,5* ,4*10 38 da 7 a 8 Double 5* ,7* da 15 a 16 Extended 3,4* ,1* da 19 a 20 Comp da 19 a 20 Gli operatori aritmetii assoiati a questo tipo sono: Operatore Esempio + per l addizione 4,3+3,1=7,4 8,45 + ( 6,8) =1,65 per la sottrazione 18,6 3,4 = 22,0 124,72 0,039= 124,681 * per la moltipliazione 9,6 * 4,2 = 40,32 5,12 * ( 6,4) = 32,768 / per la divisione 15,3/ 2,1=7, / 4 = 4,5 Anhe per questo tipo si possono usare gli operatori relazionali. Il tipo har Sul omputer oltre alle singole ifre è possibile rappresentare aratteri di vario genere (ad esempio una lettera dell alfabeto, un segno di operazione, un segno di interpunzione, e.). Per essi il Pasal mette a disposizione il tipo har, he rappresenta l insieme di tutti i aratteri disponibili sul omputer dove il linguaggio è implementato: le 26 lettere maiusole; le 26 lettere minusole; le 10 ifre numerihe; lo spazio o blank ( b ); i segni d interpunzione; molti altri tasti non ompresi sulla tastiera dell elaboratore ma ugualmente rappresen tabili. 18 IL LINGUAGGIO PASCAL

19 Tipi di dati in Pasal: real, har e boolean Tali simboli possono essere ottenuti tenendo premuto il tasto <Alt> e digitando, dalla tastie rina numeria, il numero di odie ASCII orrispondente. Il odie ASCII è un odie he ontiene ordinatamente la odifia (un numero binario) dei aratteri rappresentabili. Tale ordinamento permette di effettuare dei onfronti anhe tra aratteri. Ad esempio: risulta vero he il arattere A è minore del arattere a oppure he a < b in quanto il numero di odie ASCII di A (ioè 65) è minore del numero di odie ASCII di a (ioè 97) e, ana logamente, il numero di odie ASCII di a è minore di quello di b (ioè 98). I dati di tipo har vanno rahiusi tra apii. Questo è indispensabile per tenere distinti i aratteri dal loro eventuale valore numerio: nel tipo har, ad esempio, i aratteri da 0 a 9 non hanno alun legame on il valore numerio he possono rappresentare. Pertanto il dato 2 è diverso da 2, il dato 9 è diverso da 9, e. Gli operatori definiti sul tipo har sono gli operatori relazionali desritti per il tipo Integer. Il tipo boolean Il dato di tipo boolean può assumere soltanto due valori logii (valori di verità): true (vero) e false (falso). Questi due valori sono ordinati, nel senso he False è minore di True. Gli operatori he possono essere appliati a questi dati sono: AND OR NOT per la ongiunzione logia; per la disgiunzione logia; per la negazione logia; e fornisono risultati booleani. Vediamo ome srivere in Pasal alune espressioni booleane: L espressione A<>B A B A B A<B A>B in Pasal si srive NOT (A=B) (A>B) OR (A=B) (A>B) OR (A=B) (NOT (A=B)) AND (NOT (A<B)) (NOT (A=B)) AND (NOT (A>B)) Ed ora un ultimo appunto. Spesso in matematia utilizziamo la notazione a x b per affermare he x è ompreso tra a e b. Per tradurla in Pasal utilizziamo la seguente nota zione: (x >= a) AND (x <= b) oppure (a <= x) AND (x <= b) Pertanto, la notazione 2 x 8 equivale a: (x >= 2) AND (x <= 8) oppure a (2 <= x) AND (x <= 8). IL LINGUAGGIO PASCAL 19

20 Tipi di dati in Pasal: string Il tipo string Il tipo di dato string si usa per rappresentare una stringa di aratteri, ossia una sues sione finita di aratteri. Esempi di dihiarazioni di variabili stringa sono le seguenti: VAR Nominativo : STRING[20]; Citta: STRING[15]; Esempio : STRING; La variabile denominata Nominativo può aogliere una stringa lunga al massimo venti aratteri, la variabile denominata Citta può aoglierne una di al massimo quindii arat teri e la variabile denominata Esempio può aogliere il massimo numero previsto di arat teri, ossia 255. Quindi, non indiando alun valore tra parentesi quadre, si dihiara una variabile stringa di dimensione massima. Una variabile stringa oupa in memoria tanti byte quanti sono i aratteri he può onte nere più uno riservato a ontenere la lunghezza effettiva della stringa. Per assegnare un valore ad una variabile stringa è neessario rahiuderlo tra apii. Ad esempio, è valida la seguente assegnazione: Nominativo := ROSSI PAOLO ; (I partiolari sull istruzione di assegnazione li vedremo nei prossimi paragrafi. Per ora, si riordi solo he il simbolo dell assegnazione è :=). Quando una stringa non viene riempita interamente dal valore ad essa assegnato, la restan te parte viene riempita on spazi bianhi. Se, invee, il valore assegnato alla variabile è più lungo della dimensione massima, esso sarà tronato senza aluna segnalazione. Una variabile stringa può essere onsiderata in due modi differenti: ome un unio dato; ome un insieme di aratteri ognuno dei quali può essere selezionato e manipolato separatamente dagli altri. Sulle stringhe onsiderate ome un unio dato, si possono effettuare alune operazioni tipihe dei dati di tipo numerio ome, ad esempio, la somma ed il onfronto. La somma, in effetti, realizza la onatenazione. Consideriamo il seguente segmento di programma:... Parola1 := Ciao ; Parola2 := Mamma ; Parola12 = Parola1 + Parola2;... al termine, Parola12 varrà: Ciao Mamma R O S S I P A O L O 20 IL LINGUAGGIO PASCAL

21 Tipi di dati in Pasal: string Proviamo, ora, a onsiderare le stringhe ome un insieme di aratteri indipendenti tra loro. Riferiamoi alla variabile Nominativo: Da questo punto di vista, la stringa va immaginata ome una griglia omposta da tante elle quante ne sono state indiate all atto della dihiarazione e tutte le elle sono nume rate progressivamente a partire da zero. Come si evine dal disegno, la ella numero zero è riservata alla lunghezza effettiva della stringa mentre tutte le altre sono predisposte all aoglimento dei vari aratteri. In questo modo è possibile far riferimento ai singoli aratteri ostituenti la variabile. Infatti: Nominativo[3] individua il terzo arattere della variabile Nominativo, ioè la lettera S ; Nominativo[8] individua l ottavo arattere della variabile Nominativo, ioè la lettera A ; e osì via. Il numero he india la ella viene posto tra parentesi quadre. Tale numero può essere sostituito anhe da una variabile intera. Infatti: se, ad esempio, assegniamo alla variabile di tipo Integer I il valore 7- Nominativo[I] restituise il settimo arattere della variabile Nominativo, ioè la lettera P. Chiameremo variabili indie le variabili he utilizzeremo per posizionari sul singolo elemento di una stringa. IL LINGUAGGIO PASCAL 21

22 Variabili e valori Leggiamo valori in input Rionsideriamo il programma Saluta, visto nel paragrafo 15. Per leggere il nome dell u tente abbiamo usato l istruzione: READLN (Nome); he inserise, nella variabile Nome, il nome he l utente digita da tastiera. L istruzione READLN ha la sintassi: READLN (NomeVariabile); Con un unia istruzione READLN, è anhe possibile leggere i valori relativi a due o più variabili, utilizzando la sintassi: READLN (NomeVariabile1, NomeVariabile2,, NomeVariabileN); Ad esempio, per leggere i nomi di due persone si può srivere: READLN (Nome1, Nome2); Assegniamo un valore a una variabile Ora si onsideri il seguente algoritmo per il alolo dell area di un triangolo. ALGORITMO Area_Triangolo INIZIO SCRIVI( Inserisi la base: ) LEGGI(Base) SCRIVI( Inserisi la misura dell altezza: ) LEGGI(Altezza) Area (Base * Altezza) / 2 SCRIVI( L area del triangolo è:, Area) FINE 22 IL LINGUAGGIO PASCAL

23 Variabili e valori Il relativo programma Pasal è il seguente: PROGRAM Area_Triangolo; VAR Base, Altezza: INTEGER; Area: REAL; BEGIN WRITE( Inserisi la base: ); READLN(Base); WRITE( Inserisi la misura dell altezza: ); READLN(Altezza); Area :=(Base * Altezza) / 2; WRITE( L area del triangolo e : ); WRITELN(Area); WRITELN( premi INVIO per usire ); READLN; END. Nel programma Area_Triangolo, ompare l assegnazione: Area := (Base * Altezza) / 2; in ui si assegna il valore dell espressione (Base * Altezza) / 2 alla variabile Area utiliz zando il simbolo :=. L istruzione di assegnazione segue, pertanto, la seguente sintassi: NomeVariabile := Espressione; L espressione può anhe essere omposta da semplii valori. Ad esempio, per assegnare il valore 100 alla variabile X di tipo intero oorre srivere: X := 100; Per assegnare a una variabile il valore di un altra variabile, purhé entrambe siano dello stesso tipo, bisogna srivere: X := Y; Per inrementare X di 1, ioè per aumentare di 1 il suo valore, oorre srivere: X := X +1; IL LINGUAGGIO PASCAL 23

24 (ontinua) Visualizziamo il valore di una variabile Prendiamo in esame nuovamente il programma Area_Triangolo. Osserviamo l istruzione: WRITELN(Area); Abbiamo già usato l istruzione WRITELN per visualizzare una frase. Questa volta la uti lizziamo per visualizzare il valore di una variabile. La sua sintassi, in questo aso, è: WRITELN(NomeVariabile); WRITELN, dopo aver visualizzato il valore della variabile, in orrispondenza della posi zione orrente del ursore sullo shermo, sposta automatiamente il ursore stesso all i nizio della riga suessiva. Per visualizzare il valore di una variabile, è anhe possibile utilizzare l istruzione WRITE, la ui sintassi è: WRITE(NomeVariabile); WRITE, a differenza di WRITELN, non sposta il ursore all inizio della riga suessiva. Sia WRITE sia WRITELN possono visualizzare una frase. Per notare la differenza tra le due istruzioni, eseguiamo il seguente programma di esempio: PROGRAM WriteEWriteln; BEGIN WRITE( Ciao ); WRITE( a tutti ); WRITELN( Ciao ); WRITELN( a tutti ); WRITELN( premi INVIO per usire ); READLN; END. 24 IL LINGUAGGIO PASCAL

25 Variabili e valori Il risultato di questo programma è mostrato nella figura. Nel programma Area_ Triangolo notiamo, infi ne, l istruzione: WRITE( L area del triangolo e : ); Il doppio apie è utilizzato per poter visualizzare l apostrofo e l aento. A questo punto, dopo aver sritto il programma Area_Triangolo, averlo ompilato ed eseguito, si otterrà il risultato mostrato nella figura. Il risultato dell area, nell esempio preedente, è 300. La visualizzazione del valore 300 è in forma esponenziale sientifia, ioè nella forma 3*102. Questa notazione, però. è poo leggibile. Per visualizzare il valore di una variabile reale in forma deimale, inserire, nell istruzione WRITE, il nome della variabile seguito dal numero totale di ifre da visualizzare e dal numero di ifre da onsiderare dopo la virgola. La sintassi è: WRITE(NomeVarReale : NumeroTotaleCifre : NumeroCifreDeimali); NumeroCifreDeimali può variare tra 0 e 24. L ultima istruzione dell esempio preedente può essere, pertanto, osì risritta: WRITE(Area :7 :3) ottenendo quanto illustrato nella figura sotto. IL LINGUAGGIO PASCAL 25

26 Costanti, ommenti, funzioni in Pasal La dihiarazione delle ostanti Prendiamo ad esempio un algoritmo per il alolo dell area del erhio. ALGORITMO Area_Cerhio INIZIO SCRIVI( Inserisi il raggio: ) LEGGI(Raggio) Area (Raggio2) * PiGreo SCRIVI( L area del Cerhio è:, Area) FINE Puoi tradurre questo algoritmo on il seguente programma Pasal. PROGRAM Area_Cerhio; CONST PiGreo=3.14 // valore approssimato VAR Raggio: REAL; BEGIN WRITE( Inserisi il raggio: ); READLN(Raggio); Area := SQR(Raggio) * PiGreo; WRITE( L area del erhio è: ); WRITELN(Area); WRITELN( premi INVIO per usire ); READLN; END. Nell area dihiarativa del programma Area_Cerhio, oltre alla sottosezione per la dihia razione delle variabili ompare la sottosezione per la dihiarazione di ostanti, ioè di valori he non possono variare durante l eseuzione del programma. CONST PiGreo=3.14; // valore approssimato Il valore della ostante PiGreo dell esempio non può variare nel programma. La sottosezione per la dihiarazione delle ostanti deve ominiare on la parola hiave CONST, seguita dalle singole dihiarazioni delle ostanti. Ogni dihiarazione di ostante deve, quindi, rispettare la seguente sintassi: NomeCostante = Valore; Altri esempi di dihiarazioni di ostanti sono: Vero = True; Anno = 2005; Saluto = Ciao ; 26 IL LINGUAGGIO PASCAL

27 Costanti, ommenti, funzioni in Pasal I ommenti in un programma Pasal Aanto alla dihiarazione di ostante nel programma Area_Cerhio ompare la frase: // valore approssimato he aggiunge un ommento al programma. Un ommento è una frase he serve uniamente a dare una spiegazione, a ontenere un appunto. Per inludere un ommento in un qualsiasi punto di un programma Pasal, oorre farlo pree dere dal doppio slash : //. Questo nel aso in ui la frase oupi una sola riga del programma. Se il ommento è molto lungo e lo si vuole suddividere su più righe, oorre far preedere ogni riga dal doppio slash, oppure rahiudere tutto il ommento tra i aratteri (* e *). Ad esempio: CONST PiGreo = 3.14; // in questo esempio usiamo un valore // approssimato per PiGreo Utilizziamo le funzioni numerihe Osserviamo nuovamente il programma Area_Cerhio. Analizziamo l istruzione per il al olo dell area: Area := SQR (Raggio) * PiGreo; Per elevare al quadrato il raggio abbiamo utilizzato la funzione numeria SQR( ). Le funzioni numerihe sono partiolari operazioni sulle variabili numerihe he si posso no utilizzare nelle espressioni; vedi tabella sotto. Funzione numeria Desrizione Esempio di utilizzo TRUNC(X) Trona X TRUNC(4,6) dà ome risultato 4 ROUND(X) Arrotonda X all intero ROUND(4,6) dà ome risultato 5 più viino SQRT(X) Radie quadrata di X SQRT(4) dà ome risultato 2 SQR(X) Eleva X al quadrato SQR(2) dà ome risultato 4 RANDOM(X) Calola un valore a aso tra 0 e X RANDOM(20) dà ome risultato un valore a aso tra 0 e 20 IL LINGUAGGIO PASCAL 27

28 Tutto in test...a PROVE OGGETTIVE PER LA VERIFICA DELLE CONOSCENZE Conosenze di base 1 Qual è la funzione del proesso di astrazione? 2 Cos è un linguaggio di programmazione? 3 Di he osa si oupa la programmazione? 13 Srivi un algoritmo he determini l area del erhio ir osritto a un quadrato. 14 Srivi un algoritmo he, date in input le dimensioni AB e BC del seguente triangolo isosele, ne determini perime tro e area. A 4 Cos è un paradigma di programmazione? 5 Perhé è importante doumentare il lavoro? 6 Di osa si oupa la programmazione strutturata? B C 7 Puoi enuniare il teorema di Bohm e Jaopini? 8 Quando due algoritmi si diono equivalenti? 9 Cos è un ostrutto sintattio? 10 Relativamente all attività di programmazione stabilire se le seguenti affermazioni sono vere o false. a La odifia è la traduzione dell algoritmo in un linguaggio di programmazione v f b Il programma è un algoritmo sritto in pseudoodifia v f La realizzazione di un algoritmo è affidata al programmatore v f d Lo studio di una situazione problematia è svolto dal risolutore v f e Il ontrollo del trae avviene tramite la tabella della variabili v f Competenze di base 11 Srivi un algoritmo he, data in input la misura di un angolo in gradi (G), primi (P) e seondi (S), determi ni la sua ampiezza espressa in seondi. 15 Srivi un algoritmo he, dati in input il ognome, il nome e l anno di nasita di una persona, fornisa in output la sua età. 16 Srivi un algoritmo he determini il numero di satti effettuati da un utente telefonio e l ammontare della sua bolletta. Vengono forniti in input i seguenti dati: il nome dell utente; il numero di satti emersi dalla lettura della bolletta pre edente; il numero di satti emersi dalla lettura della bolletta attua le; il osto dello satto. Riorda he, per determinare il valore della bolletta, oorre aggiungere un anone fisso il ui importo viene anh esso fornito in input. 17 Srivi un algoritmo he aloli la radie dell equazione di primo grado ax=b. 18 In un ondominio si deide di alolare una tassa una tantum alolata rispetto alle dimensioni dell appartamento, espresse in metri quadri, in ragione di K per ogni metro quadro. All importo osì alolato viene aggiunta una quota fissa di X e una perentuale del T%. Srivi un algoritmo he, dati in input i valori di K, X e T, determini l ammontare della tassa. 12 Srivi un algoritmo he, dati in input tre numeri, ne determini la media. 28 IL LINGUAGGIO PASCAL

29 Tutto in test...a PROVE OGGETTIVE PER LA VERIFICA DELLE CONOSCENZE 19 India l output prodotto dai seguenti algoritmi supponendo he per A sia fornito il valore 5 e per B il valore 100. ALGORITMO UnoA INIZIO LEGGI(A) A A * 3 SCRIVI(A) FINE ALGORITMO UnoB INIZIO LEGGI(A) A (A + 2) * (A * 3) SCRIVI(A) FINE ALGORITMO UnoC INIZIO LEGGI(A) B A + 2 C A + B SCRIVI(C) FINE ALGORITMO UnoD INIZIO LEGGI(A) LEGGI(B) C A + B D (A B) + C SCRIVI(C) SCRIVI(D) FINE 20 Per iasuno dei programmi seguenti, india he osa viene visualizzato e se vi sono degli errori. PROGRAM Nome; BEGIN // inizio Nome WRITE( Io mi hiamo Maro ); END. // fine nome PROGRAM Valori; VAR // inizio dihiarazioni C: REAL; BEGIN // inizio Valori C := WRITE(C); READLN(C); WRITE(C); END. // fine Valori PROGRAM Leggi/Srivi1; VAR A: INTEGER; BEGIN // inizio Leggi/Srivi1 READLN A; WRITELN(A); END. // fine Leggi/Srivi1 PROGRAM Leggi/Srivi2; VAR A: INTEGER; BEGIN WRITE(A); WRITELN(A); END. PROGRAM Leggi/Srivi3; VAR A: INTEGER; BEGIN READLN(A,B); WRITE(A,B); END. // fine Leggi/Srivi3 IL LINGUAGGIO PASCAL 29

30 Il ostrutto selezione Questo ostrutto permette di effettuare una selta fra due possibili alternative. Per effettuare una selta, però, dobbiamo valutare una ondizione. Un esempio tratto dalla vita di tutti i giorni potrebbe essere: SE pioverà ALLORA prenderò l autobus ALTRIMENTI farò una passeggiata In termini più generali possiamo srivere: SE SI VERIFICA LA CONDIZIONE ALLORA ESEGUI B1 ALTRIMENTI ESEGUI B2 La sintassi di questo ostrutto, hiamato, più preisamente, selezione binaria, è la seguente: SE Condizione ALLORA B1 ALTRIMENTI B2 FINESE dove B1 e B2, anhe in questo aso, possono essere blohi semplii o omposti. Quindi, se la Condizione è Vera si esegue il bloo B1. Se la Condizione è Falsa, si esegue il bloo B2. Il ostrutto Selezione può presentarsi anhe on un solo ramo ioè senza l alternativa altrimenti. In questo aso (ostrutto selezione unaria) la rappresentazione sintattia è: SE Condizione ALLORA B1 FINESE Il ostrutto selezione Hai osservato he ogni SE ha un suo FINESE orrispondente? Hai notato (nel box qui a sinistra e nel preedente) i rientri utilizzati per gli ALLORA, gli ALTRIMENTI? E he la parola hiave ALTRIMENTI viene sritta nella stessa olonna in ui è stata sritta la parola hiave ALLORA? Le istruzioni vengono inolonnate osì per indiare la loro dipendenza. Si evidenzia, in tal modo, he un istruzione è ontenuta in un altra. È buona abitudine urare questi inolonnamenti, perhé, osì faendo, si garantise la leggibilità dello pseudoodie. La tenia di questi inolonnamenti è onosiuta ome indentazione. PROBLEMA 1 Dato in input un numero N, omuniare se è negativo o positivo. Si parte dal onetto he un numero positivo è maggiore o uguale a zero. Quindi, non dobbiamo far altro he aquisire un numero dall esterno e onfrontarlo on zero. Se il numero è maggiore o uguale a zero, allora è positivo, altrimenti è negativo. NOME TIPO DESCRIZIONE I/O/L N Numerio Variabile he ontiene il valore da verifiare. I 30 IL LINGUAGGIO PASCAL

31 Il ostrutto selezione ALGORITMO PosNeg1 INIZIO LEGGI(N) SE N 0 ALLORA SCRIVI( Il numero è positivo ) ALTRIMENTI SCRIVI( Il numero è negativo ) FINESE FINE È superfluo orredare questo problema della tavola di traia: non abbiamo bisogno di on trollare la orrettezza di questo algoritmo. È fin troppo hiaro! Aumentiamo, ora, la diffioltà dell eserizio preedente. PROBLEMA 2 Dato in input un numero N, omuniare se è negativo, positivo o nullo. L analisi del problema è simile alla preedente, on un ontrollo in più. Se il numero rihiesto in input è maggiore di zero allora è positivo ma, se osì non è, non possiamo affermare he il numero è negativo: potrebbe essere nullo. Controlliamo se il numero è minore di zero. Se il numero non è maggiore o minore di zero, allora è nullo. ALGORITMO PosNeg2 INIZIO LEGGI(N) SE N > 0 ALLORA SCRIVI( Il numero è positivo ) ALTRIMENTI /* N potrebbe essere minore o uguale a zero */ SE N < 0 ALLORA SCRIVI( Il numero è negativo ) ALTRIMENTI SCRIVI( Il numero è nullo ) FINESE FINESE FINE Questo eserizio è aratterizzato dalla presenza di un ostrutto selezione all interno di un altro. Quindi, nel ramo altrimenti del primo ostrutto di selezione, se ne esegue un altro. Un ostrutto inserito in un altro dello stesso tipo si die annidato. Si parla invee di ostrutti in asata quando due o più ostrutti di ugual tipo devono essere eseguiti in suessione. IL LINGUAGGIO PASCAL 31

32 Selezione in Pasal Consideriamo l algoritmo PosNeg1 visto in preedenza in ui è presente la struttura di ontrollo di selezione binaria. La traduzione in Pasal è la seguente: PROGRAM PosNeg1; VAR N: INTEGER; BEGIN WRITE( Inserisi un numero ); READLN(N); IF N >= 0 THEN WRITE( Il numero è positivo ) ELSE WRITE( Il numero è negativo ); WRITE( Premi INVIO per usire ); READLN; END. Può verifiarsi he il bloo THEN oppure il bloo ELSE ontengano più istruzioni; in questi asi oorre delimitare il bloo on le istruzioni BEGIN ed END. Inoltre, all interno del bloo, ogni istruzione andrà separata dalle altre da un ;. È importantissimo notare he l istruzione preedente ELSE non deve terminare on un punto e virgola. Se lo inseriamo, il ompilatore emetterà un messaggio d errore. Traduiamo, ora, l algoritmo PosNeg2: PROGRAM PosNeg2; VAR N: INTEGER; BEGIN WRITE( Inserisi un numero ); READLN(N); IF N > 0 THEN WRITE( Il numero è positivo ) ELSE IF N < 0 THEN WRITE( Il numero è negativo ) ELSE WRITE( Il numero è nullo ); WRITE( Premi INVIO per usire ); READLN; END. 32 IL LINGUAGGIO PASCAL

33 Selezione in Pasal Il ostrutto selezione multipla Questo ostrutto deriva dal ostrutto selezione, anzi ne rappresenta un estensione. Capita molto spesso di dover fare delle selte orientandosi fra più possibilità. Quotidianamente i poniamo delle domande alle quali possiamo dare più di una risposta. Ad esempio: quale maglione indosserò questa mattina? Quale film vedrò stasera? Quali libri porterò domani a suola? E osì via. Per risolvere i problemi, quindi, in ui si opera una selta tra più di due alternative in dipendenza del valore assunto da un erto parametro, è molto utile utilizzare il ostrutto selezione multipla. Esso è presente in quasi tutti i linguaggi di programmazione, anhe se il omportamento non è sempre lo stesso. Per maggiore sempliità e per gli utilizzi he ne faremo, abbiamo selto il seguente ostrutto, la ui sintassi è: NEL CASO CHE Espressione SIA Valore1 : B1 Valore2 : B ValoreN : BN ALTRIMENTI <BN+1 FINECASO dove: Espressione può essere di valore numerio intero o un singolo arattere e non una ostante. Costituise il selettore he disrimina la selta. ValoreI deve essere dello stesso tipo di Espressione e può essere: un valore unio (esempio 1, 2, 3 e., oppure a, b, e.); una lista di valori (esempio 1, 10, 100-2, 3, 6 - a, A, - s, S e.); un intervallo hiuso di valori (esempio per omprendere tutti i numeri tra 1 e 100, estremi ompresi, a.. n per indiare tutte le lettere tra a e n e.). La sezione ALTRIMENTI è opzionale e, di onseguenza, non deve essere inserita neessariamente. IL LINGUAGGIO PASCAL 33

34 (ontinua) PROBLEMA 3 Realizzare un algoritmo he sriva il nome dei poligoni in base al numero dei lati (il numero dei lati non può essere superiore a 12). Il problema è semplie: oorre prima leggere il numero dei lati, se è minore o uguale a 12, si srive a quale tipo di poligono orrisponde, altrimenti si segnala l input non valido. ALGORITMO Poligoni INIZIO SCRIVI( Inserisi il numero dei lati ) LEGGI(Lati) NEL CASO CHE Lati SIA 3: SCRIVI( Triangolo ) 4: SCRIVI( Quadrilatero ) 5: SCRIVI( Pentagono ) 6: SCRIVI( Esagono ) 7: SCRIVI( Ettagono ) 8: SCRIVI( Ottagono ) 10: SCRIVI( Deagono ) 12: SCRIVI( Dodeagono ) ALTRIMENTI SCRIVI( ERRORE ) FINECASO FINE 34 IL LINGUAGGIO PASCAL

35 Selezione in Pasal Il ostrutto selezione multipla in Pasal In Pasal il ostrutto selezione multipla si tradue on il ostrutto CASE. Traduiamo in Pasal l algoritmo Poligoni del paragrafo preedente: PROGRAM Poligoni; VAR Lati: INTEGER; BEGIN WRITELN( Inserisi il numero dei lati ); READLN(Lati); CASE Lati OF 3: WRITELN( Triangolo ); 4: WRITELN( Quadrilatero ); 5: WRITELN( Pentagono ); 6: WRITELN( Esagono ); 7: WRITELN( Ettagono ); 8: WRITELN( Ottagono ); 10: WRITELN( Deagono ); 12: WRITELN( Dodeagono ) ELSE WRITELN( ERRORE ); END; WRITELN( Premi INVIO per usire ); READLN; END. IL LINGUAGGIO PASCAL 35

36 L algebra della logia proposizionale A ominiare dal pensiero greo antio, la logia era parte della filosofia ed era intesa ome studio del modo di ragionare. Aristotele, il grande filosofo greo vissuto tra il 384 e il 322 a.c., se ne oupò organiamente, esaminando il disorso ome traduzione verbale del pensiero. Suessivamente George Boole ( ), un matematio e logio inglese, pose le basi per la moderna logia matematia. Boole intuì la mananza di un formalismo matematio he permettesse di esprimere i onetti della logia simbolia e lavorò per olmare questa launa. Il risultato fu la ostruzione di un sistema algebrio onosiuto on il nome di algebra booleana,he ha trovato poi appliazioni più vaste di quelle he lo stesso Boole poteva allora immaginare. Ad esempio è fondamentale per il funzionamento del omputer e per la sua programmazione. Le operazioni he un omputer esegue, infatti, non sono uniamente di tipo aritmetio. In fase di programmazione apita spesso di inontrare istruzioni di tipo logio, per l eseuzione delle quali oorre far riferimento all algebra di Boole. Essa è ostituita da un insieme di operazioni definite su oggetti astratti, he sono rappresentati dalle proposizioni e dagli enuniati, per ui è detta anhe algebra proporzionale: Una proposizione è un ostrutto linguistio autonomo di senso ompiuto, omposto per lo meno da un soggetto e da un prediato. Per esempio, sono proposizioni Il fiume Po sorre in Italia, Sta più attento! ; enuniato è una proposizione he può assumere solo due stati possibili (Vero/ Falso, V/F). La verità o falsità di un enuniato rappresentano i valori di verità. Esempio Oggi il sole splende. Londra è la apitale d Italia. 4 è un numero pari. Le tre frasi sono enuniati: il rimo ha valore Vero se oggi il sole effettivamente splende e il valore Falso in aso ontrario; il seondo ha valore deisamente Falso; il terzo ha valore deisamente Vero. È faile intuire he un enuniato può essere vero o falso, ma mai tutt e due. Attenzione! Non sono enuniati, ma proposizioni: Prendimi il libro. Che bello! Che ore sono? Per essi non è infatti possibile stabilire i rispettivi valori di verità. 36 IL LINGUAGGIO PASCAL

37 L algebra della logia proposizionale Gli enuniati per i quali si può immediatamente affermare se sono veri o falsi, prendono il nome di enuniati semplii (o atomii). Una ombinazione di enuniati legati da partiolari operatori detti onnettivi logii prende il nome di enuniato omposto (o moleolare). I onnettivi vengono osì definiti proprio perhé onnettono i vari enuniati. Esempio L enuniato: Stasera studierò o andrò al inema. è un enuniato omposto in quanto è formato dai sottoenuniati Stasera studierò e Andrò al inema legati dal onnettivo o. Il suo valore di verità sarà definito dalla valutazione dei sottoenuniati e dal onnettivo he li ongiunge. Valutare gli enuniati omposti signifia assoiare a ognuno il valore Vero o Falso, par-tendo dall analisi degli enuniati semplii he li ompongono e appliando semplii regole di omposizione. IL LINGUAGGIO PASCAL 37

38 I onnettivi logii AND, OR e NOT Aenniamo, brevemente, ai seguenti onnettivi logii: AND (ongiunzione); OR (disgiunzione); NOT (negazione). Costruiamo adesso, per ognuno di essi, partiolari tabelle, dette tavole di verità. In esse p e q rappresentano due enuniati e sono illustrate tutte le possibili ombinazioni di valori, in funzione delle quali l enuniato omposto assume un erto valore. Congiunzione AND Il valore di verità di p AND q è dato dalla seguente tabella: p q p AND q F F F F V F V F F V V V Come si vede, l unio aso in ui p AND q è vero è quando sia p he q sono veri. Esempio L enuniato p: Io asolto un d e l enuniato q: Io mangio uùn panino danno origine all enuniato p AND q: Io asolto un d e mangio un panino he è vero, naturalmente, se sto faendo effettivamente entrambe le ose. Disgiunzione OR Il valore di verità di p OR q è dato dalla seguente tabella: p q p OR q F F F F V V V F V V V V Basta he p sia vero oppure he q sia vero, perhé p OR q sia anh essa vero. La disgiunzione può essere inlusiva o eslusiva. La disgiunzione inlusiva, espressa da OR, è sempre vera purhé una delle due omponenti sia vera. La disgiunzione può esse-re adoperata anhe in senso eslusivo. In questo aso, si eslude he la proposizione risultante possa essere vera se entrambe le proposizioni omponenti sono vere. 38 IL LINGUAGGIO PASCAL

39 I onnettivi logii AND, OR e NOT Un esempio di disgiunzione inlusiva è fornita dalla proposizione seguente: Io vado al inema o asolto un d. Esempio L enuniato p: Io vado al inema e l enuniato q: Io asolto un d danno origine all enuniato p OR q: Io vado al inema o asolto un d he è vero se faio almeno una delle due ose. Un esempio di disgiunzione eslusiva è fornita dalla proposizione seguente: O è giorno o è notte. Il orrispondente onnettivo si india on XOR e il suo valore di verità è dato dalla tabella a fiano: Negazione NOT Il valore di verità di NOT p è dato dalla seguente tabella: p q p XOR q F F F F V V V F V V V F p F V NOT p V F La funzione NOT nega una sola proposizione, invertendone il valore. Esempio L enuniato p: Io vado al inema dà origine all enuniato NOT p: Io non vado al inema Nell ambito della logia proposizionale, è possibile utilizzare gli operatori relazionali (=,, <, >,, ). Vediamo alune equivalenze: Dire A B A A A B A>B A<B equivale a dire NOT (A=B) (A<B) OR (A=B) (A>B) OR (A=B) (NOT (A=B) AND (NOT (A<B) (NOT (A=B) AND (NOT (A>B) E ora un ultimo appunto. Spesso in matematia utilizziamo la notazione: A X B per affermare he Xè ompreso tra A e B. Come tradurlo on gli operatori booleani, visto he la logia dei omputer non aetta tale notazione? È presto detto: A X B equivale a (X A) AND (X B) oppure (A X) AND (X B) IL LINGUAGGIO PASCAL 39

40 Costrutto iterazione on ontrollo in testa Il ostrutto iterazione Il ostrutto iterazione (o iterativo) viene utilizzato quando un istruzione (o un gruppo di istruzioni) deve essere eseguita, finhé non si verifia una determinata ondizione. Nella programmazione strutturata vengono utilizzati due ostrutti iterativi. Costrutto iterazione on ontrollo in testa Cominiamo dal primo: MENTRE Condizione ESEGUI B1 FINEMENTRE. Durante la sua eseuzione si valuta la Condizione. Se è vera si esegue B1, si ritorna a valutare la Condizione e se è vera si ontinua fino a quando la Condizione non risulta falsa e si passa all istruzione suessiva al FINEMENTRE. PROBLEMA 4 Costruire un algoritmo he, dati in input inque numeri, ne determini la loro somma. Risolviamolo utilizzando prima il solo ostrutto sequenza e, suessivamente, il ostrutto iterazione: noteremo i vantaggi offerti da quest ultimo ostrutto. ALGORITMO Somma5A INIZIO LEGGI(Num1) LEGGI(Num2) LEGGI(Num3) LEGGI(Num4) LEGGI(Num5) Somma Num1+Num2+Num3+Num4+Num5 LEGGI(Somma) FINE ALGORITMO Somma5B INIZIO Somma 0 Conta 1 MENTRE Conta 5 ESEGUI LEGGI(Num) Somma Somma + Num Conta Conta + 1 FINEMENTRE LEGGI(Somma) FINE 40 IL LINGUAGGIO PASCAL

41 Costrutto iterazione on ontrollo in testa Nel primo riquadro abbiamo risolto l algoritmo servendoi eslusivamente del ostrutto sequenza e, per far questo, abbiamo dovuto utilizzare inque variabili. Servendoi allora del ostrutto iterazione abbiamo risolto il problema in modo più semplie ed effiiente (seondo riquadro). Dettagliamo quest ultimo algoritmo: abbiamo utilizzato ome totalizzatore di somme parziali la variabile Somma. Essa viene aggiornata ogni volta he introduiamo un numero (nel nostro aso i siamo serviti solo della variabile Num e non di inque variabili diverse). All inizio è 0 perhé non abbiamo sommato anora nulla mentre, al termine dell iterazione, Somma ontiene il valore della somma totale; utilizzando una sola variabile per rihiedere i numeri, diventa neessario ontare quanti numeri stiamo inserendo (nel nostro esempio inque). Utilizziamo per questo la variabile Conta he funge, appunto, da ontatore. Quando il valore di Conta diviene maggiore di inque, blohiamo l immissione e forniamo in output il risultato (ome se avessimo usato le dita di una mano). Faiamo, adesso, un esempio più generale: PROBLEMA 5 Costruire un algoritmo he, dati in input N numeri, determini la loro somma e la media. Con un problema osì formulato, l utilizzo del ostrutto sequenza per la realizzazione del-l algoritmo è pratiamente impossibile. Non onosiamo a priori quanti sono i numeri di ui fare la somma e, quindi, non sappiamo quante variabili utilizzare. Il ostrutto iterazione, invee, non pone limiti e, ome tale, è l unio he i permette la risoluzione di questo tipo di problemi. In questo eserizio però, prima di impostare l iterazione, dobbiamo hiedere all esterno quanti sono i numeri he bisogna sommare (la variabile N). È questa una rihiesta essenziale per una valida eseuzione del ostrutto: se non la faessimo, non sapremmo quando fermari. Vediamo l algoritmo: ALGORITMO SommaMedia1 INIZIO LEGGI( Quanti numeri vuoi inserire? ) LEGGI(N) Somma 0 Conta 1 MENTRE Conta N ESEGUI LEGGI(Num) Somma Somma + Num Conta Conta + 1 FINEMENTRE Media Somma/Conta SCRIVI(Somma, Media) FINE Altra osa indispensabile: nel bloo iterativo deve esseri l istruzione he modifia la ondizione (nel nostro aso Conta Conta + 1) altrimenti, una volta iniziato, il ilo verrà ripetuto all infinito. Diremo in questo aso di trovari di fronte a un aso di loop infinito. IL LINGUAGGIO PASCAL 41

42 Costrutto iterazione on ontrollo in oda Iterazione on ontrollo in oda Cominiamo, ome al solito, on la desrizione sintattia: RIPETI B1 FINCHÉ Condizione PROBLEMA 6 Inserire da tastiera dei numeri fino a quando viene digitato lo zero. Riportiamo la soluzione servendoi di entrambi i ostrutti iterativi: ALGORITMO Inserisi1 INIZIO LEGGI(Num) MENTRE Num 0 ESEGUI LEGGI(Num) FINEMENTRE FINE ALGORITMO Inserisi2 INIZIO RIPETI LEGGI(Num) FINCHÉ Num = 0 FINE Nella prima soluzione abbiamo dovuto utilizzare due volte l istruzione Leggi (Num). Infatti la lettura esterna al ilo, ossia quella effettuata prima dell istruzione Mentre, i permette di entrare nel ilo stesso (nel aso in ui il numero inserito sia diverso da zero), mentre quella interna (ioè quella inserita nel orpo del ilo) i permette di digitare numeri fino a quando non digitiamo lo zero. La seonda soluzione, invee, è più snella e non neessita di aluna spiegazione, ma non la preferiremo per questo. Il ostrutto Ripeti... Finhé può essere trasformato in un ostrutto Mentre: è suffiiente dupliare il bloo interno al ilo e negare la ondizione. RIPETI B1 FINCHÉ Condizione B1 MENTRE NOT Condizione ESEGUI B1 FINEMENTRE 42 IL LINGUAGGIO PASCAL

43 Costrutto iterazione on ontrollo in oda Il ostrutto iterazione determinato e indiizzato Spesso onosiamo in partenza quante volte deve essere ripetuto un ilo (il problema n. 5, ad esempio, hiedeva di realizzare la somma di inque numeri). Quando si onose quante volte deve essere ripetuto un bloo di azioni, è onveniente utilizzare il ostrutto iterativo determinato e indiizzato. La sintassi è la seguente: PER Indie Inizio [INDIETRO] A Fine ESEGUI B1 FINEPER Risolviamo il problema n. 5 on questo ostrutto. Proviamo poi a onfrontarlo on l algoritmo he lo risolveva on il ostrutto iterativo Mentre. Soluzione del problema n. 5 on utilizzo del ostrutto iterativo Per: ALGORITMO Somma5A INIZIO Somma 0 PER Conta 1 A 5 ESEGUI LEGGI(Num) Somma Somma + Num FINEPER SCRIVI(Somma) FINE Soluzione del problema n. 5 on utilizzo del ostrutto iterativo Mentre: ALGORITMO Somma5B INIZIO Somma 0 Conta 1 MENTRE Conta 5 ESEGUI LEGGI(Num) Somma Somma + Num Conta Conta + 1 FINEMENTRE SCRIVI(Somma) FINE Osserviamo le differenze: 1. in questo ostrutto la variabile Conta, pur avendo la funzione di ontatore, è più propriamente definita ome variabile indie; 2. la variabile indie non neessita dell inizializzazione (assegnare a una variabile il valore di partenza) esterna del ostrutto in quanto viene inizializzata durante l impostazione del ilo. Non è osì nel ostrutto MENTRE dove, invee, notiamo l inizializzazione della variabile (Conta 1); 3. la variabile indie non neessita dell inremento. Nell algoritmo, infatti, non troviamo l istruzione Conta Conta + 1, è sottintesa nel ostrutto; 4. il ilo PER si omporta esattamente ome il ilo MENTRE in quanto, se il valore di INIZIO è maggiore di FINE, il ilo non sarà mai eseguito. IL LINGUAGGIO PASCAL 43

44 I ostrutti iterativi in Pasal PROBLEMA 7 Calolare l altezza media di una lasse. L algoritmo he risolve tale problema è: ALGORITMO MediaAltezze INIZIO SCRIVI( Quanti alunni i sono nella lasse ) LEGGI(N) Totale 0 /* non hai sommato anora aluna altezza */ Conta 1 /* devi ontare a quale alunno hiedere */ /* l altezza. Cominia dal primo */ RIPETI SCRIVI( Inserisi l altezza dell alunno n, Conta) LEGGI(Altezza) Totale Totale + Altezza Conta Conta + 1 */ontinua on il suessivo alunno FINCHÉ (Conta > N) */hai esaminato tutti gli N alunni AltezzaMedia Totale / N SCRIVI( L altezza media è:, AltezzaMedia) FINE In questo algoritmo è presente la struttura di ontrollo RIPETI FINCHÉ on la quale si risolve il problema proposto. Traduiamo questo algoritmo in Pasal. PROGRAM MediaAltezze; VAR N, Conta: INTEGER; Altezza, AltezzaMedia, Totale: REAL; BEGIN WRITE( Quanti alunni i sono nella lasse? ); READLN(N); Totale := 0; // non hai sommato anora aluna altezza Conta := 1; // ominia a ontare dal primo alunno REPEAT WRITE( Inserisi l altezza dell alunno: ); READLN(Altezza); Totale := Totale + Altezza; Conta := Conta + 1 ; //ontinua on il prossimo alunno UNTIL Conta > N; // hai esaminato tutti gli alunni AltezzaMedia := Totale / N; WRITE( L altezza media e : ); WRITELN(AltezzaMedia :5 :3); WRITELN( Premi INVIO per usire ); READLN; END. 44 IL LINGUAGGIO PASCAL

45 I ostrutti iterativi in Pasal L istruzione REPEAT UNTIL, evidenziata in questo esempio del riquadro, serve per tra durre in linguaggio Pasal la struttura di ontrollo RIPETI FINCHÉ. Il orpo del ilo è formato dal bloo di istruzioni: (1), (2), (3), (4). Il linguaggio Pasal esegue questo bloo una prima volta, poi verifia la ondizione: se non è vera (ioè se non si sono anora esaminati tutti gli alunni) esegue nuovamente il bloo, se è vera (se sono stati esaminati tutti gli alunni) passa a eseguire l istruzione suessiva (AltezzaMedia := Totale/N). Se il ilo è formato da più istruzioni, non si deve inserire BEGIN ed END per rahiuderle. Esse, infatti, sono già delimitate dalle parole hiave REPEAT e UNTIL. La sintassi di REPEAT UNTIL è, quindi: REPEAT Istruzioni UNTIL Condizione; Compiliamo il programma ed ese guiamolo inserendo le altezze degli alunni di una lasse, otterremo un risultato simile a quello della Figura. Consideriamo sempre il problema del alolo dell altezza media in una las se. Tale problema può essere risolto utilizzando il seguente algoritmo: ALGORITMO MediaAltezze INIZIO SCRIVI( Quanti alunni i sono nella lasse ) LEGGI(N) Totale 0 /* non hai sommato anora aluna altezza */ Conta 1 /* devi ontare a quale alunno hiedere */ /* l altezza. Cominia dal primo */ MENTRE (Conta <= N) */non hai esaminato tutti gli N alunni INIZIO SCRIVI( Inserisi l altezza dell alunno n, Conta) LEGGI(Altezza) Totale Totale + Altezza Conta Conta + 1 /*ontinua on il suessivo alunno */ FINE AltezzaMedia Totale / N SCRIVI( L altezza media è:, AltezzaMedia) FINE IL LINGUAGGIO PASCAL 45

46 (ontinua) Qui è stata usata la struttura di ontrollo MENTRE ESEGUI he è alternativa alla strut tura RIPETI FINCHÉ. Il orrispondente programma Pasal è: PROGRAM MediaAltezze; VAR N, Conta: INTEGER; Altezza, AltezzaMedia, Totale: REAL; BEGIN WRITE( Quanti alunni i sono nella tua lasse? ); READLN(N); Totale:=0; // non hai sommato anora aluna altezza Conta:=1; WHILE Conta <= N DO BEGIN WRITE( Inserisi l altezza dell alunno: ); READLN(Altezza); Totale := Totale + Altezza; Conta := Conta + 1; END; AltezzaMedia := Totale / N; WRITE( L altezza media e : ); WRITELN(AltezzaMedia :5 :3); WRITELN( Premi INVIO per usire ); READLN; END. Se ompiliamo ed eseguiamo questo programma otterremo a video lo stesso risultato del paragrafo preedente. L istruzione WHILE DO mostrata in questo esempio serve per tradurre in Pasal la strut tura di ontrollo MENTRE ESEGUI. Il orpo del ilo è uguale a quello preedente, ma in questo aso il ompilatore esegue il bloo solo dopo aver verifiato la ondizione (Conta <= N). Se è vera (ioè se non si sono anora esaminati tutti gli alunni) esegue nuovamente il bloo, se è falsa (ioè se sono stati esaminati tutti gli alunni) passa a eseguire l istruzione suessiva (AltezzaMedia := Totale/N). Se il ilo è formato da più istruzioni, devi inserire BEGIN ed END per rahiuderle. La sintassi dell istruzione WHILE DO è, quindi: WHILE Condizione DO Bloo Istruzioni; A volte, quello he si riese a realizzare on i due ostrutti appena esaminati può essere anhe fatto on un nuovo ostrutto: il FOR TO DO, on una preisazione, però: il ostrutto FOR può essere utilizzato solo nel aso si sappia a priori quante volte il ilo deve essere eseguito. A tal fine i si serve di una variabile di onteggio he viene inrementata o derementata. 46 IL LINGUAGGIO PASCAL

47 I ostrutti iterativi in Pasal PROBLEMA 8 Immettere da tastiera 10 valori e totalizzarli. Formalizziamo, dapprima, l algoritmo: ALGORITMO Somma10 INIZIO Tot 0 PER Conta 1 A 10 ESEGUI SCRIVI( Inserisi un numero ) LEGGI(Numero) Tot Tot + Numero FINEPER SCRIVI( Il totale è, Tot) FINE Vediamo il odie in Pasal: PROGRAM Somma10; VAR Conta, Numero, Tot: INTEGER; BEGIN Tot := 0; FOR Conta := 1 TO 10 DO BEGIN WRITE( Inserisi un numero: ); READLN(Numero); Tot := Tot + Numero; END; WRITELN( Il totale e,tot); WRITELN( Premi INVIO per usire ); READLN; END. IL LINGUAGGIO PASCAL 47

48 I moduli software del Pasal Per omprendere il onetto dei moduli faiamo un esempio. Supponiamo di andare in una libreria. Per avere un effiiente organizzazione dei testi, il libraio ha suddiviso i libri in due grandi ategorie: quelli maggiormente rihiesti e quelli meno. I libri maggiormente rihiesti li ha posti su uno saffale in modo he siano alla portata di tutti, mentre gli altri li ha opportunamente raggruppati per argomenti e li ha posti su altri saffali diffiilmente aessibili dai lienti. Se l aquirente desidera un libro famoso o molto rihiesto potrà fare da sé onsultando lo saffale appositamente predisposto dal libraio. Se, invee, desidera un libro meno onosiuto, dovrà rihiederlo al libraio he provvederà a fornirglielo. Nel Pasal la situazione è analoga. Le istruzioni più omunemente utilizzate sono sempre disponibili e possiamo utilizzarle direttamente senza farne speifiatamente rihiesta al Pasal. Queste istruzioni fanno parte del modulo System. Se, invee, vogliamo utilizzare istruzioni meno omuni dobbiamo farne espressa rihiesta al Pasal indiando il modulo he le ontiene. Tale rihiesta avviene tramite un opportuna lausola. Un modulo (Unit, o libreria) quindi, rappresenta una ollezione di istruzioni e ostanti, he possono essere utilizzate su rihiesta e servono per svolgere azioni speifihe. La dihiarazione dei moduli da inludere deve essere fatta obbligatoriamente dopo l intestazione del programma e prima dell inizio del bloo delle altre dihiarazioni, seondo la seguente sintassi: USES <Modulo1>, <Modulo2>,... <ModuloN> USES è una parola riservata per l utilizzo dei moduli e <Modulo1> rappresenta il nome del modulo he desideriamo utilizzare. Ad esempio, il Modulo CRT ontiene tutte le istruzioni neessarie per gestire in modo faile ed effiiente il video, la tastiera e i olori. Vediamo alune istruzioni in esso inluse: CLRSCR CLREOL GOTOXY(NumColonna, NumRiga) DELAY(n) KEYPRESSED READKEY TEXTBACKGROUND (numerocolore) TEXTCOLOR (numerocolore) Canella il ontenuto del video e riporta il ursore nell angolo superiore sinistro. Canella la riga su ui si trova il ursore. Posiziona il ursore sulla olonna NumColonna nella riga indiata dal valore NumRiga. Ad esempio GOTOXY(3,2) posiziona il ursore sulla terza olonna della seonda riga. Sospende l eseuzione del programma per ira N milliseondi. E una funzione he assume il valore vero appena viene premuto un tasto della tastiera. Solitamente viene utilizzata nell istruzione REPEAT UNTIL KEYPRESSED he sospende l eseuzione del programma fino a quando non viene premuto un tasto. Legge un arattere dalla tastiera senza he questo sia visualizzato su video (ingergo informativo si die senza eo ). Imposta il olore per lo sondo del testo da srivere. Tale olore è indiato on un valore he può variare da 0 a 7. Imposta il olore per il testo da srivere. Tale olore è un valore he può variare da 0 a IL LINGUAGGIO PASCAL

49 I moduli software del Pasal Il Modulo GRAPH ontiene le istruzioni neessarie per poter realizzare appliazioni di grafia sia gestionale (istogrammi, diagrammi a torta, e.) he di animazione. Il Modulo PRINTER ontiene tutte le istruzioni he permettono e failitano l utilizzo della stampante nell ambito del programma. Questo modulo rihiede l utilizzo del modulo CRT. Ad esempio per stampare la frase Ciao mondo! si deve usare la ostante predefinita LST: WRITELN(LST, Ciao mondo! ); IL LINGUAGGIO PASCAL 49

50 Tutto in test...a PROVE OGGETTIVE PER LA VERIFICA DELLE CONOSCENZE Conosenze di base 1 Fai tre esempi diversi di ili MENTRE he non terminano mai. 2 Fai tre esempi diversi di ili MENTRE he vengono eseguiti una sola volta. 3 Fai tre esempi diversi di ili RIPETI he vengono eseguiti due volte. 4 Fai tre esempi diversi di ili MENTRE he non vengono eseguiti mai. 5 Srivi un algoritmo he, dati in input due numeri, li metta in ordine resente. 6 Srivi un algoritmo he, dato in input un numero, stabilisa se è pari o dispari. 7 Srivi un algoritmo he, date in input le misure dei lati di un triangolo, determini se il triangolo è saleno, equilatero o isosele. 8 Srivi un algoritmo he, dati in input tre numeri, determini: il maggiore; il minore; la differenza tra il maggiore e il minore. 9 Calola la somma spesa da un liente in un negozio di abbigliamento, tenendo onto delle seguenti ondizioni: per spese fino a 50, sonto 10%; per spese da 51 a 100, sonto 20%; per spese superiori a 100, sonto 30%. 10 Sullo stipendio dei dipendenti di una ditta viene appliata una trattenuta fisale in base alla seguente tabella: Saglione 1: trattenuta 5%; Saglione 2: trattenuta 10%; Saglione 3: trattenuta 15%; Saglione 4: trattenuta 25%; Saglione 5: trattenuta 35%. Srivi un algoritmo he, dato in input lo saglione di appartenenza di un dipendente, aloli la trattenuta da versare. 11 Srivi un algoritmo he, dato in input il numero orrispondente al mese dell anno, visualizzi il numero di giorni di ui è omposto. 12 Per aumentare il numero di visitatori di una mostra, si deide di far pagare il biglietto d ingresso differenziato in base all età. In dettaglio: Età Inferiore a 5 anni Da 5 a 10 anni 1 Da 11 a 17 anni 2 Da 18 a 26 anni 3 Oltre 26 anni 5 Prezzo del biglietto Gratuito Srivi un algoritmo he, data in input l età, visualizzi l importo del biglietto da pagare. 13 Un agenzia immobiliare, per inrementare le sue vendite, deide di abbassare i prezzi degli appartamenti e affigge la seguente tabella: Zona Centro Prezzo al metro quadro Gratuito Zona Zona Zona Periferia Srivi un algoritmo he, date in input le dimensioni dell ap partamento in metri quadri e la zona di appartenenza, determini il prezzo dell appartamento. Infine, per determi nare il prezzo omplessivo di vendita, deve essere aggiunta una perentuale di un X% relativa alla provvigione spettan te all agenzia. 14 Srivi un algoritmo he visualizzi i primi 100 numeri pari positivi. 15 Generalizza l eserizio preedente faendolo operare su N numeri. 16 Srivi un algoritmo he visualizzi i primi N numeri dispari maggiori di Per ognuna delle seguenti suessioni di numeri, ostruisi l algoritmo he le genera: 1, 3, 5, 7, 9,, 99 1, 4, 9, 16, 25,, , 2, 3, 4, 5, 6,, 100 1/2, 2/3, 3/4, 4/5,, 99/ Srivi un algoritmo he legga N numeri on N < 100 e aloli la somma dei soli numeri dispari. 19 Srivi un algoritmo he verifihi se un numero è primo. 50 IL LINGUAGGIO PASCAL

51 Tutto in test...a PROVE OGGETTIVE PER LA VERIFICA DELLE CONOSCENZE 20 Srivi un algoritmo he, dati in input N numeri interi e un numero X, determini: quanti numeri sono maggiori di X; quanti sono minori di X; quanti sono uguali a X. 21 Srivi un algoritmo he, dati in input N numeri, determini il massimo e il minimo. 22 Ogni giorno vengono registrate la temperatura massima e minima di ogni ittà. Srivi un algoritmo he, date in input queste informazioni, visualizzi il nome della ittà più alda e di quella più fredda. 23 Srivi un algoritmo he, dati in input N numeri, determini, per ognuno di essi, il valore assoluto. 24 Srivi un algoritmo he, dati in input N numeri, determini, per ognuno di essi, tutti i divisori interi. 25 Srivi un algoritmo he, dati in input N numeri, determini il fattoriale di ognuno. 26 Srivi un algoritmo he, dato in input un numero, determini se è multiplo di un numero X, anh esso rihiesto in input. 27 Srivi un algoritmo he, servendosi eslusivamente delle operazioni di addizione e sottrazione, aloli il prodotto e il quoziente di due numeri positivi X e Y. Proposte operative sulla logia booleana 28 Rionosi tra le seguenti espressioni linguistihe quali sono enuniati e quali no: a il numero 5 è divisore del numero 24; b 10 è un numero omposto; attenti alla punteggiatura; d il numero 7 è un numero dispari; e zitto, arriva il preside; f Roma è la apitale d Italia; g Gigi è un bel ragazzo; h spegni la radio; i il rettangolo ha due diagonali. 29 Attribuisi un valore di verità agli enuniati individuati al punto preedente. 30 Attribuisi un valore di verità ai seguenti enuniati: a = 12; b 5 è un numero primo; non è vero he 11 sia un numero primo; d il Tevere bagna Roma; e il rombo è un partiolare parallelogramma. 31 Srivi la negazione dei seguenti enuniati: a il signor Rossi è sposato; b ieri ero a Roma; i Beatles si esibisono a Milano; d oggi ho studiato; e non è vero he ieri non sono andato a suola; f tutti gli alunni sono presenti. 32 Dati i seguenti enuniati: p = Gigi è partito per Milano, q = Gigi è studente, srivi le proposizioni: NOT p, NOT q, p AND q, p OR q, p AND NOT q, NOT p AND q, NOT p OR NOT q. 33 Con riferimento agli enuniati p e q dell eserizio preedente, nella ipotesi he sia p vera, q falsa, stabilisi il valo re di verità dei seguenti enuniati: p AND q, p OR q, p AND NOT q, NOT p AND q, NOT p OR NOT q. 34 Ripeti l eserizio preedente nelle seguenti ipotesi: a p vera, q vera; b p falsa, q vera; p falsa, q falsa. 35 Individua gli enuniati semplii e i onnettivi dei seguenti enuniati omposti: a piove e non fa freddo; b piove oppure la nebbia è molto fitta; Gigi e Daniele sono interrogati in matematia; d il numero 7 non è primo e non è pari. 36 Srivi sotto forma simbolia sia gli enuniati semplii he quelli omposti dell eserizio preedente e di iasuno india il valore di verità. IL LINGUAGGIO PASCAL 51

52 Tutto in test...a PROVE OGGETTIVE PER LA VERIFICA DELLE CONOSCENZE 37 Qual è il risultato dei seguenti programmi Pasal? a PROGRAM Primo; VAR N : INTEGER; BEGIN N := 0; WHILE N <= 1 DO BEGIN WRITELN( Ciao a tutti ); N := N + 1; END; WRITELN( Premi INVIO per usire ); READLN; END. d PROGRAM Quarto; VAR N : INTEGER; BEGIN N := 2; REPEAT WRITELN(N); UNTIL (N > 2); END. b PROGRAM Seondo; VAR N : INTEGER; BEGIN N := 0; WHILE N < 0 DO BEGIN WRITELN( Ciao a tutti ); N := N + 1; END; WRITELN( Premi INVIO per usire ); READLN; END. PROGRAM Terzo; VAR N : INTEGER; BEGIN N := 0; WHILE N = 0 DO WRITELN( Ciao a tutti ); WRITELN( Premi INVIO per usire ); READLN; END. 52 IL LINGUAGGIO PASCAL

53 Training PROVE APERTE PER LA VERIFICA DELLE ABILITÀ Competenze di base 1 Qual è la differenza tra selezione unaria e binaria? 2 In Pasal la dihiarazione delle variabili avviene on la parola hiave: a CONST b TYPE VAR d LABEL 3 La dihiarazione delle variabili deve avvenire: a prima della parola hiave Program; b in un punto qualunque ma dopo la parola hiave Program; in qualsiasi punto del programma; d dopo la parola hiave Program e prima del Begin del orpo del programma. 4 Spunta le dihiarazioni errate: a VAR A, B, C: INTEGER b VAR A, B, C:INTEGER VAR A;B;C: INTEGER d VAR A: STRING; B: INTEGER, C: REAL 5 L intervallo di definizione del tipo Integer in Pasal è: a , b 128, , s Nessuno dei preedenti 6 Che osa è il odie ASCII? 7 Qual è la differenza tra le due seguenti dihiarazioni? VAR Nome: STRING; VAR Nome: STRING[25]; 8 Qual è la differenza tra le istruzioni READ e READLN? 9 Qual è la differenza tra le istruzioni WRITE e WRITELN? 10 Qual è il risultato fornito dalla seguente istruzione? WRITE(Perimetro :5 :2); 11 In Pasal la dihiarazione delle ostanti avviene on la parola hiave: a CONST b TYPE VAR LABEL 12 Con quali simboli è possibile inserire un ommento in Pasal? 13 L algoritmo nella pagina seguente presenta un loop infinito. Individua l errore. ALGORITMO Due INIZIO Y 7 X 1 RIPETI. X Y Y Y + 1 FINCHÉ Y = 0 SCRIVI(X) FINE 14 Analizza il seguente pseudoodie: ALGORITMO Tre INIZIO I 0 MENTRE I > 2 ESEGUI R R + 1 FINEMENTRE R 5 FINE Quante volte sarà eseguito il ilo? Per quale motivo? 15 Analizza il seguente pseudoodie: ALGORITMO Quattro INIZIO I 1 R 0 MENTRE I 10 ESEGUI R R + 1 I I + 1 FINEMENTRE R 5 SCRIVI(R) FINE Quante volte viene eseguito il ilo MENTRE? Qual è il valore della variabile R all usita dal ilo (ioè subito dopo l eseuzione dell istruzione FINEMENTRE)? IL LINGUAGGIO PASCAL 53

54 Training PROVE APERTE PER LA VERIFICA DELLE ABILITÀ Qual è il valore visualizzato della variabile R? Se al posto dell istruzione SCRIVI(R) avessimo sritto LEGGI(R), quale risultato avremmo ottenuto? 16 Analizza il seguente pseudoodie: ALGORITMO Cinque INIZIO I 1 R 0 MENTRE I 10 ESEGUI R R + 1 I I + 2 FINEMENTRE SCRIVI(R) FINE Quante volte viene eseguito il ilo MENTRE? Qual è il valore della variabile R all usita dal ilo (ioè subito dopo l eseuzione dell istruzione FINEMENTRE)? Qual è il valore visualizzato della variabile R? Quale ritoo avresti apportato alla variabile I affinhé il ilo non venisse mai avviato? Quale ritoo avresti apportato alla variabile I affinhé il ilo venisse eseguito una sola volta? Se si sostituisse l istruzione I I + 2 on I I 1, quale risultato si otterrebbe? 17 Analizza il seguente pseudoodie: ALGORITMO Sei INIZIO I 1 MENTRE I > 19 ESEGUI SCRIVI(I) I I + 1 FINEMENTRE FINE Quale sequenza produe in output? Se il valore di I fosse partito da 0, quale sequenza sareb be stata prodotta in output? Se il valore I fosse partito da 19, quale sequenza sarebbe stata prodotta in output? 18 Trova il valore delle variabili I ed R alla fine dell eseuzione del seguente pseudoodie, ompletando la tavola di traia: ALGORITMO Sette INIZIO I 1 R 0 MENTRE I > 0 ESEGUI R R + 1 SE R 2 ALLORA I 0 ALTRIMENTI I 1 FINESE FINEMENTRE FINE ISTRUZIONE I R? I 1 1 Quante volte viene eseguito il ilo MENTRE? 19 Trova il valore delle variabili I ed R alla fine dell eseuzione dello pseudoodie e ompleta la tavola di traia: ALGORITMO Otto INIZIO I 1 R 0 MENTRE I = 0 ESEGUI R R + 1 SE R 2 ALLORA I 1 FINESE FINEMENTRE FINE R 0 0 I > 0? Quante volte viene eseguito il ilo MENTRE? V 54 IL LINGUAGGIO PASCAL

55 Training PROVE APERTE PER LA VERIFICA DELLE ABILITÀ ISTRUZIONE I R? I 1 1 R 0 0 I = 0? FINESE I I + 1 FINEMENTRE SCRIVI(I, R) FINE 20 Considera il seguente pseudoodie in ui Numero1 e Numero2 sono variabili di tipo intero: ALGORITMO Nove INIZIO LEGGI(Numero1) LEGGI(Numero2) Effetto 0 MENTRE Numero1 0 ESEGUI SE Numero1 MOD 2 0 ALLORA Effetto Effetto + Numero2 FINESE Numero1 Numero1 / 2 Numero2 Numero2 * 2 FINEMENTRE SCRIVI(Effetto) FINE Qual è l output prodotto nel aso in ui i valori delle variabili di input siano: Numero1 = 37 e Numero2 = 41? Qual è l output prodotto nel aso in ui i valori delle variabili di input siano: Numero1 = 31 e Numero2 = 17? Che osa rappresenta il risultato fornito in output? 21 Trova il valore delle variabili I ed R alla fine dell eseuzione del seguente pseudoodie, ompletando la tavola di traia: ALGORITMO Diei INIZIO I 1 R 3 MENTRE R > 1 ESEGUI SE I 3 ALLORA R R 1 ALTRIMENTI R R Il seguente algoritmo presenta delle istruzioni he possono essere omesse. Individua quali sono. ALGORITMO Undii INIZIO ISTRUZIONE I R? I 1 1 R 3 3 R > 1? SE A > 0 ALLORA SCRIVI( Il numero è positivo ) ALTRIMENTI SE A < 0 ALLORA SCRIVI( Il numero è negativo ) ALTRIMENTI SE A = 0 ALLORA SCRIVI( Il numero è nullo ) FINESE FINESE FINESE FINE IL LINGUAGGIO PASCAL 55

56 I vettori Proviamo a risolvere il seguente problema: dati in input 4 numeri, stamparli nell ordine inverso. La soluzione non appare per nulla omplessa: è suffiiente rihiedere in input quattro variabili, ad esempio A, B, C e D, e stamparle nell ordine inverso, ioè D, C, B e A. Complihiamo il problema: dati in input 100 numeri, stamparli nell ordine inverso. La situazione è un po diversa, in quanto dovremmo rihiedere in input ben 100 variabili on nomi diversi (provate solamente a pensare agli inonvenienti legati alla selta dei nomi). Utilizzando un osì elevato numero di variabili, però, la soluzione impostata, anhe se orretta, non rispehia le regole di una buona programmazione. Complihiamo anora un po : dati in input N numeri, stampare nell ordine inverso. Questa volta i troviamo davvero nei guai, in quanto, on le nostre attuali onosenze, il problema non può essere risolto: non sappiamo, infatti, quante variabili utilizzare. Potrebbero essere 5, o 100, o Come fare? È neessario utilizzare una struttura in grado di ontenere un insieme di dati dello stesso tipo (nel nostro aso tutti numeri). Abbiamo bisogno di un vettore. Un vettore (o array monodimensionale) è una struttura di dati, di tipo sequenziale a arattere statio, identifiata da un nome e ostituita da un insieme di elementi omogenei fra loro, individuabili per mezzo di un indie. La struttura astratta vettore è memorizzata di solito tramite la struttura onreta sequenziale. Un vettore è un insieme di variabili dello stesso tipo ui è possibile aedere tramite un nome omune e referenziare uno speifio elemento tramite un indie. Nelle variabili semplii per aedere al valore ontenuto in esse è neessario speifiare il nome ed, inoltre, una variabile on un valore diverso avrà un nome diverso. Nel vettore esiste un nome he però stavolta identifia il vettore ome struttura e i suoi singoli elementi verranno referenziati speifiando la loro posizione relativa all interno della struttura (l indie). Si può immaginare un array ome una sorta di asellario, le ui aselle sono dette elementi (o elle) dell array stesso. Ciasuna delle elle si omporta ome una variabile tradizionale; tutte le elle sono variabili di uno stesso tipo preesistente, detto tipo base dell array. Si parlerà periò di tipi ome array di interi, array di aratteri, array di stringhe e osì via. Ciasuna delle elle dell array è identifiata da un valore di indie. L indie è generalmente numerio e i valori he gli indii possono assumere sono numeri interi ontigui he partono da 0 o da 1. Si potrà quindi parlare della ella di indie 0, di indie 1, e, in generale, di indie N, dove N è un intero ompreso fra 0 (o 1) e il valore massimo per gli indii dell array (ossia la dimensione dell array). Nella stesura degli algoritmi si è soliti far partire l indie dal valore 1 poihé iò è più naturale e onsente di trattare i vettori in modo più intuitivo. Per i linguaggi di programmazione il disorso è diverso perhé aluni di essi impongono he l indie del vettore parta da 0 altri lo fanno partire da 1 (aluni permettono entrambe le ose). Faiamo un esempio: nel linguaggio C ogni elemento viene identifiato da un numero, ontando da 0 (invee he da 1) ed arrivando ad N-1 (se la dimensione è uguale a N=10 il valore massimo dell indie sarà 9). Il fatto di far partire l indie da 0 non deve generare onfusione. Per far omprendere meglio il onetto diamo uno sguardo all immagine he i riporta ad un paragone on il mondo reale. 56 IL LINGUAGGIO PASCAL

57 I vettori In questa immagine l array viene paragonato ad un palazzo. Pensatei bene, quando diiamo he un palazzo ha 5 piani, in realtà ha sei livelli; ioè il piano terra è il primo livello, il primo piano il seondo, e osì via; analogamente suede nell array, se abbiamo un array di dimensione 6, i suoi indii andranno da 0 a 5 e un elemento rihiamato, ad esempio, tramite l indie 3, è il quarto elemento, questo perhé si inizia a ontare da 0. In Pasal, omunque, il problema non si pone poihé l indie del primo elemento parte proprio da 1! Dihiariamo e utilizziamo i vettori Devi dihiarare i vettori, ome tutte le variabili, nella sezione dihiarativa di un programma Pasal. Per dihiarare un vettore, utilizza la seguente sintassi: NomeVettore : ARRAY [1..Lunghezza] OF Tipo; Lunghezza: rappresenta il numero di elementi del vettore; Tipo: rappresenta il tipo di questi elementi.. Nel linguaggio Pasal, i termini Vettore e Array sono utilizzati ome sinonimi. Se vuoi dihiarare, ad esempio, un vettore di nome V di 10 elementi interi, srivi: V : ARRAY [1..10] OF Integer; Per riferirti ad un elemento, india il nome del vettore, la parentesi quadra aperta ( [ ), la posizione, la parentesi quadra hiusa ( ] ). Per inserire, ad esempio, i valori 12, 34, 56 nei primi tre elementi, srivi: V[1] := 12; V[2]:= 34; V[3]:= 56; Puoi anhe reare vettori di stringhe. Per dihiarare, ad esempio, un vettore di nome Animali, ontenente 5 nomi di animali, srivi: Animali : ARRAY [1..5] OF String; Per inserire i valori Cavallo, Rana, Giraffa, nei primi tre elementi, srivi: V[1] := Cavallo ; V[2]:= Rana ; V[3]:= Giraffa ; Come puoi notare, l indie di un vettore inizia sempre da 1 e deve assumere sempre un valore intero. IL LINGUAGGIO PASCAL 57

58 (ontinua) Carihiamo gli elementi di un vettore Di seguito sono riportati l algoritmo per il ariamento di un vettore (realizzato on l uso del ostrutto iterativo RIPETI) e il programma Pasal he lo tradue. ALGORITMO Caria INIZIO SCRIVI ( Quanti numeri vuoi inserire? (non più di 100) ) LEGGI (N) I ß 1 // la prima posizione da riempire è la n 1 RIPETI SCRIVI ( Inserisi l elemento n, I) LEGGI (V [I ]) // il valore in input è messo nella posizione I del vettore I ß I + 1 // I india la posizione suessiva FINCHE (I > N) // hai già preso in input tutti gli N elementi FINE PROGRAM Caria; VAR I, N:Integer; V: ARRAY [1..100] OF Integer; BEGIN WRITE( Quanti numeri vuoi inserire)? (non piu di 100) ); READLN(N); I:=1; REPEAT WRITE( Inserisi l elemento, I, ); READLN(V[I]); I:=I+1 UNTIL I > N; END. Nell istruzione READLN del ilo REPEAT, nota la presenza di V[I]. In questo modo leggi un valore in input e lo inserisi nella posizione I all interno del vettore V. Compila ed esegui il programma, otterrai: 58 IL LINGUAGGIO PASCAL

59 I vettori Il programma he segue è una modifia del programma di ariamento. Qual è il suo risultato finale? PROGRAM Caria2; VAR I, N, Elemento:Integer; V: ARRAY [1..100] OF Integer; BEGIN WRITELN( Cariamento ); WRITE( Quanti numeri vuoi inserire)? (non piu di 100) ); READLN(N); I:=1; REPEAT WRITE( Inserisi l elemento, I, ); READLN(Elemento); IF (Elemento >0) AND (Elemento < 10) THEN BEGIN V[I]:= Elemento; I:=I+1 END UNTIL I > N; WRITELN( Premi INVIO per usire ); READLN; END. Nota la ondizione dell istruzione IF. In questo aso, le parentesi tonde sono neessarie per individuare le due proposizioni semplii: Elemento > 0, Elemento < 10, sulle quali appliare l operatore logio AND. Ora, prima di andare avanti, risolvi subito i seguenti problemi: Riempi on il valore 0, ogni elemento di un vettore di 100 elementi interi. Riempi on la stringa Ciao a tutti, ogni elemento di un vettore di stringhe di 100 elementi. IL LINGUAGGIO PASCAL 59

60 Elementi di un vettore Visualizziamo gli elementi di un vettore Di seguito è riportato l algoritmo di visualizzazione degli elementi di un vettore e il programma he lo tradue. ALGORITMO Visualizza INIZIO I ß 1 // il primo elemento da visualizzare è nella posizione n 1 RIPETI SCRIVI (V [I ]) // è visualizzato l elemento in posizione I I ß I + 1 // I india la posizione suessiva FINCHE (I > N) // hai già visualizzato tutti gli N elementi FINE PROGRAM Visualizza; VAR I, N:Integer; V: ARRAY [1..100] OF Integer; BEGIN I:=1; REPEAT WRITE(V[I], ); I:=I+1 UNTIL I > N; END. Il seguente programma mette insieme il ariamento e la suessiva visualizzazione degli elementi: PROGRAM CariaEVisualizza; VAR I, N:Integer; V: ARRAY [1..100] OF Integer; BEGIN WRITE( Quanti numeri vuoi inserire)? (non piu di 100) ); READLN(N); I:=1; REPEAT WRITE( Inserisi l elemento, I, ); READLN(V[I]); I:=I+1 UNTIL I > N; I:=1; // visualizza gli elementi REPEAT WRITE(V[I], ); I:=I+1 UNTIL I > N; END. 60 IL LINGUAGGIO PASCAL

61 Elementi di un vettore Come puoi notare, la variabile I, utilizzata nel primo ilo, viene riutilizzata anhe nel seondo. In questo modo riduiamo il numero omplessivo di variabili. Compila ed esegui il programma, otterrai: Modifia il programma preedente, per ottenere il seguente risultato: Riempi on il valore 0, ogni elemento di un vettore di 100 elementi interi. Riempi on la stringa Ciao a tutti, ogni elemento di un vettore di stringhe di 100 elementi. L operazione di assegnazione di un valore iniziale a tutti gli elementi di un vettore, prende il nome di inizializzazione. IL LINGUAGGIO PASCAL 61

62 Riera in un vettore Rierhiamo un elemento in un vettore Il problema della riera di un elemento in un vettore è sempre stato oggetto di studi approfonditi, he hanno prodotto algoritmi anhe molto omplessi. Considera un algoritmo he, dato in input un numero X, verifia se il numero è presente nel vettore. In aso affermativo, omunia in quale posizione si trova; in aso negativo omunia he non è presente. Puoi rierare un elemento in un vettore, solo dopo averlo ariato. Nel programma Pasal, di seguito riportato, puoi vedere le istruzioni neessarie a ariare il vettore, inserite prime di quelle neessarie a rierare un elemento. Per questo motivo, il programma si hiama CariaERiera. ALGORITMO Riera1 INIZIO SCRIVI ( Inserisi il numero da erare ) LEGGI (X) I ß 1 Conta ß 0 // X potrebbe non esseri, quindi il valore iniziale // del ontatore deve essere 0 RIPETI SE (V [I ] = X) ALLORA SCRIVI ( il numero,x, si trova in posizione, I) Conta ß Conta + 1 // la prima volta he trovi X, Conta // vale 1 (0+1), la seonda 2 (1+1) FINESE I ß I + 1 FINCHE (I > N) SE (Conta = 0) ALLORA SCRIVI ( il numero,x, non è presente nel vettore ) FINESE FINE PROGRAM CariaERiera; VAR I, N, X, Conta:Integer; V: ARRAY [1..100] OF Integer; BEGIN WRITELN( Cariamento ); WRITE( Quanti numeri vuoi inserire)? (non piu di 100) ); READLN(N); I:=1; REPEAT WRITE( Inserisi l elemento, I, ); READLN(V[I]); I:=I+1 UNTIL I > N; I:=1; WRITELN( Riera ); 62 IL LINGUAGGIO PASCAL

63 Riera in un vettore WRITELN( Inserisi il numero da rierare: ); READLN(X); I:=1; Conta :=0; REPEAT IF V[I] = X THEN BEGIN WRITELN( il numero, X, si trova in posizione:, I); Conta:=Conta +1 END; I:=I+1; UNTIL I > N; IF Conta = 0 THEN WRITELN( il numero, X, non e presente nel vettore ); END. Compila ed esegui il programma. Questo programma visualizza differenti messaggi in base al ontenuto del vettore e al valore dell elemento da rierare. Le videate mostrano il risultato se: l elemento da rierare è presente una sola volta nel vettore; l elemento da rierare è presente più volte nel vettore; l elemento da rierare non è presente nel vettore. IL LINGUAGGIO PASCAL 63

64 Ordinamento di un vettore Ordiniamo gli elementi di un vettore Per ordinare un vettore, esistono molti algoritmi he utilizzano tenihe differenti. Tutte mirano a ridurre il tempo di elaborazione neessario ad eseguire l ordinamento. Di seguito sono riportati: l algoritmo per l ordinamento (in ordine resente) e il relativo programma Pasal. L algoritmo utilizzato è tra i più semplii. ALGORITMO Ordinamento INIZIO I ß 1 RIPETI J ß I + 1 // ominia il onfronto on l elemento // nella posizione affiano RIPETI SE (V [I ] > V [J ]) ALLORA Temp ß V[I] V[I] ß V[J] // sambia gli elementi V[J] ß Temp FINESE Jß J + 1 FINCHE (J > N) I ß I + 1 // ora l elemento in posizione I è al posto giusto e passi // a sistemare l elemento nella posizione suessiva FINCHE (I > (N-1)) //devi arrivare al penultimo elemento. // Puoi anhe srivere (I =N) FINE 64 IL LINGUAGGIO PASCAL

65 Ordinamento di un vettore PROGRAM Ordinamento; VAR I, J, Temp, N, X, Conta:Integer; V: ARRAY [1..100] OF Integer; BEGIN I:=1; REPEAT J:=I+1; REPEAT IF V[I] > V[J] THEN BEGIN Temp := V[I]; V[I]:= V[J]; V[J]:= Temp; END; J:=J+1; UNTIL J > N; I:=I+1; UNTIL I > (N-1); END. Puoi ordinare un vettore, solo dopo averlo ariato. Per visualizzare i suoi elementi, inoltre, hai bisogno dell algoritmo della visualizzazione. Vedrai, osì, la diversa disposizione degli elementi, dopo l ordinamento. IL LINGUAGGIO PASCAL 65

66 Esempi sui vettori Un esempio d uso dei vettori Di seguito sono riportati, l algoritmo degli invitati ad una festa e il relativo programma Pasal he lo tradue. ALGORITMO Invitati INIZIO // ariamento: SCRIVI ( Quanti invitati i sono? (non più di 100) ) LEGGI (N) K ß 1 RIPETI SCRIVI ( Inserisi l invitato n, K) LEGGI (Festa [K]) K ß K + 1 FINCHE (K> N) // ordinamento: I ß 1 RIPETI J ß I + 1 RIPETI SE (Festa [I] > Festa [J]) ALLORA Temp ß Festa [I] Festa [I] ß Festa [J] Festa [J] ß Temp FINESE Jß J + 1 FINCHE (J > N) I ß I + 1 FINCHE (I > (N-1)) // visualizzazione: K ß 1 RIPETI SCRIVI (Festa [K]) K ß K + 1 FINCHE (K> N) FINE PROGRAM Invitati; VAR I, K, J, N, X, Conta: Integer; Temp: String; Festa: ARRAY [1..100] OF String; BEGIN // ariamento WRITELN( Cariamento ); WRITE( Quanti invitati i sono? (non piu di 100) ); READLN(N); K:=1; REPEAT WRITE( Inserisi l invitato, K, ); READLN(Festa[K]); K:=K+1 UNTIL K > N; // ordinamento I:=1; REPEAT 66 IL LINGUAGGIO PASCAL

67 Esempi sui vettori J:=I+1; REPEAT IF Festa[I] > Festa[J] THEN BEGIN Temp := Festa[I]; Festa[I]:= Festa[J]; // sambia gli elementi Festa[J]:= Temp; END; J:=J+1; UNTIL J > N; I:=I+1; UNTIL I > (N-1); // visualizzazione WRITELN( Visualizzazione ); WRITELN( Gli invitati ordinati sono: ); I:=1; REPEAT WRITE(Festa[I], ); I:=I+1 UNTIL I > N; END. Compila ed esegui questo programma, otterrai il seguente risultato: Come puoi notare, hai utilizzato un vettore di stringhe di nome Festa, per inserire i nominativi degli invitati. Due elementi di questo vettore possono essere onfrontati, ome nel aso di un vettore ontenente numeri. Considera, infatti, infatti, l istruzione: IF Festa[I] > Festa[J] THEN Nella ondizione di questa istruzione, onfronti, infatti, due elementi del vettore he sono, in questo aso, due stringhe. Effettui lo sambio, se una stringa preede l altra in ordine alfabetio. Per verifiare iò, il linguaggio Pasal onfronta le due stringhe, arattere per arattere. Se onfronta, ad esempio, la stringa Rossi Paolo on la stringa Neri Giovanni, lo sambio avviene, poihé la seonda preede la prima in ordine alfabetio. Riorda he, all interno delle stringhe, i aratteri maiusoli sono diversi da quelli minusoli. La stringa Rossi Paolo, per esempio, preede la stringa rossi Paolo, poihè il primo arattere della prima stringa è maiusolo. Stai, quindi, attento ad inserire i nomi e ognomi on lo stesso riterio. Ad esempio, on l iniziale sempre maiusola (o sempre minusola). Modifia il programma preedente per ottenere il seguente risultato a video: IL LINGUAGGIO PASCAL 67

68 Vettori e insiemi Utilizziamo i vettori per lavorare sugli insiemi Hai imparato ad usare i vettori e a rappresentare on essi sequenze di dati. Ora, utilizza i vettori per lavorare sugli insiemi. Nel modulo B hai esaminato la differenza tra un eleno in generale ed un insieme. Quest ultimo è una sequenza di valori tutti diversi, di uno stesso tipo. Anhe gli insiemi, quindi, si rappresentano on i vettori. Si possono ariare, ordinare, visualizzare e si può fare una riera. Come esempio di utilizzo dei vettori on gli insiemi, onsidera l operazione di Intersezione e il relativo algoritmo. ALGORITMO Intersezione INIZIO // ariamento di A: SCRIVI ( Quanti elementi i sono in A? (non più di 100) ) LEGGI (NA) K ß 1 RIPETI SCRIVI ( Inserisi l elemento n, K) LEGGI (A [K]) K ß K + 1 FINCHE (K > NA) // ariamento di B: SCRIVI ( Quanti elementi i sono in B? (non più di 100) ) LEGGI (NB) K ß 1 // puoi utilizzare di nuovo K RIPETI SCRIVI ( Inserisi l elemento n, K) LEGGI (B [K]) K ß K + 1 FINCHE (K > NB) // riera degli elementi dell intersezione: I ß 1 RIPETI X ß A[I] // X è l elemento di A da erare in B J ß 1 Trovato ß falso RIPETI SE (X = B [J ]) ALLORA // vuol dire he X è in A e in B SCRIVI (X) Trovato ß vero FINESE Jß J + 1 FINCHE ((J > NB) OR (Trovato=vero)) // se hai trovato X puoi fermarti // perhé in B gli elementi sono tutti diversi I ß I + 1 // passa all elemento suessivo di A FINCHE (I > NA) FINE Puoi tradurlo on il seguente programma Pasal. PROGRAM Intersezione; VAR K, I, J, NA, NB, X:Integer; A,B: ARRAY [1..100] OF Integer; Trovato : Boolean; BEGIN // ariamento di A 68 IL LINGUAGGIO PASCAL

1 2-6 7-74 Commento * Continuazione riga! Viene ignorato tutto quello che viene scritto dopo questo carattere [etichett a]

1 2-6 7-74 Commento * Continuazione riga! Viene ignorato tutto quello che viene scritto dopo questo carattere [etichett a] La programmazione è l'arte di far ompiere al omputer una suessione di operazioni atte ad ottenere il risultato voluto. Srivere un programma è un po' ome dialogare ol omputer, dobbiamo fornirgli delle informazioni

Dettagli

Portale dei Medici. Manuale Utente - Medico SIS PRJ032. Progetto APMMG. 1 Interno 2 Pubblico Controllato 3 Pubblico 9 Non Classificato

Portale dei Medici. Manuale Utente - Medico SIS PRJ032. Progetto APMMG. 1 Interno 2 Pubblico Controllato 3 Pubblico 9 Non Classificato SIS PRJ32 Portale dei Medii Manuale Utente - Medio eimedii_medio_prj32_f1.do 1. Riservato 1 SIS PRJ32 Informazioni legali Tutti i diritti sono riservati Questo doumento ontiene informazioni di proprietà

Dettagli

+ t v. v 3. x = p + tv, t R. + t. 3 2 e passante per il punto p =

+ t v. v 3. x = p + tv, t R. + t. 3 2 e passante per il punto p = 5. Rette e piani in R 3 ; sfere. In questo paragrafo studiamo le rette, i piani e le sfere in R 3. Ci sono due modi per desrivere piani e rette in R 3 : mediante equazioni artesiane oppure mediante equazioni

Dettagli

Diaz - Appunti di Statistica - AA 2001/2002 - edizione 29/11/01 Cap. 5 - Pag. 1

Diaz - Appunti di Statistica - AA 2001/2002 - edizione 29/11/01 Cap. 5 - Pag. 1 Diaz - Appunti di Statistia - AA 001/00 - edizione 9/11/01 Cap. 5 - Pag. 1 Capitolo 5. Chi quadro. Goodness-of-fit test. Test di simmetria. Taelle. Taelle m n. Correzione per la ontinuità. Test esatto

Dettagli

http://solutions.brother.com

http://solutions.brother.com PROGRAMMA PER LA CREAZIONE DI RICAMI Manuale d istruzione Visitare il sito http://solutions.brother.om per ottenere supporto sui prodotti e per le domande frequenti (FAQ). INFORMAZIONI IMPORTANTI: NORMATIVE

Dettagli

1. Elementi di Calcolo Combinatorio.

1. Elementi di Calcolo Combinatorio. . Elementi di Calolo Combinatorio. Prinipio Base del Conteggio Supponiamo he si devono ompiere due esperimenti. Se l esperimento uno può assumere n risultati possibili, e per ognuno di questi i sono n

Dettagli

ICEC Istituto di Certificazione per l area pelle

ICEC Istituto di Certificazione per l area pelle No:marhio_ICEC_r03_ie.do Approved by PRES. ICEC Date: 16.09.2010 Replaes: 02 Page 1 di 10 Regole d uso dei marhi di ertifiazione ICEC INDICE 1. Sopo e ampo di appliazione 1.1 Marhi di Certifiazione ISO

Dettagli

Figura 2.1. A sottoinsieme di B

Figura 2.1. A sottoinsieme di B G Sammito, ernardo, Formulario di matematia Insiemi F Cimolin, L arletta, L Lussardi Insiemi Generalità Un insieme è una ollezione distinguibile di oggetti, detti elementi dell'insieme Quando un elemento

Dettagli

CBM a.s. 2012/2013 PROBLEMA DELLE SCORTE

CBM a.s. 2012/2013 PROBLEMA DELLE SCORTE CBM a.s. 212/213 PROBLEMA DELLE SCORTE Chiamiamo SCORTA ogni riserva di materiali presente all interno del sistema produttivo in attesa di essere sottoposto ad un proesso di trasformazione o di distribuzione.

Dettagli

f Le trasformazioni e il trattamento dell aria

f Le trasformazioni e il trattamento dell aria f Le trasformazioni e il trattamento dell aria 1 Generalità Risolvendo il sistema (1) rispetto ad m a si ottiene: () Pertanto, il punto di misela sul diagramma psirometrio è situato sulla ongiungente dei

Dettagli

MOMENTI E CENTRAGGIO DEL VELIVOLO

MOMENTI E CENTRAGGIO DEL VELIVOLO x 1 x ISTITUZIONI DI INGEGNERIA AEROSAZIALE OENTI E CENTRAGGIO VELIVOLO OENTI E CENTRAGGIO DEL VELIVOLO er il alolo delle prestazioni in volo orizzontale rettilineo ed uniforme, il velivolo può essere

Dettagli

PRINCIPIO BASE DEL CONTEGGIO

PRINCIPIO BASE DEL CONTEGGIO Calolo ombinatorio PRINCIPIO BASE DEL CONTEGGIO Se dobbiamo ompiere due esperimenti onseutivi ed il primo esperimento può assumere N risultati diversi e per ognuno di questi il seondo esperimento ne può

Dettagli

Conosci i tuoi diritti?

Conosci i tuoi diritti? Il Regolamento Dublino e la proedura di asilo in Italia italiano Conos Guida per rihiedenti asilo Progetto ofinanziato da UNIONE EUROPEA Fondo Europeo per i Rifugiati 2008 2013 P.A. 2010 - Azione 1.A Gente

Dettagli

Considerate gli insiemi A = {1,2,3,4} e B = {a,b,c}; quante sono le applicazioni (le funzioni) di A in B?

Considerate gli insiemi A = {1,2,3,4} e B = {a,b,c}; quante sono le applicazioni (le funzioni) di A in B? FUNZIONI E CALCOLO COMBINATORIO Il quesito assegnato all esame di stato 2004 (sientifio Ordinamento e PNI) suggerise un ollegamento tra funzioni ostruite tra insiemi finiti e Calolo Combinatorio QUESITO

Dettagli

LEGGE 14 NOVEMBRE 1995, N.

LEGGE 14 NOVEMBRE 1995, N. Relazione tenia (riferimento delibera 204/99) PRESUPPOSTI E FONDAMENTI DEL PROVVEDIMENTO PER LA REGOLAZIONE DELLA TARIFFA BASE, DEI PARAMETRI E DEGLI ALTRI ELEMENTI DI RIFERIMENTO PER LA DETERMINAZIONE

Dettagli

Il corpo nero e la temperatura dei corpi celesti di Daniele Gasparri

Il corpo nero e la temperatura dei corpi celesti di Daniele Gasparri Il orpo nero e la temperatura dei orpi elesti di Daniele Gasparri Gli sienziati del diiannovesimo seolo, attraverso degli esperimenti, soprirono una osa estremamente interessante: prendendo un orpo qualsiasi

Dettagli

MISURE DI RESISTENZA CON IL METODO DI CONFRONTO DELLE CADUTE DI TENSIONE

MISURE DI RESISTENZA CON IL METODO DI CONFRONTO DELLE CADUTE DI TENSIONE MISUR DI RSISTNZA CON IL MTODO DI CONFRONTO DLL CADUT DI TNSION 1. Premessa Oggigiorno esistono strumenti ompatti e semplii da utilizzare per la misura di resistenza: gli ohmetri (parte integrante dei

Dettagli

Movimento nei fluidi : prima parte Applicazioni della meccanica dei fluidi

Movimento nei fluidi : prima parte Applicazioni della meccanica dei fluidi In questa sezione vi sono argomenti he non fanno normalmente parte di un orso tradizionale di Fisia. Si tratta di una breve esursione nei viini ampi della biologia e della zoologia: appliazioni delle leggi

Dettagli

ALCUNE OSSERVAZIONI SUI TRIANGOLI

ALCUNE OSSERVAZIONI SUI TRIANGOLI LUNE OSSERVZIONI SUI TRINGOLI ataloghiamo i triangoli seondo i lati seondo gli angoli 115 3 67 81 Esiste sempre il triangolo? Selte a aso le misure dei lati, è sempre possibile ostruire il triangolo? Quali

Dettagli

Conosci i tuoi diritti?

Conosci i tuoi diritti? Co nosi Dublino i dublino italiano Il Regolamento Dublino e la proedura di asilo in Italia i i tuoi diritti Guida per rihiedenti asilo Progetto ofinanziato da UNIONE EUrOPEA Fondo Europeo per i Rifugiati

Dettagli

! Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.

! Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale. Gerarhie Riorsive! Una gerarhia riorsiva eriva alla presenza i una riorsione o ilo (un anello nel aso più semplie) nello shema operazionale.! Esempio i shema operazionale on anello:! Rappresentazione sullo

Dettagli

PROVA DI LABORATORIO # 5

PROVA DI LABORATORIO # 5 PROVA DI LABORATORIO # 5 DEL 03/11/1998 Corso di Tenia delle Alte Tensioni ANALISI DELLA CURVA DI PASCHEN IN ARIA E IN SF 6. VERIFICHE DI MASSIMA E NUMERICA DI UN CIRCUITO MOLTIPLICATORE DI MARX Si intende

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Serializzazione degli imballaggi farmaceutici:

Serializzazione degli imballaggi farmaceutici: Serializzazione degli imballaggi farmaeutii: Valutazione delle tenologie di odifia per la stampa di odii alfanumerii e DataMatrix di alta qualità SERIALIZZAZIONE DEGLI IMBALLAGGI FARMACEUTICI: Valutazione

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

6.1 PROVA DI CARICO STATICA SU PALI DI FONDAZIONE

6.1 PROVA DI CARICO STATICA SU PALI DI FONDAZIONE 6 PROVE SULLE FONDAZIONI 6.1 PROVA DI CARICO STATICA SU PALI DI FONDAZIONE Il omportamento di un palo di fondazione è influenzato in maniera determinante dalla tenologia eseutiva (palo battuto prefabbriato,

Dettagli

www.wlascuola.4000.it

www.wlascuola.4000.it 1 Cenni di programmazione Risolvere un problema significa trovare un procedimento che consenta di produrre i risultati, a partire dai dati iniziali, attraverso un processo di elaborazione. La metodologia

Dettagli

Esercizio no.1 soluzione a pag.3

Esercizio no.1 soluzione a pag.3 Edutenia.it Modulazioni digitali eserizi risolti 1 Eserizio no.1 soluzione a pag.3 Quanti bit sono neessari per trasmettere 3 simboli e quale è la veloità di modulazione e la veloità di trasmissione se

Dettagli

LAVORO A TEMPO PARZIALE

LAVORO A TEMPO PARZIALE N. 2 a ura del Dipartimento di Diritto del Lavoro e delle Relazioni Industriali avv. Luiano Rahi - avv. Frano Fabris avv. Barbara De Benedetti - avv. Vanessa Perazzolo dott. Matteo Azzurro IN QUESTO NUMERO:

Dettagli

Capitolo. Calcoli finanziari

Capitolo. Calcoli finanziari Capitolo Caloli finanziari 19 19-1 Prima di eseguire i aloli finanziari 19-2 Caloli di interesse semplie 19-3 Caloli di interesse omposto 19-4 Valutazione di investimenti 19-5 Ammortamento di un prestito

Dettagli

Modelli di base per la politica economica

Modelli di base per la politica economica Modelli di base per la politia eonomia Capitolo Marella Mulino Modelli di base per la politia eonomia Corso di Politia eonomia a.a. 22-23 Modelli di base per la politia eonomia Capitolo Capitolo Modello

Dettagli

CURRICOLO VERTICALE DI SCIENZE

CURRICOLO VERTICALE DI SCIENZE a a a a a COMPETENZE DI CITTADINANZA Aquisire e interpretare l informazione Individuare ollegamenti e relazioni Agire in modo autonomo e responsaile Individuare ollegamenti e relazioni Aquisire e interpretare

Dettagli

Impianto di pressurizzazione e condizionamento

Impianto di pressurizzazione e condizionamento Capitolo 8 Impianto di pressurizzazione e ondizionamento Capitolo 8 Impianto di pressurizzazione e ondizionamento Queste dispense possono essere liberamente sariate dal sito internet del Politenio di Milano.

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

Come convertire un file in Spool in un documento Pdf personalizzato

Come convertire un file in Spool in un documento Pdf personalizzato Come onvertire un file in Spool in un doumento Pdf personalizzato Copyright 2010 2014 JetLab S.r.l. Tutti i diritti riservati Copyright 2011 2015 JetLab S.r.l. Tutti i diritti riservati è un marhio di

Dettagli

IMPOSTE DIRETTE (IRPEF) SOSTITUTI D IMPOSTA

IMPOSTE DIRETTE (IRPEF) SOSTITUTI D IMPOSTA Milano, 17 novembre 2014 a ura di Dott. Alessandro Gulisano Avv. Aura Moraglia Dott. Gianpiero Notarangelo IMPOSTE DIRETTE (IRPEF) SOSTITUTI D IMPOSTA Art. 1 - Dihiarazione dei redditi preompilata Art.

Dettagli

Corso di TECNOLOGIE DELLE ENERGIE RINNOVABILI. L energia eolica: il vento

Corso di TECNOLOGIE DELLE ENERGIE RINNOVABILI. L energia eolica: il vento POLITECNICO DI BARI - FACOLTA DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA MECCANICA Corso di TECNOLOGIE DELLE ENERGIE RINNOABILI L energia eolia: il vento A.A. 203/4 Tenologie delle Energie

Dettagli

Validazione dei metodi microbiologici

Validazione dei metodi microbiologici Istituto Superiore di Sanità Organismo Rionosimento Laboratori SINAL SIT L ACCREDITAMENTO DEI LABORATORI PER LA SICUREZZA ALIMENTARE Roma 5-6 Ottobre 005 Validazione dei metodi mirobiologii Dr. Angelo

Dettagli

Programmazione in Excel con il linguaggio Visual Basic

Programmazione in Excel con il linguaggio Visual Basic Programmazione in Excel con il linguaggio Visual Basic L'ambiente di programmazione Il foglio elettronico Excel, così come gli altri prodotti Office di Microsoft, possiede un vero e proprio ambiente di

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

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

CORSO PER ESAMI PATENTE RADIOAMATORE, ANNO 2014. INCONTRO 1

CORSO PER ESAMI PATENTE RADIOAMATORE, ANNO 2014. INCONTRO 1 A... ASSOCAZONE ADOAMATO TALAN SEZONE D VNC COSO PE ESAM PATENTE ADOAMATOE, ANNO 2014. NCONTO 1 Benvenuto ai uturi OM, o HAM, osì almeno i auguriamo. È un orso ridotto, on l obiettivo di superare l esame

Dettagli

PROFILI PROFESSIONALI NETWORK OCCUPAZIONE - LECCO. Network Occupazione - Lecco Profili Professionali 1

PROFILI PROFESSIONALI NETWORK OCCUPAZIONE - LECCO. Network Occupazione - Lecco Profili Professionali 1 PROFILI PROFESSIONALI NETWORK OCCUPAZIONE - LECCO Network Oupazione - Leo Profili Professionali INDICE Premessa pag. 5 Oiettivi dell iniziativa pag. 6 Fasi di indagine pag. 7 Shema dei profili di ompetenze

Dettagli

L AMBIENTE DI PROGRAMMAZIONE TURBO PASCAL... 2 LE COMPONENTI DELL AMBIENTE DI SVILUPPO... 2 La barra dei menu... 2 Il desktop o finestra attiva...

L AMBIENTE DI PROGRAMMAZIONE TURBO PASCAL... 2 LE COMPONENTI DELL AMBIENTE DI SVILUPPO... 2 La barra dei menu... 2 Il desktop o finestra attiva... L AMBIENTE DI PROGRAMMAZIONE TURBO PASCAL... 2 LE COMPONENTI DELL AMBIENTE DI SVILUPPO... 2 La barra dei menu... 2 Il desktop o finestra attiva... 4 La linea di stato... 4 Uso delle caselle di dialogo...

Dettagli

PROVE SU UN TRASFORMATORE TRIFASE

PROVE SU UN TRASFORMATORE TRIFASE LOATOIO DI MACCHINE ELETTICHE POVE SU UN TASFOMATOE TIFASE MISUE DI ESISTENZA DEGLI AVVOLGIMENTI POVE SUL TASFOMATOE TIFASE Contenuti Le prove di laboratorio he verranno prese in esame riguardano: la misura

Dettagli

Inizio. Guida di installazione FAX-2840 / FAX-2845 FAX-2940. dalla confezione e verifica dei componenti. Nota

Inizio. Guida di installazione FAX-2840 / FAX-2845 FAX-2940. dalla confezione e verifica dei componenti. Nota Guida di installazione rapida Inizio FAX-2840 / FAX-2845 FAX-2940 Leggere innanzi tutto la Guida di siurezza prodotto e quindi la presente Guida di installazione rapida per onosere le proedure orrette

Dettagli

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO

ALGORITMI 1. GLI ALGORITMI 2. IL LINGUAGGIO DI PROGETTO ALGORITMI 1. GLI ALGORITMI Un algoritmo è la descrizione del percorso risolutivo di un problema per giungere dai dati iniziali ai risultati finali. Scriviamo l algoritmo pensando di rivolgerci a un esecutore,

Dettagli

La Logica Proposizionale. (Algebra di Boole)

La Logica Proposizionale. (Algebra di Boole) 1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOY La Logica Proposizionale (Algebra di Boole) Prof. G. Ciaschetti 1. Cenni storici Sin dagli antichi greci, la logica è intesa come lo studio del logos, che in greco

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

LA RAPPRESENTAZIONE DELLE INFORMAZIONI

LA RAPPRESENTAZIONE DELLE INFORMAZIONI ISTITUTO TECNICO E LICEO SCIENTIFICO TECNOLOGICO ANGIOY LA RAPPRESENTAZIONE DELLE INFORMAZIONI Prof. G. Ciaschetti DATI E INFORMAZIONI Sappiamo che il computer è una macchina stupida, capace di eseguire

Dettagli

Il fido e i finanziamenti bancari

Il fido e i finanziamenti bancari Modulo 7 Il fido e i finanziamenti anari 65 I destinatari del Modulo sono gli studenti he, dopo aver analizzato e appreso le aratteristihe fondamentali dell attività delle aziende di redito, le loro funzioni

Dettagli

Aztec Informatica CARL 10.0. Carico Limite e Cedimenti MANUALE D USO

Aztec Informatica CARL 10.0. Carico Limite e Cedimenti MANUALE D USO Azte Informatia CARL 10.0 Cario Limite e Cedimenti MANUALE D USO Copyright 1999-2010 Azte Informatia s.r.l. Tutti i diritti riservati. Qualsiasi doumento tenio he venga reso disponibile da Azte Informatia

Dettagli

CARL 10.0 MANUALE D USO. Aztec Informatica CARL 10.0. Carico Limite e Cedimenti MANUALE D USO

CARL 10.0 MANUALE D USO. Aztec Informatica CARL 10.0. Carico Limite e Cedimenti MANUALE D USO CARL 10.0 MANUALE D USO Azte Informatia CARL 10.0 Cario Limite e Cedimenti MANUALE D USO 0 1 CARL 10.0 MANUALE D USO Copyright 1999-2009 Azte Informatia S.r.l. Tutti i diritti riservati. Qualsiasi doumento

Dettagli

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA Algoritmi e Strutture Dati MODULO 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica

Dettagli

4.3.1. Stato limite di fessurazione.

4.3.1. Stato limite di fessurazione. DM 9/1/1996 4.3.1. Stato limite di fessurazione. 4.3.1. STATO LIMITE DI FESSURAZIONE. 4.3.1.1. Finalità. Per assiurare la funzionalità e la durata delle strutture è neessario: - prefissare uno stato limite

Dettagli

L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI

L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI Scienza ed industria hanno oggi costituito legami molto forti di collaborazione che hanno portato innovazione tecnologica sia a livello organizzativo-amministrativo

Dettagli

GUIDA RAPIDA ALL USO DI EXCEL

GUIDA RAPIDA ALL USO DI EXCEL GUIDA RAPIDA ALL USO DI EXCEL I fogli elettronici vengono utilizzati in moltissimi settori, per applicazioni di tipo economico, finanziario, scientifico, ingegneristico e sono chiamati in vari modi : fogli

Dettagli

Foglio elettronico (StarOffice)

Foglio elettronico (StarOffice) Modulo Foglio elettronico (StarOffice) Modulo - Foglio elettronico, richiede che il candidato comprenda il concetto di foglio elettronico e dimostri di sapere usare il programma corrispondente. Deve comprendere

Dettagli

GUIDA DELL UTENTE CARATTERISTICHE PRINCIPALI

GUIDA DELL UTENTE CARATTERISTICHE PRINCIPALI DORO Analisi e verifia di sezioni in.a., preompresso/post-teso e miste aiaio-alestruzzo v. 3.01.29 del 17 marzo 2015 dott. ing. FERRARI Alberto www.ferrarialberto.it GUIDA DELL UTENTE CARATTERISTICHE PRINCIPALI

Dettagli

Corso di Laurea: INGEGNERIA INFORMATICA (classe 09) Insegnamento: n Lezione: Titolo: V M. Fig. 5.1 Schematizzazione di una macchina a fluido

Corso di Laurea: INGEGNERIA INFORMATICA (classe 09) Insegnamento: n Lezione: Titolo: V M. Fig. 5.1 Schematizzazione di una macchina a fluido Corso di Laurea: INGEGNERIA INFORMATICA (lasse 09) Le equazioni del moto dei fluidi L equazione di onservazione dell energia in forma termodinamia V M Ω Ω Fig. 5. Shematizzazione di una mahina a fluido

Dettagli

Comune di Bologna. MAPPATURA ACUSTICA E PIANO D AZIONE PER L AGGLOMERATO DI BOLOGNA (D.Lgs n. 194/05)

Comune di Bologna. MAPPATURA ACUSTICA E PIANO D AZIONE PER L AGGLOMERATO DI BOLOGNA (D.Lgs n. 194/05) MAPPATURA ACUSTICA E PIANO D AZIONE PER L AGGLOMERATO DI BOLOGNA (D.Lgs n. 194/05) SINTESI NON TECNICA Coordinamento sientifio ed elaborazione della mappatura e del piano d'azione Università di Bologna

Dettagli

CALDAIA A CONDENSAZIONE abbinata ai sistemi Idea.Eco.Solar. Istruzioni per l installazione e la manutenzione

CALDAIA A CONDENSAZIONE abbinata ai sistemi Idea.Eco.Solar. Istruzioni per l installazione e la manutenzione CALDAIA A CONDENSAZIONE abbinata ai sistemi Idea.Eo.Solar Istruzioni per l installazione e la manutenzione Complimenti per la selta. WARNING La Vostra aldaia è modulante a regolazione e aensione elettronia.

Dettagli

Elettropompa per acque chiare tipo ABS IP 900

Elettropompa per acque chiare tipo ABS IP 900 Elettropompa per aque hiare tipo ABS IP 900 1084-00 15975178IT (05/2015) IT Istruzioni d installazione IT one e uso www.sulzer.om 2 Istruzioni d avviamento e uso (Traduzione delle istruzioni originali)

Dettagli

Lettura Laboratorio CLIL

Lettura Laboratorio CLIL Lettura Laoratorio CLIL Il deito pulio italiano Nel 2012 (l anno più reente per il quale aiamo dati erti), la spesa pulia totale dell Italia (omprensiva degli interessi sul deito pulio, si adi ene) era

Dettagli

Modulo 5 La programazione Unità 4 Selezione

Modulo 5 La programazione Unità 4 Selezione Modulo 5 La programazione Unità 4 Selezione Prof. Antonio Scanu 1 Quando si utilizza Il costrutto selezione Questo costrutto permette di effettuare una scelta fra due possibili alternative. Per effettuare

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 05 La rappresentazione dell informazione Carla Limongelli Ottobre 2011 http://www.dia.uniroma3.it/~java/fondinf/ La rappresentazione

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

7 : I DATI E LA LORO STRUTTURA NELLA PROGRAMMAZIONE

7 : I DATI E LA LORO STRUTTURA NELLA PROGRAMMAZIONE 7 : I DATI E LA LORO STRUTTURA NELLA PROGRAMMAZIONE TIPO DI DATO Un tipo di dato è una entità caratterizzata dai seguenti elementi: un insieme X di valori che raprresenta il dominio del tipo di dato; un

Dettagli

il foglio elettronico

il foglio elettronico 1 il foglio elettronico ecdl - modulo 4 toniorollo 2013 il modulo richiede 1/2 comprendere il concetto di foglio elettronico e dimostri di sapere usare il programma di foglio elettronico per produrre dei

Dettagli

Quesiti e problemi (sul libro da pag. 431)

Quesiti e problemi (sul libro da pag. 431) Quesiti e prolemi (sul liro da pag. 431) 1 Che os è la di reazione 1 Trova almeno tre esempi, tratti dall esperienza quotidiana, di reazioni he devono proedere a assa e tre esempi di reazioni he, invee,

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori Informazione e computer Si può rappresentare l informazione attraverso varie forme: Numeri Testi Suoni Immagini 0001010010100101010 Computer Cerchiamo di capire come tutte queste informazioni possano essere

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Il reddito di equilibrio

Il reddito di equilibrio IL Moltipliatore Il reddito di equilibrio Riordiamo gli agenti: Famiglie, he onsumano (e risparmiano) Imprese, he investono e produono Stato, he spende G e riava T Il reddito di equilibrio: Y = [ 0 + I

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

CURRICOLO MATEMATICA ABILITA COMPETENZE

CURRICOLO MATEMATICA ABILITA COMPETENZE CURRICOLO MATEMATICA 1) Operare con i numeri nel calcolo aritmetico e algebrico, scritto e mentale, anche con riferimento a contesti reali. Per riconoscere e risolvere problemi di vario genere, individuando

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Algoritmi, dati e programmi

Algoritmi, dati e programmi 1 Algoritmi, dati e programmi 2 Informatica Informatica: Scienza che studia l informazione e la sua elaborazione. informazione rappresentazione dell informazione (dati) dati elaborazione dei dati tramite

Dettagli

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione

Dettagli

Lezione 4 Introduzione a Microsoft Excel Parte Prima

Lezione 4 Introduzione a Microsoft Excel Parte Prima Lezione 4 Introduzione a Microsoft Excel Parte Prima Cenni preliminari... 1 Elementi sullo schermo... 2 Creazione di una cartella di lavoro... 3 Utilizzo di celle e intervalli... 3 Gestione della cartella

Dettagli

DIMENSIONAMENTO DELLA STAZIONE DI SOLLEVAMENTO A SERVIZIO DI UN SOTTOPASSO

DIMENSIONAMENTO DELLA STAZIONE DI SOLLEVAMENTO A SERVIZIO DI UN SOTTOPASSO DIMENSIONAMENTO DELLA STAZIONE DI SOLLEVAMENTO A SERVIZIO DI UN SOTTOPASSO Appliazione: Dimensionare l impianto di sollevamento per il sottopasso illustrato alle figure 3.60 e 3.61. Elaborazione delle

Dettagli

MATEMATICA CORSO A COMPITINO DI RECUPERO (Tema 1) 13 Febbraio 2014

MATEMATICA CORSO A COMPITINO DI RECUPERO (Tema 1) 13 Febbraio 2014 MATEMATICA CORSO A COMPITINO DI RECUPERO (Tema 1) 13 Febbraio 2014 Soluzioni 1. In un sahetto i sono 7 palline olorate: 2 rosse, 3 verdi e 2 gialle. Si fanno 4 estrazioni on rimessa. a) Calola la probabilità

Dettagli

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

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

Controllo di Gestione (CdG)

Controllo di Gestione (CdG) Controllo di Gestione (CdG) Controllo di gestione (CdG) Controllo dei risultati a. Condizioni di fattiilità ed effiaia. Elementi. Grado di rigidità d. Potenzialità e. Svantaggi f. Profili istituzionali

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

Come creare un Pdf con un Barcode e una Immagine

Come creare un Pdf con un Barcode e una Immagine Come reare un Pdf on un Barode e una Immagine Copyright 2010 2014 JetLab S.r.l. Tutti i diritti riservati Copyright 2011 2015 JetLab S.r.l. Tutti i diritti riservati è un marhio di JetLab S.r.l. Mirosoft,

Dettagli

per immagini guida avanzata Usare le formule e le funzioni Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Usare le formule e le funzioni Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Usare le formule e le funzioni Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Costruire formule in Excel Per gli utenti di altri programmi di foglio di calcolo, come ad esempio Lotus 1-2-3,

Dettagli

E una notazione per descrivere gli algoritmi.

E una notazione per descrivere gli algoritmi. Linguaggio di Programmazione E una notazione per descrivere gli algoritmi. Programma:: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni linguaggio

Dettagli

FORMULE: Operatori matematici

FORMULE: Operatori matematici Formule e funzioni FORMULE Le formule sono necessarie per eseguire calcoli utilizzando i valori presenti nelle celle di un foglio di lavoro. Una formula inizia col segno uguale (=). La formula deve essere

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

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

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

LA NUMERAZIONE BINARIA

LA NUMERAZIONE BINARIA LA NUMERAZIONE BINARIA 5 I SISTEMI DI NUMERAZIONE Fin dalla preistoria l uomo ha avuto la necessità di fare calcoli, utilizzando svariati tipi di dispositivi: manuali (mani, bastoncini, sassi, abaco),

Dettagli

Manuale programmazione ISO

Manuale programmazione ISO DOCUMENTAZIONE PER L UTENTE Manuale programmazione ISO SIDAC S.r.L 21017 Samarate (Varese) Via Acquedotto, 111 E_Mail info@sidaccnc.it Tel. 0331.22.30.19 r.a. Fax. 0331.22.30.78 1 Ver. 1.0 - Aggiornamento

Dettagli

Utilizzo I mintermini si usano quando si considererà la funzione di uscita Q come Somma di Prodotti (S. P.) ossia OR di AND.

Utilizzo I mintermini si usano quando si considererà la funzione di uscita Q come Somma di Prodotti (S. P.) ossia OR di AND. IPSI G. Plana Via Parenzo 46, Torino efinizione di Mintermine onsiderata una qualunque riga della tabella di verità in cui la funzione booleana di uscita Q vale, si definisce mintermine il prodotto logico

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

Corso di MISURE E CONTROLLI IDRAULICI STRUMENTI PER LA MISURA DELLE VELOCITÀ CHE SI BASANO SULL EFFETTO DOPPLER

Corso di MISURE E CONTROLLI IDRAULICI STRUMENTI PER LA MISURA DELLE VELOCITÀ CHE SI BASANO SULL EFFETTO DOPPLER Corso di MIUE E CONTOLLI IDAULICI TUMENTI E LA MIUA DELLE VELOCITÀ CHE I BAANO ULL EFFETTO DOLE a ura di Andrea DEFINA Lua CANIELLO EFFETTO DOLE 3 Eetto Doppler L eetto Doppler (J.C.A. Doppler 83-853)

Dettagli