Çərşənbə axşamı, 06.12.2016, 22:48
İnformatikanın məktəbdə tədrisi
Baş səhifə Qeydiyyat Giriş
e-mail: informatik-az@mail.ru · RSS
Menyu
Fotoşəkillər
Giriş forması
Sorğu
Müəllim kimi informatika dərslərində tez-tez istifadə edirəm:
Cavabların sayı: 6157
Faydalı keçidlər

  • ict.edu.az
  • ict.az
  • telekommunikasiya.edu.az
  • İnf-math.narod.ru
  • Millibyte.az
  • kayzen.az/blog/informatika
  • alqoritm.ucoz.org
  • mincom.gov.az
  • Facebook-da
    Təqvim
    «  Dekabr 2016  »
    B.e.Ç.a.ÇC.a.CŞB
       1234
    567891011
    12131415161718
    19202122232425
    262728293031
    Təqdimatlar
    Saat
    Statistika

    Onlayn: 6
    Ziyarətçilərin sayı: 6
    Qeydiyyatdan keçənlərin sayı: 0


     З-2

    Задачи на целые числа без использования цикла


    Даны два целых числа. Поменять местами их значения.

     Рассмотрим два способа обмена значений двух переменных a и b.

    1-ый способ. В этом способе мы используем третью вспомогательную переменную.  

    Представьте, что у вас имеются два стакана; один, наполненный Фантой, другой Кока-Колой. Требуется   поменять содержимое этих стаканов. Очевидно надо использовать дополнительный пустой стакан. Точно так же надо поступать и с переменными:

    Сначала запоминаем      a (c:=a;  в пустой стакан переливаем Фанту), затем b переносим в a (a:=b;  в освободившийся стакан переливаем Коку),  c  переносим в b (b:=c; в пустой стакан переливаем содержимое вспомогательного стакана – Фанту)

     

    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-ой способ. В этом способе не используется дополнительная переменная. Посмотрите сначала программу, а потом мы дадим пояснение.

     

    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;

    }

    Пояснение. На первый взгляд удивительно, но эти три оператора (a:=a+b; b:=a-b; a:=a-b; или a=a+b; b=a-b; a=a-b;) выполняют требуемый нам обмен. Проверим: пусть a=5  и b=7. Тогда после первого оператора a:=a+b; получим a=5+7=12. После второго оператора   b:=a-b; получим b=12-7=5. А после третьего оператора a:=a-b; получим a=12-5=7. Все, обмен значениями состоялся. 

    Примечание. Вообще этот способ какой то выкрутасный. Ну, подумаешь, сократили на одну переменную. И, кстати, даже не для всех целых переменных этот способ годится. (Кто скажет: для каких не годится?). Но все таки красиво!

    Copyright İsaNaida © 2016
    PYTHON 3.4
    ALPLogo
    Elan
    Fəxr edirik


    Bölmələr
    MÜSABİQƏ
    Azərbaycanda İKT
    Axtarış
    Video
    Info-Ko