Turbo Pascal MSX – lezione 2

da | Nov 18, 2023 | Programmazione, Turbo Pascal | 0 commenti

MSX Turbo Pascal Rubrica a cura di Stefano Roperto (parte 2)

Capitolo 2

Introduzione al linguaggio Turbo Pascal

Vedremo ora come è strutturato un programma in Turbo Pascal. Non è necessario comprendere tutto in questo momento, stiamo solo vedendo la struttura tipica di un programma:
Un programma in Turbo Pascal comincia sempre con la parola riservata “program” seguita dal nome del programma, e ogni riga (tranne alcune eccezioni) finisce sempre con un punto e virgola. Vediamo un esempio:

program nome_del_programma;
{Questo è un commento}
{in questa sezione si dichiarano le etichette (label), le costanti (const), i tipi definiti dall’utente (type), le variabili (var), le procedure e le funzioni. Tutti gli oggetti che saranno usati nel programma, devono essere dichiarati prima dell’uso}
Var {dichiarazione variabili}
X,y : integer;
str : string[30];
pg: real;
procedure Cls; {dichiarazione di procedura}
{dichiarazioni, come per il programma principale}
begin {inizio procedura}
clrscr; {istruzioni}
end; {fine procedura}
function Cls (param_1:tipo1,var param_2:tipo2,..param_n:tipon):tipo_restituito ; {dichiarazione di funzione}
{dichiarazioni, come per il programma principale}
begin {inizio funzione}
Cls := valore; {istruzioni della funzione}
end; {fine della funzione}
begin {inizio del programma
istruzioni del programma; {codice}
end. {fine del programma}

Visto così sembra complicato, ma in effetti non le è. Vediamo un esempio reale e poi scriviamo lo stesso programma in MSX Basic.

Program potenza;
var x,y:integer; 
begin 
clrscr; 
writeln('Immetti il numero da elevare al quadrato');
readln(x);
y:=x*x;
writeln('il quadrato di ',x,' e'' ',y);
end.

La prima riga è l’intestazione del programma ed è obbligatoria. Le variabili x e y sono di tipo integer e, sono dichiarate prima del loro utilizzo. Il programma inizia sempre con la parola chiave begin e termina con la parola chiave end. seguita dal punto. Le istruzioni comprese tra begin e end formano il corpo del programma (per chi conosce il C, begin ed end hanno la stessa funzione delle parentesi { } graffe ). Gruppi di istruzioni coerenti tra loro vanno rinchiuse tra begin e end; in questo caso, però, end è seguito dal punto e virgola(;), perchè il punto (.) indica la fine del programma. Nella definizione di subroutines, procedure e funzioni definite dall’utente, si segue esattamente lo stesso schema, l’unica differenza è che la definizione di una subroutine termina sempre con end e il punto e virgola. Ma vediamo ora lo stesso programma scritto in Basic MSX:

10 CLS
20 PRINT “Immetti il numero da elevare al quadrato”
25 INPUT X
30 Y=X*X
50 PRINT “il quadrato di X è ”; Y
60 END

L’equivalente in basic è certamente più compatto, ma il Turbo Pascal, per esempio nella definizione dei sottoprogrammi offre una versatilità maggiore, una procedure, o una function infatti, hanno la stessa struttura di un programma, quindi possono avere accesso a dati propri, definire tipi propri, definire al proprio interno altre procedure e funzioni, restituire valori al programma principale. Riscriviamo lo stesso programma utilizzando una funzione. In questo caso implementiamo l’operazione di elevamento al quadrato che viene realizzata da una funzione, alla quale passiamo come parametro il numero da elevare al quadrato e che restituisce il valore della potenza. Vediamo un esempio:

Program potenza;
var x,y:integer;
{qui definiamo la funzione}
function quadrato(numero : integer): integer; 
begin
quadrato:= numero * numero;
end;
{da qui inizia il programma principale}
begin
clrscr;
writeln('Immetti il numero da elevare al quadrato');
readln(x);
y:=quadrato (x);
writeln('il quadrato di ',x,' e'' ',y);
{oppure si può inserire direttamente la chiamata alla funzione in un’espressione}
writeln('il quadrato di ',x,' e'' ',quadrato(x));
end.

Lo stesso programma in basic sarebbe il seguente

10 CLS
20 DEF FN QUADRATO (X)=X^2 
30 INPUT “Immetti il numero da elevare al quadrato”, X
40 Y=FN QUADRATO(X)
50 PRINT “il quadrato di X è ”; Y
55 REM OPPURE
60 PRINT “il quadrato di X è ”; FN QUADRATO(X)
70 END

 

Come si vede, in Turbo Pascal la definizione di una funzione segue lo stesso schema della definizione del programma
Function nome_della_funzione (parametri da passare alla funzione): tipo restituito
Begin
Istruzioni della funzione
End;
In questo caso la definizione della funzione è la seguente:

function quadrato(numero : integer): integer; 
begin 
quadrato:= numero * numero;
end;

Naturalmente possiamo migliorare la funzione in modo che prenda in input due numeri , base ed esponente, e che restituisca il valore di base elevato esponente. Per esempio

function potenza(base real, esponente:real): real; 
var 
i: integr;
r: real;
begin 
r:=1;
for i := 1 to abs(trunc(esponente)) do
r := r * base;
potenza:=r; 
end;

dunque all’interno di un programma possiamo usare per esempio l’istruzione

x:=3;
y:=4;
k:= potenza (x,y);

e utilizzare il valore di K (ovvero 3 elevato 4) dove K avrà valore 81.
La funzione assegna alla variabile base il valore del primo parametro (x) e alla variabile esponenente il valore del secondo parametro (Y). Dopo i calcoli assegna alla funzione potenza il valore calcolato e lo restituisce all’espressione chiamante (in questo caso a k).
Naturalmente, la funzione può essere migliorata, per esempio mancano i controlli per i casi particolari di esponente = 0 o esponente negativo.

In ogni caso, torneremo sulle funzioni e sulle procedure in un capitolo dedicato. Intendevo solo presentare la struttura di un programma in Turbo Pascal e mostrarne le potenzialità. Naturalmente c’è molto di più!

 

 

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Turbo Pascal MSX – Lezione 7

Turbo Pascal MSX – Lezione 7

I FILES (parte 1) Turbo Pascal fornisce un completo set di istruzione per la gestione dei file. Il tipo FILE è rappresentato da una sequenza di oggetti dello stesso tipo, la dimensione di  un file non è determinata dal tipo, ma viene fornito un puntatore che si sposta...

Turbo Pascal MSX – Lezione 4

MSX Turbo Pascal Rubrica a cura di Stefano Roperto (parte 4) Lezione 4 Set di istruzioni Le parole riservate sono parte integrante di Turbo Pascal. Non possono essere ridefinite, né usate come identificatori o nomi di variabili. Il Turbo Pascal è sostanzialmente il...

Turbo Pascal MSX – lezione 3

MSX Turbo Pascal Rubrica a cura di Stefano Roperto (parte 3) Capitolo 3 Il tipo di dati definisce l’insieme di valori che una variabile può assumere. I tipi di dati più complessi che possono essere definiti dal programmatore, derivano tutti dai tipi standard. I tipi...

it_ITIT_IT