- •Курсова робота з дисципліни «Інформатика»
- •«Використання підпрограм та функцій користувача при роботі з масивами.»
- •Завдання на курсову роботу з дисципліни «Інформатика»
- •І. Теоретична частина
- •1. Масиви
- •1.1. Опис типу
- •1.2. Дії над масивами
- •1.3. Дії над елементами масиву
- •2. Ідентифікатори
- •3. Підпрограми
- •4. Структура програми
- •5. Процедури і функції
- •5.1 Описи процедур
- •5.2 Описи функцій
- •6. Модулі
- •6.1 Модуль Crt
- •6.2 Модуль Strings
- •6.3 Модуль Graph
- •7. Оператори
- •7.1 Прості оператори
- •7.2 Оператор привласнення
- •7.3 Привласнення об'єктного типу
- •7.4 Оператори процедури
- •7.5 Оператори переходу
- •7.6 Структурні оператори
- •7.7 Складові оператори
- •7.8 Умовні оператори
- •7.8.1. Оператор умови (if)
- •7.8.2. Оператор варіанту (case)
- •7.9 Оператор циклу
- •7.9.1. Оператор циклу з післяумовою (repeat)
- •7.9.2. Оператори циклу з передумовою (while)
- •7.9.3. Оператори циклу з параметром (for)
- •7.10 Оператор with
- •Іі. Постановка задачі
- •Ііі. Алгоритм розв’язання задачі
- •IV. Програмні реалізації алгоритму
- •V. Результати виконання програми
- •Висновки
- •Список використаних джерел
7.9 Оператор циклу
Оператор циклу задає повторне виконання визначених операторів.
Якщо число повторень наперед відоме, то відповідною конструкцій є оператор for. В осоружному випадку слідує використовувати оператори while або repeat.
Для управління повторенням операторів можна використовувати стандартні процедури Break і Continue. Break завершує оператор циклу, а Continue продовжує з наступної ітерації цього оператора.
7.9.1. Оператор циклу з післяумовою (repeat)
В операторі циклу з післяумовою (що починається із слова repeat) вираз, який управляє повторним виконанням послідовності операторів міститься усередині оператора repeat.
Результат виразу повинен бути булевого типу. Оператори розташовані між ключовими словами repeat і until, виконуються послідовно до тих пір, поки результат виразу не прийме значення True. Послідовність операторів виконається по крайній мірі один раз, оскільки обчислення виразу проводиться після кожного виконання послідовності операторів.
Наведемо приклади оператора циклу з післяумовою:
repeat
До := I mod J;
I := J;
J := ДО;
until J = 0;
repeat
Write('Введіть значення (0..9):');
Readln(I);
until (I >= 0) and (I <= 9);
7.9.2. Оператори циклу з передумовою (while)
Оператор циклу з передумовою (що починається з ключового слова while) містить в собі вираз, який управляє повторним виконанням оператора (який може бути складовим оператором).
Вираз, за допомогою якого здійснюється управління повторенням оператора, повинен мати булевий тип. Обчислення його проводиться до того, як внутрішній оператор буде виконаний. Внутрішні оператори виконуються повторно до тих пір, поки вираз приймає значення Тruе. Якщо вираз з самого початку приймає значення False, то оператор, що міститься усередині оператора циклу з передумовою, не виконується.
Прикладами операторів циклу з передумовою можуть служити наступні оператори:
while Data[I]<> X do I := I + 1;
While I > 0 do
begin
if Odd(I) then Z := Z * X;
I := I div 2;
X := Sqr(X);
end;
while not Eof(InFile) do
begin
Readln(InFile,Line);
Process(Line);
end;
7.9.3. Оператори циклу з параметром (for)
Оператори циклу з параметром (які починаються із слова for) викликає виконання оператора, що повторюється (який може бути складовим оператором) поки управляючої змінної присвоюється зростаюча послідовність значень.
Як управляюча змінна повинен використовуватися ідентифікатор зміною (без якого-небудь кваліфікатора), який позначає змінну, оголошену локальній в блоці, в якому міститься оператор for. Управляюча змінна повинна мати перелічувальний тип. Початкове і кінцеве значення повинні мати тип сумісний по привласненню з перелічувальним типом.
Коли починає виконуватися оператор for, початкове і кінцеве значення визначаються один раз, і ці значення зберігаються на протязі всього виконання оператора for.
Оператор, який міститься в тілі оператора for, виконується один раз для кожного значення в діапазоні між початковим і кінцевим значенням. Управляюча змінна завжди ініціалізувалася початковим значенням. Коли працює оператор for, значення управляючої змінній (лічильника циклів) збільшується при кожному повторенні на одиницю. Якщо початкове значення перевищує кінцеве значення, то що міститься в тілі оператора for оператор не виконаються. Коли в операторі циклу використовується ключове слово downto, значення управляючої змінної зменшується при кожному повторенні на одиницю. Якщо початкове значення в такому операторі менше ніж кінцеве значення, то що міститься в тілі оператора циклу оператор не виконаються.
Якщо оператор, що міститься в тілі оператора for, змінює значення управляючої змінної, то це є помилкою. Після виконання оператора for значення управляючої змінної становится невизначеним, якщо тільки виконання оператора for не було перерване за допомогою оператора переходу.
Якщо взяти до уваги ці обмеження, то оператор
for V := Expr1 to Expr2 do Body;
еквівалентний оператору:
begin
Temp1 := Expr1;
Temp2 := Expr2;
if Temp1 <= Temp2 then
begin
V := Temp1;
Body;
while V <> Temp2 do
begin
V := Succ(V);
Body;
end;
end;
end;
і оператор циклу:
for V := Expr1 downto Exp2 do Body;
еквівалентний операторам:
begin
Temp1 := Expr1;
Temp2 := Expr2;
if Temp1 >= Temp2 then
begin
V := Temp1;
Body;
while V <> Temp2 про
begin
V := Pred(V);
Body;
end;
end;
end;
де Temp1 і Temp2 - допоміжні змінні, тип яких збігається з основним типом змінної V і які не зустрічаються в іншому місці програми.
Наведемо приклади оператора циклу з параметром:
for I := 2 to 63 do
if Data[I]> Max then Max := Data[I]
for I := 1 to 10 do
for J := 1 to 10 do
begin
X := 0;
for До := 1 to 10 do
X := X + Mat1[I,K]*Mat2[K,J];
Mat[I,J]:= X;
end;
for З := red to blue do Check(C);
