GUIDA PASCAL
Elenco Capitoli
Struttura Programma in Pascal
Tipi Fondamentali in Pascal
Comandi Base
Operazioni Aritmetiche
Strutture di selezione If...then ...else, Case of
Operatori relazionali
Ciclo
Ciclo Repeat Until
Ciclo While Do
Ciclo For to Do
Array
Capitolo 1) Struttura Programma Pascal
Il pascal è un linguaggio di programmazione creato da Niklaus Wirth, docente di programmazione. Il nome fu dedicato in onore del filosofo-matematico francese Blaise Pascal , famoso per aver inventato la prima macchina calcolatrice automatica
Le Caratteristiche principali del pascal sono
- Una sintassi rigida
- Obbligo di suddivedere il programma in sezioni definite
l'ide che userò durante la guida sarà DEV PASCAL 1.9, prodotto della Bloodshed (non + in sviluppo) e include compilatore e debugger
Pro : editor multi finistra
Passiamo ora alla struttura di un programma in pascal :
Program <nome> ;
intestazione del programma indica il nome
Uses crt ; --- importa la libreria standard del pascal
var<nome> : tipo;
aspetto molto interessante la keyword(parola riservata) var serve per indicare la dichiarazione di una o più variabili , segue il nome i : e il tipo di variabile che tratteremo nel prossimo capitolo
begin
end.
indica Inizio e Fine , obbligatorio il punto (end.) dopo l'end per indicare la fine del programma!
Riepilogo breve sul Capitolo
Struttura programma
Program prova;
uses crt;
var i:<tipo>
begin
//istruzioni
end.
Capitolo 2) Tipi Fondamentali del Pascal
I tipi fondamentali del pascal sono 6
- Byte Valore da 0 a 255
- Integer valore da -32768 a +32767
- Real -- Valore Decimale
- Char -- Carattere
- String -- più caratteri
- Word -- Valore da 0 a 65536
Iniziamo descrivendo i Dati numerici con/senza segno
Tipo Byte,Word, Integer e Real
Byte: si tratta di un dato numerico senza segno, il "compilatore" mette a disposizione 8 bit quindi 256 numeri rappresentabili
Esempio Dichiarazione :var i:byte;
Word : si tratta sempre di un dato numerico senza segno , ma sono messi a disposizione 16 bit quindi i valori rappresentabili sono da 0 a 65536
Esempio Dichiarazione : var i:word;
Integer: Dato anch' esso numerico , ma con segno , sono messi a disposizione 16 bit e i suoi valori vanno da -32768 a + 32767
Esempio Dichiarazione : var i:integer;
Real : Tipo di dato numerico per rappresentare decimale e notazione scientifica , sono messi a disposizione dai 32 ai 64bit l'intervallo è da -2.9E-39 a 1.7E38
Esempio Dichiarazione :var i:real;
Tipo dati Alfanumerici : Char e String
Sono dei dati alfanumerici per tanto rappresentano un carattere come nel caso di Char e più caratteri come nel caso di String
Char : è in grado di contenere un carattere
esempio Dichiarazione:var i:char;
String : contiene più caratteri durante l'input di questo tipo di dato si può anche limitare il numero di caratteri accettabili
Esempio di Dichiarazione:var i:string
Con limitazione Carattere :
var i:string[30];
Riepilogo breve sul Capitolo
Tutti i tipi :
var i:char; //per un solo carattere
var i:string; // per più caratteri
var i: word; //numeri da 0 a 65536
var i:byte; // numeri da 0 a 255
var i:integer; //numeri da -32768 a +32767
var i:real; //numeri decimale e notazione scientifica
N.b Per dichiarare variabili dello stesso tipo si usa la virgola e non si replica mai il var
Esempio :
var i,s:byte;
c:char;
Capitolo 3) Comandi Base
Fino ad ora abbiamo visto come è strutturato un programma in pascal e come si dichiarano i tipi fondamentali del pascal , ma non ho minimamente accennato a come si scrive o si riceva un dato o come si assegna un valore a una variabile
Bene Come primo esempio creeremo un programma che da il doppio di un numero in input e la somma di due numeri.
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Continuiamo facendo il secondo problema la somma di due numeri :
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Riepilogo Breve sul Capitolo
write( ' ...') -- scrivi linea e non vai accappo
writeln('...') -- scrivi linea e vai accapo
read() -- leggi variabile e rimani sullo stesso rigo
readln() -- leggi e vai accapo
:= -- Operatore di assegnazione
clrscr --Pulisce Schermo Console
Capitolo 4) Operatori Aritmetici
Operatore | Funzione |
+ | Somma due Numeri |
- | Sottrazione di due numero |
* | Moltiplicazione di due numeri |
/ | Divisione tra Reali , quindi tra tipi Real |
div | Divisione tra Interi(integer) e i suoi derivati shorint e longint |
mod | Operatore Modulo , restituisce il resto di una divisione |
Capitolo 5) Struttura di Selezione
In tutti i programmi si arriva che a un certo punto bisogna prendere una decisione Esempio
Se io x=0 allora x=1 altrimenti x=2
l'esempio sopra scritto in lingua naturale indica una condizione , le scelte in pascal vengono decise tramite un costrutto if .. then .. else
if equivale al Se
Then equivale al allora
else equivale a altrimenti
Vediamo le sue caratteristiche scrivendo un Code , determinare se un numero è pari o dispari , matematicamente determinare se un numero è pari o dispari si fa facendo la divisione per 2 e vedere se il resto è 0
facendo uno sguardo nella tabella degli operatori matematici .. notiamo c'è un operatore che fa al caso nostro il Modulo
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Notiamo che dopo l'istruzione if ci va la condizione tra parentesi ( se n1 diviso 2 = 0) allora ....
Un altra cosa IMPORTANTISSIMA l'istruzione dopo il then l'istruzione seguente non vuole il ;
se sono più istruzioni si usa
begin
end
se si trova nel costrutto else
begin
end; ---> per indicare la fine del if
Naturalmente possono esistere più if in una condizione, si parla di if nidificati o annidati
if (cond 1) then
//istruzione
else
if(cond 1)
//istruzione
else
//istruzione
Costrutto Case
Passiamo alla seconda parte del costrutto di Selezione Case n of
A differenze di if case da la possibilità di selezionare una variabile e prevederne tutti i possibili casi Vediamo in Generale il costrutto:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Dispone di un else (cioè di un altrimenti) è valida la regola se ci fossero più istruzioni in un caso si usano begin e end; (equivalenti alle parentesi graffe in C o C++)
Un esempio banale sotto :
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Riepilogo breve sul Capitolo
Si arriva a un certo punto del programma in cui bisogna prendere una decisione: i costrutti per farlo sono 2 if e case of
Struttura if
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Capitolo 6) Operatori Relazionali , And or e xor
In corredo con if e case possiamo aggiungere and,xor eor
and corrisponde ad e congiunzione
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
or equivale ad oppure
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Di Solito in condizioni complesse sono presenti sia and che or !
l'ultimo da vedere è Xor , equivale a dire se una delle due o più condizioni sono vere esegui il ciclo quindi basta che almeno un istruzione sia vera lui eseguirà l'if
2° Parte : Operatori Relazioni
Come per gli operatori aritmetici li metterò in una tabella
Operatore | Funzione |
= | Uguaglianza |
> | Maggiore |
< | Minore |
>= | Maggiore oppure uguale |
<= | Minore oppure uguale |
and= congiunzione
or= oppure
xor= se una delle due o più condizioni sono vere
Operatori Relazionali, Vedi la Tabella
Capitolo 7) Le Iterazioni
Si arriva a un certo punto del programma che dovremmo ripetere una serie di istruzioni per un tot volte fino a quando tale condizione non si verifica.. e per risolvere questo problema sono nate le Iterazioni o Comunemente chiamati Cicli!
- Ciclo Repeat
- Ciclo For
- Ciclo While
Nei prossimi capitoli analizzeremo ciclo per ciclo!
Capitolo 8) Repeat Until
Come ogni ciclo , bisogna averne una sua fine , (eccetto per casi eccezionali).
il Ciclo Repeat
//istruzioni
Until(cond);
esegue il ciclo fino a quando la condizione non diventa Vera/true
Quindi è molto facile entare in un ciclo repeat infinito se la condizione dopo Until non viene soddisfatta e tale condizione deve essere soddisfatta nel corpo (cioe tra repeat e Until)
Esempio di Ciclo Infinito:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Questo codice eseguito su pascalGui (ide Pascal per android) blocca momentaneamente il Telefono , lascio dedurre a voi il perché anche se è molto chiaro
Vediamo l'utilità del ciclo , sviluppiamo un programma che visualizzi i primi 100 numeri pari!
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Quindi fino a quando i non diventerà 100 eseguirà il ciclo , avanzerà di un numero alla volta e controllerà se è pari lo scrive
Riepilogo Breve sul Capitolo
L'iterazione repeat until ripete un ciclo fino a quando la condizione è VERA
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Capitolo 9) Ciclo While
Cavolo mi sono stancato a scrivere so 2h :omg: ... comunque continuiamo ora parleremo del ciclo While , è diverso da repeat Until in quanto il ciclo viene eseguito fino a quando la condizione rimane VERA , l'esatto opposto di repeat Until che era fino a quando non diventa Vera esegui il ciclo
Esempio :
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
alla fine i e y saranno valori uguali , quindi l'unico caso che controllerà per uscire dal ciclo è :se y è uguale a i esci dal ciclo perchè y non sarà + maggiore di i ma bensì uguale
Riepilogo Breve Sul Capitolo
While viene eseguito fino a quando l'istruzione è vera dopodichè esce dal ciclo
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Capitolo 10) Ciclo For
Personalmente ritengo che questo ciclo è utilissimo per interagire con gli array e lo preferisco ad altri , vediamo come è il costrutto.
*Nel prossimo capitolo vi mostrerò l'utilità di for con gli array
For var:=0 to n do
begin
end;
Come notiamo in questo ciclo è presente l'inizializzazione di una variabile LOCALE nel ciclo For
Vediamo l'esempio Proposto nel Capitolo 8 modificandolo utilizzando il Ciclo For!!
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
esegue Il ciclo da 2 a 100 verificando se è pari!
come si nota l'inizializzazione della variabile i avviene direttamente nel ciclo e non c'è bisogno di dichiarazione!
Questa tipo di variabile è detta Contatore
Riepilogo breve sul Capitolo
il ciclo for esegue ciclicamente da n numero a n numero prestabilito
costrutto
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Capitolo 10) Array
Questo è l'ultimo capitolo di questa guida , che spero in un rilievo, parliamo degli array . Iniziamo con il definirli :
Si tratta di un vettore che può contenere contemporaneamente più valori indicati da un indice
Andiamo a vedere la sua dichiarazione che è leggermente particolare:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
da notare una curiosità i pue puntini tra il primo elemento e il secondo elemento sono OBBLIGATORI!!!
la seconda parte della definizione che ogni singolo indirizzo di memoria è accessibile tramite indice
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Bene Passiamo a un esempio Pratico : vogliamo digitare 10 voti e controllare se sono maggiori o uguali 6 e determinare i positivi e i negativi
Naturalmente useremo un array e non 10 variabili altrimenti sarebbe Scomodissimo
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Riepilogo breve sul Capitolo
Un array èSi tratta di un vettore che può contenere contemporaneamente più valori indicati da un indice
Costrutto:
var <nome>:array[1..maxelemnto] of <tipo>;
accessibilità
<array>[indice]:=valore;
ASSOLUTAMENTE VIETATO COPIARE TOTALMENTE O PARZIALMENTE LA GUIDA SENZA CITARNE L'AUTORE
Spero la Guida sia Utile per chi vuole iniziare a conoscere il Pascal e la programmazione in Generale
--------------- AGGIUNTA AL POST ---------------
@Dvdxseo
Ultima modifica: