русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Складемо програми на цикл повторення з передумовою


Дата додавання: 2014-11-27; переглядів: 1087.


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.


<== попередня лекція | наступна лекція ==>
Задачі на цикл повторення з передумовою | Задачі на цикл повторення з параметром


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн