Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_Паскал.doc
Скачиваний:
2
Добавлен:
21.09.2019
Размер:
1.21 Mб
Скачать

Оператори циклів у Паскалі

У реальних задачах часто потрібно виконувати ті самі оператори кілька разів. Можливі різні варіанти: виконувати фрагмент програми фіксоване число раз, виконувати, поки виконується деяка умова , і т.п. У зв'язку з наявністю варіантів у Паскалі існує 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)