Вкладені
цикли мовою
Paѕcal
Часто
буває так, що при повтореннях змінюється не одна величина, а дві (чи навіть
більше). І при кожному значенні однієї величини інша величина «пробігає» усі
свої значення.
У
деяких випадках важливо повторити підзадачу кілька разів усередині більш
загальної задачі. Один зі способів написання такої програми - включити цикл у
набір інструкцій, що повторюються всередині іншого циклу. Така структура, що
складається з циклу в циклі, називається вкладеними циклами.
Вкладення
циклів використовується зокрема при розв'язуванні таких задач:
·
задачі на перебір варіантів;
·
табулювання функцій;
·
обробка двовимірних масивів.
Якщо
в програмі використовуються вкладені цикли, то для підвищення наочності
програмного коду прийнято кожний наступний рівень вкладання зміщувати відносно
попереднього.
Правило
вкладення циклів: внутрішній цикл цілком укладається в тіло зовнішнього циклу.
Приклад № 1. Обчислити значення змінної y=3k+ n
при всіх значеннях змінних N=1, 2, 3, 4 і K=3, 8, 13, 18, 23.
Розв′язання.
Якщо
перебирати всі значення N і K, ми повинні отримати 4*5=20 значень змінної y =f(n,
k)= 3k
+ n.
Скласти
програму можна в такий спосіб: для кожного значення N перебрати всі значення К
від 3 до 23 з кроком 5, тобто N використати як параметр
зовнішнього циклу, К - як параметр внутрішнього циклу.
Текст
програми:
Program
priklad_1;
var
n, k, y:integer;
begin
for
n:=1 to 3 do begin
k:=2;
while
k<=23 do begin
y:=3*k+n;
writeln(' n= ', n:3, ' k= ', k:3, ' 3k + n = ' , y:3);
k:=k+5;
end; end; end.
Параметр
N змінюється з кроком 1, тому зовнішній цикл організований з використанням
оператора For; параметр К змінюється з кроком 5, тому внутрішній цикл є циклом
While.
Вкладені цикли мовою Paѕcal
Приклад № 2.
Старовинна задача. Скільки можна купити биків, корів та телят, якщо вартість
одного бика - 10 тис. грн, однієї корови - 5 тис. грн, а за одного теля платять 0,5 тис. грн.
І якщо на 100 тис. рублів потрібно купити 100 голів скоту.
Розв'язування:
Позначимо
через b - кількість биків; k - кількість корів; t - кількість телят. Після
цього можна записати два рівняння:
10b + 5k + 0.5t = 100 і b + k + t = 100
На
100 рублів можна купити:
·
не більше 10 биків, тобто
0<=b<=10;
·
не більше 20 корів, тобто
0<=k<=20;
·
не більше 200 телят, тобто
0<=t<=200.
Отже
отримуємо текст програми:
Program
Priklad_2;
var
b, k, t:integer;
begin
for
b:=0 to 10 do
for
k:=0 to 20 do
for
t:=0 to 200 do
if
(10*b + 5*k
+ 0.5*t = 100) and (b + k + t = 100) then
writeln('Биків
- ', b, '; корів - ', k,'; телят
- ',t);
end.
Завдання для самостійної роботи.
1.1.
Обчислити значення змінної y=5k-4n при всіх значеннях змінних N=1, 2, 3,
4 і K=2, 8, 14, 20, 26.
1.2.
Скільки може бабуся купити на пенсію 1280 грн індюків , курей та гусей, якщо вартість одного індюка - 75 грн,
однієї курки - 55 грн, а за одного гуся платять 65 гривень. І якщо їй потрібно купити лишe 20 голів.
1.3.
Обчислити значення змінної y=7k-3n при всіх значеннях змінних N=1, 2, 3,
4 і K=1, 8, 15, 22, 29.
1.4.
Скільки може
бабуся купити на пенсію 1580 грн індюків
, курей та гусей, якщо вартість одного
індюка - 75 грн, однієї курки - 55 грн, а за одного гуся платять 65 гривень. І
якщо їй
потрібно купити лишe 20 голів.
Немає коментарів:
Дописати коментар