- •Введення
- •Список лабораторних робіт
- •Оформлення звіту по лабораторній роботі
- •Правила написання програм
- •Правила виконання схем алгоритмів
- •Лабораторна робота № 1 лінійний обчислювальний процес
- •Лабораторна робота № 2 обчислювальний процес, що розгалужується
- •Лабораторна робота № 3 циклічний процес
- •Лабораторна робота № 4 типи даних, визначувані програмістом
- •Лабораторна робота № 5 робота з одновимірними і двовимірними масивами
- •Лабораторна робота № 6 сортування одно і двовимірних масивів.
- •Лабораторна робота № 7 функції і процедур, визначувані програмістом
- •Лабораторна робота № 8 модулі і динамічно зв'язувані бібліотеки.
- •Лабораторна робота № 9 множини і операції над ними
- •Лабораторна робота № 10 комбіновані типи (записи )
- •Лабораторна робота № 11 файли і робота з ними
- •Лабораторна робота № 12 статистичнi I динамiчнi структури даних
- •Лабораторна робота № 13 лабіринт
- •Лабораторна робота № 14 евристики.
- •Лабораторна робота № 15 класи
Лабораторна робота № 3 циклічний процес
Завдання: Написати програми розрахунку функції, використовуючи операторів циклу WHILE, REPEAT і FOR. Для кожного конкретного завдання з таблиці 3 визначити ефективність кожного оператора циклу.
Цикл це послідовність операторів, яка може виконуватися більше одного разу. Для реалізації циклів в Паскалі передбачено три різні інструкції. WHILE і REPEAT використовуються, якщо число повторень (ітерацій) заздалегідь не відомі, але відомі умови завершення циклу. Інструкція FOR застосовується, коли число ітерацій відоме.
3.1 Оператор WHILE
При виконанні оператора WHILE повторюється група операторів до тих пір, поки визначене в операторі WHILE булева умова істинно. Як тільки умова циклу не задовольняється, управління передається інструкції, наступній за WHILE. Якщо умова не виконується до початку виконання циклу, тіло циклу пропускається.
Загальна форма запису:
WHILE булева умова DO оператор;
Приклад підрахунку суми додатніх чисел:
program sum;
var a, sch, sum:integer;
begin
sum:=0;sch:=0;
while a>0 do
begin
read(a);
sum:=sum+a;
sch:=sch+1;
end;
writeln('сума',sch,' чисел рівна',sum);
end.
3.2 Оператор REPEAT
Між інструкціями REPEAT і WHILE існує три істотні відмінності:
У інструкції REPEAT перевірка умови виходу відбувається в кінці, а не на початку циклу, так що тіло циклу виконується хоч би один раз.
У інструкції REPEAT умова виходу задовольняється, якщо вираз істинний, а в інструкції WHILE - якщо помилково.
Між ключовими словами REPEAT. UNTIL можна помістити декілька інструкцій, а в інструкції WHILE тіло циклу повинне містити тільки одну інструкцію.
Загальна форма запису:
REPEAT
список операторів;
UNTIL умова;
Приклад підрахунку суми додатніх чисел:
program sum;
var a, sch, sum:integer;
begin
sum:=0;sch:=0;
repeat
read(a);
sum:=sum+a;
sch:=sch+1;
until a>0;
writeln(' сума',sch', чисел рівна',sum);
end.
3.3 Оператор FOR
Ця інструкція призначена для організації покрокових циклічних процесів, керованих за допомогою спеціальної змінної.
Загальна форма запису 1:
FOR керуюча змінна:=початкове значення
TO кінцеве значення DO оператор;
Загальна форма запису 2:
FOR керуюча змінна:= початкове значення
DOWNTO кінцеве значення DO оператор;
Керуюча змінна, набуває значень починаючи з першого (їм є вираз після символу :=) і, закінчуючи останнім (їм є вираз після TO і DOWNTO). Значення керуючої змінної, міняються з кроком +1, якщо використовується ключове слово TO, або з кроком -1, якщо використовується ключове слово DOWNTO.
Інструкція після ключового слова DO виконується один раз для кожного нового значення змінної, що управляє. Цикл завершується досягнувши керуючої змінної свого кінцевого значення.
Приклад підрахунку суми 10 чисел:
program sum;
var a,i,sch,sum:integer;
begin
sum:=0;sch:=0;
for i:=1 to 10 do
begin
read(a);
sum:=sum+a;
sch:=sch+1;
end;
writeln(' сума',sch', чисел рівна',sum);
end.
Таблиця 3 - Варіанти завдань для лабораторної роботи № 3
-
№
Вид функції
Початкові дані
A
B
Xн
Xк
N
1
0.9
1.85
10.2
12.4
12
2
4.86
9.35
6.2
10.6
11
3
11.6
2.4
1.4
6.9
12
4
3.14
5.39
18.4
25.6
10
5
5.25
7.39
4.25
5.46
6
6
6.3
0.86
1.25
8.75
6
7
1.28
0.03
12.6
34.6
12
8
0.25
11.6
0.2
1.2
11
9
0.6
1.24
6.44
3.24
9
10
0.44
2.28
6.5
7.3
9
11
3.2
0.45
0.6
1.5
10
12
7.32
0.15
13.3
14.5
9
13
2
1.35
0.2
1
9
14
1.41
10.45
0.2
1.4
7
15
7.38
0.3
9
27
10
16
0.49
1.28
1.56
2.96
8
17
89
1.3
7.35
5.15
12
18
1.16
1.28
0.45
0.15
11
19
17.2
24.6
2
20
10
20
0.4
10.8
1.25
2.25
11
21
1.28
0.03
12.6
8.6
9
22
0.25
0.68
2.12
1.44
13
23
6.44
5
0.35
0.49
15
24
0.45
0.6
1.5
7.5
7
25
4.1
0.95
-0.63
0.63
11
26
4.25
2.6
0.3
1.2
10
27
7.5
26.6
4.2
0.7
8
28
1.28
16.3
0.54
1.34
9
29
0.98
12.8
2.1
3.6
16
30
23.4
19.6
12.1
19.6
6