- •Основи програмування мовою Паскаль
- •Часть 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. Рекомендована література
3. Арифметичні вирази
Арифметичні вирази (АВ) будуються з операндів, якими можуть бути константи, змінні йстандартні функції. В АВ також входятьарифметичні операціїй круглі дужки. У мові Паскаль визначено 6 арифметичних операцій, перелічимо їх відповідно допріоритету, тобто, старшинством. Операції з однаковим пріоритетом рівноправні між собою й виконуються ліворуч праворуч, як і в математику.
Пріоритет |
Знак операції |
Опис операції |
1 |
* |
множення |
/ |
ділення | |
div |
ділення 2 цілих значень із відкиданням залишку | |
mod |
узяття залишку від ділення 2 цілих значень | |
2 |
+ |
додавання |
- |
вирахування |
Операції div і mod визначені тільки для цілочисельних операндів. Приведемо приклад їх використання:
var y,c,n:integer;
. . .
y:=2006;
c:=y div 100;
n:=y mod 100;
Тут змінна cодержить значення20, аn– значення6.
Приклади арифметичних виразів ми приведемо після розгляду стандартних функцій мови Паскаль.
Стандартні функціїслужать для виконання елементарних математичних розрахунків, часто необхідних при написанні програм. Розроблювачі Паскаля прагнули зробити його програмне ядро максимальне компактним, тому в нього не ввійшов ряд функцій, звичайно наявних в інших мовах, таких, як обчислення максимуму й мінімуму, зведення числа в довільний ступінь і Пр. Фізично коди стандартних функцій зберігаються встандартній бібліотеціПаскаля – файлі з іменем TURBO.TPL. Усі функції оформляються однаково: після імені функції випливає її аргумент, укладенийу круглі дужки. Якщо аргументів трохи, вони розділяютьсякомами. Інформацію про основні стандартні функції зручно представити у вигляді таблиці:
Математичний запис |
Запис мовою Турбо Паскаль |
Пояснення |
Тип аргументу й результату функції |
|x| |
abs(x) |
модуль аргументу x |
Integer або Real |
x2 |
sqr(x) |
квадрат аргументу x |
аргумент – I або R, результат - R |
sin x cos x arctg x |
sin(x) cos(x) arctan(x) |
Інші тригонометричні функції виражаються через ці |
аргумент – I або R, результат – R |
ex ln x |
exp(x) ln(x) |
експонента й натуральний логарифм |
аргумент - I або R, результат – R |
sqrt(x) |
квадратний корінь від аргументу x |
аргумент - I або R, результат – R | |
|
pi |
функція без аргументів, поверне число |
R |
|
trunc(x) |
функція відкидає дробову частину аргументу, аргумент не округляється |
аргумент R, результат I |
|
frac(x) |
функція виділяє дробову частину свого аргументу |
R |
|
round (x) |
округлення речовинного числа до найближчого цілого |
аргумент R, результат I |
Тут x позначає будь-яку підходящу по типу змінну, або результат обчислення вирази відповідного типу (див. нижче), або відповідний по типу результат, обчислений іншої стандартною функцією. Функція pi не має аргументів і повертає число π.
Приклади арифметичних виразів:
1) звести x у п'ятий ступінь
x*x*x*x*xабоsqr(x)*sqr(x)*xабоsqr(sqr(x))*x, останнє показує, що результати одних функцій можуть бути аргументами інших – це називаютьвкладенням функцій. Зрозуміло, типрезультату, що вертається вкладеної функцією, повинен бути підходящимдля аргументузовнішньої функції.
2) звести величину a у довільний ступінь x
Тому що в Паскалі немає функції зведення в довільний ступінь, скористаємося формулою ax=ex*ln a
a:=2.5; x:=0.25;
ax:=exp(x*ln(a));
зверніть увагу, що всі дужки у вираженні повинні бути парними. Або:
=exp(1/3ln(x)).
3) обчислити sin2x=>sqr(sin(x)). Зрівняєте з sin x2=> sin(sqr(x)).
Не можна писати sin*xабоsin x,після імені функції може випливати тільки аргумент у круглих дужках.
4) обчислити k=tg(t). Т.к. функції тангенса в Паскалі ні, пишемо k:=sin(t)/cos(t);
При необхідності змінити звичайне старшинство операцій у записі вирази використовуються круглі дужки. Приклад:
обчислити . Правильний запис:y:=(a+b)/2;Неправильноy:=a+b/2, тому що це означає.
5) У записі виразів не можна пропускати знак *, як часто робиться в математику.
b2-4ac ->sqr(b)-4*a*c
Тип виразувизначається старшим з типів вхідних у нього операндів ( тобто стандартних функцій, змінних, констант). Старшинство типів ми можемо визначити по таблиці, як ми пам'ятаємо, у першому рядку таблиці – самий молодший тип.Приклад:
var i,j:integer;
f:real;
. . .
i+4*jцілий тип вирази, можна записати результат у цілую змінну
f+i*0.5речовинний, результат пишеться в речовинну змінну
Операція розподілу / у Паскалі завждидає дійсне число. Для розподілу цілих чисел із цілим результатом (залишок відкидається) використовуйтеdiv, для узяття залишку від розподілу двох цілі –mod.