Due variabili contengono dei valori e abbiamo la necessità di scambiarli tra loro.
Prima versione
Difettosa?
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!
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.