Команда циклу з параметром (for)
Оператори циклу. Цикл — це процес виконання певного набору команд деяку кількість разів. Цикл реалізують або за допомогою конструкції if–goto, або, що значно ефективніше, за допомогою команд циклу. Є три види команд циклів: з параметром, з передумовою та з післяумовою. Команда циклу з параметром (for) Розглянемо команду циклу з параметром – for. Є два різновиди команди for. Розглянемо перший: for < параметр >:=<вираз 1> to <вираз 2> do <команда 1>; Тут параметр — це зміна цілого, символьного, логічного або перерахованого типу, а вирази 1 і 2 задають початкове та кінцеве значення параметра. Дія команди. Параметрові циклу присвоюється значення виразу 1. якщо це значення менше-рівне, ніж значення виразу 2, то виконується команда 1. Після виконання команди 1 значення параметра автоматично збільшується на 1 і знову порівнюється зі значенням виразу 2 і т.д. Коли значення параметра стане більшим, ніж значення виразу 2, то виконується наступна після циклу команда. Приклад. Нехай s=0. Після виконання команди циклу for i:=4 to 6 do begin s:=s+і; z:=2*i end; зміна s набуде значення 0+4+5+6=15, а зміна z — 12.
Розглянемо другий різновид команди циклу for: for < параметр >:=<вираз 1> downto <вираз 2> do <команда 1>; Ця команда діє як попередня, але крок зміни параметра є -1. Приклад. Нехай s=0. після виконання команди циклу for i:=6 downto 4 do begin s:=s+і; z:=2*i end; зміна s набуде значення 0+6+5+4=15, а зміна z— 8. Значення параметра в середині циклу змінювати не можна. Приклад. Побудувати таблицю відповідності між унціями та грами, якщо 1 унція = 28,353495 г. Початкове значення кількості унцій (uncia), крок зміни (krok) цього значення та кількість рядків (kil) у таблиці задати самостійно у режимі діалогу. program Mira; uses Crt; const line=’-------------------’; var uncia, gramy, krok: real; i, kil: integer; Begin clrscr; write (‘Введіть початкове значення, крок зміни та’); writeln(‘кількість рядків у таблиці’); readln(uncia, krok, kil); writeln; {Формуємо порожній рядок} writeln(line); {Формуємо заголовок таблиці} writeln(’Унції Грами’); writeln(line); for i:=1 to kil do {Виводимо таблицю на екран} Begin gramy:=28.353495*uncial; writeln(uncia:5:2,’ ’, gramy:10:6); uncia:=uncia+krok; end; writeln(line); readln End. Команда циклу з передумовою (while) має вигляд while < логічний вираз > do <команда 1>; Дія команди. Доки значення логічного виразу істинне, виконується команда 1. Істинний логічний вираз описує умову продовження процесу виконання команди циклу. Приклад. Нехай змінні x, s мають значення х=4, s=0. Після виконання команди while x<=8 do begin s:=s+x; x:= x +1 end; вони набудуть значень s=4+5+6+7+8=30, x=9 Приклад. Вивести таблицю чисел від 20 до 30, їхні квадрати та куби за допомогою команди можна while так: i:= 20; while i <= 30 do Begin writeln(i:4, i*i:6, i*i:8); i:=i+1 end; Приклад. Визначити дійсне додатне число а, для якого виконується співвідношення а/2=0 в комп’ютерній арифметиці дійсних чисел. Таке число характеризує нижню додатну межу типу даних real. program MinRealNumber; uses Crt; var a: real; Begin clrscr; a:= 1; while a/2>0 do a:= a/2; writeln(’a =’, a); {Відповідь: а = 2.9Е-39} readln End. Команда циклу з післяумовою (repeat) має вигляд repit < команди > until < логічний вираз >; Дія команди. Команди виконуються в циклі, доки значення логічного виразу не стане істинним. Істинний логічний вираз задає умову виходу з циклу. Приклад. Нехай змінні x, y мають значення х=5, y=0. У результаті виконання команди Repeat y:=y+x; z:=2*x-2 until x<=1; Змінні у, z, x набудуть значень у=0+5+3=8, z=6, x=1.
|