Iv. практикум з програмування. система програмування turbo pascal

Мова PASCAL, названа в честь французького математика і філософа Блеза Паскаля (1623-1662), була створена як навчальна мова програмування в 1968 – 1971 роках швейцарським вченим Ніклаусом Віртом на кафедрі інформатики Стенфордського університету (Цюріх).

Спочатку автори мови програмування Pascal на чолі з Н. Віртом, а потім розробник системи програмування Turbo Pascal відома компанія Borland International (США) вклали у результат своєї праці багато можливостей. Це зробило Turbo Pascal досить популярним інструментом, придатним для навчання мистецтву програмування. Структурованість, наочність, читабельність - це безумовні переваги мови програмування Turbo Pascal.

Внаслідок еволюції сьогодні на практиці застосовуються: Turbo Pascal (як правило, використовується для навчання розробці прикладних програм під управлінням MS DOS), Borland Pascal (об’єктно-орієнтовна версія, програмування під управлінням MS DOS), FreePascal (32-розрядна версія «вільного» інструментального ПЗ), Object Pascal разом із середовищем Delphi (візуальне програмування під управлінням MS Windows), що дозволяє користувачам легко переходити від простих до більш складних сучасних ідеологій програмування та ефективно реалізовувати будь-які за складністю алгоритми.

Робота з інтегрованим середовищем розробника

Розробку програмних продуктів можна вести будь-якими доступними засобами, але для підвищення продуктивності праці програміста використовується Інтегроване Середовище Розробника (ІСР).

У складі його функціонують такі програми:

§ діалогова оболонка (для організації інтерфейсу з користувачем),

§ текстовий редактор (для введення, коригування, збереження текстів програм),

§ компілятор (для перевірки синтаксичної правильності програм та перекладу програм на машинну мову),

§ відлагоджувач (для організації пошуку логічних помилок та їх виправлення),

§ завантажувач (для забезпечення процесу виконання програми комп'ютером),

§ довідкова система (для оперативної допомоги інформацією щодо можливостей мови програмування та користування ІСР).

Стисло прокоментуємо процес використання ІСР для створення програми, її запуску та отримання результатів її роботи.

Етап А

Робота з ІСР Turbo Pascal розпочинається з виконання (запуску) програми turbo.exe. Для роботи з програмою відкривається окреме вікно текстового редактору. Вікна занумеровані числами від 1 до 9. Тобто одночасно можна опрацьовувати інформацію в 9 вікнах. Як правило, при роботі з ІСР користуються меню (знаходиться на екрані зверху):

Iv. практикум з програмування. система програмування turbo pascal - student2.ru

Рядок меню активується натисканням клавіші F10. Меню складається з наступних розділів:

File. Дозволяє виконувати всі основні дії з файлами (створення, відкриття, збереження та ін.)

Edit. Дозволяє виконувати всі основні операції редагування тексту (копіювання, вставка, видалення фрагментів, відміна останніх дій та ін.)

Search. Дозволяє виконувати пошук та заміну фрагментів тексту.

Run. Дозволяє запускати програму, в тому числі по кроках.

Compile. Дозволяє виконувати компіляцію програми.

Debug. Містить команди, що полегшують процес пошуку помилок в програмі (відладку).

Tools. Містить деякі доповнення до засобів Turbo Pascal.

Window. Дозволяє виконувати всі основні операції з вікнами (відкривати, закривати, переміщувати, змінювати розмір).

Help. Дозволяє отримати довідкову інформацію.

Також зручно користуватися так званими “гарячими” (бо часто ними користуються) клавішами (або комбінаціями клавіш). Найбільш популярними з них є такі:

комбінація призначення
F1 виклик довідкової системи
Ctrl+F1 довідка про службове слово, на яке вказує курсор
F10 відкриття меню
F2 збереження програми з поточного вікна у зовнішньому файлі
F3 завантаження у вікно текстового редактору програми з зовнішнього файлу
Alt+F3 закриття поточного вікна текстового редактору
Alt+номер перехід у вікно з вказаним номером
Alt+F9 компілювання програми з поточного вікна
Ctrl+F9 виконання програми, отримання результатів її роботи
Alt+F5 перехід до вікна виведення для ознайомлення з результатами роботи програми
Alt+X завершення роботи з ІСР
Shift+à Shift+ß Shift+á Shift+â виділення блока тексту вправо виділення блока тексту вліво виділення блока тексту вверх виділення блока тексту вниз
Ctrl+Insert копіювання виділеного блока до буфера обміну
Shift+Insert вставка копії фрагменту з буфера обміну

Так виглядає вікно додатку Turbo Pascal:

Iv. практикум з програмування. система програмування turbo pascal - student2.ru Iv. практикум з програмування. система програмування turbo pascal - student2.ru Iv. практикум з програмування. система програмування turbo pascal - student2.ru Iv. практикум з програмування. система програмування turbo pascal - student2.ru Iv. практикум з програмування. система програмування turbo pascal - student2.ru Iv. практикум з програмування. система програмування turbo pascal - student2.ru Iv. практикум з програмування. система програмування turbo pascal - student2.ru

Етап Б

У пустому вікні текстового редактора (див. робоча область) здійснюється введення тексту програми користувача.

Етап В

Потім введений текст зберігається у файлі (наприклад, за допомогою клавіші F2).

Етап Г

Після цього виконується компіляція програми (наприклад, за допомогою комбінації клавіш Alt+F9).

Якщо було знайдено помилки у програмі, їх треба виправити, виправлений текст програми знов зберегти та виконати компіляцію.

Етап Д

Потім виконується запуск програми (наприклад, за допомогою комбінації клавіш Ctrl+F9).

Етап Е

Щоб переглянути результати роботи програми (вікно виведення) треба скористатися комбінацією клавіш Alt+F5.

Етап Ж

Завершення роботи з середовищем (наприклад, за допомогою комбінації клавіш Alt+X).

Зауваження. Розробити програму, ввести її в комп’ютер та зберегти у файл, відкомпілювати, запустити та отримати результати можна і не використовуючи ІСР (так раніше і робили). Для цього потрібні такі окремі програми: текстовий редактор (наприклад, Блокнот), компілятор (для мови Turbo Pascal передбачений зовнішній компілятор, що зберігається у файлі tpc.exe) з бібліотечним файлом (для мови Turbo Pascal це файл turbo.tpl), завантажувач (стандартний завантажувач виконуваних файлі операційної системи). Але такий підхід трохи застарілий, нераціональний.

Запитання для контролю та самоконтролю

1. Визначити історичні умови виникнення мови Pascal та соціальне значення цього явища.

2. Дати стислу характеристику еволюції мови програмування Pascal.

3. Які функції виконує Інтегроване Середовище Розробника?

4. Чи можна обійтися без ІСР і як?

5. Які програми становлять основну структуру ІСР Turbo Pascal?

6. Які найпростіші дії в ІСР може виконати розробник програми?

7. Що таке меню ІСР і як ним користуватися?

8. Що таке «гарячі клавіші» ?

9. Які завдання покладені на вбудовані до ІСР програми – текстовий редактор, транслятор, завантажувач, відлагоджувач?

10. Яку роль відіграють бібліотеки транслятора?

11. Як користуватися контекстною підказкою?

12. Що таке дебаггер? Які підходи до процесу відладки програми використовують найчастіше?

13. Як тестувати програму?

14. Які існують підходи до створення кінцевого EXE-файлу?

15. Який зв'язок між абревіатурами – українською ІСР та англійською IDE ?

Тема №1 СТРУКТУРА ПРОГРАМИ. ЛІНІЙНА ПРОГРАМА. ВВЕДЕННЯ/ВИВЕДЕННЯ. ТИПИ ДАНИХ

Теоретичні відомості

Розробка програм на різних мовах програмування ведеться згідно існуючих у цих мовах правил. Як наслідок - програми мають свою особливу структуру. Ніклаус Вірт, засновник мови Pascal, сформулював таке загальне правило щодо обов’язкової структури програми:

СТРУКТУРИ ДАНИХ+АЛГОРИТМИ=ПРОГРАМИ.

Програму, написану на мові програмування Turbo Pascal, можна умовно розділити на наступні основні частини:

* заголовок програми (не обов’язково);

* підключення бібліотек транслятора;

* розділ оголошень і угод (оголошення глобальних міток, глобальних констант, глобальних типів, глобальних змінних);

* розділ процедур і функцій (для кожної з них фіксується заголовок процедури (функції), виконується оголошення локальних міток, локальних констант, локальних типів, локальних змінних, записується основний блок процедури або функції);

* основний блок програми, обмежений операторними дужками begin і end.

Програма схематично може бути зображена в такий спосіб:

program ім’я_програми;

наприклад program main;

uses перелік бібліотек транслятора, що підключаються;

наприклад uses crt, dos, graph;

label перелік міток;

наприклад label m1, m2, … , mn;

const перелік імен констант та їх значень;

наприклад const c1=значення_1; c2=значення_2; …

type перелік імен типів та їх опис;

наприклад type t1=опис_типу_1; t2=опис_типу_2; …

var перелік імен змінних та їх типів;

наприклад var v1: тип_1; v2: тип_2; …

begin початок тіла основної програми

Оператори програми;

end. кінець тіла основної програми

Тут m1, m2, … , mn - ідентифікатори міток; c1, c2, … - ідентифікатори констант; t1, t2, … - ідентифікатори типів; v1, v2, … - ідентифікатори змінних. Терміни ім’я та ідентифікатор є синонімами.

Зауваження: Знак ; у мові Turbo Pascal використовується як закінчення речення, тобто закінчення оператора.

Оператори програми виконуються або в порядку запису, друг за другом - таку програму називають лінійною, або цей порядок змінюється за допомогою операторів керування - у такому разі програмуназиваютьнелінійною.

У мові Turbo Pascal можна виділити 10 виконуваних операторів:

1. присвоєння,

2. виклику процедури,

3. безумовного переходу,

4. умовного переходу,

5. вибору,

6. циклу з параметром,

7. циклу з передумовою,

8. циклу з післяумовою,

9. складений,

10. приєднання.

Зауваження: До операторів керування відносять 2, 3, 4, 5, 6, 7, 8.

Серед операторів є структуровані (такі, що вміщують у собі інші оператори, до них відносять 4 - 10), та прості (не вміщують у собі інші оператори, до них відносять 1 - 3).

У результаті виконання ОПЕРАТОРА ПРИСВОЄННЯ деякій змінній надається значення деякого виразу (складність виразу не обмежується). Наприклад: x:=0.785398; b:=c/a+1; n:=x;

В усіх випадках спочатку обчислюється значення виразу, розташованого справа від комбінації символів :=, а потім обчислене значення присвоюється змінній, що розташована зліва від комбінації символів :=. Для того щоб оператор присвоєння міг бути виконаний, необхідно, щоб усі об’єкти, що входять у вираз, заздалегідь мали деякі значення та виконувалося правило відповідності типів або правило поглинання типів, які будуть сформульовані далі.

Для введення початкових даних і виведення результатів використовуються стандартні процедури введення і виведення. У мові програмування Turbo Pascal для запуску процедур, у тому числі вищезазначених процедур введення і виведення, застосовується ОПЕРАТОР ВИКЛИКУ ПРОЦЕДУРИ. Він може виглядати, наприклад, так: read(x1,x2,y); або write(x,y,x+y,x-y);

Тут read - ідентифікатор процедури введення, наступний за ним у круглих дужках список параметрів введення - ідентифікаторів змінних; write - ідентифікатор процедури виведення, наступний за ним у круглих дужках список параметрів виведення - констант, змінних, функцій, виразів. Число елементів списку довільне.

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

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

Наприклад:

write(x:4); - на екрані у рядку виведення резервується 4 знакомісця для виведення цілого числа, що зберігається у змінній x,

write(x+y:12:5); - на екрані у рядку виведення резервується всього 12 знакомісць, 5 останніх з них - для дробової частини війсного числа, що зберігається у змінній x.

На практиці користуються допоміжними процедурами введення/виведення readln та writeln. Їх дія відрізняється від дії стандартних вищезазначених процедур тим, що виконання введення чи виведення закінчується ініціацією EOL (End Of Line) – символу кінця рядка введення/виведення. Тобто екранний текстовий курсор переміщується на початок наступного рядка.

Усі змінні в програмі мають бути описані – вказується ідентифікатор та тип даних. Тип даних – це правила, за якими інформація зберігається та над нею виконуються операції.

Існують прості типи даних (використовуються для одиночних даних) та структуровані (використовуються для груп даних). Основу типів даних складають базові типи даних. До базових типів даних мови Turbo Pascal відносять цілий, дійсний, символьний, логічний.

Для обробки числових даних використовують Integer - стандартний цілий і його розширення Byte, Shortint, Word, Longint та Real - стандартний дійсний, реальний і його розширення Single, Double, Extended, Comp.

Параметри об’єктів цих типів такі:

Тип Діапазон Розмір
Integer цілий із знаком -32768..32767 2 byte
Byte короткий цілий без знаку 0..255 1 byte
Shortint короткий цілий із знаком -128..127 1 byte
Word цілий без знаку 0..65535 2 byte
Longint довгий цілий із знаком -2147483648..2147483647 4 byte
Real дійсний тип 2.9E-39..1.7E38 6 byte
Single одинарна точність 1.5E-45..3.4E38 4 byte
Double подвійна точність 5.0E-324..1.7E308 8 byte
Extended розширена точність 3.4E-4932..1.1E4932 10 byte
Comp 64-bit integer 9.2E18..9.2E18 8 byte
Char символьний тип символи таблиці ASCII 1 byte
Boolean логічний тип True, False 1 byte

Беручі до уваги інформацію стовпця Розмір, можна пояснити вищезгадані правила:

Правило відповідності типів – значення виразу справа від знаку присвоєння :=та змінна зліва від цього знаку мають бути однакового типу.

Правило поглинання типів – змінна зліва від знаку :=описанатипом, що має більші повноваження, ніж тип значення виразу справа від знаку присвоєння (наприклад, real поглинає integer, integer поглинає word, longint поглинає integer, string поглинає char).

До стандартних функцій, що розміщені в основному бібліотечному модулі system (цей бібліотечний модуль автоматично підключений до будь-якої програми, тому немає потреби використовувати у програмі запис uses system;) компілятора Turbo Pascal 7.0 відносять такі математичні функції:

Abs(аргумент) - обчислення абсолютного значення,

Sqr(аргумент) - обчислення квадрату аргументу,

Sqrt(аргумент) - обчислення квадратного кореня з аргументу,

Exp(аргумент) - обчислення експоненти,

Ln(аргумент) - обчислення натурального логарифму,

Sin(аргумент) - обчислення синусу,

Cos(аргумент) - обчислення косинусу,

Arctan(аргумент) - обчислення арктангенсу,

Odd(аргумент) - перевірка на непарність,

Int(аргумент) - обчислення цілої частини реального аргументу,

Round(аргумент) - округлення до найближчого цілого,

Trunc(аргумент) - відсікання дробової частини реального аргументу,

Frac(аргумент) - обчислення дробової частини реального аргументу.

Зауваження: Для обчислення виразів виду xy застосовується схема exp(y*ln(x)). При цьому необхідно звернути увагу на область визначення.

Приклад

Відомі три числа. Знайти їх середнє арифметичне та середнє геометричне значення.

1) Відомі три числа a, b, c – дійсні числа. Необхідно обчислити середнє арифметичне Sa та середнє геометричне Sg – дійсні числа.

2) Для обчислення середнього арифметичного та середнього геометричного n чисел застосовуються наступні формули:

Iv. практикум з програмування. система програмування turbo pascal - student2.ru ,

Iv. практикум з програмування. система програмування turbo pascal - student2.ru

3) Алгоритм:

 
  Iv. практикум з програмування. система програмування turbo pascal - student2.ru

4) Обираємо типи даних: a, b, c, Sa, Sg – дійсний тип.

5) Текст програми:

Program p1;

var a,b,c, Sa,Sg: real;

Begin

writeln('Введіть три числа');

Readln(a,b,c);

Sa:=(a+b+c)/3;

Sg:=exp(ln(a*b*c)/3));

writeln('Sa = ',Sa:8:4);

writeln('Sg = ',Sg:8:4);

End.

6) Тестовий приклад:

a=1 b=2 c=4

Sa=2.3333 Sg=2.0000

7) Робоче обчислення:

Введіть три числа

Sa = 3.0000

Sg = 3.0000

Варіанти завдань

1. Визначити добову програму запуску виробів для потокової лінії за формулою Iv. практикум з програмування. система програмування turbo pascal - student2.ru , де Hb=4000 шт. - добова програма випуску виробів; a=8% - технічні втрати.

2. Файл займає 41943040 бітів Обчислити його розмір у байтах, кілобайтах, мегабайтах.

3. Знайти обсяг продукції, випуск якої автоматизований на підприємстві Iv. практикум з програмування. система програмування turbo pascal - student2.ru де Ya=40% - показник автоматизації і механізації виробничих процесів; B=10650 шт. - загальний обсяг продукції; Bm=4242 шт. - обсяг продукції, випуск якої механізований.

4. Задані моменти початку та кінця деякого проміжку часу у годинах, хвилинах та секундах (у межах однієї доби). Визначити тривалість цього проміжку у годинах, хвилинах та секундах.

5. Розрахувати середньорічний темп зростання продуктивності праці на виробництві за три роки (у відсотках), якщо відомо, що за перший рік продуктивність зросла на р1 %, а за другий та третій – на р2 % та р3 % відповідно.

6. Підприємець має стартовий капітал К грн. Бізнес збільшує капітал щомісячно на р %. Визначити капітал підприємця на кінець року.

7. Селекціонер винайшов новий сорт зернової культури та отримав з дослідної ділянки врожай К кг. Врожайність сорту така, що посіявши 1 кг насіння можна зібрати Р кг врожаю. Обчислити кількість років, необхідних селекціонеру для засіву новою культурою поля площею S га, якщо норма засівання N кг/га.

8. Визначити коефіцієнти кубічного рівняння, якщо відомі його корені Х1, Х2, Х3.

9. Відомі координати точки закріплення математичного маятника А(X0,Y0,Z0) та координати однієї з точок його найвищого підйому B(X1,Y1,Z1). Визначити координати найнижчої точки траєкторії маятника.

10. Для квадрата ABCD на площині відомі координати двох протилежних точок A та С. Розрахувати координати точок B та D.

11. Уряд гарантує, що інфляція у новому році буде складати Р % за місяць. Якого зростання цін за цей рік можна очікувати населенню?

12. Визначити планові витрати на сировину й основні матеріали Iv. практикум з програмування. система програмування turbo pascal - student2.ru , де С=268 тис. грн. - базисні витрати на сировину й основні матеріали; О=105% - зростання обсягу виробництва; В=3,5% - плановане зниження норм витрати матеріалів.

13. Величина кута А задано у градусах, хвилинах та секундах. Розрахувати цю величину в радіанах.

14. Визначити річний приріст прибутку від упровадження нової технології Iv. практикум з програмування. система програмування turbo pascal - student2.ru , де А0=268 тис. грн.; А1=351 тис. грн. - річний обсяг реалізованої продукції відповідно перед впровадженням та після впровадження нової технології; П0=98 тис. грн. - прибуток від реалізації продукції; С0=0,89 грн., С1=0,71 грн. - витрати на 1 грн. реалізованої продукції перед впровадженням та після впровадження нової технології.

15. Розрахувати зниження собівартості продукції в результаті впровадження нової технології Iv. практикум з програмування. система програмування turbo pascal - student2.ru , де I=1958 грн. - загальні витрати виробництва продукції; Iн=456 грн. - витрати по впровадженню нової технології; Ig=36 грн. - додаткові витрати на освоєння нової технології; Vi=26 шт. - збільшення випуску продукції за рахунок упровадження нової технології; V=12 шт. - випуск продукції до впровадження нової технології.

16. Функція y=sin(x) на відрізку [0, 1.5] добре обчислюється за формулою y=x-x3/6+x5/120. Для заданого значення аргументу x обчислити y за цією формулою та порівняти з точним значенням, обчисленим за допомогою стандартної функції Sin.

17. Знайти заробітну плату робітника при відрядно-преміальній оплаті праці Iv. практикум з програмування. система програмування turbo pascal - student2.ru , де Зс=98 грн. - відрядна пряма оплата праці; П1=4,5%, П2=0,5% - розмір премії відповідно за виконання плану за кожний відсоток його перевиконання; К=8 - коефіцієнт виконання показників преміювання.

18. Обчислити відсоток транспортно-заготівельних витрат і вартості матеріалів по оптових цінах Iv. практикум з програмування. система програмування turbo pascal - student2.ru , де Р1=13 грн., Р2=98 грн. - транспортно-заготівельні витрати відповідно на початок і протягом місяця; М1=1286 грн. - залишок матеріалів по оптових цінах на початок місяця; М2=6986 грн. - місячні надходження матеріалів.

19. Визначити рентабельність підприємства Iv. практикум з програмування. система програмування turbo pascal - student2.ru , де О1=156 тис. грн. - прибуток; О2=1286 тис. грн. - середньорічна вартість основних виробничих фондів; С=938 тис. грн. - середня сума нормованих оборотних коштів.

20. Розрахувати рентабельність виробництва продукції Iv. практикум з програмування. система програмування turbo pascal - student2.ru , де Р=56,38 грн. - оптова ціна підприємства за одиницю продукції; С=27,25 грн. - собівартість одиниці продукції.

21. У рівнобедреному прямокутному трикутнику відома висота Н, опущена на гіпотенузу. Визначити сторони та периметр трикутника.

22. Розрахувати рівень автоматизації і механізації виробничого процесу підприємства Iv. практикум з програмування. система програмування turbo pascal - student2.ru , де Вm=32,6 тис. грн. - обсяг продукції, випуск якої механізований; Ва=56,6 тис. грн. - обсяг продукції, випуск якої не механізований; В=128,4 тис. грн. - загальний обсяг продукції, що випускається підприємством.

23. Відомі рівняння двох прямих площини, що перетинаються: y=k1*x+b1, y=k2*x+b2. Розрахувати (у радіанах та у градусах та хвилинах) кут між цими прямими, скориставшись формулою Iv. практикум з програмування. система програмування turbo pascal - student2.ru .

24. Робітник протягом місяця при нормі обробки n деталей обробив m деталей. Розцінка за обробку однієї деталі складає x грн., а надбавка по прогресивній відрядній оплаті праці за перевиконання норми виробітки встановлена у розмірі y% основної відрядної розцінки. Визначити суму нарахованої заробітної плати.

25. Довжина відрізку задана у дюймах (1 дюйм ≈ 2.54 см). Обчислити значення довжини в метричній системі, тобто визначити її в метрах, сантиметрах та міліметрах.

Запитання для контролю та самоконтролю

1. Які розділи становлять структуру програми мови Turbo Pascal?

2. Що таке оператор і які оператори застосовуються у програмах?

3. Чим відрізняються прості та структуровані оператори?

4. Як працює оператор присвоєння?

5. Як працює оператор виклику процедури?

6. У чому полягає особливість операторів керування?

7. Як організується введення та виведення даних?

8. Що таке тип даних? Які основні типи даних використовуються у мові Turbo Pascal?

9. Якими стандартними математичними функціями може скористуватися програміст?

10. Як організувати обчислення степеневих виразів?

11. У чому полягають правила відповідності типів та поглинання типів?

12. Які програми (алгоритми) називають лінійними, а які ні?

Тема №2 ПРОГРАМИ РОЗГАЛУЖЕНОЇ СТРУКТУРИ

Теоретичні відомості

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

ОПЕРАТОР ПЕРЕХОДУмає загальну форму запису goto n; де n - мітка оператора, якому передається управління (мітка повинна бути описана у розділі оголошень і угод).

Зауваження: У зв’язку з тим фактом, що сучасна програма повинна бути структурованою (засади технології структурного програмування), використання цього оператору не рекомендується.

СКЛАДЕНИЙ ОПЕРАТОРявляє собою послідовність будь-яких операторів, обмежених операторними дужками begin і end. Застосовується, коли необхідно об’єднати декілька операторів у один.

Зауваження: Допускається застосування у програмі пустого складеного оператору begin end; (тобто немає операторів у операторних дужках).

УМОВНИЙ ОПЕРАТОРзастосовується, коли необхідно виконати один з двох можливих ланцюжків дій у залежності від виконання або невиконання якоїсь умови. Він може мати наступні форми запису:

Скорочена форма if логічний_вираз then оператор;

Якщо логічний вираз приймає значення True, (умова виконується), то управління передається оператору (тобто виконується оператор), інакше (у противному випадку, умова не виконується) управління передається наступному після if оператору програми.

Повна форма if логічний_вираз then оператор_1 else оператор_2;

Якщо логічний вираз приймає значення True, то управління передається оператору_1, інакше управління передається оператору_2. Після виконання оператора if управління передається наступному оператору програми.

Логічний вираз може бути простим (одна умова) або складеним (декілька умов, зв’язаних логічними операціями not - логічне заперечення, and - кон’юнкція [логічне множення, зв’язка і], or - диз'юнкція [логічне додавання, зв’язка або]), тоді кожна окрема умова береться в дужки. У логічних виразах можуть застосовуватися операції порівняння = (дорівнює), <> (не дорівнює), > (більше), < (менше), <= (не більше), >= (не менше).

Зауваження: Досить складний умовний оператор у повній формі для спрощення можна замінити двома менш складними умовними операторами у скороченій формі.

ОПЕРАТОР ВИБОРУє засобом для обробки ситуацій із декількома виходами. Він має наступну форму запису:

case порядкова_змінна of

перелік_значень_1 : оператор_1;

перелік_значень_n : оператор_n;

Else оператор

End.

Якщо порядкова_змінна приймає значення з переліку_значень_1,

то виконується оператор_1;

якщо порядкова_змінна приймає значення з переліку_значень_2,

то виконується оператор_2;

і так далі;

якщо порядкова_змінна не приймає значення ні з одного з переліків_значень,

то виконується оператор.

Зауваження: У конструкції case - of (альтернативи) усі значення та порядкова_змінна повинна належати будь-якому з порядкових типів (які дозволяють організувати перерахування деяких об'єктів).

Приклад

Для цілих чисел p і q перевірити, ділиться p на q без залишку чи ні.

1) Відомі два числа p і q.

2) p ділиться без залишку на q, якщо залишок від ділення p на q дорівнює 0.

3) Алгоритм:

 
  Iv. практикум з програмування. система програмування turbo pascal - student2.ru

4) Вибираємо типи даних: p, q, c (залишок від ділення) - цілий тип.

5) Текст програми:

Program p2;

var p,q,c: integer;

Begin

writeln('Введіть два цілих числа');

Readln(p,q);

c:=p mod q;

if c=0 then writeln('Число ',p,' ділиться без залишку на ',q)

else writeln('Залишок від ділення ',p,' на ',q,' дорівнює ',c);

Readln

End.

6) Тестові приклади:

а) p=4 q=2 4 ділитья без залишку на 2

в) p=7 q=2 залишок від ділення 7 на 2 дорівнює 1

7) Робоче обчислення:

Введіть два цілих числа

34 15

Залишок від ділення 34 на 15 дорівнює 4

Варіанти завдань

1. Визначити доплати S за роботу в нічний час за формулою Iv. практикум з програмування. система програмування turbo pascal - student2.ru , де T - тарифна ставка, t - кількість годин, відпрацьованих у нічний час.

2. Визначити за формулою Iv. практикум з програмування. система програмування turbo pascal - student2.ru ефект F від капітальних вкладень x у підприємство.

3. Відомі площі круга та правильного n-кутника. Визначити, чи можна один із цих об'єктів вписати в другий.

4. Обчислити прибутковий податок Р за схемою:

якщо С<17.00 грн., тоді Р=0;

якщо С у межах від 17.01 до 85.00 грн., тоді Р = 10% від суми, яка перевищує 17.00 грн.;

якщо С у межах від 85.01 до 170.00 грн., тоді Р = 6.80 грн. + 15% від суми, яка перевищує 85.00 грн.;

якщо С у межах від 170.01 до 1020.00 грн., тоді Р = 19.55 грн. + 20% від суми, яка перевищує 170.00 грн.;

якщо С у межах від 1020.01 до 1700.00 грн., тоді Р = 189.55 грн. + 30% від суми, яка перевищує 1020.00 грн.;

якщо С > 1700.00 грн., тоді Р = 393.55 грн. + 40% від суми, яка перевищує 1700.00 грн., де С - сума заробітку.

5. На площині задані відрізок (координатами кінцевих точок) і коло (координатами центру та радіусом). Обчислити кількість їх перетинів.

6. Розрахувати суму грошових виплат по тимчасовій непрацездатності за формулою Iv. практикум з програмування. система програмування turbo pascal - student2.ru де z - середній заробіток (грн.), k - кількість відпрацьованих днів, b - період непрацездатності (днів), c - безперервний стаж роботи (років).

7. Автоматизувати продаж у кіоску друкованих видань: газет вартістю 0,5 грн. і журналів вартістю 1,25 грн. Програма цікавиться бажанням покупця КУПУЄТЕ ЖУРНАЛ (1) або ГАЗЕТУ (2), приймає гроші до оплати (сума грошей уводиться з клавіатури), у залежності від вартості покупки друкується відповідне підсумкове повідомлення (здача, доплата, подяка за покупку).

8. Обчислити значення функції y за формулою Iv. практикум з програмування. система програмування turbo pascal - student2.ru

9. Для дійсних чисел x і y обчислити z, якщо Iv. практикум з програмування. система програмування turbo pascal - student2.ru

10. Для заданого дійсного числа x обчислити значення функції Iv. практикум з програмування. система програмування turbo pascal - student2.ru

11. Написати програму знаходження сукупності дійсних коренів рівняння Iv. практикум з програмування. система програмування turbo pascal - student2.ru . Якщо коренів нема, то необхідно вивести на екран відповідне текстове повідомлення.

12. A, B, r1, r2 - задані цілі числа. З'ясувати, чи є хоча б одне з чисел r1 та r2 залишком від ділення A на B.

13. Скласти програму для визначення відповідного віку для вступу в шлюб, використовуючи наступне міркування: вік дівчини дорівнює половині віку чоловіка плюс 7, вік чоловіка визначається як подвоєний вік дівчини мінус 14. Виконання програми починається з питання: КЛІЄНТ ЧОЛОВІК (1) АБО ЖІНКА (2)? У залежності від відповіді виводяться відповідні рекомендації.

14. З'ясувати, чи належить точка з координатами (x,y) перетину кільця (центр у початку координат, зовнішній радіус 10, внутрішній радіус 1,5) і кола (центр у точці (a,b), радіус R).

15. Автоматизувати пошук всіх коренів рівняння Iv. практикум з програмування. система програмування turbo pascal - student2.ru .

16. Обчислити обсяг прибутків фірми Iv. практикум з програмування. система програмування turbo pascal - student2.ru у залежності від результатів діяльності філіалу Iv. практикум з програмування. система програмування turbo pascal - student2.ru (x - коефіцієнт попиту на продукцію).

17. Числа a і b - довжини катетів одного прямокутного трикутника, c і d - іншого. Перевірити, чи подібні трикутники.

18. У продажі штучного товару в магазині бере участь ЕОМ. Скласти програму, яка запитує кількість одиниць товару, що купується; суму грошей, внесену покупцем; а далі визначає належну здачу (якщо грошей внесено більше), друкує ДЯКУЄМО або видає повідомлення про недостатність внесеної суми.

19. Два відрізки на площині задані координатами своїх кінцевих точок. Визначити, перетинаються вони чи ні.

20. Підприємство щодобово використовує x кВт електроенергії. Для вказаного номера місяця поточного року обчислити обсяг енергії, що споживає підприємство, та її вартість (1 кВт/година коштує y грн.).

21. Відомі результати трьох переписів населення: r1 рік - k1 чоловік, r2 рік - k2, r3 рік - k3. Виходячи з середньорічного приросту у проміжках часу між переписами, визначити загальну тенденцію зміни кількості населення (зростає, зменшується).

22. Скласти програму, що організує перетворення величини кута з радіанної міри в градусну й навпаки, згідно з бажанням користувача.

23. Підприємство застосовує погодинну оплату праці. Скласти програму визначення тижневої заробітної плати робітника за кількістю відпрацьованих годин відповідно тарифу, до якого застосовується коефіцієнт k. Погодинний тариф дорівнює 2 грн. за годину Коефіцієнт k обчислюється за наступною схемою:

Кількість годин K
Перші 39
40 - 44 1.2
45 - 49 1.5
>49 1.8

24. Відомо, що a, b, c, d - цілі числа. Визначити, чи можна отримати один з дробів, скоротивши інший (якщо так, то який та наскільки).

25. Трикутник заданий на площині координатами вершин. Перевірити, чи належить його границі точка з координатами (x,y).

Запитання для контролю та самоконтролю

1. Які програми називають розгалуженими?

2. Які оператори у мові Turbo Pascal організують розгалуження?

3. У чому складаються особливості запису (за правилами мови програмування) і виконання умовної конструкції?

4. Які існують різновиди оператору перевірки умови?

5. У чому складаються особливості запису та застосування конструкції вибору?

6. Чому оператор переходу не відповідає технології структурного програмування?

7. Які випадки розгалуження не можна реалізувати, користуючись лише операторами розгалуження?

8. За якими правилами записуються складні умови?

9. Як можна модифікувати розгалужену конструкцію зі складною умовою, щоб оптимізувати час її виконання?

10. Як тестувати програми з розгалуженнями?

11. У чому полягають правила графічного схематичного зображення розгалужень?

12. Які службові слова використовують для запису умовних операторів, що реалізують повну та неповну розгалужені конструкції?

Наши рекомендации