Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л.р._3.DOC
Скачиваний:
5
Добавлен:
04.03.2016
Размер:
147.46 Кб
Скачать

7

Лабораторна робота № 3. Оператори повторення.

Мета: вивчення засобів мови Borland Pascal, за допомогою яких програмуються циклічні алгоритми. Поняття циклу, операторів повторення (циклу). Обмежений тип даних.

Короткі теоретичні відомості.

1. Оператор циклу з параметром.

Цикли - основний засіб у програмуванні, що дозволяє коротко записувати алгоритм, який здійснює велику кількість дій.

Для реалізації циклічних алгоритмів у мові Паскаль використовуються оператори повторення:

  1. оператор циклу з параметром;

  2. оператор циклу з передумовою;

  3. оператор циклу з постумовою.

Оператор циклу з параметром передбачає повторне виконання деякого оператора з одночасною зміною значення, що присвоюється керуючою змінною (параметру цього циклу). Він має вид:

For < параметр > := <початкове значення > to <кінцеве значення > do <оператор >

або

For < параметр >:=< початкове значення > downto <кінцеве значення > do <оператор>

Синтаксична діаграма оператора циклу з параметром:

Оператор циклу

з параметром

Ім’я - це ім’я змінної - параметра циклу;

А - початкове значення параметра циклу;

В - кінцеве значення параметра циклу;

Оператор - тіло циклу.

Параметр циклу, початкове і кінцеве значення повинні бути одного й того ж скалярного типу ( крім дійсного). Початкове і кінцеве значення обчислюються лише один раз - при вході в цикл, і, отже, повинні бути визначені до входу в цикл і не можуть бути змінені в тілі циклу.

Якщо початкове і кінцеве значення розділяє службове слово to, то після виконання оператора (тіло циклу) параметр циклу (наприклад v) приймає значення Succ(v), якщо ж дільником початкового і кінцевого значень служить слово downto, то параметр циклу v після виконання тіла циклу приймає значення Pred(v). Зокрема, якщо параметр v має тип Integer, то одночасно з виконанням тіла циклу здійснюється або присвоювання v := v + 1 (to), або v := v - 1 (downto). Додатково (примусово) змінювати значення параметра в тілі циклу не рекомендується, оскільки контроль за правильністю виконання такого циклу дуже затруджений. Якщо в циклі з to початкове значення більше, ніж кінцеве, то цикл не виконується взагалі. Аналогічно, якщо в циклі з downto початкове значення менше, ніж кінцеве, цикл також не виконується.

Приклад 1.

Program NFactorial; var Factorial, Argument: Integer; i : Integer;

Begin

Write(‘ введіть аргумент факторіала ‘);

Readln(Argument) ;

Factorial := 1;

For i := 2 to Argument do Factorial := i*Factorial;

Writeln(Argument,’! = ‘, Factorial)

End.

У цьому прикладі

i - параметр циклу;

2 - початкове значення параметра циклу;

Argument - кінцеве значення параметра циклу;

Factorial := i*Factorial - тіло циклу.

Часто крок зміни змінної, яка управляє циклом, відрізняється від 1, -1. Наступний приклад демонструє використання циклу з параметром у таких обчисленнях.

Приклад 2. Табулювання функції дійсної змінної.

Рrogram Tabulation;

const Pi=3.14159262;

var MinBound, MaxBound, Step: Real;

x, y : Real; Coef : Real;

i, n : Integer;

Begin

Write(‘Введіть межі табулювання ‘); Readln(MinBound, MaxBound);

Write(‘Введіть крок табулювання ‘); Readln(Step);

n := Round((MinBound - MaxBound)/Step);

x := MinBound; Coef := 1/Sqrt(Pi);

for i := 0 to n do begin

y := Coef * exp(-Sqr(x)/2);

writeln(‘ x = ‘,x,’ y = ‘,y);

x := x + Step

end;

End.

Програма табулює функцію y=1/ e-x2/2 в інтервалі значень [MinBound, MaxBound] з кроком Step. Зверніть увагу на те, що перед входом у цикл обчислюється N - верхня межа параметра циклу, а в тілі циклу обчислюється наступне значення х.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]