İ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.