Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_prakt_1kurs.doc
Скачиваний:
2
Добавлен:
23.11.2019
Размер:
1.73 Mб
Скачать

2.3.2.1Оператор циклу з наперед заданою кількістю повторень for

Цикли із заданою кiлькiстю повторень називають також циклами з лічильником. Число повторень тіла циклу в цьому випадку рахується за допомогою спеціальної змінної (лічильника), для якої вiдомi початкові та кiнцевi значення, а також крок зміни. Управління циклом виконується за допомогою порівняння поточних значень лічильника з заданим порогом.

Змінну лічильника часто називають параметром циклу, а сам цикл – циклом з параметром.

У циклі з лічильником обов’язково потрібно вказувати наступні параметри:

  • назву змінної впорядкованого типу, в якій зберігається кількість повторень циклу (лічильник циклу);

  • початкове значення для змінної циклу (лічильника циклу);

  • кінцеве значення для змінної циклу (лічильника циклу).

Оператор циклу з параметром має два види (по зростанню та по спаданню). Розглянемо перший:

For <параметр>:= <вираз1> to <вираз2> do

<оператор>;

For (для), to (до), do (виконати) – зарезервовані (службові) слова; параметр – це змінна цілого, символьного, логічного або перерахованого типу, крім дійсного, а вирази1 i 2 – це деякі константи такого ж самого типу, що й параметр, які задають початкове та кінцеве значення параметра. <оператор> (тіло циклу) – будь-який оператор, у тому числі складений.

У випадку, якщо в програмі зустрічається така конструкція, то параметру циклу присвоюється значення виразу 1. Якщо це значення менше або рівне ніж значення виразу 2, то виконується оператор (тіло циклу). Після виконання оператору значення параметра автоматично збільшується на 1 i знову порівнюється зі значенням виразу 2 i т.д. Коли значення параметра стане більшим, ніж значення виразу 2, то виконується наступний після циклу оператор. Якщо під час першого порівняння виявиться, що значення виразу 1 більше ніж значення виразу 2, то тіло циклу не виконається жодного разу.

Наприклад:

Якщо s=0. Після виконання команди циклу

For i:=4 to 6 do begin s:=s+i; z:=2*i end;

s=0+4+5+6=15, z=12.

Розглянемо другий різновид оператору циклу for (по спаданню):

For <параметр>:= <вираз1> downto <вираз2>

<оператор>;

Дана команда діє як попередня, але значення параметра зменшується на 1 (downto – вниз до).

Наприклад:

Якщо s=0. Після виконання команди циклу

For i:=6 downto 4 do begin s:=s+i; z:=2*i end;

s=0+6+5+4=15, z=8.

Приклад 1. Скласти програму для знаходження факторіалу числа N! При цьому потрібно нагадати, що факторіал числа – це добуток типу 1·2·3·...·N. (Наприклад 5!=1·2·3·4·5=120)

Текст програми

Program example1;

uses crt;

var

f : longint;

i, n : byte;

begin

clrscr;

f:=1; {вказуємо початкове значення добутку}

write(’n=’);

readln(n);

for i:=2 to n do

f:=f*i; {множимо значення факторіала на наступний

елемент}

writreln(’f=’,f);

readln

end.

Очевидно, що оператор циклу з параметром можна використовувати тільки тоді, коли крок зміни певної змінної рівний 1 чи -1. У випадку коли крок зміни змінної відмінний від 1 чи -1 для використання оператора циклу з параметром необхідно виконати наступне:

  • знайти кількість значень яких буде набувати змінна (наприклад x) на заданому проміжку із заданим кроком за формулою:

,

де x1, xn – відповідно початкове і кінцеве значення змінної; dx – крок.

  • перед початком тіла циклу присвоїти змінній x початкове значення;

  • організувати цикл, в якості параметру якого вибрати деяку іншу змінну (наприклад i), що змінюється від 1 до N;

  • у тілі циклу передбачити нарощування значення змінної x на крок dx.

Приклад 2. Скласти програму для знаходження значення функції , де , , .

Текст програми

Program example2;

uses crt;

const {оголошення констант}

x1=0; xn=10; dx=0.5;

var {оголошення змінних}

i,n:integer;

x,y:real;

begin

clrscr;

n:=round((xn-x1)/dx+1); {обчислення кількості значень яких

набуде аргумент x}

x:=x1; {присвоєння початкового значення аргументу х}

for i:=1 to n do

begin

y:=sqr(x);

writeln(‘x’,i,‘=’,x:4:2,’ y’,i,‘=’,y:4:2); {вивід на екран

поточного значення аргументу та функції}

x:=x+dx {нарощування значення аргументу}

end;

readln

end.

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