- •Основи програмування мовою Паскаль
- •Часть 1. Основы языка Паскаль 2
- •Часть 2. Элементы профессионального программирования на Паскалі 62
- •Частина 1. Основи мови Паскаль
- •1. Алгоритм і програма
- •1.1. Алгоритм
- •1.2. Властивості алгоритму
- •1.3. Форми запису алгоритму
- •1.4. Програма й програмне забезпечення
- •1.5. Етапи розробки програми
- •2. Дані в мові Паскаль
- •2.1 Константи
- •2.2 Змінні й типи змінних
- •3. Арифметичні вирази
- •4. Лінійний обчислювальний процес
- •4.1 Оператор присвоювання
- •4.2 Оператор уведення
- •4.3 Оператор виведення
- •4.4 Керування виводом даних
- •4.5 Вивід на друк
- •5. Структура простої програми на Паскалі
- •6. Компілятор і оболонка Turbo Pascal
- •7. Обчислювальний процес, що розгалужується, і умовний оператор
- •7.4. Короткий умовний оператор
- •If логічний_вираз then оператор1;
- •7.5. Повний умовний оператор
- •If логічний_вираз then оператор1
- •7.7. Вкладені умовні оператори
- •7.9. Приклади програм з умовним оператором
- •8. Директиви компілятора й обробка помилок уведення
- •9. Оператор циклу. Цикли із передумовою і після-умовою
- •10. Цикл із лічильником і дострокове завершення циклів
- •11. Типові алгоритми табулювання функцій, обчислення кількості, суми й добутку
- •11.1 Алгоритм табулювання
- •11.2 Алгоритм організації лічильника
- •11.3 Алгоритми нагромадження суми й добутку
- •12. Типові алгоритми пошуку максимуму й мінімуму
- •13. Розв'язок навчальних завдань на цикли
- •14. Одномірні масиви. Опис, уведення, вивід і обробка масивів на Паскалі
- •15. Розв'язок типових завдань на масиви
- •Частина 2. Елементи професійного програмування на Паскалі
- •16. Кратні цикли
- •16.1 Подвійний цикл і типові завдання на подвійний цикл
- •16.2 Оператор безумовного переходу
- •17. Матриці й типові алгоритми обробки матриць
- •18. Підпрограми
- •18.1 Процедури
- •18.2 Функції
- •18.3 Масиви як параметри підпрограми
- •18.4 Відкриті масиви
- •19. Безлічі й перечислимые типи
- •20. Обробка символьних і строкових даних
- •20.1. Робота із символами
- •20.2 Робота з рядками
- •21. Текстові файли
- •21.1 Загальні операції
- •21.2 Приклади роботи з файлами
- •21.3 Робота з параметрами командного рядка
- •22. Записи. Бінарні файли
- •23. Модулі. Створення модулів
- •23.1. Призначення й структура модулів
- •Implementation
- •23.2. Стандартні модулі Паскаля
- •24. Модуль crt і створення простих інтерфейсів
- •25. Модуль Graph і створення графіки на Паскалі
- •Додаток 1. Таблиці Ascii-Кодів символів для операційних систем dos і Windows
- •Додаток 2. Основні директиви компілятора Паскаля
- •Додаток 3. Основні повідомлення про помилки Паскаля
- •Додаток 4. Додаткові лістинги програм
- •Додаток 5. Розширені коди клавіатури
- •Ascii‑ коди
- •Розширені коди
- •Додаток 6. Правила гарного коду
- •Додаток 7. Рекомендована література
7.4. Короткий умовний оператор
If логічний_вираз then оператор1;
Спочатку обчислюється логічне вирази, якщо воно має значення TRUE, те виконується оператор1, інакше оператор1 ігнорується.
Якщо за умовою потрібно виконати трохи операторів, їхнеобхідно укласти в операторные дужкиbegin...end;, утворюючи єдинийскладовій оператор:
Пр.if d>0 then begin
x1:= . . .;
x2:= . . .;
writeln (x1:8:3,x2:8:3);
end;
Пр.Обчислити y=max(a,b,c)
y:=a;
if b>y then y:=b;
if c>y then y:=c;
7.5. Повний умовний оператор
If логічний_вираз then оператор1
else оператор2;
Якщо логічне вирази має значення TRUE, товиконуєтьсяоператор1, інакше виконуєтьсяоператор2. Завжди виконуєтьсятільки одинз операторів. Перед else крапка з комине ставиться, тому щоif-then-else– єдиний оператор.
Пр.Обчислити m=min(x,y):
if x<y then m:=x else m:=y;
Пр.Якщо a і b одного знака, знайти їхній добуток, інакше замінити нулями.
if a*b>0 then c:=a*b
else begin
a:=0; b:=0;
end;
Із прикладу видне, що до галузей алгоритму, що полягає більш ніж з одного оператора, тут також застосовуються операторные дужки.
7.6. Складений умовний операторзастосовується, коли є більш 2 варіантів розрахунків.
if логічний_вираз1 then оператор1
else if логічний_вираз2 then оператор2
. . .
else if логічне_выражениеn then операторn
else оператор0;
Послідовно перевіряються умови 1,2,…,N, якщо деяка умова дійсна, виконується відповідний оператор і керування передається на оператор, що випливає за умовним. Якщо всі умови неправильні, виконується оператор0. Число галузей N необмежено, галузі else оператор0; може й не бути.
Пр.Обчислити значення функції, заданої графічно:
if x<-1 then y:=0
else if x<0 then y:=x+1
else if x<1 then y:=1-x
else y:=0;
або інакше:
if (x<-1) or (x>=1) then y:=0
else if (x<0) then y:=x+1
else y:=1-x;
7.7. Вкладені умовні оператори
Коли після ключових слів thenіelseзнову використовуються умовні оператори, вони називаютьсявкладеними. Число вкладень може бути довільно, при цьому діє правило:elseзавжди ставиться до найближчогоthen. Часто вкладенням повних умовних операторів можна замінити використання складеного.
Пр.Визначити, у якій координатній чверті перебуває крапка з координатами (x,y), що не лежить на осях координат.
Варіант 1 – без використання вкладень
if (x>0) and (y>0) then p:=1
else if (x<0) and (y>0) then p:=2
else if (x<0) and (y<0) then p:=3
else p:=4;
Варіант 2 – із вкладеннями
if x>0 then begin
if y>0 then p:=1
else p:=4;
end
else begin
if y>0 then p:=2
else p:=3;
end;
У першому фрагменті програмі перевіряється від 2 до 6 умов, у другому – завжди тільки 2 умови. Тут використання вкладень дало істотний виграш у продуктивності.
Пр 2. Обчислити значення y, рівне знаку числа x.
Спосіб 1:
if x>1 then y:=1
else if x=0 then y:=0
else y:=-1;
Спосіб 2:
if x>1 then y:=1
else begin
if x=0 then y:=0
else y:=-1;
end;
Тут в обох варіантах перевіряється не більш 2 умов, способи приблизно рівноцінні.
7.8. Оператор вибору.Для випадків, коли потрібен вибір одного значення з кінцевого набору варіантів, операторifзручніше заміняти операторомcase:
case вирази of
список1: оператор1;
список2: оператор2;
. . .
списокn: операторn;
else оператор0;
end;
Оператор виконується так само, як складений умовний оператор.
Вирази повинне мати порядковий тип (цілий або символьний). Елементи списку перелічуються через кому, ними можуть бути константи й діапазони значень того ж типу, що тип вирази. Діапазони вказуються у вигляді:
МПр.значення .. Макс.значення
У діапазон входять усі значення від мінімального до максимального включно.
Пр.По номеру місяця m визначити число днів d у ньому.
case m of
1,3,5,7..8,10,12: d:=31;
2: d:=28;
4,6,9,11: d:=30;
end;
Пр.По символу c визначити й вивести, до якого класу символів він ставиться.
case c of
'A'..'Z','a'..'z': writeln ('Панцира.буква');
'А'..'Я','а'..'п','р'..'я': writeln ('Русявий.буква');
'0'..'9': writeln ('Цифра');
else writeln ('Інший символ');
end;
Тут окремі діапазони для російських букв від "а" до "п" і від "р" до "я" пов'язані з тим, що між "п" і "р" у кодовій таблиці DOS перебуває ряд не-буквених символів (див. Додаток 1).
Якщо по галузі оператора caseпотрібно виконати трохи операторів, діє то ж правило, що для оператораif(галузі полягає в операторные дужкиbegin…end;).