
- •Міністерство освіти і науки Україні
- •Закарпатський державний університет
- •Природничо-гуманітарний коледж
- •Методичні вказівки
- •До лабораторних робіт по дисципліні
- •Лабораторна робота № 1. Лінійні програми.
- •Короткі теоретичні відомості.
- •Структура програми.
- •Приклад розділу змінних
- •Тип даних Integer .
- •Тип даних Real.
- •Тип даних Сhar.
- •Тип даних Boolean (логічний).
- •Хід роботи
- •Контрольні питання.
- •Варіанти завдань.
- •Лабораторна робота № 2. Оператори повторення.
- •Короткі теоретичні відомості.
- •1. Оператор циклу з параметром.
- •2. Циклічні програми. Складність циклічної програми.
- •3. Оператори повторення While і Repeat.
- •4. Обмежені типи.
- •5. Мітки. Оператор переходу. Застосування оператора переходу для дострокового виходу з циклу.
- •Хід роботи.
- •Контрольні питання.
- •Лабораторна робота № 3. Масиви. Алгоритми сортування та пошуку.
- •Короткі теоретичні відомості.
- •1. Складні (складені) типи.
- •2. Регулярний тип. Масиви.
- •3. Пошук елемента в масиві.
- •4. Постановка задачі сортування.
- •Хід роботи.
- •Контрольні питання.
- •Лабораторна робота № 4 Рядки та засоби їх обробки. Короткі теоретичні відомості.
- •Хід роботи
- •Контрольні питання.
- •Лабораторна робота №5 Процедури та функції. Короткі теоретичні відомості.
- •1. Опис процедур.
- •2.Формальні параметри. Локальні і глобальні об’єкти.
- •3. Оператор процедури. Фактичні параметри.
- •4. Функції.
- •5. Рекурсивно-визначені процедури і функції.
- •Хід роботи
- •Контрольні питання.
- •Лабораторна робота № 5. Складні типи даних: записи. Короткі теоретичні відомості.
- •1. Записи.
- •2 .Записи з варіантами.
- •3.Оператор приєднання.
- •Хід роботи.
- •Контрольні питання.
- •Лабораторна робота № 6. Множини. Короткі теоретичні відомості.
- •1.Множинний тип.
- •2.Конструктор множини.
- •3. Операції і відношення.
- •4. Застосування множин у програмуванні.
- •Хід роботи.
- •Контрольні питання.
- •Лабораторна робота № 7 Файли. Управління файлами. Короткі теоретичні відомості.
- •Хід роботи.
- •Контрольні питання.
2. Циклічні програми. Складність циклічної програми.
Циклічними називають програми, що містять оператори циклів. Циклічна програма може містити декілька операторів циклу, що виконуються послідовно або входять в інші оператори . Найпростіші циклічні програми містять один оператор циклу і оператори, що керують введенням-виведенням. До найпростіших відносяться циклічні програми розглянутих прикладів.
3. Оператори повторення While і Repeat.
Оператор For використовується лише у випадку, коли заздалегідь відома кількість повторень тіла циклу. У більш загальному випадку, коли кількість повторень заздалегідь невідома, а задана деяка умова закінчення (або продовження) циклу, у мові Pascal використовують інші оператори повторення: оператор циклу з передумовою While і оператор циклу з постумовою Repeat.
Оператор циклу з передумовою визначений діаграмою:
Оператор циклу
з передумовою
Оператор (тіло циклу) виконується до тих пір, поки умова істинна. Якщо при першій перевірці умова виявилась хибною, оператор не виконується ні разу.
Приклад 3. Знайти найменший натуральний розв’язок нерівності x3 + ax2 + bx + c > 0 з цілими коефіцієнтами.
Очевидний алгоритм пошуку розв’язку складається у послідовному обчисленні значень Y = x3 + ax2 + bx + c для x = 1, 2, 3, ... до тих пір, поки Y 0.
Program UneqvSolution;
Var a, b, c : Integer;
X : Integer; Y : Real;
Begin
Write(‘ введіть коефіцієнти a, b, c : ‘); Readln(a, b, c);
X := 1; Y := a + b + c + 1; { Ініціалізація циклу }
While Y <= 0 do begin
X := Succ(X); { Наступне значення X }
Y := ((X + a)*X + b)*X + c { Наступне значення Y }
end;
Writeln(‘X = ‘, X, ‘ Y = ‘, Y )
End.
Оператор циклу з постумовою визначений діаграмою:
Оператор циклу
з постумовою
Тіло циклу Repeat виконується до тих пір, поки умова приймає значення False. Дії, що містяться в тілі циклу, будуть виконані у крайньому випадку один раз. Таким чином, умова є умовою закінчення циклу.
Приклад 4. Знайти номер найменшого числа Фібоначчі, що ділиться на 10. Послідовність Фібоначчі { F(n) } визначається рекуррентно:
F(1) = F(2) = 1, F(n+2) = F(n+1) + F(n)
Як і у попередньому прикладі, обчислюємо Fn для n = 3, 4, ... до тих пір, поки не знайдемо елемент послідовності, що ділиться на 10. Проблема обгрунтування методу залишається тією ж: чи існує потрібний елемент?
Program Fibbonachy;
Var Fib1, Fib2 : Integer;
Index : Integer; Buf : Integer;
Begin
Fib1 := 1; Fib2 := 1; Index := 2; { Ініціалізація циклу }
Repeat
Buf := Fib2;
Fib2 := Fib2 + Fib1; { Наступне число Фібоначчі }
Fib1 := Buf; { Попереднє число Фібоначчі }
Index := Succ(Index) { Номер числа Фібоначчі }
until Fib2 mod 10 = 0;
Writeln(‘Номер = ‘, Index, ‘ Число = ‘, Fib2)
End.
Цикли While і Repeat називають ще ітераційними циклами, оскільки за їх допомогою легко реалізувати різного роду ітераційні обчислення (обчислення, в яких кожний наступний результат є уточненням попереднього). Умова закінчення циклу - досягнення відхилення результату Yn от Yn-1 деякої допустимої похибки :
|Yn - Yn-1| <