Циклічні програми. Складність циклічної програми.
Стр 1 из 3Следующая ⇒ Лабораторна робота № 3. Оператори повторення. Мета: вивчення засобів мови Borland Pascal, за допомогою яких програмуються циклічні алгоритми. Поняття циклу, операторів повторення (циклу). Обмежений тип даних. Короткі теоретичні відомості. Оператор циклу з параметром. Цикли - основний засіб у програмуванні, що дозволяє коротко записувати алгоритм, який здійснює велику кількість дій. Для реалізації циклічних алгоритмів у мові Паскаль використовуються оператори повторення: * оператор циклу з параметром; * оператор циклу з передумовою; * оператор циклу з постумовою. Оператор циклу з параметром передбачає повторне виконання деякого оператора з одночасною зміною значення, що присвоюється керуючою змінною (параметру цього циклу). Він має вид: 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/p e-x2/2 в інтервалі значень [MinBound, MaxBound] з кроком Step. Зверніть увагу на те, що перед входом у цикл обчислюється N - верхня межа параметра циклу, а в тілі циклу обчислюється наступне значення х. Циклічні програми. Складність циклічної програми. Циклічними називають програми, що містять оператори циклів. Циклічна програма може містити декілька операторів циклу, що виконуються послідовно або входять в інші оператори. Найпростіші циклічні програми містять один оператор циклу і оператори, що керують введенням-виведенням. До найпростіших відносяться циклічні програми розглянутих прикладів.
Читайте также: Алфавіт мови Turbo Pascal. Типи даних. Структура Pascal-програми. Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|