субота, 2 січня 2016 р.

Перші сходинки до програмування в Turbo Pascal


Turbo Pascal

Я  з  свого  досвіду  знаю, як  хочеться  новачку  швидше  написати  яку-небудь  програму  і  відчути  себе  програмістом.  Ну  щож, напишемо    найпершу  програму  на  Паскалі. Програма  на  Паскалі  оформляється  завжди  стандартним  чином  і  має  наступний  вигляд:



    ТРОХИ  ІСТОРІЇ

    В  1970  р. з'явилася  нова  мова  програмування. Автор  мови  швейцарський  вчений  Ніклаус  Вірт  назвав  її  Паскалем  на честь  великого  французького  математика, філософа  і  винахідника  17  століття  Блеза  Паскаля. Паскаль  винайшов  обчислювальний  пристрій, саме тому  новій  мові    було дано  його ім'я.
    Завдяки  своїй  чіткості  і  логічності  Паскаль  надовго  зайняв  своє  місце  серед  інших  мов  програмування  не тільки  як  засіб  розробки  серйозних  програм-додатків. Він  також  дуже  добре  підходить  для  навчання  програмуванню. Потім  з'явилися  різні  версії  мови  і  його  розширення, доповнені  новими  можливостями. Найбільш  відомим  розширенням  став  пакет  Turbo  Pascal  фірми  Borland, що з'явився  в  1983 році  і  відразу   став  подією  в світі  комп'ютерних  технологій. Перша  згадка  про  нього  містилася  в  рекламі, опублікованій  в  журналі  BYTE, а  сам  пакет  призначався  для  операційної  системи  CP/M. На початку  1984  року  він    був перенесений  в  середовище  операційної  системи  для  персональних  комп'ютерів          MS-DOS  і  придбав  величезну  популярність. З тих пір  з'явилося  декілька  версій  Турбо  Паскаля, остання – сьома.
    Фірма  Borland/Inprise  завершила  лінію  продуктів  Турбо  Паскаль  і  перейшла  до  випуску  системи  візуальної  розробки  для  Windows – Delphi. Не дивлячись на  це, Турбо  Паскаль  продовжує  грати  роль  відмінної  мови  для  першого  знайомства  з  світом  «серйозного»  програмування.
    Разом з тим  Турбо  Паскаль  чудово  працює  на  порівняно  малопотужних  комп'ютерах, і тому  саме  цей  пакет  часто  встановлюють  в  комп'ютерних  класах  шкіл  і  гуртків  інформатики.
    Як  навчитися  програмувати  на  Паскалі? Немає  недоліку  в  підручниках, що містять  опис  граматики  і  синтаксису  мови  Паскаль, і  вони  дійсно  необхідні  для  засвоєння  правил  програмування. Проте  кращий  спосіб  навчитися  програмувати – подивитися, як  це  роблять  інші.

    Турбо  Паскаль. Чому  не просто  Паскаль, а  Турбо  Паскаль? Слово  «Турбо»  в  англійському  лексиконі  означає  прискорення. Транслятор, що входить  до складу  Турбо  Паска ля, дуже швидко  перекладає  програму  з  мови  програмування  в  машинні  коди, помітно  швидше, ніж  транслятори  в  інших  системах  програмування. Ось  тому – Турбо.


    НАЙПЕРША  ПРОГРАМА

    Я  з  свого  досвіду  знаю, як  хочеться  новачку  швидше  написати  яку-небудь  програму  і  відчути  себе  програмістом.  Ну  щож, напишемо    найпершу  програму  на  Паскалі. Програма  на  Паскалі  оформляється  завжди  стандартним  чином  і  має  наступний  вигляд:


    Program  < ім'я  програми >;
        < розділ  описів >
    begin
        <  розділ  операторів >
    end.


    Отже  напишемо  свою  першу  програму:

    Program  s_privetom_1;
      begin
               Write (‘ Привіт, це  я! ‘);
      end.

    Дійсно  це  перша  програма  яку  пишуть  мої  учні. І дійсно  вони  захоплюються  собою, коли  одержують  результат  виконання  її  на  екрані  монітора.
    Це  їх  надихає  на  робочий  режим, освоювати  ази  програмування.




           




    Арифметичні  операції  на  мові  ПАСКАЛЬ



    Перестановка змінних.
    Задача. Поміняти  місцями  значення  двох  змінних  а  і  b (тобто  щоб  в  а  виявилося  те, що    раніше  було  у  b, і  навпаки). Здавалося б, можна  записати  так:
    а:=b;
    b:=a;
    проте  тут  криється  помилка. Перевіримо  це  на  конкретному  прикладі. Хай  а    було  рівне  10, а  значення  b  рівно  7. Після  виконання  оператора  а:=b  в  b  залишається  7; а  стане  рівним  7, і  тепер, якщо  виконати  оператор  присвоєння  b:=a, там  також  виявиться  7. Вихід  полягає  у  використовуванні  додаткової  змінної  t, в  якій  ми  збережемо  значення  змінної  а  до того, як  його  доведеться  замінити  новим:
    t:=a;
    а:=b;
    b:=t;
    Тепер  а  і  b  помінялися  значеннями.
    Зворотний  запис  числа.
    Задача. Дано  трицифрове  число х= (а,b,c – його  цифри). Вимагається  отримати  число, записане  тими  ж  цифрами, але  в  зворотному  порядку. Тобто, перед  нами  постає  задача  знаходження  цифр  числа – а,b і с. Поставити  ці  цифри  в  зворотному  порядку  легко – результат    буде рівний  x=100c+10b+a. Простіше  за все  знайти  цифру  одиниць  с – вона    буде рівна  остачі  від  ділення  числа  х  на  10 (наприклад, якщо  х=128, то  xmod 10  буде 8, що  нам  і  потрібно). Отже
    с:=x mod 10;
    Щоб  знайти  b, поступимо  таким чином:  спочатку  знайдемо, рівне  х, діленому  на  10 (для  128  це  буде  12), а потім  вже  визначимо у – цифру  одиниць  числа, що вийшло :
    b:=x div 10 mod 10;
    Знайти  а  просто – це  результат  ділення  х  без  остачі на  100;
    а:=x div 100;
    Тепер  можна  написати  всю  програму:
    Program  naoborot;
    var  x,a,b,c: integer;
    begin
           Write(‘ введіть x’);
            Readln(x);
            с:=x mod 10;
            b:=x div 10 mod 10;
            а:=x div 100;
            Write(100*c+10*b+a);
    end.

    НАБІР  ЗАДАЧ  ПО  ТЕМІ:
    ЛІНІЙНІ  ПРОГРАМИ”
    (перші  заняття)
    Задача 1. Якщо  на  одну  шальку  терезів  посадити  Даринку, яка  важить  n  кілограмів, і  Наталку, яка  важить  на  5  кілограмів  менше, а  на  іншу  насипати  m  кілограмів  цукерок, які  набагато  важчі  за  дівчаток, то  скільки  кілограмів  цукерок  доведеться  з’їсти  нещасним, щоб  шальки  терезів  врівноважились?
    Розв’язання (математичне)
    Хай  вага  Даринки  n  кілограм, тоді  вага  Наталки  буде  n-5  кілограм. Разом  вага  дівчаток  буде  s= n+n-5. Щоб  терези  були  в  рівновазі, дівчаткам  треба  з’їсти  таку  кількість  цукерок, яка  дорівнює  різниці  між  вагою  цукерок  і  загальною  масою  дівчаток, тобто  а(кількість  з’їдених  цукерок)= m s.
    А  тепер  запишемо  програму  розв’язання  цієї  задачі:

    Program  N1;
    var n, m, s, а: real;
    begin
               Writeln (‘введіть  вагу  Даринки  в  кілограмах’);
                Readln(n);
                     Writeln(‘введіть  вагу  цукерок  в  кілограмах’);
                        Readln(m);
                           s:=n+n-5;
                           а:=m-s;
                                  Writeln(‘ доведеться  з’їсти  a=’, а:1:1);
                                         Readln;
    end.


    Задача 2. Невдаха-учень  Сашко  сів  виконувати  домашнє  завдання  і  просидів  за  столом  2  години. З  їх  x  хвилин  він  чухав  потилицю  і  дивився  у  вікно, у  хвилин  шукав  у  письмовому  столі  гумку, щоб  стерти  у  підручнику  з  англійської  мови  карикатуру  на  свого  товариша, на  малювання  якої  він  витратив  перед  цим  z  хвилин. Весь  останній  час  Сашко  перекладав  англійські  слова. Скільки  слів  він  встиг  перекласти, якщо  на  перекладення  одного  слова  у  нього  йшло  5  хвилин?

    Розв’язання:
    Хай  Сашко  чухав  потилицю  х  хвилин, шукав  гумку у  хвилин, на  малювання  карикатури  товариша  він  витратив  z  хвилин, тоді  всього  він  витратив  годин:
    h=2*60-x-y-z;  щоб  визначити  скільки  Сашко  переклав  слів, треба  весь  витрачений  ним  час  поділити  на  5 (ця  операція  повинна  виконатись  націло). Отже  маємо  слідуючи  програму:
     Program  N2;
    var x, у, z, h: integer;
    begin
              Writeln('вкажіть, скільки  хвилин  Сашко  чухав  потилицю’);
               Readln(x);
                 Writeln(‘вкажіть, скільки  хвилин  Сашко  шукав  гумку’);
                 Readln(y);
                   Writeln(‘вкажіть, скільки  хвилин  Сашко  витратив  на  малювання  карикатури’);
                     Readln(z);
                         h:=2*60;
                        h:=h-x-y-z;
                        h:=h div 5;
                                Writeln(‘ В  решті-решт  Сашко  переклавши h=’,h:3, ‘слів’);
                                Readln;
    end.


    Задача 3. Петрусь  задумав  число  і  нікому  його  не назвав. Друзі  спіймали  його  і  примусили  подвоїти  задумане  число, а  потім  додати  до  нього  5. І  тільки  після  того, як  друзі  пообіцяли  Перусеві  благодійну  допомогу  на  контрольній  з  математиків, він  зізнався, що  вийшло  число  n. Визначте, яке  число  задумав  і  приховав  від  своїх  друзів  Петрусь?
    Розв’язання
    Хай  Петрусь  задумавши  число  n.
    (пояснення  математичного  розв’язку  видно  із  складеної  програми)

    Program  N3;
    var n : integer;
    begin
                   Writeln(‘ яке  число  вийшло  у  Петруся’);
                    Readln(n);
                          n:=n-5;
                          n:=n div 2;
                         Writeln(‘ Петрусь  задумавши  число – ‘, n);
                          Readln;
    end.

    Задача 4. На  таксі  Дусьці  сидить  х  бліх, а  на  вівчарці  Ладі – у. Після  того, як  вівчарка  і  такса  зустрілись  і  поговорили  одна  з  однією, 12  Дусьчиних  бліх  перейшли  на  Ладу, а  17  Ладиних – на  Дуську. Скільки  бліх  тепер  сидить  на  Ладі, а  скільки  на  Дусьці?
     Розв’язання:
    Program  N4;
    var  x, у, z: integer;
    begin
            Writeln(‘вкажіть, скільки  бліх  сиділо  на  Дусьці:’);
            Readln(x);
                 Writeln(‘вкажіть, скільки  бліх  сиділо  на  Ладі:’);
                    Readln(y);
                          x:=x+5;
                          у:=y-5;
                              Writeln(‘ на  Дусьці’,x:5,’, а  на  Ладі  ‘, у:5);
                               Readln;
    end.


    Задачі  для  самостійного  вирішення.
    Задача 1.Поменять  місцями  значення  змінних  а  і  b,  не використовуючи  додаткову  змінну.

    Задача 2. Дано  чотиризначне  число  х=. Отримати  число, записане  тими  ж  цифрами  в  зворотному  порядку (у=).

    Задача 3.Дано  тризначне  число  х=. Написати  суму  квадратів  його  цифр.

    Задача 4. По  номеру  квартири  визначити  номер  під'їзду  і  поверх. Квартира  знаходиться  в  п'ятиповерховому  будинку, на  кожному  поверсі  по  чотири  квартири.

    УМОВНИЙ  ОПЕРАТОР


    Процедури  введення  і  виведення, а також  оператор  присвоєння  дозволяють  писати  тільки  лінійні  програми, в  яких  всі  команди  виконуються  послідовно, одна за одною. Але  дуже  часто  виникає  необхідність  виконувати  різні  команди  залежно від  виконання  якоїсь  умови. Для  такої  мети  в  Паскалі  введений  умовний  оператор:
    If  (умова) then (оператор 1) else (оператор 2);
    Працює  цей  оператор  так – спочатку  перевіряється  умова, і, якщо  вона  вірна, виконується  оператор 1, в противному випадку виконується  оператор 2.
    В  найпростіших  випадках  умова – це  математичне  порівняння  двох  виразів  по  величині (відношення  двох  величин). Відношення  можна  записати  за допомогою  наступних  знаків:


    Абсолютна  величина


    Хай  вимагається  знайти  абсолютну  величину (модуль) числа  х. Нагадаємо  визначення – модуль  числа  х  рівний  самому  числу  х, якщо  воно  додатнє, і  -х, якщо  число  від’ємне. Тут  очевидно, є  умова, залежно від  виконання  або  невиконання  якогї  слід  виконувати  різні  дії. Без  умовного  оператора  в  повній  формі  не обійтися:

    Program absolute;
    var x:integer;
    begin
         Write(‘ введіть  ціле  число:’);
         Readln(x);
               if x>=0  then
         Write(‘|’,x,’|’=’,x);
             else
                 Write(‘|’,x,’|’=’, -х);
    end.




    ЗНАЙОМТЕСЯ – ПАЛІНДРОМ.

    Ще   одна,  складніша  задача. Вимагається  визначити, чи  є  задане  тризначне  число  паліндромом (паліндром  читається  однаково  зліва направо  і  справа наліво, наприклад, паліндромами  є  числа  121, 282, 454, слова  «шалаш», «наган»). Для  вирішення  цієї  задачі  можна  використовувати  просту  умову – перша  цифра  числа  повинна  дорівнювати  останній:

    Program  palindrom;
    var x:integer;
    begin
          Write(‘ введіть  ціле  число:’);
          Readln(x);
                if  x mod 10 = x div 100  then
               Write(‘ введене  число  є  паліндромом’)
                     else
                        Write(‘ введене  число    не є  паліндромом’);
    end.





    Ділимо  порівну

    Наступна  наша  програма  повинна  перевірити  чи  ділиться  введене  з  клавіатури  ціле  число  без  остачі на  4. Числа  а  і  b  діляться  без  остачі якщо  залишок  від  ділення  а  на  b  рівний  0. Пригадаємо, що  в  Паскалі  є  спеціальна  операція  обчислення  залишку  від  ділення  одного  числа  на  інше. Це – mod:
    Program  divide;
    var  m: integer;
    begin
          Write(‘ введіть  ціле  число’);
          Readln(m);
                 if  m mod 4 = 0  then
                     Write(‘ введене  число  ділиться  на  4’);
                           else
                            Write(‘ введене  число    не ділиться  на  4’);
    end.


    ЛІНІЙНЕ  РІВНЯННЯ

    Розв’язування  лінійного  рівняння ax+b=0  залежить  від  значень  а  і  b. Якщо  а    не рівно  0, то  х=-b/a, якщо  ж  а=0, то  необхідно  перевірити  значення  b. При  b=0  розв’язком  є  будь-яке  число, а  при  b=0   рівняння    не має  розв’язку. Тут  є  декілька  умов, і  в  програмі  розв’язування  лінійного  рівняння  використовується  умовний  оператор:

    Program  linear_equation;
    var а,b: real;
    begin
          Write(‘ введіть  коефіцієнти  а, b:’);
          Readln(а, b);
                 if  a<> 0.0  then
                    Write(‘’x=’, -b/a)
                         else
                            if  b=0.0  then
                              Write(‘ корінь будь-яке  число)
                                  else
                                   Write(‘ коренів  немає!’);
    end.


    ВИСОКОСНИЙ  РІК

    Як  визначити, чи  є  вказаний  рік  високосним? Рік  вважається  високосним, якщо  його  номер  ділиться  без  остачі на  4, окрім  тих  випадків, коли  він  ділиться  на  100. Якщо  номер  року  ділиться  на  400, то  він  все одно  високосний.
    Для  вирішення  задачі  виберемо  наступний  алгоритм. Спочатку  перевіримо, чи  кратний  номер  року  400, якщо  так, то  рік  високосний, якщо  ні, перевіримо  номер  року  на  кратність  100. Якщо  виявиться, що  він  кратний  100, то  рік    не високосний, якщо  ні, перевіряємо  на  кратність  4. Якщо  номер  року  ділиться  на  чотири  без остачі, то  він  високосний, інакше – ні.

    Program  February_29;
    var а: integer;
    begin
            Write(‘ введіть  рік:’);
            Readln(a);
                   if  а mod 400 = 0  then
                   Write(а, -високосний  рік)
                       else
                         if  а mod 100 = 0  then
                         Write(а, ‘ -не  високосний  рік)
                             else
                               if  а mod 4 = 0  then
                             Write(а, -високосний  рік ‘)
                               else
                                  Write(а, ‘ -не  високосний  рік);
    end.





    ЛОГІЧНІ  ОПЕРАЦІЇ

    При  розв’язуванні  різних  задач  іноді  виникає  необхідність  перевірити  виконання  декількох  умов  відразу. Наприклад, в  задачі, що визначає, чи  є  число  n  двозначним, потрібно  перевірити  відразу  дві  умови – n  повинне  бути  більше  9  і  менше  100. Зробити  це  можна, записавши  двох  умовних  операторів:
    if  n > 9  then
    if  n < 100  then 
    Write(‘ двозначне)
    else
    Write(‘ не  двозначне’)
    else
    Write(‘ не  двозначне’);
    Але  в цьому випадку  доводиться  двічі  записувати  рядок  Write(‘ не  двозначне’), і, крім того, таке розв’язання  виглядає  трохи  заплутаним. Для  зручності  запису  таких  і  подібних  їм  умов  слід  використовувати  логічні  операції:
    and – логічне  «і» («логічне  множення»);
    or логічне  «або» («логічне  додавання»);
    xor –  логічне  «виключає  або»;
    not – логічне  заперечення.
    За допомогою  логічних  операцій  прості  умови  можна  об'єднувати  в  складені. Прості  умови  при цьому  обов'язково  беруться  в  дужки, оскільки  логічні  операції  мають  більш  високий  пріоритет, ніж  операції  порівняння.

    ПРАВИЛА  ВИКОНАННЯ  ЛОГІЧНИХ  ОПЕРАЦІЙ

    Складна  умова, складена  з  двох  простих, сполучених  операцією  and, вірно  тоді і тільки  тоді, коли  вірні  обидві  прості  умови. Значенню  «істина»  можна  умовно  поставити  числове  значення  1, а  значенню  «брехня» - нульове. В цьому випадку  результат  застосування  операції  and  можна  отримати, якщо  перемножити  два  логічні  значення  в  їх  числовому  виразі. Тільки  якщо  обидва  вони  істинні, в результаті  отримаємо  істину. Тому  операцію  and  і  називають  ще  логічним  множенням.
    Для  операції  or  складна  умова  істинна, якщо  вірно  хоча б  одна  з  простих  умов. Тут  також  можна  звести  виконання  логічної  операції  до  складання  числових  еквівалентів  логічних  значень, тільки  при цьому  результатом  буде  залишок  від  ділення  отриманої  суми  на  два. Операцію  or  тому  називають  логічним  додаванням.
    Результат  операції  логічне  виключаючи  або:
    умова_1  xor  умова_2
    «істина»  тоді, коли  вірно  тільки  одна  з  умов – умова_1  або  умова_2.
    Операція  not – це  операція  заперечення. Заперечення  істини  помилка, а  заперечення  брехні – істина, тому  not (умова)  істинна  тоді, коли  умова  помилкова.
    Пріоритет (послідовність) виконання  логічних  операцій  такий – спочатку  виконується  заперечення (not), потім  and, а потім  нарівні  or  і  xor.
    Якщо  складна  умова  містить  декілька  однакових  логічних  операцій, то  виконуються  вони  по порядку  зліва направо, як і  арифметичні  операції.
    Для  зміни  порядку  обчислення  умов  можна  використовувати  додаткові  дужки.

    СКІЛЬКИ  ЦИФР  В  ЧИСЛІ?

    Задача. Скласти  програму  яка  визначає, чи  є  введене  число  двозначним?

    Program  two_digits;
    var n: integer;
    begin
          Write(‘ введіть  ціле  число:’);
          Readln(n);
                if (n>9)  and  (n<100)  then
                      Write(‘ введене  число  двозначне’)
                            else
                               Write(‘ введене  число    не двозначне’);
    end.

    ЗНОВУ  ВИСОКОСНИЙ  РІК

    Тепер  складемо  програму, яка  визначає, чи  є  вказаний  рік  високосним  з використанням  логічних  операцій. В  першому  варіанті (див.вище) цієї  програми  ми  двічі  записували  оператори  Write(‘ - високосний  рік) і  Write(‘ -не  високосний  рік). Позбутися    зайвого  оператора  виводу  можна, використовуючи  умовний  оператор  з  складною  умовою:

    Program  February_29_2;
    var а: integer;
    begin
                       Write(‘ ввести  рік:’);
                       Readln(a);
                               if (а mod 400 = 0) or ((а mod 100 < > 0)
                               and (а mod 4 = 0))  then
                                       Write(а, ‘ -високосний  рік)
                                              else
                                                   Write(а, ‘ -не  високосний  рік);
    end.

    ПОРИ  РОКУ.

    Наступна  програма, в  якій  також  використовуються  складні  умови  і  логічні  операції, дозволяє  по  номеру  місяця  визначити  пору  року:

    Program  seasons;
    var а: integer;
    begin
                 Write(‘ введіть  номер  місяця’);
                 Readln(a);
                      if  (а > 2)  and  (а  <  6)  then
                          Write(‘ весна);
                                if  (а  >  5)  and  (а  <  9)  then
                                       Write(‘ літо ‘);
                                             if  (а > 8)  and  (а < 12)  then
                                                     Write(‘ осінь);
                                                         if  (а <3)  or  (а = 12)  then
                                                            Write(‘ зима’);
    end.



    ШАХИ  НА  ЧЕРЗІ.

    Шахи – це  одна  з  складних  логічних  ігор, і  скласти  програму, яка  могла  б  грати  навіть  на рівні  початківця  шахіста, нам  поки   не під силу, тому  візьмемося  за  задачу  простішу.

    Задача. Скласти  програму, яка  визначає  колір  вказаної  клітки    шахівниці.
    Клітка  задається  своїми  координатами х(номер  вертикалі) і  у (номер  горизонталі). Вважатимемо, що  клітка (1, 1) – чорна.
    Ця  задача  розв'язується  просто, якщо  помітити, що  сума  номерів  рядка  і  стовпця  парна  для  чорних  кліток  і  непарна  для  білих: 

    Program   black_or_white;
    var x,y: integer;
    begin
                 Write(‘ введіть  номер  вертикалі  і  номер  горизонталі:’);
                 Readln(x,y);
                     if  (x+y) mod 2 = 0  then
                     Write(‘ клітка  чорна’)
                           else
                              Write(‘ клітка  біла’);
    end.


    Ще одна  проста  шахова  задача.

    Задача. Визначити, чи  може  шахова  тура  за  один  хід  потрапити  з  клітки  з  координатами (х1,у1)  в  клітку  з  координатами  (х2, у2). Відомо, що  тура  ходить  тільки  в  горизонтальному  або  вертикальному  напрямах.
    Для того, щоб  вибрати  правильний  напрям  ходу, помітимо, що  у  всіх  кліток  горизонталі  співпадають  номери  рядків, а  у  кліток  вертикалі – стовпців.

    Program  chess;
    var x1, x2, y1, y2: integer;
    begin
          Write(‘ введіть  координати  першої  клітки   x1  і  у1:’);
           Readln(x1, y1);
            Write(‘ введіть  координати  другої  клітки  х2  і  у2:’);
              Readln(x2, y2);
                 if  (x1=x2)  or  (y1 = y2)  then
                  Write(‘тура  може  за  один  хід  потрапити  у  вказану  клітку’)
                    else
                     Write(‘ тура    не може  за  один  хід  потрапити  у  вказану  клітку’);
    end.


    ВЛУЧНО  СТРІЛЯЄМО

    Отже, вибираємо  мішень, робимо  постріл . Треба  подивитися, чи  потрапили  ми  в  «яблучко». А  для цього  доведеться  вирішити  математичну  задачу. Вона  полягає  в  тому, щоб  визначити, чи  належить  точка  з  координатами  (х,у)  заданій  множині  точок  на  координатній  площині, включаючи  його  межу. Координати  лівої  верхньої  і  правої  нижньої  вершин  зовнішнього  прямокутника  рівні  відповідно  (х1,у1)  і  (х2,у2), а  внутрішнього – (х3,у3)  і  (х4, у4). Належність  точки  зовнішньому  прямокутнику  перевіряється  наступними  умовами:
Точка  не повинна  належати  внутрішньому  прямокутнику, тому  друга  пара  умов  повинна  бути  запереченням  умов:
Отже, текст  програми:

Program  v_moloko;
var x,y,x1,x2,x3,x4,y1,y2,y3,y4: real;
begin
x1:= 1.1;
y1:= 1.2;
x2:= 3.9;
y2:= 5.2;
x3:= 2.2;
y3:= 1.3;
x4:= 3.5;
y4:= 4.9;
                  Write(‘ введіть x, у:’);
                  Readln(x, у);
                     if (x >= x1) and (x <= x2) and (у >= y1) and (у <= y2) and not ((x >=x3)       and (x <= x4) and (у >= y3) and (у <= y4))  then
                      Write (‘ попали  в  мішень !!!’)
                        else
                           Write(‘ мимо.’);
end.



ЛОГІЧНИЙ  ТИП  ЗМІННИХ

В  Паскалі  існує  логічний  тип  змінних  Boolean.  Змінні  логічного  типу  можуть  приймати  тільки  два  значення: true («істина») і  false («брехня»). Таким  змінним  можна  присвоювати  значення, виводити  їх  на  екран, застосовувати  до  них  логічні  операції, не можна  тільки  вводити  їх  значення  з  клавіатури. Наприклад:

Program  bool_boollean;
var а, b: Boolean;
begin
              а:= true;
              b:= false;
              а:= а  and  b  or  not  true;
                  Write(а, b);
end.



В результаті  роботи  програми    буде виведено  на  екран  два  слова  false  і  true. Чому? Розберіться  самостійно.
Логічний  тип  виник   не випадково. Річ у тому, що  логічні  операції  як  результат  видають  значення  true  або  false. Результат  логічної  операції  можна  присвоювати  змінним  логічного  типу, наприклад:
а:= true  and  (2 <=3)  or  (0.5  <>  7);
Виконавши  таке  присвоєння, в  умовному  операторі  замість  умови  можна  використовувати  змінну  логічного  типу. Наприклад:
if  а  then  b:= b+1;
Тип  Boolean  звичайно  використовується  для  зручності  запису  умов, щоб, наприклад, уникнути  багатократного  написання  однієї  і  тієї  ж  умови  або  скоротити  запис  складної  умови.

ПРОГРАМУЄМО  ФОРМУЛУ

В  даній  програмі  використовується  змінна  логічного  типу. Задача  полягає  в  тому, щоб  ввести  з  клавіатури  ціле  число  а  і, якщо  воно  знаходиться  між  10  і  100, обчислити  значення  виразу  а2 – 2а + 7.
Program  expression;
var а: integer;
      b: Boolean;
begin
             Write(‘ введіть  ціле  число:’);
             Readln(a);
                   b:= (а >= 10)  and  (а <= 100);
                           if  b  then   Write(a*a-2*a+7);
end.




СКЛАДЕНИЙ  ОПЕРАТОР

Часто  буває  так, що  у результаті  виконання  деякої  умови  треба здійснити  декілька  дій, а  не одну, як  це  передбачено  в  умовному  операторі. З  цього  положення  можна  вийти, написавши  декілька  умовних  операторів, перевіряючих  одну  і  ту  ж  умову. Але  якщо  дій  багато, програма  вийде  громіздка  і  складна, а  в  програмуванні  цінується  здатність  стисло  і  точно  висловлювати  свої  думки.          Є  інший  простий  вихід, і  полягає  він  у  використовуванні  складеного  оператора. Виглядає  складений  оператор  таким чином:

begin
<оператори>
end;

Зарезервовані  слова  begin  і  end  називаються  операторними  дужками.
Між  ними  може  бути  скільки завгодно  інших  операторів, але  вважається  все  це  одним  складеним  оператором. В  умовному  операторі  та і  в  інших  ситуаціях, з  якими  ми  зустрінемося  потім, там, де  передбачено  використовування  одного-єдиного  оператора, можна  використовувати  складений  оператор.

ЗНАЙТИ  ЦИФРИ .

Задача. Вимагається  ввести  ціле  число  n  і, якщо  воно  тризначне, знайти  його  цифри, в противному випадку надрукувати  повідомлення    не «можу  знайти  цифри». Спробуйте  самостійно  розібратися  в  роботі  програми  find_digits:

Program  find_digits;
var  n,a,b,c : integer;
begin
                    Write(‘ введіть  ціле  число:’);
                    Readln(n);
                        if (n> 99)  and  (n< 1000)  then
       begin
          а:= n div 100;
          b:= n div 10 mod 10;
         з:= n mod 10;
            Write(а, b, з)
       end
               else
                 Write(‘ не  можу  знайти  цифри! ‘);
end.

СУМА  АБО  КВАДРАТ.

Задача. Скласти  програму, яка  повинна  обчислити  суму  двох  дійсних  чисел  х  і  у, якщо  х – додатнє, інакше  обчислити  х2. В  цій  задачі, якщо  х  недодатнє, у  вже  вводити    не треба:

Program  sum_or_square;
var x, у: real;
begin
                  Write(‘ введіть  дійсне  число: ‘);
                  Readln(x);
                       if  x > 0  then
                     begin
                        Write(‘ введіть  дійсне  число  у :’);
                        Readln(y);
                           Write(x+y)
                     end
                          else
                               Write(x*x);
end.



ОПЕРАТОР  ВИБОРУ

В  Паскалі  є  ще  один  оператор, який  дозволяє  програмувати  складні  розгалуження, коли  є  декілька  варіантів  дії (більше  двох). Цей  оператор  називається  оператором  вибору  (case)  і  має  наступний  вигляд:

case  вираз  of
      cписок_значень_1 :  оператор_1;
      cписок_значень_2  :  оператор_2;
      .
      cписок_значень_n : оператор_n;
else   оператор;
end;
Тут  між  зарезервованими  словами  case  і  of   знаходиться  вираз, що  приймає  значення, яке  може  бути присутнє  в  одному  із  списків  значень, що знаходяться  зліва від  двокрапок. Кожний  оператор, що йде  за  двокрапкою, відділяється  від  наступного  списку  значень  крапкою  з  комою. Гілка  else,  що відповідає  всім  неперерахованим  значенням  виразу, необов'язкова. При  виконанні  даного  оператора  спочатку  обчислюється  значення  виразу. Потім  вибирається  той  список  значень, в  якому  знаходиться  отримане  значення, і  виконується  відповідний  йому  оператор.
В  списках  значень  оператора  case  допустимими  є  цілі  і  деякі  інші (але не  речовинні) типи. Будь-яке  задане  значення  виразу  може  входити  в  список  значень  неодноразово, але  виконуватися  буде  лише  перша  відповідна  гілка. Якщо  значення  виразу  відсутнє  в  списках  значень, жоден  з  варіантів  виконуватися    не буде. В цьому випадку  виконується  гілка  else  оператора  case  або, якщо  ця  гілка  відсутня, наступний  за  case  оператор.

Задача. У  національному  університеті  “Львівська  політехніка”  поточні  знання  студентів  оцінюють  за  стобальною  системою. На  екзамені  бали  переводять  в  оцінки: «відмінно», «добре», «задовільно», «незадовільно». Оцінки  визначають  так:

     Балі                       Оцінка
    88 – 100                 «відмінно»
    71 – 87                   «добре»
    50 – 70                    «задовільно»
      0 – 49                    «незадовільно»
Скласти  програму, яка  для  конкретного  студента  (name)  і  його  кількості  балів  (bal)  виводить  його  оцінку  (mark).

Program  Varks;
var  bal: integer;
       name, mark : string;
begin
         Write(‘введіть  прізвище’);
         Readln(name);
             Write(‘введіть  бали ‘);
                Readln(bal);
     case  bal
           88..100 : mark :=  ‘відмінно ‘;
           71..87 : mark := добре’;
           50..70 : mark := ‘задовільно’;
             0..49 : mark := ‘незадовільно’
              else  mark := ‘0’
               end;
                  if  mark < > ‘0’  then 
                    Writeln( name : 15, mark : 15)
                         else
                             Writeln(‘ помилка  під  час  введення  кількості  балів’);
end.

Завдання. Віконати  алгоритм  для  кількох  значень  змінної  bal.
                            
Зауваження. Від  моменту  формулювання  умови  задачі  до  виконання  програми  можна  забути, які  значення  змінних  є  допустимими. Саме  тому  в  алгоритмах  прийнято  контролювати  правильність  вхідних  даних  і  виводити  повідомлення  у  випадку  виявлення  помилки, допущеної  під  час  введення  даних. У  наведеній  програмі  таке  повідомлення  буде  виведено, якщо  ввести  від’ємну  кількість  балів  чи  число  більше, ніж  100.

Задача. Ціна  купальника  у  травні  становить  а  грн. У  червні  ціна  буде  збільшена  на  р%, у  липні  дорівнюватиме  травневій, а  в  серпні  буде  зменшена  на  q%  порівняно  з  травневою. Скласти  програму, яка  після  введення  номера  літнього  місяця  (month)  визначатиме  ціну  (с)  купальника.
Розв’язок  задачі  запишемо  у  такому  вигляді:
Розглянемо  програму. Змінну  month  оголосимо не як  integer, а  як  діапазон  6..8 звуження  типу  integer  згідно  з  умовою  задачі.

Program  Shopping;
var  month : 6..8;
        а, p, q, з : real;
         when: string;
begin
               Write(‘введіть  ціну, відсотки p  та  q, номер  місяця:’);
               Readln(а, p, q, month);
                   case  month
                     6:  begin  з:= a*(1+p/100);
                     when := ‘червні’ 
                          end;
                              7 :  begin  з:= а:
                                        when := ‘липні’ 
                                     end;
                                          8 :  begin  з := a*(1 – q/100);
                                                  when := ‘серпні’
                                                 end
                                                 end;
                                                          Writeln(‘ купальник  у  ‘, when,  ‘коштує’, з)
end.

Виконаємо  програму. Хай  нас  цікавить  ціна  купальника  в  серпні  (month). Введемо  дані  так: 9.8  20  30  8.
Отримаємо  результат: Купальник  у  серпні  коштує  6.86.

Задача. Змоделювати  роботу  автомата  з  продажу  квитків. Хай  населені  пункти  (k)  позначені  номерами  1, 2, 3, 4, 5, 6, 7, 8. Вартість  одного  квитка  (cina)  до  конкретного  пункту  визначена  так:
Скільки  коштуватимуть  m квитків  до  деякого  населеного  пункту?
    
Program  kvytky;
var до, m, cina : integer;
begin
              Write(‘введіть  кількість  квитків  та  номер  пункту: ‘);
               Readln(m, до);
                  case  до
                                           1   : cina :=22;
                          2, 3: cina :=35;
                          4: cina :=50;
                          5, 6: cina :=72;
                               else    cina :=97
                                 end;
                                 Writeln(m, ‘квитків  до  пункту’,k, ‘  коштують’, m*cina)
end.

Задача. Виконайте  програму  Dialog.  Уведіть  число – кількість  років – і  прочитайте  відповідне  повідомлення.

Program  Dialog;
var  vik : integer;
begin
Write(‘ скільки  Вам  років?’);
Readln(vik);
case  vik
12, 13: writeln(‘ вам  ще  рано  читати  такі  книжки’);
14, 15: writeln(‘ вам  ще    не можна  дивитися  фільми  для  дорослих’);
16, 17:writeln(‘ добре  вчіться – батьки  будуть  пишатися  вами’);
18, 19:writeln(‘мінздоров’я  попереджає...’);
20..23: writeln(‘ Паскаль  вивчати  вже  пізно – пора  заміж!’)
else
writeln(‘ Закрийте  цю  книжку! Читайте Н. Вірта!’);
end;
readln
end.

У  програмі  Dialog  використано  діапазон  значень  20..23  замість  списку  чисел  20, 21, 22, 23.
Завдання. Поєкспериментуйте  з  однією  з  наведених  вище  програм, модифікувавши  її  на  свій  розсуд  та  ввівши  свої  дані.

ЗАДАЧІ  ДЛЯ  САМОСТІЙНОГО  ВИРІШЕННЯ

Задача 1.Перевірити, чи  є  число  а  парним.

Задача 2.Знайти  найбільше  з  трьох  чисел.

Задача 3. Для  цілого  числа  n  знайти  суму  його  цифр. Знайти  суму  квадратів  його  цифр  у випадку, якщо  n  чотиризначне.

Задача  4. Визначити, чи  є  число  n  одночасно  додатним  і  кратним  3.

Задача 5. Визначити, чи  може  шаховий  кінь  за  один  хід  потрапити  з  клітки  з  координатами  (х1,у1)  в  клітку  з  координатами (х2,у2).

Задача 6. Визначити, чи  належить  точка  з  координатами  (х,у)  заданій множині  точок  на  координатній  площині  (множини  зображені  на  малюнку, множини  включають  межу).
Задача 7. Хай  а  і  b – змінні  типу  Boolean. Знайти  значення  а  і  b  в результаті  виконання  наступного  фрагмента  програми:
а:= ( 2<> 3)  or  true;
b:= а  and  а  xor  (true  and  (2 >=7));
а:= b  or  false  and  (2<7);


Задача 8. Перевірити, чи  рівне  ціле  число  а  сумі  кубів  своїх  цифр            (a<100 000).
Задача 9. В  череві вівчарки Лади  х  сосисок, а  в  череві  такси  Дуськи – у. Кому  дісталося  більше  сосисок  і  на  скільки?
Задача 10. На  квадратному  городі, довжина  всіх  сторін  якого  дорівнює  80  м, посадили  собаку. Цього  собаку  посадили  на  ланцюг  довжиною   n  м  та  m  см  і  прикріпили  ланцюг  до  стовпа, який  стирчить  в  самому  центрі  городу. Довжина  собаки  від  ошийника  до  передніх  зубів – 30  см. Чи  залишилось  на  городі  місце, безпечне  для  злодіїв?
Задача 11. Вовочка  твердо  вирішив  стукнути  старшокласника  Єгора  по  лобі  дошкою  площею  S  кв.м. Визначити, чи  підійде  для  цієї  справи  дошка  прямокутної  форми  шириною  а  см  та  довжиною  b  см.
Задача 12.Чи  впізнає  себе  дільник  m  у  залишку  після  ділення  на  нього  націло  числа  n?
Задача 13. Васєчкін  прочекав  у  черзі  на  щеплення  х  хвилин. Визначити, скільки  годин  і  хвилин  він  чекав. Порівняти, чого  виявилося  більше – годин  чи  хвилин.
Задача 14. Змій  Горинич  застудився. Для  його  одужання  потрібно  не  менше  10  та  не  більше  15  кг  вітаміну  С  або  більше  20  літрів  гарячого  чаю. Змій  з’їв  х  яблук (по  0,05 г  вітаміну  С  в  кожному)  та  випив  у  склянок  чаю (по  200 г  кожна). Визначити, чи  одужає  Змій  Горинич. Якщо  ж  ні, то  скільки  літрів  чаю  йому  не  вистачило  для  цього?
Задача 15. На  одному  маленькому  квадратному  безлюдному  острові  зі  стороною  а  м  мешкали  k  потерпілих  корабельну  аварію  Робінзонів. Чи  не  порушені  їхні  права  на  житло, якщо  на  кожного  Робінзона  повинно  припадати S м2? Скільком  Робінзонам  ще  вистачить  місця  на  острові, якщо  поблизу  трапиться  нова  аварія?
Задача 16. Велосипедист  Микола, стартувавши  у  точці  0 ; у0)  та  рухаючись  по  прямій  А(х-х0) + В(у-у0) + С = 0, мріє  про  те, як  він  покатає  на  своєму  велосипеді  сусідку  Катрусю. Чи  здійсниться  мрія  Миколи, якщо  недалеко, у  точці  (p; q), росте  дерево?
Задача 17. На  дверях  ліфта  висіло  загрозливе  попередження  про  те, що  двері  зачиняються  самі  в  той  самий  момент, коли  зайвий  за  вагою  пасажир  переступить  його  поріг. Який  за  порядком  пасажир  постраждає, якщо  ліфт  витримує  вагу  не  більше  S  кг, а  вага  пасажирів, що  стоять  у  черзі  до  ліфта, дорівнює  відповідно  а1, а2, ..., аn ?
Задача 18. Коли  Василині  Премудрій  виповнилося  18  років, Чахлик  Невмирущий  вирішив  взяти  її  заміж, Василиса  запитала  Чохлика, скільки  у  нього  скринь  із  золотом. Чахлик  сказав, що  в  нього  зараз  n  скринь  і  кожний  рік  додається  ще  по  m  скринь. Василиса  пообіцяла, що  вийде  заміж  тоді, коли  у  Чохлика  буде  k  повних  скринь  із  золотом. Скільки  років  буде  у  цей  час  нареченій?
Задача 19. Компанія  бабусь  поїхала  на  мотоциклах  на  курси  з  комп’ютерної  грамотності. Попереду  на  мотоциклі  без  глушника  їхала  одна  бабуся, за  нею – дві, потім – три  і  т.д. Скільки  бабусь  їхало  на  заняття, якщо  приголомшені  пішоходи  всього  нарахували  N  рядів? Чи  змогли  бабусі  зайняти  всі  місця  у  класі, якщо  там  стояло  k  рядів  по  m  комп’ютерів  у  кожному. Скільки  вільних  місць  залишилось?
Задача 20. Тато, мама  і  старша  сестра  вечеряють, а  молодший  брат  Василько  сидить  під  столом  і  пиляє  ніжку  стола  з  початковою  швидкістю  2  см  на  хвилину. Через  скільки  хвилин  закінчиться  вечеря, якщо  товщина  ніжки  стола  N  см, а  швидкість  пиляння  Василька  з  кожною  хвилиною  падає  на  0,1 см?

РОЗРОБКИ  ПЕРШИХ  ЗАНЯТЬ  ДЛЯ  СЕКЦІЇ  “ЮНИХ  ПРОГРАМІСТІВ”

Заняття 1.
Тема  заняття: Вступ. Що  таке  програмування?
Мета: Дати  учням  поняття  про  програмування, розповісти  про  мови  програмування.

Хід  заняття
1.      Пояснення  вчителя  у  формі  розповіді
Програмування  можна  порівняти  з  великою  країною, повною  сюрпризів, чудес, цікавих  знахідок  і  навіть... неприємностей! Починаючий  користувач  або  досвідчений  “геймер” – переможець  віртуальних  чудовищ  не  завжди  знає, що, оволодівши  навіть  основами  програмування, він  може  заставити  комп’ютер  малювати  картинки, які  не  дуже  поступаються  по  красоті  шедеврам  ігрової  комп’ютерної  графіки, або  виконувати  мелодію, підмигуючи  при  цьому  світловими  індикаторами  своєї  клавіатури. Ну  а  хіба  не  гарна  перспектива – розв’язання  складної  програмістської  задачі, розв’язання  якої  зміг  знайти  тільки  ти  і  ніхто  інший, і  ось  уже  твою  програму  “зкачують”  через  Інтернет  сотні  і  тисячі  користувачів, передаючи  один  одному  ім.’я  її  створювача! Ну  а  неприємності? Є  і  неприємності. В  історію  програмування  ввійшла  помилка  програміста, який  створив  управляючу  програму  для  американського  міжпланетного  зонда  і  “набивного”  замість  коми  крапку. Кома  загубила  хвостик, а  міжпланетний  зонд  “промахнувся”  мимо  Венери  на  кілька  мільйонів  кілометрів. А  якщо  щось  подібне  відбудеться  у  програмі, яка  управляє, наприклад, польотом  бойової  ракети?
Ви  вже  знаєте, що  програми  пишуть  для  комп’ютера. Слово  “комп’ютер”  в  перекладі  на  українську  мову  означає  “обчислювач”. Обчислювальних  пристроїв  багато, серед  них  різні  калькулятори, а  також  більш  старі, механічні  обчислювачі – арифмометри (продемонструвати  арифмометр), логарифмічні  лінійки, рахівниця (продемонструвати).
Головна  відмінність  комп’ютера  від  всіх  цих  пристроїв  полягає  в  тому, що  він  є  багатоцільовим  обчислювальним  пристроєм, тобто  пристроєм, який  може  розв’язувати  самі  різні  задачі. Кількість  цих  задач  дуже  велика, неможна  зарані  передбачити  всі  можливі  ситуації, тому  треба  придумати  спосіб  “пояснити”  комп’ютеру, яку  задачу  і  яким  чином  слід  розв’язувати  в  даному  випадку. Складання  таких  інструкцій-програм  і  називають  програмуванням.

1.Далі  розповісти  учням  про  історію  створення  перших  комп’ютерів.
2.Назвати  мови  програмування, виділивши  серед  них  найбільш  популярні.
3.Як  пишуть  програми (це  повідомлення  є  у  стінгазеті  “Файл”, тому  запропонувати  учням  прочитати  його).
4.Дати  учням  поняття  алгоритму, нагадати, що  з  таким  поняттям  вони  зустрічаються  дуже  і  дуже  часто. Навести  приклади.
  ОСНОВНІ  ПОНЯТТЯ  ПРОГРАМУВАННЯ
Досвідчений  програміст  знає, а  новачку  корисно  взнати, що  головними  елементами  любої  програми  є  змінні, константи (постійні  величини)  і  оператори.
Змінна – це  ячейка  оперативної  пам’яті  комп’ютера. Такій  ячейці  присвоюється  певне  ім.’я, її  вміст  може  змінюватися  в  ході  виконання  програми. Вид  інформації, який  міститься  в  ячейці, набір  перетворень, які  можна  виконати  над  цією  інформацією, і  множина  допустимих  значень  визначаються  типом  змінної. Константа  відрізняється  від  змінної  тим, що  її  значення  не змінюється  в  ході  виконання  програми.
Оператори  описують  ті  дії, які  повинна  виконувати  програма. І, нарешті, у  програмах  використовуються  описання, які  дозволяють  перерахувати  і  описати  властивості  змінних, констант  і  інших  об’єктів, які  зустрічаються  в  даній  програмі.
 
На  закінчення  заняття  запропонувати  учням  відкрити  на  комп’ютері  любу  гру  і  спробувати  виграти.

Заняття  2.
Тема  заняття: Де  пишуться  програми  і  як  вони  пишуться?
Мета: Дати  учням  поняття  про  вікно  редактора  Турбо  Паскаль. З’ясувати  призначення  меню  і  клавіш.Записати  найпростішу  програму  і  запустити  її  на  виконання.
Хід  заняття
1.Інтегроване  середовище. Розповідь  учителя.
Для  набору  тексту  програми  на  мові  Паскаль (такий  текст  часто  називають  вихідним  текстом  програми) використовується  вбудований  редактор  текстів  інтегрованого  середовища  Турбо  Паска ля. Інтегроване  середовище – це  той  “ящик  з  інструментами”, без  якого  не  обійтись, тому  нам  треба  познайомитись  з  деякими  його  можливостями.
Інтегроване  середовище  запускається  командою  turbo. При  успішному  виконанні  цієї  команди  на  екрані  з’являється  зображення, яке  складається  з  рядка  меню (верхній  рядок), робочої  області  редактора, що  займає  більшу  частину  поверхні  екрану, і  рядка  з  перерахуванням  основних  функціональних  клавіш (це  клавіші  F1, F2, …), які  доступні  в  любий  момент  і  пов’язані  з  виконанням  різних  дій. Його  називають  ще  рядком  статусу (продемонструвати  це  на  комп’ютері).
Для  входу  в  головне  меню  можна  натиснути  функціональну  клавішу  F10  або  використати  ліву  кнопку  мишки. Це  меню  має  слідуючи  пункти: File, Edit, Search, Compile, Run, Debug, Tools, Options, Window, Help. За  кожним  з  перерахованих  пунктів  криється  вертикальне  підменю, яке  можна  розкрити, клацнувши  на  потрібному  пункті  меню  лівою  кнопкою  миші  або  натиснути  клавішу  вводу            ( Enter), коли  пункт  меню  підсвічений. Перехід  від  пункту  до  пункту  здійснюється  за  допомогою  клавіш  управління  курсором, або  за  допомогою  миші. (демонстрація  на  комп’ютері). Для  виходу  з  головного  меню  або  любого  підменю  треба  натиснути  клавішу  Esc.
РОЗГЛЯНЕМО  ПРИЗНАЧЕННЯ  ДЕЯКИХ  ПУНКТІВ  ГОЛОВНОГО  МЕНЮ.
Пункт   File. Меню  File  має  команди, які  управляють  роботою  з  файлами.
-Newстворює  в  редакторі  нове  вікно, в  яке  можна  завантажити  існуючий  файл  або  створити  в  цьому  вікні  новий  файл;
-Openвідкриває  діалогове  вікно, яке  дозволяє  завантажити  файл  з  диска  і  перейти  в  режим  екранного  редагування. Цю  саму  дію  можна  виконати  клавішею  F3;
-Saveзберігає  на  диску  біжучий  редагований  файл  і  продовжує  редагування. Цю  саму  дію  можна  виконати  клавішею  F2;
-Save  asвідкриває  діалогове  вікно, яке  дозволяє  зберегти  біжучий  файл  під  новим  ім.’ям;
-Printвідкриває  діалогове  вікно, яке  дозволяє  задати  характеристики  друку  і  відправити  файл  на  принтер;
-Exitвихід  із  Турбо-середовища.

Сама  перша  програма 
Програма  на  Паскалі  оформляється  завжди  стандартно  і  має  слідуючий  вигляд:
Program  <ім’я  програми>;
<розділ  описань>
begin
<розділ  операторів>
end.
Перший  рядок  програми  є  її  заголовком. Він  повідомляє, що  це  за  програма, для  розв’язання  якої  задачі  вона  призначена. Для  цього  після  зарезервованого  слова  program  пишеться  назва  програми.
У  програмуванні  прийнято  надавати  програмам  імена, які  відображають  їх  призначення. Закінчується  заголовок  програми  символом  “крапка  з  комою”.
При  написанні  текста  програми  слід  дотримуватись  кількох  простих  правил:
1)дозволяється  використовувати  лише  символи  алфавіту  мови  програмування;
2)вся  програма  може  бути  записана  в  один  рядок, але  краще  розміщувати  кожне  нове  висловлювання  з  нового  рядка
Між  begin  і  end  розміщуються  оператори, які  розділяються  символом  “;”. Ця  частина  програми  називається  розділом  операторів. Їх  може  і  не  бути, в  такому  випадку  програма  не  буде  нічого  виконувати.
Самий  простий  і  одночасно  самий  важливий  оператор – оператор  виводу, адже  програма  повинна  повідомляти  користувачу  про  результати  своєї  роботи, тобто  вивести  результат  на  екран  монітора.
Хай  наша  програма  при  виконанні  просто  повідомить  про  себе. Виглядати  вона  буде  слідуючим  чином:
Program    privet;
begin
          Write(‘Привіт , це  я!’);
end.
Тут  Write – оператор, який  виводить  на  екран  все, що  поміщено  в  круглих  дужках  між  апострофами. Існує  друга  різновидність  цього  оператора – Writeln, він  діє  так  само, але  після  виводу  інформації  курсор (мигаюча  риска) переходить  на  новий  рядок. Програма
Program  privet;
begin
          Write(‘Привіт, ‘);
          Write(‘ це  я! ‘);
end.

виводить  текст  в  один  рядок, а
Program  privet;
begin
          Writeln(‘ Привіт, ‘);
            Writeln(‘ це  я! ‘);
end.
у  два: 
Привіт,
це  я!
У  програмі  може  бути  скільки  завгодно  операторів, треба  лише  не  забувати  в  кінці  кожного  ставити  символ  “;”. Символ  “;”  у  програмах  на  Паскалі  грає  ту  саму  роль, що  крапка  на  письмі.
Після  того  як  програма  набрана  її  треба  відправити  на  компіляцію. Спочатку  компілятор  перевірить, чи  немає  програма  синтаксичних  помилок. Знайшовши  помилку, компілятор  зупиняє  свою  роботу, встановлює  курсор  у  те  місце  програми, де  знайдена  помилка, і  виводить  відповідне  повідомлення. Після  того  як  всі  синтаксичні  помилки  виправлено  програма  відправляється  на  виконання. Це  здійснюється  за  допомогою  команди  Run.
Пояснити  учням  незрозумілі  слова  (Compile, Run, Ster  over, Trace  into, Go  to  cursor, Program  reset).
Далі  учні  набирають  текст  вище  написаних  програм  і  реалізують  їх.
В  кінці  заняття  запропонувати  учням  відкрити  будь-яку  гру  і  спробувати  виграти.

Заняття  3
 Тема  заняття: Арифметика  Паска ля.
Мета: Засвоїти  запис  виразів  на  мові  програмування  Паскаль.
Завдання: Перетворення  записів  математичних  виразів  з  алгебраїчної  мови  на  мову  Паскаль. 

Хід  заняття
Повідомити  учням  про  запис  арифметичних  операцій  на  мові  Паскаль.
Для  цього  за  допомогою  графопроектора  спроектувати  таблицю:

Далі  йде  виконання  тренувальних  вправ  спрямованих  на  вироблення  навичок  запису  математичних  виразів  мовою  Паскаль.

Виконання  тренувальних  вправ:
Записати  на  мові  Паскаль  слідуючи  математичні  вирази: