Scambiare due variabili

Due variabili contengono dei valori e abbiamo la necessità di scambiarli tra loro.

scambia1

Prima versione

Difettosa?

scambia11

Prima versione (difettosa?)

Program Scambia_Difettosa;
Uses
     Crt;
Var
     var1,                      (* dichiarazione delle variabili    *)
     var2: Integer;
Begin
     var1:=5;                   (* inizializzazione delle variabili *)
     var2:=100;
     Clrscr;                    (* Pulisce lo schermo               *)
     Writeln('1: ', var1);      (* visualizzazione delle variabili  *)
     Writeln('2: ', var2);
     var1:=var2;                (* ELABORAZIONE DEI DATI            *)
     var2:=var1;
     Writeln('1: ', var1);      (* visualizzazione del risultato    *)
     Writeln('2: ', var2);
     Readln;
End.

Seconda versione

Corretta!

scambia2

Utilizza una variabile temporanea, di appoggio.

Program Scambia_Corretta;
Uses                            (* Utilizzo delle librerie          *)
     Crt;                       (* Libreria per schermo e tastiera  *)
Var
     var1,                      (* dichiarazione delle variabili    *)
     var2: Integer;
     temp: Integer;             (* variabile di lavoro              *)
Begin
     var1:=5;                   (* inizializzazione delle variabili *)
     var2:=100;
     Clrscr;                    (* Pulisce lo schermo               *)
     Writeln('1: ', var1);      (* visualizzazione delle variabili  *)
     Writeln('2: ', var2);
     temp:=var1;                (* ELABORAZIONE DEI DATI            *)
     var1:=var2;
     var2:=temp;
     Writeln('1: ', var1);      (* visualizzazione del risultato    *)
     Writeln('2: ', var2);
     Readln;
End.