Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Slides:



Advertisements
Presentazioni simili
Informatica 22/03/2012.
Advertisements

LS Tron Classe 4TC – as 2006/07 LORGANIZZAZIONE DEI PROGRAMMI UD. 8 p. 282.
PROGRAMMARE IN PASCAL (le basi)
CAPITOLO 7.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Programmazione Strutturata
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Ciclo for nei linguaggi di programmazione. Nei linguaggi di programmazione, il ciclo for è una struttura di controllo iterativa che determina l'esecuzione.
Samuele Marino. Cos’è il Repeat Until?  In Pascal, il Repeat Until è un ciclo che consiste nel ripetere (Repeat) una o più istruzioni fino a quando (Until)
Strutture di controllo
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
Unità di apprendimento 6 Dal problema al programma.
Programmazione: Iterazione Esistono tre tipi di iterazione fondamentali e vedremo la corrispondenza dei relativi diagrammi a blocchi e la loro traduzione.
Basi di OpenOffice Calc – 2009 A cura di: Di Cicco – Giannini - Periloso.
Parte 2 Programmare in Matlab – I Sommario: Introduzione: m-file Strutture condizionali e cicli –Istruzione “if” + Operatori logici in MatlabIstruzione.
Un semplice programma C /* Programma che stampa un saluto */ #include main() { printf(“Hello World!\n”); }
INFORMATICA ALGORITMI, PROGRAMMI, E LINGUAGGI DI PROGRAMMAZIONE.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Ambienti di Programmazione per il Software di Base
© 2007 SEI-Società Editrice Internazionale, Apogeo
La rappresentazione degli algoritmi
DAL DIAGRAMMA AL CODICE
Introduzione al linguaggio C
Dal problema al processo risolutivo
7. Strutture di controllo Ing. Simona Colucci
Script Marco D. Santambrogio –
IL CONCETTO DI ALGORITMO
Dal problema al processo risolutivo
7. Strutture di controllo
Unità di apprendimento 7
Commenti Ogni riga che comincia con il simbolo # non viene letta dall’interprete per cui rappresenta un modo per commentare il listato # Questo è un esempio.
Excel 1 - Introduzione.
I FILES AD ACCESSO SEQUENZIALE
Programmazione strutturata
Forme per rappresentare l’algoritmo:
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
CICLO DO – WHILE LINGUAGGIO C.
Lezione 9 – A.A. 2016/2017 Prof. Giovanni Acampora
realizzato dal prof.Conti Riccardo
Informatica per Scienze Geologiche LT a.a
INTRODUZIONE A EXCEL Il foglio elettronico o foglio di calcolo è una tabella che contiene parole e numeri che possono essere elaborati applicando formule.
Programmare.
I RADICALI Definizione di radicali Semplificazione di radicali
Codicfiche Interi Complemento alla base.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Secondo Programma in C.
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
32 = 9 x2 = 9 x = 3 32 = 9 √9 = 3 L’estrazione di radice
A = InputBox("Immetti un numero")
Ricorsione 16/01/2019 package.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Le primitive di una funzione
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
La struttura dei primi programma in C
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Le stringhe in C++ Laboratorio 26 Aprile Dott. Serena Villata
Processi decisionali e funzioni di controllo
UNIT 12 INTERFACCIA SERIALE.
Fondamenti di Informatica
Unità 1 Programmi base.
Lezione Terza Primi passi di programmazione
Array e Stringhe Linguaggio C.
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
La programmazione strutturata
Docente: Sabato Bufano
Algoritmi.
Script su vettori Realizza uno script che chiede in input una dimensione d e crea un vettore di d numeri interi casuali. Poi calcola la somma dei due numeri.
Transcript della presentazione:

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Il linguaggio PASCAL Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Introduzione Il Pascal prende il suo nome dal matematico francese Blaise Pascal che fu il primo ad ideare una macchina calcolatrice: la Pascalina. Questo linguaggio, però fu messo a punto nel 1960 da Niklaus Wirth, docente all' università di Zurigo. Una volta avviato il TurboPascal si presenterà un' interfaccia a menu abbastanza intuitiva. Compariranno vari menu, ma quelli principali sono tre: File, Edit, Program. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Introduzione Il primo (FILE) è formato da New, per crere un nuovo documento di lavoro; Open, per aprire lavori già salvati; Save, registra un lavoro che abbiamo già creato, Save As… assegna un nome al programma da salvare. N.b. l’estensione del file viene inserita in automatico dal programma (PP). Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Introduzione Nel menu (Program) il comando Compile, compila il programma (lo trasforma in linguaggio macchina), mentre il comando Run ci permette di eseguirlo. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Struttura Un programma scritto in TP consta in tre sezioni principali: sezione intestazione, sezione dichiarazioni e sezione esecutiva. Nella prima sezione si inserisce il nome del programma, nella seconda sezione vengono digitate le variabili e la loro tipologia, ed infine viene scritto il programma vero e proprio. Esistono delle parole, dette riservate, a cui non può essere dato il valore di variabile, esse infatti rappresentano dei comandi che il TP può eseguire. Esempio: una variabile non può chiamarsi PROGRAM, BEGIN, END, WRITE, ecc. in quanto sono parole riservate del linguaggio Pascal. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Esempio Ora cominceremo con l' abbozzo di un programmino semplice semplice: sommare due numeri. Apriamo l’editor del Pascal (trovare il programma nella cartella chiamata WFP; aprite la relativa applicazione e digitiamo le seguenti istruzioni (programma per calcolare la somma tra due numeri). Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Esempio Al termine lo salviamo dal comando FILE SAVE AS… col nome SOMMA Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Esempio Compiliamo il nostro programma dal menu PROGRAM COMPILE Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Esempio Ed infine lanciamo l nostro programma PROGRAM RUN Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - i Comandi Nella parte dichiarativa abbiamo comunicato all'elaboratore che n è una variabile (VAR) che nel corso dell'esecuzione potrà avere soltanto un valore INTEGER, cioè di numero intero positivo o negativo. Esaminando successivamente il listato vedremo che la parte esecutiva è introdotta da BEGIN ( = inizio). Poi troviamo una nuova parola riservata, READLN ( abbreviazione Read Line = leggi riga). Essa serve a leggere i dati di input. La sua sintassi è molto semplice: READLN (nome variabile da leggere). Inoltre l'istruzione READLN non seguito da alcun parametro, crea un ciclo di attesa che dura finché non viene premuto Invio. E' consigliata alla fine di un listato, prima dell'END, poiché "congela" lo schermo quando dobbiamo leggere il risultato dell' elaborazione. Ad esempio, se eseguissimo il programma precedente senza READLN finale non potremmo esaminare i risultati della nostra operazione, perché il programma si arresterebbe troppo in fretta. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - i Comandi Un’altra fondamentale istruzione è WRITELN (abbreviazione Write Line = scrivi riga); essa serve a visualizzare i dati di output sullo schermo. La sua sintassi è: WRITELN ('Stringa di testo'), se consideriamo l'esempio sopra vedremo che il testo tra apici (') verrà visualizzato sullo schermo; nel caso in cui WRITELN venga usato senza parametri l'elaboratore lascerà una riga vuota durante l'elaborazione. Un ulteriore esempio sull'uso di WRITELN: WRITELN (a) In questo caso verrà visualizzato sullo schermo il valore assunto in quel momento dalla variabile a. Dunque, se a vale 3, allora sullo schermo uscirà il numero 3. E' possibile anche combinare stringhe e variabili, mettendo una virgola tra il secondo apice e la variabile: Writeln ('Io sono ', A); Infine, alla fine del programma, troviamo END seguito da un punto. Esso indica la fine del flusso delle istruzioni e il conseguente arresto del programma. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Tipi di dati Nome tipo Intervallo consentito Come già visto in precedenza, nel settore dichiarativo di un programma bisogna definire il tipo di variabili che intendiamo utilizzare nel corso del programma stesso. Esistono vari tipi di variabili, e sono raggruppate in questo breve specchietto. Nome tipo Intervallo consentito VARIABILI NUMERICHE BYTE 0 / 255 WORD 0 / 65536 INTEGER -32768 / +32767 REAL 29-36 / 1535 VARIABILI ALFANUMERICHE STRING (X) X Caratteri alfanumerici (per variabili lunghe) CHAR (X) X Caratteri alfanumerici Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Esempio Altro esempio: calcolare il triplo di un numero dato. PROGRAM doppio; (* Sezione dell' intestazione * ) VAR n: INTEGER; { Sezione delle dichiarazioni } begin ( * Corpo del programma *) Writeln ('Questo programma calcola il triplo di un numero dato'); Writeln; Writeln ('Introduci un numero intero'); Readln (n); n := n * 3; Writeln ('Il triplo è: ' , n); writeln; Writeln (‘Premi enter per finire'); readln; end. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Appendice Di seguito troverete dei comandi che potrebbero tornare utili in qualche programmino. 1) TEXTCOLOR (n)= colora il testo che segue di un colore definito da n che è un numero da 0 a 15. I numeri maggiori di quindici producono un effetto lampeggiante. 2) TEXTBACKGROUND (n)= colora lo sfondo d un colore definito da n. Sintassi simile a TEXTCOLOR. 3) SQRT(x) = Calcola la radice quadrata di x; 4) DELAY(n) = Crea un ciclo di attesa lungo n ( miliisecondi) I segni di operazione in TP, sono i seguenti: '+' = ADDIZIONE '-' = SOTTRAZIONE '*' = MOLTIPLICAZIONE '/' = DIVISIONE MOD = RESTO DELLA DIVISIONE ( MOD può essere usato soltanto se i numeri da dividere sono di tipo INTEGER ) Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Appendice Inoltre per indicare il rapporto fra due cifre ci serviamo dei seguenti simboli matematici: '<‘ = MINORE '>‘ = MAGGIORE '=' = UGUALE '=>‘ = MAGGIORE O UGUALE '<=‘ = MINORE O UGUALE '<>' = DIVERSO DA ... Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Esercizi uses crt; { utilizziamo la libreria (crt) per gestire il monitor} uses crt va definito dopo il nome del programma es: PROGRAM COLORE; uses crt; textbackground (numero); {dove il numero (tra 1 e 7) indica il colore dello sfondo prescelto - n.b. prima di clrscr} clrscr; {puliamo il video, dopo aver definito la libreria (crt)} textcolor (numero); {dove il numero (tra 1 e 15) indica il colore del testo prescelto} Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Esercizi program colourexample; uses crt; { utilizziamo la libreria (crt) per gestire il monitor} var a, b : integer; begin writeln ('inserire il colore per lo sfondo'); readln (b); textbackground (b); {colore sfondo prescelto con 'b‘ - n.b. prima di clrscr} clrscr; {puliamo il video, dopo aver definito la libreria (crt)} writeln ('inserire il colore preferito da 1 a 15'); readln (a); textcolor (a); {colore del testo prescelto con 'a'} writeln (‘numero del colore del testo prescelto: ‘ , a); repeat until keypressed; {al premere di un tasto si ritorna al presente listato} end. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Esercizi program scelta; uses crt; var lunghezza : integer; testo : string; begin clrscr; writeln; {inseriamo una riga vuota} writeln; writeln ('Programma per calcolare la lunghezza di un testo'); writeln ('Inserisci testo'); readln (testo); lunghezza:= length(testo); {il comando length restituisce il numero di caratteri} writeln ('La lunghezza del testo è: '); textcolor (3); writeln (lunghezza); textcolor (11); writeln (‘Cognome e Nome 2012'); {digitare il vostro cognome, nome ed anno scolastico} writeln ('Premi enter per uscire'); repeat until keypressed; end. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Esercizi program QUADRATO; uses CRT; VAR L : INTEGER; A, P : REAL; BEGIN CLRSCR; WRITELN; TEXTCOLOR (YELLOW); WRITELN ('PROGRAMMA PER CALCOLARE AREA E IL PERIMETRO DI UN QUADRATO'); TEXTCOLOR (RED); WRITELN ('INSERIRE IL LATO DEL QUADRATO'); READLN (L); {INSERIAMO IL LATO DEL QUADRATO} P := L * 4; {CALCOLIAMO IL PERIMETRO: LATO PER 4} A := SQR(L); {CALCOLIAMO L'AREA} TEXTCOLOR(2); WRITELN ('PERIMETRO CALCOLATO: ' , P:6:2); WRITELN ('AREA CALCOLATA: ' , A:7:2); repeat until keypressed; END. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Pascal - Esercizi program dati_anagrafici; var nome, cognome, eta, comune, via: string; {n.b. le variabili non accettano l’apostrofo} begin Writeln ('Questo programma visualizza i tuoi dati anagrafici'); writeln; writeln ('Inserisci il tuo nome'); readln (nome); writeln ('Inserisci il tuo cognome'); readln (cognome); writeln ('Inserisci la tua età’); readln (eta); writeln ('Inserisci il tuo comune’); readln(comune); writeln ('Inserisci il tuo indirizzo'); readln(via); writeln ('Il tuo nome è: ‘ , nome); writeln ('Il tuo cognome è: ‘ , cognome); writeln ('Hai , eta , ' anni'); writeln ('Vivi nel comune di; ‘ , comune, ' e abiti in ‘ , via); Writeln ('Premi enter per uscire'); readln; end. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - la selezione semplice (condizione) Se consideriamo un numero naturale qualsiasi e ci domandiamo se esso è pari, la risposta potrà avere solo due alternative: Si oppure No. In Tp c'è la possibilità di eseguire una scelta tra due condizioni con il seguente comando: IF THEN ELSE che tradotto fa più o meno: SE ALLORA ALTRIMENTI Ad esempio. Costruiamo un programma che calcoli l'area di un rettangolo SE E SOLO SE l'area stessa è minore di un numero n (per esempio 20) e maggiore di un numero m (per esempio 10); Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - la selezione semplice (condizione - parte 1) PROGRAM area_rettangolo; USES CRT; VAR BASE, ALTEZZA, AREA : INTEGER; BEGIN AREA := 0; {AZZERIAMO LA VARIABILE DI ARRIVO (AREA)} CLRSCR; (*Pulisce lo schermo*) WRITELN (‘IL SEGUENTE PROGRAMMA CALCOLA L’’AREA DEL RETTANGOLO’); WRITELN (' Inserisci base'); READLN (BASE); WRITELN ('Inserisci l’’altezza'); READLN (ALTEZZA); AREA := BASE * ALTEZZA; Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - la selezione semplice (condizione - parte 2) IF (AREA > 10) AND (AREA < 20) THEN (* AND , insieme a OR sono gli operatori booleani più usati in TP. Si basano sulle tabelle di verità – Per AND: V+V = V; V+F = F; F+V = F; F+F = F Per OR: V+V = V; V+F = V; F+V = V; F+F = F *) BEGIN WRITELN ('Area maggiore di 20 oppure minore di 10.'); END ( * END prima dell' ELSE senza punto e virgola(;) * ) ELSE BEGIN WRITELN (' AREA DEL RETTANGOLO = ', AREA); END; repeat until keypressed; END. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Creare un algoritmo che calcoli il totale di una fattura. In Input abbiamo: PU: Prezzo Unitario della merce; Q: Quantità della stessa; ALIQUOTA: aliquota dell’I.V.A. ; Dopo aver determinato l’imponibile (prezzo unitario * quantità), bisogna calcolare l’I.V.A. che è data dall’imponibile per l’aliquota diviso 100.! Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi (parte 1) program FATTURA; {Il presente algoritmo calcola la fattura} uses crt; var PU, Q, ALIQUOTA, IVA, IMPONIBILE, TOTALE : real; begin clrscr; textcolor(13); writeln ('Questo programma calcola il costo della fattura '); writeln; textcolor(yellow); writeln (‘ Inserisci il prezzo unitario della merce '); readln (PU); writeln (‘ Inserisci la quantità della merce '); readln (Q); writeln (‘ Inserisci l’’aliquota dell’I.V.A. '); readln (ALIQUOTA); Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi (parte 2) IMPONIBILE := 0; IVA := 0; TOTALE := 0; {azzeriamo le variabili di arrivo} IMPONIBILE:= PU * Q; {calcoliamo l’imponibile} IVA:= (IMPONIBILE * ALIQUOTA) / 100; {calcoliamo l’IVA} TOTALE:= IMPONIBILE + IVA; {calcoliamo il totale della fattura} writeln; writeln ('Il costo complessivo della fattura è: ‘ , TOTALE:6:3); { totale:6:3 = sei cifre intere e tre decimali } writeln (‘Cognome e nome del programmatore'); writeln ('Premi enter per uscire'); repeat until keypressed; end. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Creare un algoritmo che calcoli il noleggio di un mezzo di trasporto comprensivo di IVA. In Input abbiamo: KMP: KiloMetri Percorsi; LPT: Limite Prima Tariffa; QF: Quota Fissa; CPT: Costo Prima Tariffa; CST: Costo Seconda Tariffa. Se i chilometri percorsi non superano i limiti imposti dalla prima tariffa (Falso) il costo complessivo (CC) è calcolato moltiplicando il costo della prima tariffa per i chilometri percorsi con l’aggiunta della quota fissa altrimenti (Vero) bisogna aggiungere al costo pieno (costo prima tariffa * limite prima tariffa) la differenza dei chilometri che rientrano nella seconda tariffa. Infine calcolare l’IVA, supponendo l’aliquota al 21%, ed aggiungerla all’imponibile! Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi (parte 1) program noleggio; uses crt; var qf,lpt,cpt,cst,al,kmp:integer; iva,cc:real; begin clrscr; Terxtcolor(12); writeln ('Questo programma calcola il costo del noleggio'); writeln; writeln (‘ Inserisci i Km percorsi'); readln (kmp); writeln (‘ Inserisci il limite dei Km per la prima tariffa'); readln (lpt); writeln (‘ Inserisci la quota fissa'); readln (qf); writeln (‘ Inserisci il costo della prima tariffa'); readln (cpt); writeln (‘ Inserisci il costo della seconda tariffa'); readln (cst); Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi (parte 2) cc := 0; iva := 0; al := 21; {azzeriamo le variabili di arrivo} if kmp > lpt {condizione: km percorsi > limite prima tariffa?} then cc : = cpt * lpt + cst * (kmp - lpt) {vero il costo è dato dal costo della prima tariffa per il limite della stessa più il costo della seconda tariffa per la differenza tra i km percorsi ed il limite dei Km imposti dalla prima tariffa} else begin cc:= cpt * kmp; {falso aggiungiamo al costo la quota fissa 1ª tariffa} cc := cc + qf; end; {è stato inserito il comando begin perché sono previste due istruzioni} iva := (cc * al) / 100; {calcoliamo l’IVA} cc := cc + iva; {aggiungiamo l’IVA all’imponibile} writeln; writeln ('Il costo complessivo del noleggio è: ‘ , cc:6:3); {6 cifre intere e 3 decimali} writeln (‘Cognome e nome del programmatore'); {volendo colorare col comando textcolor ( )} writeln ('Premi enter per uscire'); repeat until keypressed; end. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Creare un algoritmo che risolva il Teorema di Pitagora. In Input abbiamo: C1: Cateto 1; C2: Cateto 2; Calcolarne l’Ipotenusa come stabilito dal suddetto Teorema. Il quadrato costruito sull’ipotenusa è pari alla somma dei quadrati costruiti sui cateti, Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizio: Teorema di Pitagora (1) program PITAGORA; uses CRT; VAR C1, C2, I, QC1, QC2, QI : REAL; BEGIN CLRSCR; I:=0; QI:=0; QC1:=0; QC2:=0; WRITELN; TEXTCOLOR (RED); WRITELN ('PROGRAMMA DIMOSTRAZIONE TEOREMA DI PITAGORA'); TEXTCOLOR (YELLOW); WRITELN ('INSERIRE IL PRIMO CATETO DEL TRIANGOLO'); READLN (C1); {INSERIAMO IL 1* CATETO DEL TRIANGOLO} TEXTCOLOR (GREEN); WRITELN ('INSERIRE IL 2° CATETO DEL TRIANGOLO'); READLN (C2); {INSERIAMO IL 2° CATETO DEL TRIANGOLO} Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizio: Teorema di Pitagora (1) {CALCOLIAMO IL QUADRATO DEI DUE CATETI} QC1 := SQR(C1); QC2 := SQR(C2); {L'AREA DELL'IPOTENUSA E’ DATA DALLA SOMMA DEI QUADRATI DEI CATETI} QI := QC1 + QC2; {RADICE PER DETERMINARE L'IPOTTENUSA} I := SQRT(QI); TEXTCOLOR(2); WRITELN ('IPOTENUSA CALCOLATA: ' , I : 6 : 2); repeat until keypressed; END. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - la selezione multipla (CASE) Se domandiamo ad una persona quali sono i piatti che preferisce essa sceglierà fra un' ampia gamma di pietanze fino a scegliere quella che soddisfi i suoi gusti. Infatti, al contrario di prima, la selezione multipla ci fornisce illimitate possibilità di risposta. Il comando che in TP ci permette di operare un selezione multipla è il seguente: CASE n of ( * Se n è stata dichiarata INTEGER * ) valore 1: BEGIN istruzione1; istruzione... END; CASE n of ( * Se n è stata dichiarata CHAR * ) valore x: istruzione...; ELSE BEGIN istruzione 1; istruzione2; istruzione...; END; END; Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - la selezione multipla (CASE) Nonostante la sua sintassi sembra complessa in realtà, questa struttura, è di facilissima comprensione. Innanzitutto dobbiamo decidere se dichiarare la variabile n come tipo INTEGER oppure CHAR. Se n è CHAR dovremo usare una lettera seguita dai due punti(:) e dal rispettivo sottoprogramma delimitato da BEGIN e END; se invece n è INTEGER dovremo usare un numero naturale al posto di n e mettere dopo i due punti(:) il solito sottoprogramma delimitato da BEGIN e END. Proviamo ora con un esempio: un programma che generi un numero a caso tra 1 e 10 e lo comunichi all'operatore solo se esso è uguale a 7, 9 o 3. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - la selezione multipla (CASE) PROGRAM numeri_casuali; {si usa underscore (_) per unire i nomi} VAR numero: INTEGER; BEGIN CLRSCR; RANDOMIZE; (* Inizializza, il generatore di numeri casuali * ) numero:=RANDOM(10); (*Questo comando (randomize) permette all'elaboratore di generare un numero a caso compreso tra 0 e il numero indicato in parentesi. Il massimo consentito è 255 * ) CASE numero OF 7: BEGIN WRITELN (' Il numero è ', numero); END; 9: BEGIN 3:BEGIN ELSE BEGIN WRITELN (' Il numero uscito è diverso da 3, 7 e 9’); END. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - definire le label Per spostarci all’interno del listato dobbiamo definire delle label Prima del comando var dobbiamo indicare quante ne serviranno all’interno del listato Label numero1, numero2, numero3, ecc… All’interno delle istruzioni (dopo il begin) definiamo i punti di partenza delle label numero1: istruzioni …. numero2: istruzioni …. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi (parte 1) program abbonamento_autobus; uses crt; label 10, 20, 30; {le label ci permettono di spostarci all’interno del listato} var b, tipo, p, m : integer; tot, s, t : real; begin clrscr; tot:=0; s:=0; t:=200; b:=50; s:=40; p:=30; m:=80; {avvaloriamo le variabili} writeln ('Questo programma serve per calcolare il costo dello abbonamento dell’autobus'); writeln; 10:clrscr; Writeln ('Costo Abbonamento 200 Euro al mese - scegli il tipo:'); writeln (' 1 per i bambini, sconto 50%'); {volendo colorare col comando textcolor ( )} writeln (' 2 per gli studenti, sconto 40%'); writeln (' 3 per i pensionati, sconto 30%'); writeln (' 4 per i militari, sconto 80%'); writeln (' 5 nessuno sconto'); writeln (' 0 per uscire'); readln (tipo); Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi (parte 2) if (tipo >= 0) and (tipo <= 5) then goto 20 else goto 10; {se tipo non compreso tra 1 e 5 ritorna label 10} 20:clrscr; if tipo = 0 then goto 30 else {se tipo = 0, si esce dall’algoritmo, label 30} begin case tipo of 1:begin {se tipo = 1, bambini: sconto del 50%, b=50} s := (t * b) / 100; end; 2:begin {se tipo = 2, studenti: sconto del 40%, s=40} s := (t * s) / 100; 3:begin {se tipo = 3, pensionati: sconto del 30%, p=30} s := (s * p) / 100; 4:begin {se tipo = 4, militari: sconto dell’80%, m=80} s := (t * m) / 100; 5:begin {se tipo = 5, non si applicano sconti} s := 0 writeln; tot := t - s; writeln ('Il costo dello abbonamento è: ', tot:5:2,' Euro '); {5 cifre intere e 2 decimali} 30:writeln (‘Cognome, nome e anno scolastico'); writeln ('Premi enter per uscire'); readln; end. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - le strutture iterative Il termine iterare deriva dal latino e significa "ripetere". Questa struttura (che è presente in tutti i linguaggi di programmazione, non solo in Pascal, agisce su una operazione che deve essere ripetuta più volte. Ne esistono vari tipi: Iterazione enumerativa FOR primo valore TO ultimo valore; Iterazione per falso REPEAT ISTRUZIONE UNTIL CONDIZIONE; Iterazione per vero WHILE CONDIZIONE DO BEGIN ISTRUZIONE END. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Struttura iterativa Enumerativa Iterazione enumerativa - Come dice la parola stessa esegue un operazione n volte. In Pascal è indicata dal comando: FOR a=: numero iniziale TO numero finale DO (*Niente punto e virgola *) istruzione 1; istruzione ...; END; è possibile anche procedere a ritroso, contando alla rovescia da un numero n fino ad arrivare ad un numero t: FOR a:=n DOWNTO t DO Ecco un semplice esempio: PROGRAM POTENZA; VAR A,B,C,i: INTEGER; BEGIN WRITELN ('INSERISCI UN NUMERO'); READLN (A); WRITELN ('ISERISCI LA POTENZA'); READLN (B); C:=1; (* Avvaloriamo la variabile C con 1*) FOR i:= 1 TO B DO BEGIN C:=C*A; END; WRITELN ('RISULTATO: ', C); READLN; END. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Struttura iterativa per Falso Ripete le istruzioni racchiuse tra REPEAT e UNTIL finché la condizione espressa da UNTIL non si verifica (iterazione per falso). REPEAT istruzione 1; istruzione 2; istruzione ...; UNTIL condizione; Ecco un semplice esempio: PROGRAM ripetizione; VAR a,b:INTEGER; BEGIN REPEAT WRITELN (‘ Inserisci un numero minore di 30 e maggiore di 10 '); READLN (a); UNTIL (a<30) AND (a>10); READLN; END. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Struttura iterativa per Vero Iterazione per vero - Esegue le informazioni racchiuse tra WHILE DO e l'END; (il punto e virgola indica che l'END è parziale) finché la condizione presa in esame non sia falsa. WHILE a=3 DO istruzione 1; istruzione 2; istruzione...; END; Questo semplice esempio spiega come il blocco di istruzioni presente tra WHILE DO e END; venga ripetuto finché si rispetti la condizione a=3. Nel caso in cui il valore di a fosse stato diverso da 3, infatti, il blocco di istruzioni non sarebbe stato mai eseguito. PROGRAM ripetizione; VAR a, b, c: INTEGER; BEGIN WHILE a = 3 DO BEGIN WRITELN (‘ Inserisci un numero, se diverso da 3 fine '); READLN (b); c := c + b; END; WRITELN (‘SOMMA DEI VALORI: ’, c); READLN; END. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi - FOR ... TO ... program calcola_tabellina; uses crt; var tabellina, i, n, z : integer; begin clrscr; WRITELN; writeln ('Stampa a video una tabellina scelta da te'); writeln; writeln ('Programma per stampare a video una qualsiasi tabellina scelta da te'); writeln ('Inserisci il numero di cui vuoi sviluppata la sua tabellina'); readln (tabellina); i := 0; for i := 1 to 10 do n := n + 1; z := tabellina * n; writeln (z); end; writeln ('Premi enter per uscire'); readln; end. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi - FOR ... TO ... program media_voti; uses crt; var voto, a, nvolte, i : integer; tot, media : real; begin clrscr; writeln ('Questo programma calcola la media dei tuoi voti'); writeln; writeln (‘Quanti sono i voti da cui ricavare la media?'); readln (nvolte); a := 0; tot := 0; media := 0; for i := 1 to nvolte do a := a + 1; writeln ('Inserisci il voto: ‘ , a); readln(voto); tot := tot + voto; end; media:= tot / nvolte; writeln ('La tua media è: ‘ , media:2:2); writeln; writeln (‘Cognome e nome del programmatore'); writeln ('Premi enter per chiudere il programma'); readln; end. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi (parte 1) - REPEAT PROGRAM OPERAIO; USES CRT; VAR ENTERM, EXITM, ENTERP, EXITP, TOTORELAV, TOTML, PAGAO, PAGAG, ORELAVM, MINLAVM, ORELAVP, MINLAVP : REAL; VAR NOME : STRING[20]; BEGIN CLRSCR; PAGAO := 0; PAGAG := 0; WRITELN ('INSERISCI PAGA ORARIA'); READLN (PAGAO); REPEAT WRITELN ('INSERISCI NOME OPERAIO'); READLN (NOME); WRITELN ('INSERISCI ORARIO ENTRATA MATTINA'); READLN (ENTERM); WRITELN ('INSERISCI ORARIO USCITA MATTINA'); READLN (EXITM); WRITELN ('INSERISCI ORARIO ENTRATA POMERIGGIO'); READLN (ENTERP); WRITELN ('INSERISCI ORARIO USCITA POMERIGGIO'); READLN (EXITP); Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi (parte 2) - REPEAT ORELAVM := EXITM - ENTERM; MINLAVM := ORELAVM * 60; ORELAVP := EXITP - ENTERP; MINLAVP := ORELAVP * 60; TOTORELAV := ORELAVM + ORELAVP; TOTML := MINLAVM + MINLAVP; PAGAG := PAGAO * TOTORELAV; WRITELN('INSERISCI PAGA ORARIO'); READLN(PAGAO); UNTIL PAGAO = 0; WRITELN ('TOTALE ORE LAVORATE: ', TOTORELAV:5:2); WRITELN ('TOTALE MINUTI LAVORATI SONO: ', TOTML:5:2); WRITELN ('LA PAGA GIORNALIERA DELL'OPERAIO: ', PAGAG:5:3); READLN; END. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi (parte 1) - WHILE PROGRAM OPERAIO; USES CRT; VAR ENTERM, EXITM, ENTERP, EXITP, TOTORELAV, TOTML, PAGAO, PAGAG, ORELAVM, MINLAVM, ORELAVP, MINLAVP : REAL; VAR NOME : STRING[20]; BEGIN CLRSCR; PAGAO := 0; PAGAG := 0; WRITELN ('INSERISCI PAGA ORARIA'); READLN (PAGAO); WHILE PAGAO <> O DO BEGIN WRITELN ('INSERISCI NOME OPERAIO'); READLN (NOME); WRITELN ('INSERISCI ORARIO ENTRATA MATTINA'); READLN (ENTERM); WRITELN ('INSERISCI ORARIO USCITA MATTINA'); READLN (EXITM); WRITELN ('INSERISCI ORARIO ENTRATA POMERIGGIO'); READLN (ENTERP); WRITELN ('INSERISCI ORARIO USCITA POMERIGGIO'); READLN (EXITP); Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Esercizi (parte 2) - WHILE ORELAVM := EXITM - ENTERM; MINLAVM := ORELAVM * 60; ORELAVP := EXITP - ENTERP; MINLAVP := ORELAVP * 60; TOTORELAV := ORELAVM + ORELAVP; TOTML := MINLAVM + MINLAVP; PAGAG := PAGAO * TOTORELAV; WRITELN('INSERISCI PAGA ORARIO'); READLN(PAGAO); END; WRITELN ('TOTALE ORE LAVORATE: ', TOTORELAV:5:2); WRITELN ('TOTALE MINUTI LAVORATI SONO: ', TOTML:5:2); WRITELN ('LA PAGA GIORNALIERA DELL'OPERAIO: ', PAGAG:5:3); READLN; END. Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero

Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero Il linguaggio PASCAL fine Pascal - Prof. Grisolia Guglielmo - I.T.C.G.T. Castrolibero