- •Історична довідка
- •Характеристика й особливості мови
- •Алфавіт мови
- •Службові (зарезервовані) слова.
- •Структура програми мови Turbo Pascal
- •Розділ оголошень і угод
- •Розділ текстів процедур і функцій
- •Розділ основного блоку програми
- •Процедури введення-виведення. Деякі вбудовані функції Турбо-Паскаля.
- •Функції числових параметрів.
- •Базові управляючі конструкції Турбо-Паскаля Оператори умовного переходу.
- •1. Оператор if.
- •2. Оператор вибору (case)
- •Оператори циклів у Паскалі
- •1. Цикл із післяумовою (Repeat)
- •2. Цикл із предумовою (While)
- •3. Цикл із лічильником або параметром (For)
- •Концепція типів даних. Типи даних в мові Pascal
- •Дійсні типи
- •Бульовий (логічний) тип
- •Символьні і рядкові змінні
- •1. Символьний тип
- •2. Рядковий тип
- •Перерахований та обмежений типи
- •1. Перерахований тип
- •2. Обмежений тип
- •1. Поняття масиву. Одномірні масиви
- •2. Багатомірні масиви
- •3. Сортування і пошук
- •Множинний тип
- •Тип запис
- •Процедури і функції
- •Формальні і фактичні параметри. Механізм параметрів
- •Параметри - значення
- •Параметри-змінні
- •Безтипові параметри
- •Приведення типів.
- •Процедурні типи
- •Рекурсія Рекурсивні визначення
- •Рекурсивні підпрограми
- •Алгоритми з поверненням. Розв’язок задачі про рух коня
- •Алгоритми з поверненням. Розв’язок задачі про вісьмох ферзів
- •If підходить тнеn
- •Модулі в Турбо Паскалі
- •Модуль crt
- •1. Керування екраном
- •2. Робота з клавіатурою
- •3. Інші можливості
- •Графіка в Турбо Паскалі
- •1. Включення і вимикання графічного режиму.
- •2. Побудова елементарних зображень
- •3. Виведення текстової інформації.
- •Файли в мові програмування Pascal
- •Установчі і завершальні операції
- •Операції введення-виведення
- •Обробка помилок введення-виведення
- •Переміщення по файлу
- •Спеціальні операції
- •Текстові файли
- •1. Оголошення файлової змінної і прив'язка до файлу на диску
- •2. Читання даних з файлу
- •3. Запис даних у файл
- •Двійкові файли
- •1. Типізовані файли
- •2. Нетипізовані файли
- •Статичні і динамічні змінні
- •Покажчики
- •Стан покажчика
- •Установка розмірів динамічної пам'яті
- •Сумісність і перетворення посилкових типів
- •Динамічні структури даних
- •Динамічні змінні: інші види списків, стек і черга.
- •1. Інші види списків
- •2. Стек і черга
- •Дерева і пошук у деревах
- •1. Визначення й описи структур даних
- •1. Масив
- •2. Список
- •3. Дерево
- •2. Алгоритми
- •1. Лінійний пошук у масиві
- •2. Двійковий пошук
- •3. Лінійний пошук у списку
- •Змішані таблиці
- •Об’єктно-орієнтоване програмування. Що таке об’єктно-орієнтоване програмування
- •Інкапсуляція
- •Спадкування
- •Віртуальні методи і поліморфізм
- •Конструктори, динамічні об'єкти і деструктори
- •Поля і методи: сховані і загальнодоступні
- •Системно- залежні розширення
- •Налагодження змінних
- •Оверлеї
- •Переривання і системні виклики
- •Доступ до пам'яті і портів
- •Перевизначення переривань
Оператори циклів у Паскалі
У реальних задачах часто потрібно виконувати ті самі оператори кілька разів. Можливі різні варіанти: виконувати фрагмент програми фіксоване число раз, виконувати, поки виконується деяка умова , і т.п. У зв'язку з наявністю варіантів у Паскалі існує 3 типи циклів.
1. Цикл із післяумовою (Repeat)
На Паскалі записується так:
repeat <оператор> until <умова>.
(Українською: щось повторювати доки_не_виконалася умова). Під позначенням <оператор> тут розуміється або одиночний, або послідовність операторів, розділених крапкою з комою. Цикл працює так: виконується оператор, потім перевіряється умова, якщо вона поки ще не виконалося, то оператор виконується знову, потім перевіряється умова, і т.д. Коли умова, нарешті, стане вірною виконання оператора, розташованого усередині циклу, припиниться, і далі буде виконуватися наступний за циклом оператор. Під умовою, узагалі говорячи, розуміється вираз логічного типу.
Приклад (підрахунок суми натуральних чисел від 1 до 100):
var i,sum: integer;
begin
sum:=0; i:=0;
repeat
i:=i+1;
sum:=sum+i;
until i=100;
writeln('Сума дорівнює: ',sum);
readln;
end.
Важливо помітити, що оператори, які стоять усередині циклу repeat (інакше – у тілі циклу) виконуються хоча б один раз (тільки після цього перевіряється умова виходу).
2. Цикл із предумовою (While)
Цей цикл записується так:
while <умову> do <оператор>.
(Поки умова істинна, виконувати оператор). Суть у наступному: поки умова істинна, виконується оператор (у цьому випадку оператор може не виконатися жодного разу, тому що умова перевіряється до виконання). Під оператором тут розуміється або простий, або складений оператор (тобто декілька операторів, обмежених begin ... end).
Розглянемо той же приклад, виконаний за допомогою while:
var i,sum: integer;
begin
sum:=0; i:=0;
while i<100 do begin
i:=i+1;
sum:=sum+i;
end;
writeln('Сума дорівнює: ',sum);
readln;
end.
3. Цикл із лічильником або параметром (For)
Записується так:
for <змінна>:=<поч> to <кін> do <оператор>. Замість to можливе слово downto. Розглянемо такий приклад: потрібно вивести на екран таблицю квадратів натуральних чисел від 2 до 20.
var i: integer;
begin for i:=2 to 20 do writeln(i,' ',sqr(i)); end.
При виконанні циклу відбувається наступне: зміннй i привласнюється початкове значення (2), потім виконується оператор (простий чи складов), після цього до i додається 1, і перевіряється, чи не стало значення і рівним кінцевому (20). Якщо ні, то знову виконується оператор, додається 1, і т.д. У випадку, коли замість to використовується downto, усе відбувається навпаки: одиниця не додається, а віднімається. Наприклад, цикл, що виведе ту ж таблицю, але в зворотному порядку:
for i:=20 downto 2 do writeln(i,' ',sqr(i));
У завершення запишемо програму про підрахунок суми чисел від 1 до 100 за допомогою for:
var i, sum: integer;
begin
sum:=0;
for i:=1 to 100 do sum:=sum+i;
writeln(sum);
end.
Концепція типів даних. Типи даних в мові Pascal
У мові Pascal будь-яка змінна характеризується своїм типом Під типом у даному випадку розуміється множину значень які може приймати змінна і, як наслідок, множину операцій, припустимих над даної змінною.
Pascal є типізованою, або статичною мовою Це означає, що тип змінної визначається при її описі і не може бути змінений. Змінна може використовувати тільки в операціях, припустимих її типом. Такий підхід сприяє більшій акуратності і відповідальності при складанні програми, робить їх
P ascal на основі невеликої кількості стандартних типів дає можливість програмісту конструювати дані довільної структури і складності, які адекватно відображають інформаційну природу задачі.
На основі стандартних скалярних типів мається можливість утворювати скалярні типи користувача. Є два способи створення нових скалярних типів - обмежені і перераховані типи.
Будь-який скалярний тип характеризується множиною його різних значень, серед яких встановлений лінійний порядок. Усі скалярні типи, крім дійсних, називають також дискретними.
Цілий тип.
Ця група типів позначає множину цілих чисел у різних діапазонах. Мається п'ять цілих типів, що розрізняються припустимим діапазоном значень і розміром займаної оперативної пам'яті. Цілі типи позначаються ідентифікаторами Integer, Byte, Shortint, Word, Longint; їх характеристики наведені в наступній таблиці.
Цілий тип |
Діапазон значень |
Розмір пам’яті |
Shorting |
-128…127 |
1 байт |
Integer |
-32768…32767 |
2 байта |
Longint |
-2147483648…2147483647 |
4 байта |
Byte |
0…255 |
1 байт |
Word |
0…65535 |
2 байта |
Значення цілих типів можуть зображуватися в програмі двома способами: у десятковому виді (традиційно, у виді послідовності цифр) і в шестнадцятовому виді. В останньому випадку цифри старше 9 позначаються латинськими буквами від А до F, а на початку ставиться символ '$' (знак долара). Максимально припустимий діапазон зображень десяткового числа є — -2147483648…2147483647
Над цілими значеннями припустимі наступні операції:
чотири арифметичних дії, що мають звичний зміст. Ці дії позначаються символами:
+ додавання
- віднімання
* множення
/ ділення
Та дві додаткові операції "типу ділення", які позначаються службовими словами:
Div — ділення на ціло
Mod — узяття залишку від цілочисельного ділення.
При застосуванні до цілих значень усі перераховані операції (крім ділення) дають цілий результат. Операція ділення завжди дає дійсний результат.
Для цілих визначені дві вбудовані функції abs і sqr.
Опис змінних цілого типу на Паскалі має такий вигляд:
Var a,b,c,:(integer)