iİnformatikanın məktəbdə tədrisi

M-2

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.