Вказівки повторення. Цикл з параметром

Матеріал з Фізмат Вікіпедії
Перейти до: навігація, пошук

Тема уроку: „Вказівки повторення. Цикл з параметром”

Мета: ознайомлення зі структурою циклу з параметром. Формування навичок використання циклів та їх запису мовою програмування.

Хід уроку

1. Активізація опорних знань. Бажано провести невелику самостійну роботу (можна тестового характеру) за матеріалами попередніх уроків.

1)Вказати значення змінної s після виконання вказівки повторення:

а)s:=3; I:=1; while I<=7 do begin I:=I+2; s:=s+I; end; s=_____

б)s:=1; I:=0; while I<=4 do I:=I+1; s:=s*I; s=_____

в)s:=10; I:=1; repeat s:=s–I; I:=I+1; until I>3; s=_____


2)Скільки разів буде виконано цикл?

а)k:=3; repeat s:=s+k; k:=k+1; until k>5; ______________

б)k:=4; while k>=4 do k:=k-1; ______________

в)m:=10; while m<7 do m:=m-1; ______________

г)I:=4; repeat I:=I–1; until I>=8; ______________


2. Формування нових знань і умінь.

До цього моменту ми використовували оператори циклу у випадках, коли кількість повторень не була відома наперед. При цьому в середині циклу обов’язково потрібно було подбати про зміну деякої величини, що фігурує в умові, щоб запобігти зацикленню. Якщо ж нам відомо скільки разів повинен виконуватись цикл, то використовується цикл з параметром.

Мовою Паскаль він описується так:

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

<тіло циклу>;

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

<тіло циклу>;

Ця конструкція задає багатократне виконання деякого оператора, простого чи складеного, з одночасною зміною параметра. Початкове і кінцеве значення параметра можуть бути константами, змінними або арифметичними виразами. Ці значення визначаються один раз на початку виконання оператора For і не змінюються під час роботи цього оператора. Значення параметру, а також початкового і кінцевого значень повинні належати до одного типу, обов’язково порядкового. Якщо в операторі For використовується слово do, то значення параметру збільшується на 1 при кожному повторенні тіла циклу, якщо ж в операторі For використовується слово downto, то значення параметру зменшується на 1 при кожному повторенні тіла циклу.

Якщо трапиться, що при використанні слова do початкове значення більше ніж кінцеве, то цикл не виконається жодного разу. Аналогічно, якщо при використанні слова downto початкове значення менше ніж кінцеве, то цикл також не виконається жодного разу. В загальному випадку

For i:=A to B do <тіло циклу> , цикл буде виконано В-А+1 разів.

Зауваження: при використанні циклу з параметром небажано змінювати значення параметру в тілі циклу, оскільки це може призвести до появи помилок, які потім досить важко виявити.

'Задача 1.' Вивести на екран всі натуральні числа від 10 до 20 та їх квадрати. Кількість повторень в даній задачі, очевидно, відома. Отже, можемо використати цикл з параметром.

Program param1;

Var a: integer;

Begin

For a:=10 to 20 do

writeln(a,’ ‘, sqr(a));

readln;

End.

Зверніть увагу, що в тілі циклу використовується простий оператор, тому можна не використовувати операторні дужки begin … end.

Задача 2. Послідовність Фібоначчі будується таким способом: перші два члени цієї послідовності дорівнюють 1, а кожний наступний член, починаючи з третього, дорівнює сумі двох попередніх. Тобто: 1, 1, 2, 3, 5, 8, 13, 21, 34 ... . Потрібно написати програму, яка за введеним числом n, знаходить і виводить на екран n перших членів послідовності Фібоначчі.

Розв’язування.

Виходячи із вказаного способу побудови послідовності Фібоначчі, для перших її трьох членів можемо записати таке: a:=1; b:=1; c:=a+b. А далі нам потрібно виконати переприсвоєння значень змінних: a:=b; b:=c, тобто, вже обчислені значення послідовності повинні стати початковими.

Наведемо текст програми:

Program Fib_1;

Var a,b,c,i,n: integer;

Begin

write(‘N--->’); readln(n);

a:=1; b:=1;

write(a,’ ’); write(b,’ ’);

for i:=3 to n do

begin

c:=a+b;

write(c,’ ’);

a:=b;

b:=c;

end;

readln;

End.

На прикладі послідовності Фібоначчі, ми познайомились з прикладом рекурентної послідовності, тобто послідовності, в якій кожний наступний член можна виразити через попередні.

3. Узагальнення і систематизація теоретичного матеріалу.

Характерні риси циклу з параметром:

•використовуємо у випадках, коли кількість повторень відома наперед;

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

•всередині циклу не рекомендується змінювати параметр.

Які, на вашу думку, переваги має цикл з параметром порівняно з циклами з передумовою та післяумовою? Які недоліки?

4. Формування практичних навичок застосування циклів.

Задача 3. Переробіть програму обчислення чисел Фібоначчі так, щоб використовувався цикл while.

Задача 4. Використовуючи цикл з параметром, знайти суму всіх парних натуральних чисел з проміжку від 10 до 50.

5.Домашнє завдання

Задача 5. Знайти суму перших n членів послідовності Фібоначчі (n<50).