Geri
İki
tam ədəd verilmişdir. Onların qiymətlərini dəyişmək tələb olunur.
İki a və b dəyişənlərinin qiymətinin dəyişdirilməsinin
iki üsuluna baxaq.
1-ci üsul. Bu üsulda biz əlavə
3-cü dəyişəndən istifadə edirik.
Təsəvvür edin ki, sizdə iki stəkan var; biri Fanta ilə,
digəri isə Koka-kola ilə doldurulmuşdur. Stəkanda olan mayelərin yerini dəyişmək
tələb olunur. Aydındır ki, əlavə boş stəkandan istifadə etmək lazımdır. Dəyişənlərlərin
kəmiyyətinin dəyişdirilməsini də həmin
qayda ilə yerinə yetirmək lazımdır.
Əvvəlcə a (c:=a,
boş stəkana Fanta tökürük) yadda
saxlayırıq, sonra b-ni a-ya mənimsədirik (a:=b;
boşaldılmış stəkana isə Koka-kolanı tökürük),
c-ni b-yə mənimsədirik ( b:=c;
boş stəkana əlavə stəkandakı Fantanı tökürük).
Program
A1_2a;
var
a,b,c:integer;
begin
readln(a,b);
c:=a; a:=b; b:=c;
writeln(a,'
'-,b);
readln;
end.
|
// Program
A1.2a;
#include
<iostream>
using
namespace std;
int main()
{ int
a,b,c;
cin>>a>>b;
c=a; a=b; b=c;
cout
<< a<<" "<<b << endl;
return
0;
}
|
2-ci üsul. Bu üsulda əlavə dəyişəndən istifadə edilmir. Əvvəlcə proqrama baxaq,
sonra isə aydınlıq gətirərik.
Program
A1_2b;
var
a,b,c:integer;
begin
readln(a,b);
a:=a+b;
b:=a-b; a:=a-b;
writeln(a,'
',b);
readln;
end.
|
// Program
A1.2b;
#include
<iostream>
using
namespace std;
int main()
{ int
a,b,c;
cin>>a>>b;
a=a+b;
b=a-b; a=a-b;
cout
<< a<<" "<<b << endl;
return
0;
}
|
İzahı. İlk baxışdan təəccüblüdür,
ancaq bu üç operatorlar (a:=a+b; b:=a-b; a:=a-b;
və ya a=a+b; b=a-b; a=a-b;) bizə tələb olunan dəyişdirilməni yerinə
yetirir. Yoxlayaq: qoy a=5 və b=7 olsun. Onda birinci operatordan
sonra a:=a-b; a=12-5=7 qiymət alacaq. Vəssəlam, kəmiyyətlərin
dəyişdirilməsi yerinə yetirildi.
Qeyd. Ümumiyyətlə bu üsul daha yaxşıdır. Sadəcə, bir dəyişən
ixtisar edilmişdir. Amma daha rahatdır.
|