LESSICO E SINTASSI DEL PASCAL
|
|
|
- Alessandra Ferrero
- 9 anni fa
- Visualizzazioni
Transcript
1 LESSICO E SINTASSI DEL PASCAL Il linguaggio di programmazione Pascal è potente e semplice nello stesso tempo; ciò ne giustifica la scelta, inoltre i nuovi compilatori del linguaggio pascal permettono di rilevare eventuali errori sia in fase di compilazione che in fase di esecuzione del programma. Tale linguaggio, come del resto tutti i linguaggi di programmazione, è costituito da istruzioni (le istruzioni sono le frasi del linguaggio) il cui teso è formato da simboli quali: - parole chiave o riservate - segni di punteggiatura - operatori aritmetici e logici - stringhe - identificatori (nomi assegnati dal programmatore) Per programmare è necessario conoscere il lessico e la sintassi del linguaggio. La sintassi SINTASSI costituisce insieme delle regole per formare una istruzione o frase del linguaggio mentre i simboli che vengono adottati costituiscono il LESSICO. LESSICO ELEMENTI BASE Gli elementi base che costituiscono l alfabeto del Pascal sono: - i caratteri dell alfabeto (tutte le lettere minuscole e maiuscole) - le cifre del sistema decimale (i numeri da 0 a 9) - i caratteri di sottolineatura - i caratteri speciali, divisi in operatori: i segni aritmetici, il segno uguale e le parentesi angolari nelle varie combinazioni e cioè + - * / = < > <= >= <> punteggiatura: cioè ; :., # $ [ ] ( ) := { } - parole chiave o riservate; quali: AND CONST ELSE FORWARD MOD OR RECORD TO WHILE ARRAY DIV END FUNCTION NIL PACKED REPEAT TYPE WITH DO FILE IF NOT PROCEDUR E SET UNTIL CASE DOWNTO FOR IN OF PROGRAM THEN VAR Un identificatore invece è una parola che è assegnata dal programmatore per rappresentare un determinato oggetto del programma quale una variabile, una costante, il nome del programma o una determinata procedura. SINTASSI Questa può essere descritta in due modi: i grafi sintattici e la notazione BNF. Entrambi i modi fa uso di regole e simboli propri. 1 modo: Grafi sintattici in questo caso la sintassi è rappresentata con dei diagrammi di flusso evidenziando le relazioni esistenti fra i i vari costrutti del linguaggio.
2 nodo contenente le parole chiave nodo contenente i simboli terminali es. cifre, le lettere dell alfabeto,.. nodo contenente i simboli non terminali cioè una determinata funzione biforcazione le frecce indicano i percorsi Ecco alcune semplici composizioni: A Equivale a: ottenere A A Equivale a: possibilità di ripetere A un certo numero di volte A Equivale a: ottenere A oppure B B Regole da seguire nell interpretazione di un grafo-sintattico: si entra da sinistra; eseguire la scelta del percorso in corrispondenza della biforcazione, il simbolo terminale che si incontra lo si inserisce nella frase in formazione, prima di proseguire, interpretare bene il simbolo non terminale che si incontra, la frase completa la si ottiene alla fine del percorso. Esempi : Rappresentare i grafi sintattici che permettono di generare 1. una cifra del sistema decimate. 2. una costante numerica intera con segno positivo o negativo oppure senza segno. 3. una sequenza formata da una generica lettera e da una generica cifra con un punto alla fine del percorso.
3 2 modo: Notazione BNF in questo caso la sintassi è definita mediante dei simboli ed alcune regole. I simboli vanno interpretati. simbolo ::= Interpretazione del simbolo è definito come può essere definito come può essere costituito da può essere rappresentato da OR logico oppure { } Il contenuto che compare nelle parentesi graffe può essere ripetuto zero volte o più volte Il contenuto che compare nelle parentesi angolari rappresenta un elemento < > non terminale, cioè il nome di una variabile che deve essere definita. Esempi - interpretare le seguenti notazioni BNF: 1. <cifra> ::= 0 I 1 I 2 I 3 I I 8 I 9 2. <numero intero> ::= <cifra> I {<cifra>} Esempio 3. Rappresentare in notazione BNF una costante che possa essere definita come un numero intero preceduto dal segno positivo o negativo oppure senza segno.
4 INGRESSO E USCITA DA UN TERMINALE Ogni programma richiede di comunicare con l ambiente esterno. Ciò viene effettuato con le procedure WRITE e READ Procedura WRITE Tale procedura permette di visualizzare ogni tipo di dato sul terminale. Il numero dei parametri o dati può essere 0 e ogni parametro è separato dalla virgola. La procedura è la seguente: WRITE(dato, dato, ) oppure: WRITELN(dato, dato, ) La 1^ procedura (WRITE) visualizza i dati, presenti nella sua lista, nella posizione corrente del cursore e lasciando il cursore stesso nella posizione corrispondente all ultimo dato visualizzato. Con la 2^ procedura (WRITELN), una volta effettuata la visualizzazione dei dati, come visto con la 1^ procedura, sposta automaticamente il cursore all inizio della riga successiva. La procedura WRITELN senza dati produce una riga vuota. WRITE(dato); WRITELN; equivale a scrivere WRITELN(dato); È possibile specificare la larghezza del campo di uscita (output) per un qualunque tipo di dato; a tale scopo si specifica accanto alla variabile (dato) da rappresentare, separato dai due punti (:) un numero n che rappresenta la larghezza del campo. Se il dato (cioè la stringa ) occupa un numero di spazi < di n allora alla sinistra del dato vengono inseriti un numero di spazi vuoti corrispondenti alla differenza n dato. Quindi: indicando con m il numero dei caratteri della stringa possiamo dire che Se m<n la stringa viene spostata sullo schermo di un numero di spazi vuoti corrispondenti ad n m ; Se m>n la stringa verrà rappresentata sullo schermo in un campo minimo di m posizi
5 WRITE(ciao:12) In tal caso abbiamo: m = 4, n = 12, n-m = 8 Quindi la parola ciao scritta sullo schermo lasciando dal bordo six 8 spazi vuoti; pertanto si avrà: ciao i trattini di sottolineatura indicano gli spazi lasciati vuoti a sx. Se la stringa deve rappresentare un numero (variabile tipo REAL), il valore della variabile viene rappresentato in notazione esponenziale in un campo minimo di otto posizioni e precisamente: - una posizione per il segno, - una per il punto decimale, - due per le cifre immediatamente seguente e precedente il punto, - una per la lettera E, - tre per l esponente con il segno questo se n 8. Se n > 8 il valore della variabile viene rappresentato in notazione esponenziale in un campo n posizioni con un max di 17. WRITE(12.34:n) Se n 8 il numero verrà così rappresentato: _1.2E+01 Se n =10 avremo: _1.234E+01 Se n >10, esempio n =12 avremo: _ E+01 WRITE(24.126:7) WRITE(24.126:11)
6 Procedura READ Tale procedura permette di inviare i dati ad un programma, cioè di inserirli da tastiera. La procedura è la seguente: READ(variabile1 variabile2, ); oppure: READLN(variabile1 variabile2, ); la procedura READ(A, B,C); legge i valori che le variabili A, B e C devono assumere dall input. Quando il programmatore utilizza l input da tastiera, ogni chiamata alla procedura READ termina quando è stato inserito da input un numero di dati pari a quello richiesto dall istruzione READ stessa. Se il numero di dati è > di quello dei parametri richiesti dall istruzione READ, i dati in eccesso vengono persi. I dati possono essere introdotti 1. su più righe separati da < CR>; opp. 2. su un unica riga separati da uno spazio; o ancora 3. da una combinazione delle precedenti. Pertanto, ritornando all es. precedente, per la procedura READ(A, B,C); le variabili A, B e C si possono introdurre da tastiera in uno dei seguenti modi: 1.modo A <CR> B <CR> C <CR> 2.modo A_B_C <CR> 3.modo A_B <CR> C <CR> i trattini fra le lettere indicano sempre gli spazi lasciati vuoti. La procedura READLN(A, B,C); posiziona il cursore all inizio della riga successiva dopo aver effettuato la lettura dei dati. L istruzione READLN; cioè senza parametri, fa ignorare al programma ciò che resta della linea corrente in input. Quindi l istruzione READLN(A, B,C); equivale a READ(A, B,C); READLN
7 STRUTTURA A BLOCCHI DEL PASCAL BLOCCO DI INTESTAZIONE BLOCCO DICHIARATIVO BLOCCO OPERATIVO PROGRAM LABEL CONST TYPE VAR PROCEDURE END FUNCTION IL BLOCCO DI INTESTAZIONE assegna il nome al programma. IL BLOCCO DICHIARATIVO IL BLOCCO OPERATIVO è formato da istruzioni non eseguibili che consentono di definire i dati. Contiene la descrizione degli oggetti (VARIABILI, COSTANTI, PROCEDURE, ) che verranno utilizzati nel corpo del programma. è costituito da istruzioni eseguibili che elaborano i dati descritti nel blocco dichiarativo. Tali istruzioni, separati dal punto e virgola (;) sono racchiuse tra le parole chiavi e END. Nella stesura di un programma si seguono regole simili a quelle utilizzate per la rappresentazione degli algoritmi. All interno del programma è possibile inserire dei commenti che servono per ricordare cosa esegue quel particolare segmento del programma. UTILIZZANDO I GRAFI SINTATTICI LA STRUTTURA DI UN PROGRAMMA PASCAL PUÒ ESSERE COME IN FIG.
8 Esempi: STAMPARE LA SCRITTA EINSTEIN ALL INIZIO DI UNA RIGA E POSIZIONARE IL CURSORE ALL INIZIO DELLA RIGA SUCCESSIVA: PROGRAM UNO; END. WRITELN( EINSTEIN ); READLN STAMPARE I VALORI DELLE VARIABILI A, B, C, D E I RISULTATI DELLA SOMMA A+B E CxD: DEL PRODOTTO PROGRAM DUE; USES CRT; VAR A,B:REAL; C,D:INTEGER; A:=3.5;B:=4.2;C:=9;D:=2; WRITELN( A =,A, ; B =,B); WRITELN( C =,C, ; D =,D); WRITELN( TOTALE DI A+B =,(A+B)); WRITELN( TOTALE DI CXD =,(CXD)); END. READLN CONVERTIRE LA TEMPERATURA IN GRADI FAHRENHEIT (VALORE INSERITO DA TASTIERA) A CELCIUS VALORE STAMPATO): PROGRAM TRE; USES CRT; VAR F,C:REAL; END. CLRSCR; WRITE( GRADI FAHRENHEIT F = ); READLN(F); C: = (5/9) X (F - 32); WRITELN( GRADI CELSIUS C =,C); READLN
9 DEFINIRE E RAPPRESENTARE UN ALGORITMO (FLOW-CHART) CHE CONSENTE DI ORDINARE TRE O PIÙ NUMERI IN SENSO CRESCENTE OPPURE IN SENSO DECRESCENTE. DEFINIRE E RAPPRESENTARE UN ALGORITMO (FLOW-CHART) CHE CONSENTE DI INDIVIDUARE IL MINORE OPPURE IL MAGGIORE FRA TRE O PIÙ NUMERI. DEFINIRE E RAPPRESENTARE UN ALGORITMO (FLOW-CHART) CHE CONSENTE DI DETERMINARE LA RESISTENZA EQUIVALENTE SERIE E PARALLELO FRA DUE O PIÙ RESISTENZE. DEFINIRE E RAPPRESENTARE UN ALGORITMO (FLOW-CHART) CHE CONSENTE DI CALCOLARE LA RETRIBUZIONE NETTA DI UN LAVORATORE CONOSCENDO LA RETRIBUZIONE ORARIA LORDA, IL NUMERO DI ORE LAVORATIVE E LE TRATTENUTE. _ SCRIVERE UN PROGRAMMA CHE CONSENTE DI STAMPARE IL GIUDIZIO (GRAVEMENTE INSUFFICIENTE; INSUFFICIENTE; DISCRETO; BUONO; OTTIMO) ASSOCIATO AI VOTI DA UNO A DIECI INTRODOTTI DA TASTIERA. SCRIVERE UN PROGRAMMA CHE CONSENTE DI DETERMINARE IL VALORE DELLA RESISTENZA EQUIVALENTE DI UN CIRCUITO COSTITUITO DA UNA RESISTENZA IN SERIE AD UN GRUPPO DI DUE O TRE O QUATTRO RESISTENZE IN PARALLELO FRA LORO A SECONDA DELLE POSIZIONI DI ALCUNI INTERRUTTORI. DISEGNARE UNO SCHEMA ELETTRICO. SCRIVERE UN PROGRAMMA CHE CONSENTE LA CONVERSIONE DI UN NUMERO DECIMALE IN BINARIO E VICEVERSA. SCRIVERE UN PROGRAMMA CHE CONSENTE DI DETERMINARE LA SOMMA DEI QUADRATI DI DUE O TRE NUMERI INTRODOTTI DA TASTIERA. _ SCRIVERE UN PROGRAMMA CHE CONSENTE DI DISEGNARE UN ARCO DI CIRCONFERENZA NOTO IL RAGGIO E IL CENTRO DELLE COORDINATE. _ SCRIVERE UN PROGRAMMA CHE CONSENTE DI DETERMINARE L AREA DI UN ANELLO RACCHIUSO DA DUE CIRCONFERENZE CONCENTRICHE, NOTO I RAGGI E LE COORDINATE DEL CENTRO.
INTRODUZIONE AL LINGUAGGIO DI PROGRAMMAZIONE PASCAL. Per iniziare lo studio del linguaggio di programmazione pascal, consideriamo il seguente esempio.
INTRODUZIONE AL LINGUAGGIO DI PROGRAMMAZIONE PASCAL Per iniziare lo studio del linguaggio di programmazione pascal, consideriamo il seguente esempio. ESERCIZIO: realizzare un algoritmo (in linguaggio di
Come ragiona il computer. Problemi e algoritmi
Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema
Risoluzione di un problema
Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
CAPITOLO 3 - ALGORITMI E CODIFICA
FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)
UD 3.2b: Programmazione in Pascal (1)
UD 3.2b: Programmazione in Pascal (1) Il Linguaggio di Programmazione Pascal Esistono molti linguaggi di programmazione. Per motivi didattici utilizzeremo una versione ridotta di un linguaggio di programmazione
Informatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
Fondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal
Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi
Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi
Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
Introduzione alla programmazione Esercizi risolti
Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma
Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :
PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura [email protected] 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
Fondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
Caratteristiche generali del linguaggio Visual Basic
Caratteristiche generali del linguaggio Visual Basic Per ottenere un aiuto contestuale dall help di Visual Basic sulla sintassi di funzioni o, oppure su proprietà, eventi o metodi, basta selezionare la
Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
Formalismi per la descrizione di algoritmi
Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano
Corso sul linguaggio C
Corso sul linguaggio C Modulo 1 1.1 Istruzioni semplici 1 Prerequisiti Saper progettare algoritmi Saper descrivere algoritmi (NLS, ddf) Conoscere il concetto di espressione 2 1 Introduzione In questa lezione
Programmazione a blocchi. Algobuild Prof. Sergio Roselli
Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere
PROBLEMI ALGORITMI E PROGRAMMAZIONE
PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL
Parte 1: tipi primitivi e istruzioni C
Parte 1: tipi primitivi e istruzioni C Esercizio 1 Scrivere un programma che stampa la somma di una sequenza di N numeri inseriti dall utente. Esercizio 2 Scrivere un programma che stampa la somma di una
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi
0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore
Le basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
PREPARAZIONE PER SECONDA PROVA IN ITINERE Esercizio 1 SULLA MODELLAZIONE DEI DATI
PREPARAZIONE PER SECONDA PROVA IN ITINERE Esercizio 1 SULLA MODELLAZIONE DEI DATI Si definisca il tipo opportuno di dato per memorizzare una tabella che contenga, per ciascuna delle principali valute (dollaro
INTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
Programmazione con il linguaggio LibreOffice Basic
Programmazione con il linguaggio LibreOffice Basic L ambiente di programmazione Il software LibreOffice possiede un ambiente di programmazione in linguaggio Basic, che consente di creare procedure software
Diagrammi di flusso (Flow Chart)
Diagrammi di flusso (Flow Chart) I diagrammi di flusso sono un formalismo grafico per descrivere gli algoritmi. I diagrammi di flusso visualizzano graficamente i passi da cui sono formati gli algoritmi
IL PRIMO PROGRAMMA IN C
IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE
L AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
Linguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
Unità B1 Programmazione base
(A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: Multipiattaforma Interpiattaforma Porting Piattaforma hardware Piattaforma software Riusabilità Parametri della linea di
Flow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi.
Flow-chart Introduzione agli algoritmi e ai diagrammi a blocchi [email protected] 1 Sommario Fasi dello sviluppo di un programma Algoritmo Dati: Variabili e Costanti Le operazioni tipiche Diagramma
Le basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
Linguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
Introduzione agli Algoritmi
Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione
