![]()
Ok, cominciamo:
PER UNA BUONA VISIONE DEGLI SCHEMI E DEI DISEGNI
SI CNSIGLIA DI UTILIZZATE IL NOTEPAD
A TUTTO SCHERMO CON UNA RISOLUZIONE MINIMA DI 800X600
Il Pascal e' il linguaggio che la scuola Superiore italiana ha adottato
x l'insegnamento, mentre in America, insegnano il C, in Italia si insgena
il pascal ed ora vi spiego xche', il C e' un linguaggio libero che non segue
una ferrea regola di programmazione ma che lascia molta fanatasia,
mentre il Pascal e' strutturato seguendo una sintassi e una semantica rigida e
ben definita.
In questa guida non intendo dirvi tutto sul Pascal anche xche' io x
scuola ho 6 vol, sarebbe del tutto impossibile, anche xche' io stesso non so
tutto!
N.B. Questa non vuole essere una guida di programmazione
ma una dispenza una introduzione
Cominciamo con la programmazione
PRIMI CENNI:
1. DOPO OGNI ISTRUZIONE VA' IL PUNTO E VIRGOLA ( ; )
2. E' BENE CHE OGNI VARIABILE SI IN MAIUSCOLO ( PER NON IMPAZZIRE)
3. NON METTETE NON DEL CAVOLO (NON E' PROFESSIONALE)
4. TOGLIETEVI DALLA TESTA CHE IL PASCAL SIA UN LINGUAGGIO X GLI
SCOLARI
/| | ---------------------------------------- |
| |------> come si struttura un programma Pascal <------|
_|_ | ---------------------------------------- |
|++++++++++++++++++++++++++++++++++++++++++|
| PROGRAMMA PASCAL |
| |
| |
| |++++++++++++++++++++++++++++++++++++| |
| | INTESTAZIONE | |
| |++++++++++++++++++++++++++++++++++++| |
| |
| |
| |++++++++++++++++++++++++++++++++++++| |
| | BLOCCO | |
| | |++++++++++++++++++++++++++++| | |
| | | DICHIARAZIONI | | |
| | |++++++++++++++++++++++++++++| | |
| | | |
| | |++++++++++++++++++++++++++++| | |
| | | ISTRUZIONI | | | <--- PRIMA DELLE
| | |++++++++++++++++++++++++++++| | | ISTRUZIONI SI USA
| | | | IL "BEGIN"
| |++++++++++++++++++++++++++++++++++++| |
| |
| FINE DEL PROGRAMMA | <--- PER TERMINALE IL
|++++++++++++++++++++++++++++++++++++++++++| PROG. SI METTE
"END"
-INTESTAZIONE:-
Nell'intestazione si va' a inserire l'intestazine del programma
ovvero il suo nome.
es.
Program ValK;
-BLOCCO:-
Qui si inserisce tutto cio' che e' parte del programma.
-DICHIARAZIONI:-
Qui si ha la dichiarazione delle variabili, la chiamata alle dll
etc.
-ISTRUZIONI:-
Ecco il vero corpo del programma qui si inseriscono le
istruzioni di programmazione
ECCO UN PROGRAMMA IN PASCAL CON COMMENTO
Program ValK; <--- INSTESTAZIONE
Uses crt;
var VAR, VAR1, VAR2: INTEGER; <--- DICHIARAZIONE
Begin <--- ISTRUZIONI Notare che dopo il
begin non che' il ;
istruzione 1
istruzione 2
istruzione 3
end. <--- NOTARE IL "." DOPO END
ŻŻŻŻ| | ------------------------------------------ |
|ŻŻŻ |------> FUNZIONI, ROUTINE <------|
|____ | ------------------------------------------ |
PER ORA NON NE PARLO IN QUANTO L'ARGOMENTO E' VASTO
SPERO DI POTERLO FARE MOLTO PRESTO
/ŻŻŻŻ| | ----------------------------------------- |
----| |------> LA PROGRAMMAZIONE <------|
____| | ----------------------------------------- |
N.B. RICORDATE CHE DOPO OGNI ISTRUZIONE VA' IL PUNTO E VIRGOLA (;)
GLI OPERATORI
--------> DI CALCOLO
Gli operatori di calcolo sono quei caratteri che interpretati dall'esecutore
eseguono delle operazioni: per il Pascal questi sono:
+ Addizione - Sottrazione
* Moltiplicazione / Divisione
DIV Esegue la divisione e ritorna il valore intero del risultato.
USO= Variabile := Num1 DIV Num2
MOD Esegue la divisione e ritorna il resto
USO= Variabile := Num1 MOD Num2
--------> DI RELAZIONE
<= maggiore uguale >= minore uguale
< maggiore > minore
= uguale <> diverso
Il loro uso e' molto semplice dopo la dichiarazione della variabile si fa in
essa una relazione ad es.
while x< 10 do ...
--------> LOGICI
NOT Negazione Logica AND Congiunzione Logica
OR Esclusione Logica XOR Comparazione Logica
Questo tipo di operatori si riferiscono al tipo di dato booleano.
-I COMANDI:-
------------> START <------------
PROGRAM Si usa nell'instestazione serve a dichiarare il nome del
programma a cui poi verra' assegnato un numero e copiato in
un indirizzo di memoria
USES Si usa x "chiamare" una dll ( dinamic link library ) [es. la
crt] dopo la chiamata tutte le funzioni disponibili in
quella libreria saranno disponibili x l'uso [es. nella dll
crt c'e' la funzione "clrscr" che pulisce tutto quello
che c'era prima sul monitor]
VAR Serve x dichiarare le variabili, dichiarata la variabile
verra' occupata un'area di memoria a cui poi si fara'
riferimento x scrivere e leggere i valori da inserire nella
variabile
-I TIPI-
REAL: Tipo di dati che abbraccia tutti i numeri Reali cioe'
da -[infinito] a +[infinito], abbraccia quindi tutti i numeri
esistenti
INTEGER: Tipo dei dati che abbraccia tutti i numeri interi quindi non
si accettano in queste varibili i numeri frazionari, con la
virgola o irrazionali.
CHAR: Tipo di dati CARATTERE , cioe' che accetta tutti i caratteri
ascii (quelli della mappa dei caratteri) ma solo uno x
variable char
STRING: Tipo di dati che contiene una frase o una espressione accetta
tutti i caratteri ascii(quelli della mappa dei caratteri) uno
in successione all'altro
BOOLEAN: Tipo di dati che puo' assumere il valore TRUE o FALSE a
seconda della frase logica espressa al suo interno
NOT: Negazione logica
AND: Congiunzione logica
OR: Disgiunzione logica
Es.
var FLAG:boolean;
BEGIN
A:= 10;
B:= 12;
C:= 1;
FLAG:= A OR B <> C -->[ FLAG ASSUME IL VALORE DI TRUE XCHE' A o B
diversi da C e' una frase logica Vera]
BEGIN
Sta ad indicare l'inizio del corpo di programmazione non ha
bisogno di ";" al suo seguito
END.
Sta ad indicare la fine del programma deve sempre essere
seguito dal "."
------------> LETTURA E SCRITTURA <------------
READ(X)
Legge il valore inserito a video [quello seguito dal
Carattere RETURN o INVIO] lo inserisce nella variabile X
READLN(X)
Scrive una linea bianca legge il valore inserito a video
[quello seguito dal carattere RETURN o INVIO] e lo inserisce
nella variabile X
WRITE('string')
Scrive quello inserito tra le virgolette [in questo caso
stringa"] e lo stampa a video inoltre se non si usano le
virgolette l'esecutore cerca la varibile X e ne
stampa a video il contenuto. Se si vuole si puo' anche
dividere da virgola due stringhe
due variabili oppure una stringa e una variabile, etc.
formando tutte le combinazioni
possibili. se si vuole utilizzare nella stringa il carattere
' si deve ripeterlo 2 volte altrimenti l'esecutore va' in
errore.
WRITELN('stringa')
Scrive una linea bianca poi -->
--> Scrive quello inserito tra le virgolette [in questo caso
"stringa"] e lo stampa a video inoltre se non si usano le
virgolette l'esecutore cerca la varibile X e ne
stampa a video il contenuto. Se si vuole si puo' anche
dividere da virgola due stringhe due variabili oppure una
stringa e una variabile, etc. formando tutte le combinazioni
possibili. se si vuole utilizzare nella stringa il caratter '
si deve ripeterlo 2 volte altrimenti l'esecutore va' in
errore.
------------> I CICLI <------------
WHILE --- DO
Si usa x ripetere una istrizuine fino a che il contatore
raggiunge l'esponente
dopo la fase di "programmazione" del ciclo si mette il
"begin" e alla sua fine
"end"
E = espressione di RELAZIONE:
"<=" (maggiore uguale),
">=" (minore uguale),
"<" (maggiore),
">" (minore),
"=" (uguale),
"<>" (diverso NON USARLO MAI)]
I = Variabile contatore integer
X = Esponente numerico
NOTARE CHE LE PARTI CHE COSTITUISCONO IL CICLO SONO MESSE TRA PARENTESI QUADRE
[WHILE] I E X [DO] [ puo' essere inteso cosi' "whileI(Variabile
contatore) =(espressione) 10(Esponente numerico
do" ]
begin
istruzione1
istruzione2
I := I+1 <---- incremento il contatore
"RICORDARSI DI FARLO SEMPRE"
end <---- Fine del ciclo
FOR --- TO --- DO
Si usa x fare una operazione a partire da un numero fino ad
un altro dopo la fase di "programmazione" del ciclo si mette
il "begin" e alla sua fine
"end;"
VAR = Variabile contatore integer
NumInizio= numero a partire dal quale il ciclo conta
NumFine = quando la variabile VAR raggiunge NumFine il ciclo
termina
NOTARE CHE LE PARTI CHE COSTITUISCONO IL CICLO SONO MESSE TRA PARENTESI QUADRE
[FOR] [VAR]:= NumInizio [TO] NumFine [DO]
BEGIN
ISTRUZIONI
VAR := VAR +1 <---- incremento il contatore
"RICORDARSI DI FARLO SEMPRE"
END;
------------> IL BLOCCO "IF", "THEN", "ELSE" <------------
IF
Pone la condizione il suo uso e' semplice ma legato al
camando "then" ecco alcuni esempi:
IF VAR= true ...
IF VAR= 10 ...
IF VAR= 'A' ...
NOTARE CHE DOPO "IF" C'E' L'OPERATORE DI RELAZIONE = UN
QUALSIASI ALTRO OPERATORE NON FA' ALCUNA DIFFERANZA
THEN
Dopo di lui si eseguono le istruzioni che seguono "begin" e
che finiscono con "end"
es.
IF VAR = true THEN <----- SE "VAR" E' VERA (BOOLEANO) ALLORA
Begin
ISTRUZIONI;
End
ELSE
Nel caso non si verifichi la condizione di "IF" viene
eseguito "ELSE" la sintassi e' uguale a quella del comando
"IF ----- THEN" infatti l'esecutore esegue le istruzioni
che seguono "begin" e che finiscono con "end"
F VAR = true THEN <----- SE "VAR" E' VERA (BOOLEANO) ALLORA
Begin
ISTRUZIONI;
End
ELSE <----- ALTRIMENTI
Begin
ISTRUZIONI;
End;
N.B. IL PUNTO E VIRGOLA E' MESSO SOLO SULL'ULTIMO "END" MENTRE SU
"IF ---- THEN" E SU "ELSE" NON C'E' SE CI FOSSE STATO SOLO
IL PRIMO BLOCCO ("IF ---- THEN") ALLORA IL PUNTO E VIRGOLA
AVREBBE SEGUITO IL PRIMO "END"
Questi sono i comandi principali quelli usati piu' di frequente per i
comandi delle dll guardare la documentazione della libreria relativa.
L'ASSEGNAZIONE:
L'operazione di assegnazione, ASSEGNA ad una variabile un valore, per fare
questo si ha la seguente sintassi:
Variabile := valore o espressione
"Variabile" e' la variabile in cui si desidera scrivere, la variabile
va' dichiarata come su detto
":=" e' la vera e propria operazione di assegnazione
"valore o espressione" e' il valore che si vuole scrivere [es. X := 10] oppure
l'espressione NUMERICA che dara' come risultato un
numero [es. X:= 10 + 1 -5]
Notare anche che e' possibile usare il valore di un'altra
variabile nell'espressione basta che
al posto del numero si inserisca il nome della variabile
[es. X := Y + 10 - H ( Y e H sono variabili)]
N.B. nel caso la nosta Variabile X sia utilizzata come
contatore sara' possibile riassegnare il valore gia' in
lei memorizzato e addizionarci l'esponente che
desideriamo. [es. X:= X + 1 in questo caso
l'esponente e' uno ma poteva essere quanto vogliamo]
/| | ----------------------------------------- |
/ | |------> VEDIAMO I PROGRAMMI <------|
ŻŻ|Ż | ----------------------------------------- |
Non staro' ora a commentare tutti i passaggi, mostrero' solo le parti
principali e spiegate di sopra.
PROGRAMMA 1
Program Benvenuto; <------ INTESTAZIONE
Var Nome: String; <------ DICHIARAZIONE
Begin ŻŻŻ|<---- INIZIO
Writeln('Chi sei?'); |
Readln(Nome); |----- ISTRUZIONI
Writeln; |
Writeln('CIAO ',Nome); |
End. ___|<---- FINE
PROGRAMMA 2
Program Asseganz; <------ INTESTAZIONE
Var X,Y,Z: Real; <------ DICHIARAZIONE
Begin ŻŻŻ|<---- INIZIO
X:= 10; |
Y:= 12; |----- ISTRUZIONI
Z:= 13; |
X:=Y:=Z; | Prima Y assume il valore di Z poi X
| assume il valore di Y
End. ___|<---- FINE
PROGRAMMA 3
Program Operazio; <------ INTESTAZIONE
Var X,Y,Z: Real; <------ DICHIARAZIONE
Begin ŻŻŻ|<---- INIZIO
X:= 10; |
Y:= 12; |----- ISTRUZINI
Z:= 13; |
X:=Y + Z * Y / Z -Y; | Si esegue l'espressione seguendo le
| regole aritmetiche
End. ___|<---- FINE
PROGRAMMA 4
Program Stringa; <------ INTESTAZIONE
Var X,Y,Z: String; <------ DICHIARAZIONE
Begin ŻŻŻ|<---- INIZIO
X:= 'Mannaggia' |
Y:= 'Alla'; |----- ISTRUZINI
Z:= 'Pepotta'; |
X:=X + Y + Z; | X assume il Valore di 'Mannaggia Alla
| Pepotta'
End. ___|<---- FINE
|ŻŻŻŻ | ----------------------------------------- |
ŻŻŻŻ| |------> LA CONCLUSIONE <------|
_____| | ----------------------------------------- |
In conclusione ecco alcuni consigli x una buona programmazione
1. Prima della programmazione fate un buon schema di quello che il programma
deve fare
2. Scrivete sempre a scaletta
Program
|_ Uses CRT;
|_ VAR X,Y,Z: Real;
Begin
|_Istruzini;
|_If --- Then;
|_ Begin
|_istruzioni;
|_ End
|_ ELSE
|_Begin
|_istruzioni;
|_ End;
End.
3. Ricordatevi di scriver le variabili in MAIUSCOLO
saranno poi piu' facili da individuare nella fase di Degug
Io ho finito, questa e' la prima versione di questo documento
ma aggiornamenti e correzioni saranno presto disponibili sul mio
sito http:members.xoom.itValK [scrivete V e K grandi altrimenti non vi
accederete]
oppure potete chiedermele via Mail a: ValK@mail.xoom.it © GnomixLand http://www.gnomixland.com/ |