• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Guida al pascal

TBH

Utente Master
Autore del topic
24 Dicembre 2012
2.134
115
Miglior risposta
0
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

  1. Una sintassi rigida
  2. 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
  1. Byte Valore da 0 a 255
  2. Integer valore da -32768 a +32767
  3. Real -- Valore Decimale
  4. Char -- Carattere
  5. String -- più caratteri
  6. 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

OperatoreFunzione
+Somma due Numeri
-Sottrazione di due numero
*Moltiplicazione di due numeri
/Divisione tra Reali , quindi tra tipi Real
divDivisione tra Interi(integer) e i suoi derivati shorint e longint
modOperatore Modulo , restituisce il resto di una divisione
La tabella è molto chiara (credo ..) non ho nulla da aggiungere oltre che a prestare attenzione tra div e /












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!
Ometto la spiegazione perché mi sembra di una facilità unica.

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!
Struttura Case
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!
esempio :
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
OperatoreFunzione
=Uguaglianza
>Maggiore
<Minore
>=Maggiore oppure uguale
<=Minore oppure uguale
Riepilogo Breve sul Capitolo
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!
  1. Ciclo Repeat
  2. Ciclo For
  3. 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!
Analizziamo l'esempio di sopra esegue il ciclo fino a finchè y è maggiore di i
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!
il vettori si indica tramite il numero tra parentesi quadre

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: