GnomixLand




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/