
3. 1.У бабусі Петрика в холодильнику лежить х сосисок, які вона планувала з’їсти на вечерю. Бабусина улюблена киця Мурка навчилася відкривати холодильник. За першу годину вона з’їла одну сосиску, за другу годину – дві, за третю – три і т.д. Визначте, через скільки годин бабуся залишиться лише з надією на смачну вечерю.
Приведемо програму:
program cat;
var x, n:integer;
begin
readln(x);
n:=0;
while x<>0 do begin
n:=n+1;
x:=x-n;
{writeln(n:2,' ',x:2);}
end;
writeln('n=',n);
readln;
end.
3.2.Сьогодні на уроці біології учні вивчили одноклітинні організми. З розповіді вчителя дізналися, що одноклітинна амеба кожні три години ділиться на три клітини. Учні захотіли визначити, скільки буде клітин через 3, 6, 9, …24 години, якщо в початковий момент була лише одна амеба. Допоможіть розрахувати кількість одноклітинних організмів у вказані моменти часу.
Приведемо програму:
program cell;
var t,n:integer;
begin
n:=1;t:=0;
while t<24 do begin
n:=3*n; t:=t+3;
writeln(t:2,' ',n:2);
end;
readln;
end.
3.3. Усі ми з дитинства полюбляємо та добре знаємо народні казки. Тому запропонуємо вам задачу про казкових героїв.
Богатир б’ється зі Змієм Гориничем, який на початку поєдинку має n голів. Першим ударом богатир відрубав Змію одну голову, а з кожним наступним ударом йому вдається відрубати на одну голову більше, ніж за попереднім ударом. Але ж коли Змій Горинич ще живий, у нього після кожного удару відростає три нові голови. За скільки ударів богатир зможе перемогти Змія?
Приведемо програму:
program serpent;
var t,n,x:integer;
begin
readln(n);
t:=1;x:=1;
while n<>0 do begin
n:=n-x; t:=t+1;
x:=x+1;
if n<>0 then n:=n+3;
writeln(t:3,' ',n:3);
end;
writeln('всього ударів=',t);
end.
З.4. У Петрика та Дусі вже є свій комп’ютер, тому Стасик теж вирішив придбати комп’ютер для себе. Для цього йому потрібно назбирати х гривень. Працюючи після уроків кур’єром, за перший місяць він зміг заробити y гривень. Але кожного місяця він працював все краще, тому заробляв на 10% більше, ніж у попередній місяць. Через скільки місяців здійсниться його мрія?
Приведемо програму:
program computer;
var x,y,s:real;n:integer;
begin
writeln('Скільки коштує комп’ютер?');
readln(x);
writeln('Скільки заробив Стасик за перший місяц?');
readln(y);
s:=0;n:=1;
while s<x do begin
s:=s+y;
writeln(n,' ',y:3:2,' ', s:3:2);
n:=n+1;
y:=1.1*y;
end;
writeln('Мрія Стасика здійсниться через ',n-1,’ місяців’);
readln;end.
3.5. У Дусі є х гривень для придбання будівельних матеріалів. Визначте, чи вистачить їх таксі для закупівлі цегли, вікон та дверей, якщо кожне вікно економить y цеглин, але його вартість становить с1 гривень, а двері, що коштують с2 гривень, економлять z цеглин. Кожна цеглина коштує с3 гривень. Зважте, що Дуська твердо вирішила мати в будинку 3 вікна, висота будиночка - 0.4 м, висота однієї цеглини-10 см. Форма будиночку приведена на малюнку.

Вхідні змінні:
TV- висота будинку в м
H - висота цеглини в см
V – поточна висота будинку
S – загальна кількість цеглин
CHAR – кількість цеглин в одному шарі
Х – всього гривень в Дусі
Y – цеглин , які економлять на вікнах
Z – цеглин, які економлять на дверях
С1- коштує 1 вікно
С2- коштують двері
С3- коштує одна цеглина
Складемо програму:
program house;
var S,CHAR,c1,c2,c3,x,y,z: integer; TV,V,H :real;
begin
writeln('Введіть висоту будинку в м');
readln(TV);
TV:=TV*100;
writeln('Введіть висоту цеглини в см');
readln(H);
CHAR:=1;S:=1;V:=H;
while V<TV do begin
CHAR:=CHAR+2;
S:=S+CHAR;
V:=V+H;
end;
writeln('Всього цеглин для будиночку=', s:3);
c1:=100;c2:=500;c3:=20;{с1-коштує 1 вікно;с2-коштують двері;с3-коштує 1 цеглина}
writeln('Скільки є грошей у Дусі?');
readln(x);
writeln('Скільки економимо цеглин одному вікні');
readln(y);
writeln('Скільки економимо цеглин на дверях');
readln(z);
s:=s-3*y-z; if x>=(3*c1+c2+s*c3) then writeln('грошей вистачає') else writeln('грошей мало');
readln; end.}
3. 6. Сьогодні Петрик повідомив, що графік відвідування басейну змінився. Петрик плаває в басейні раз на три дні, Тарасик – раз а чотири дні, а Стасик – лише один раз на п’ять днів. Останній раз вони зустрічались у понеділок. Через визначити через скільки днів друзі зустрінуться в басейні наступного разу та в який день тижня це станеться.
Алгоритм рішення: Необхідно визначити найменше спільне кратне двох натуральних чисел x та y. Позначимо його НСК(x,y). Але для цього попередньо треба знайти найбільший спільний дільник НСД(x,y).
НСК(x,y)= x*y/ НСД(x,y).
НСД(x,y) будемо шукати за алгоритмом Евкліда.
Х=12 Y=20 20>12,тоді
20-12=8 12>8, тоді
12-8 =4 8>4, тоді
8-4=4 4=4, тоді
НСД(12,20)=4.
Запишемо алгоритм
Програма НСД;
Змінна х,у:ціла;
Початок
Вивести (‘Введіть перше число=’);
Ввести(x);
Вивести (‘Введіть друге число=’);
Ввести(y);
Поки х<>у виконати
Якщо x>y
То x:=x-y
Інакше у:=y-x;
Вивести(‘НСД цих чисел дорівнює’,х);
Кінець
В програмі спочатку знайдемо НСК для двох чисел, а потім повторимо алгоритм знаходження НСК для цих двох чисел і третього, прийнявши НСК двох чисел як одне число.
Приведемо програму:
Program pool;
Var x,y,z,f,nsd,nsk:real;t:integer;
Begin
Writeln('Петрик плаває в басейні через=');
Readln(x);
Writeln('Тарасик плаває в басейні через=');
Readln(y);
Writeln('Стасик плаває в басейні через= ');
readln(f);
Z:=x*y;
While x<>y do begin
If x>y then x:=x-y else y:=y-x; end;
NSD:=x;
NSK:=z/NSD;
x:=f;y:=nsk;
Z:=x*y;
While x<>y do begin
If x>y then x:=x-y else y:=y-x; end;
NSD:=x;
NSK:=z/NSD;
Writeln('Друзі зустрінуться в басейні наступного разу через', NSK:5:0);
t:=round(nsk)+1;t:=t mod 7;
case t of
1:writeln('понеділок');
2:writeln('вівторок');
3:writeln('середа');
4:writeln('четвер');
5:writeln('пятниця');
6:writeln('субота');
7:writeln('неділя');end;end.