Cümə axşamı, 19.01.2017, 01:11
İ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ı: 6265
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
    «  Yanvar 2017  »
    B.e.Ç.a.ÇC.a.CŞB
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031
    Təqdimatlar
    Saat
    Statistika

    Onlayn: 1
    Ziyarətçilərin sayı: 1
    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 © 2017
    PYTHON 3.4
    ALPLogo
    Elan
    Fəxr edirik


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