Цикли
Урок 1. Цикли. Види циклів.
Ц И К Л - це конструкція, яка організовує повторення дій.
Цикли з умовою використовуються тоді, коли кількість повторень дій заздалегідь невідома. Якщо кількість повторень циклу задана або її неважко передбачити, використовують цикл з параметром.
Цикл з параметром
Для значення параметра x на проміжку від a до b виконуй команди
Цикл з передумовою
поки є істинна умова, виконуй команди
о
while ( умова) do
begin
серія команд
end;
Цикл з післяумовою
повторюй виконання команд до тих пір, поки аж не стане істинною умова
repeat
серія команд
until (умова);
for x:=a to b do begin серія команд end;
(крок = +1)
for x:=b downto a do begin серія команд end;
(крок = -1)
Який результат виконання фрагментів програм ?
s:=0; for i:= 3 to 5 do
begin s:=s+i; k:=s*2; end;
writeln ( s/2);
s:=0; for i:= 3 to 5 do
s:=s+i; k:=s*2;
writeln ( k/2);
s:=5; a:=1;
while (a <18) do
begin s:=s+a; a:=a+3; end;
writeln (‘ s=’ , s);
Який результат виконання фрагментів програм ?
Скільки разів виконується тіло циклів?
1) for i:=-1 to 5 do f:=f*i;
2) for i:= 4 to 9 do d:=d- i;
3) a:=8; repeat s :=s div2 +3; a:=a+3; m:=m-a; until a>14;
Домашнє завдання.
s:=0; for i:= 4 to 7 do
begin s:=s+2*i; m:=m-2; end;
writeln ( s+2);
s:=1; for i:= 9 to 7 do
s:=s-i; k:=s*2;
writeln ( k/2);
s:=8; a:=2;
while (a <9) do
begin s:=s+2+a; a:=a+2; end;
writeln (‘ s=’ , s);
s:=14;
repeat s:=s + 2 until s>20;
writeln ( s);
Урок 2. Розв'язування задач на знаходження суми, добутку, кількості чисел із заданого числового проміжку з використанням циклів з параметром.
В циклах використовуються рекурентні формули.
Рекурентними називаються формули, у яких наступне значення обчислюється на основі попереднього.
Скільки разів виконується тіло циклів
1) for i:=-4 to 0 do f:=f*i;
2) for i:= 3 to 4 do d:=d- i;
3) a:=16; repeat s :=s div 3; a:=a-3; m:=m-a; until a<10;
Задача 1 . Знайти суму чисел з проміжку від 2000 до 354000 , які є кратні 9 і при діленні на 7 дають в остачі 2
program pr1;
var SUMA , a : longint;
BEGIN
SUMA:=0 ;
for a:=2000 to 354000 do
if (a mod 9 =0) and (a mod 7=2)
then SUMA := SUMA + a ;
writeln ( ‘Cума чисел = ’ , SUMA);
READLN END.
Задача 2. Знайти кількість парних чотирицифрових чисел, які не діляться на 7
program pr2;
var k , a : integer ;
BEGIN
k:=0 ;
for a:=1000 to 9999 do
if (a mod 2 =0) and (a mod 7<>0)
then k:=k+1 ;
writeln ( ‘Кількість = ’ , k) ;
READLN END.
1. Протабулюйте функцію у=2ctg2x-4(x+3)/(x-1) а проміжку від 2 до 15 з кроком 0,285.
2. Протабулюйте функцію у=5cos5x+5|ctg3x-4| а проміжку від 44 до 57 з кроком 0,75. Знайдіть середнє арифметичне значення функції на цьому проміжку.
3. Знайти значення суми всіх членів числового ряду 5/21+10/41+15/61+...+500/2001
Урок 3. Розв'язування задач з використання циклів з умовою та циклів із параметром.
Урок 3. Розв'язування задач табулювання функцій. Використання циклів з умовою.
Табулювання функції – це виведення на екран таблиці, у якій в одному стовпчику будуть роздруковані всі значення аргументу х, а в другому – всі значення функції y.
Задача 4.
Протабулюйте функцію y= sin2x на проміжку від 12 до 40 з кроком 0,94.
program pr3;
var x, y : real ;
BEGIN
x:=12 ;
repeat
y:= sin(2*x);
writeln ( ‘x=’, x:15:5 , ’ y=’ , y:17:8);
x:=x+ 0.94;
until (x> 40 );
READLN END.
Задача 5. Протабулюйте функцію у = |2 cos x | - 1 на проміжку від 10 до 11 з кроком 0,2 i знайдіть середнє арифметичне значень функції , які менші за 1,5, найбільше і найменше значення функції. .
program pr3_1;
var x, y, sa, s,min, max : real; n : integer;
BEGIN
x:=10; s:=0; n:=0; min:=999999; max:=-9999999;
repeat
y:=abs(2*cos(x)) - 1;
writeln ( ‘x=’, x:15:5 , ’ y=’ , y:17:8);
if (y<1.5) then begin s :=s+y; n:=n+1; end;
if (y<min) then min:=y;
if (y>max) then max:=y;
x:=x+0.2;
until (x>11);
if n <>0 then sa:=s/n;
writeln('sa=',sa:15:8);
writeln('min=',min:15:8);
writeln('max=',max:15:8);
READLN END.
Задача 6. Знайти значення суми всіх членів числового ряду 1/7+3/13+5/19+...+1001/3007.
program pr5;
var s : real; x : integer ;
BEGIN
s:=0; x:= 1 ;
repeat
s := s + x / ( 3*x + 4 ) ; x := x + 2;
until ( x> 1001) ;
writeln ( ‘ дріб = ‘ , s);
READLN END.
Самостійна робота
1. Протабулюйте функцію у=2cos9x-4|x+0,2| а проміжку від 4 до 7 з кроком 0,35.
2. Протабулюйте функцію у=2sin2x+|tg3x+2| а проміжку від 14 до 17 з кроком 0,45. Знайдіть найбільше значення функції на цьому проміжку.
3. Знайти значення суми всіх членів числового ряду 1/2+4/11+7/20+...+1000/2999
Домашнє завдання.
1. Знайдіть суму всіх чотирицифрових чисел, кратних 25.
2. Підрахуйте кількість парних чисел з проміжку від 200 до 7089, які при діленні на 5 дають в остачі 1.
3. Знайдіть всі трицифрові числа Армстронга (саме число дорівнює сумі кубів його цифр).
Для роботи з окремими цифрами числа вигідно використати вкладені цикли.
Задача 3. Знайти чотирицифрове число, яке на 1120 більше від суми його цифр.
program pr6;
var a,b,c,d, abcd, s: integer ;
BEGIN
for a:=1 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do
for d:=0 to 9 do
begin
abcd:= a*1000 + b*100 + c*10 + d;
s:=a+b+c+d;
if (abcd - s = 1120) then writeln(abcd);
end;
READLN END.
Самостійна робота
1. Знайдіть добуток двоцифрових чисел, кратних 15.
2. Підрахуйте кількість непарних чисел з проміжку від 20 до 789, які не діляться на 5.
3. Знайдіть всі п'ятицифрові числа-паліндроми (зліва направо і справа наліво вони читаються одинаково, наприклад 34543), у яких сума цифр кратна 7.
Домашнє завдання.
Задача 7. Знайти значення функції
y=sin(cos(cos(cos(cos(cos(9x)))))).
program pr6;
var x,y : real ; i : integer;
BEGIN
writeln(‘x=’); readln (x);
y := 9*x ;
for i := 1 to 5 do y := cos(y);
y := sin(y);
writeln ( ‘ y= ’ , y : 15 : 10) ;
READLN END.
Додаткові завдання.
Рівень А
1. Серед трицифрових чисел знайти суму всіх, які кратні 11 та при діленні на 8 дають в остачі 5.
2. Підрахуйте добуток двоцифрових чисел, кратних 7 і менших, ніж 30.
3. Знайдіть кількість п’ятицифрових чисел, які кратні 29, парні і при діленні на 5 дають в остачі 2.
4. Серед чисел з діапазону від 15 до 456 знайти суму всіх, які кратні 17 та при діленні на 4 дають в остачі 2.
5. Підрахуйте добуток цілих чисел з проміжку [2..99], парних і кратних 8.
6. Знайдіть кількість п’ятицифрових чисел, які кратні 44, непарні і при діленні на 5 дають в остачі 3.
7. Знайдіть добуток чисел, кратних 6 з проміжку від 20 до 100 .
8. Знайдіть кількість трицифрових чисел , які при діленні на 5 дають в остачі 4 , а при діленні на 6 дають в остачі 5.
9. Знайдіть суму парних чисел з проміжку від 25 до 300
10. Знайдіть кількість парних семифрових чисел.
Рівень Б
Рівень В
1. Дано натуральне число n (п>9). Чи є воно «щасливим»? (У його записі сума перших цифр дорівнює сумі останніх.)
2. Серед шестицифрових чисел знайдіть такі, у яких сума парних цифр дорівнює сумі непарних.
3. Серед трицифрових чисел знайдіть такі, сума цифр яких дорівнює їх добутку .
4. Серед чотирицифрових чисел знайдіть кількість паліндромів (тобто таких , які зліва направо і справа наліво читаються одинаково. Наприклад 1221 , 4554 ,.... )
5. До деякого двоцифрового числа зліва і справа дописали по 1. Дістали чотирицифрове число , яке у 23 рази більше за початкове. Знайдіть це двоцифрове число.
6. Якщо між другою і третьою цифрами трицифрового числа вставити таку ж цифру ,як і друга, то вийде чотирицифрове число , яке у 155 разів більше за суму другої та третьої цифр чотирицифрового числа. Знайдіть це число.
7. Числа Фібоначчі будуються так: перше і друге рівні 1, кожне наступне дорівнює сумі двох попередніх: 1,1,2,3,5,8,13,21... Знайти число, яке знаходиться у послідовності на k-ому місці. (1≤k<10000).
8. Розгадайте ребуси: а) МУХА:ХА=УХА б)
9. У зв’язку із всесвітньою кризою 20 банків відмовилися видавати депозити. Із них банкрутами об’явили ті банки, в яких заборгованість становила більше, ніж 35 млн. грн. Знаючи суму заборгованості кожного з цих банків, з’ясуйте:
a. скільки банків-банкрутів;
b. яка середня заборгованість перед населенням у цих банках;
c. знайдіть номер банку із найбільшою та найменшою заборгованістю;
d. підрахуйте загальну суму до виплат у найкращих банках, тих банках, де вона є меншою від 5 тис. грн.
ПЕРЕГЛЯД РЕЗУЛЬТАТІВ ТЕСТУВАННЯ