asyan.org
добавить свой файл
  1 2 3 ... 17 18

Завдання для самостійної роботи


  1. За даними сторонам прямокутника обчислити його периметр (P), площа (S) і довжину діагоналей


2. Дано дійсне число, знайдіть цілу частину цього числа і округлите його до найближчого цілого.
3. Знайти площу круга (S) і довжину кола (L) заданого радіуса.
4. Скласти програму обчислення площі довільного трикутника, користуючись будь-якими з відомих формул (задавши необхідні вихідні дані):
a, h, де а - основа трикутника, H - висота, проведена до цієї основии;
  a,b,c, де а,b і c - сторони трикутника;
  a,b,С, де a,b - сторони трикутника, ∟ С - кут між ними.
5. Обчислити раціональним способом, тобто за мінімальну кількість операцій:

а) у = x5, (тобто за три операції в = ​​(x2) 2x);

б) у = x6, (тобто за три операції в = ​​(x2x) 2);

в) у = x8, (тобто за три операції у = ((x2) 2) 2).
6. Обчислити об'єм (V) і площа (S) повної поверхні прямокутного паралелепіпеда по довжинах його ребер а, в, с.
7. По даній висоті Н і діаметру основи D прямого кругового циліндри обчислити його площу повної поверхні (S) і об'єм (V).
8. За відомим радіусу обчисліть об'єм і площу поверхні кулі.
9. Складіть програму обчислення довжини висоти трикутника, у якого довжина сторін дорівнює a,b,c.
10 Скласти програму обчислення тиску стовпа рідини, густина якої ρ, висотою Н на дно посудини, користуючись формулою P = gρH.
11. Складіть програму обчислення виштовхувальної сили, що діє на тіло об'ємом V, наполовину занурене в рідину густиною ρ, користуючись формулою F = gρV.
12. Складіть програму обчислення потенційної енергії тіла масою m на висоті h відносно Землі, користуючись формулою Eρ = gmh.
13. Складіть програму обчислення механічної роботи, коли тіло рівномірно рухається під дією прикладеної до нього сили, користуючись формулою A= FS, де F - прикладена сила, а S - пройдений шлях.
14. Введіть 4-значне число. Перетворити його в 2-значне, відкинувши першу і останню цифру.
15. З клавіатури задається число К. Викинути із запису До цифру, що позначає сотні. Вивести отримане число на екран.
16. Складіть програму обчислення довжини медіан треугольника, у якого довжина сторін дорівнює a, b, c.


Алгоритми з розгалуженням



Лінійні алгоритми, це алгоритми, в яких всі етапи рішення задачі виконуються строго послідовно.

Розгалуженим називають такий алгоритм, в якому вибирається один з декількох можливих варіантів обчислювального процесу.

Кожен подібний шлях називається гілкою алгоритму.
Ознакою розгалуження алгоритму є наявність операцій перевірки умови.

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

Простою умовою називається вираз, що складається з двох арифметичних виразів або двох текстових величин, пов'язаних одним із знаків:

   < - Менше, ніж ...

   > - Більше, ніж ...

   <= - Менше, ніж ... або дорівнює

   >= - Більше, ніж ... або дорівнює

   <> - Не дорівнює

   = - Дорівнює.

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

Змінна, яка може приймати одне з двох значень: True (правда) або False (брехня), називається булевой (логічного) змінної.

Складеною умовою називається вираз, в якому використовуються логічні операції and, or, not.

Логічна операція and дає результат true тоді і тільки тоді, коли обидва операнди мають значення true.

Логічна операція or дає результат true тоді, коли хоча б один операнд має значення true.

Логічна операція not завжди дає результат, протилежний значенню її операнда.

Логічну операцію and ще називають логічним множенням, а логічну операцію or - логічним додаванням.

Кожна програма повинна здійснювати контроль за допустимостью величин, що беруть участь в обчисленнях. Тут ми стикаємося з розгалуженням нашого алгоритму в залежності від умови. Для реалізації таких умовних переходів у мові Паскаль використовують оператори If і Else, а також оператор безумовного переходу Goto.

У загальному виглядіу повна форма умовного оператора має вигляд:

if <логичний вираз>
  then
    <оператор 1>
  else
    <оператор 2>

Умовний оператор працює за наступним алгоритмом:

Спочатку обчислюється значення логічного виразу, розташованого за службовим словом IF. Якщо його результат істина, виконується <оператор 1>, розташований після слова THEN, а дії після ELSE пропускаються; якщо результат невірний, то, навпаки, дії після слова THEN пропускаються, а після ELSE виконується <оператор 2>. Якщо в якості оператора повинна виконатися серія операторів, то вони беруться в операторні дужки begin-End. Конструкція Begin ... End називається складеним оператором.

if <логічний вираз>
  then
    begin
      оператор 1;
      оператор 2;
      ...
    end
  else
    begin
      оператор 1;
      оператор 2;
      ...
    end;

Більшість операторів в програмах на мові Паскаль закінчуються крапкою з комою, але після деяких операторів крапка з комою не ставиться.

Загальні правила вживання крапки з комою:

1. Кожний опис змінної і визначення константи закінчуються крапкою з комою.

2. Кожен оператор у тілі програми завершується крапкою з комою, якщо відразу за ним не йдуть зарезервовані слова End, Else, Until.

3. Після певних зарезервованих слів, таких, як Then, Else, Var, Const, Begin, ніколи не ставиться крапка з комою.
Неповна форма умовного оператора має наступний вигляд:
if <логічний вираз>
  then
    <оператор>
Якщо вираз, розташований за службовим словом IF. в результаті дає істину, виконуються дії після слова THEN, в іншому випадку ці дії пропускаються.
Часто доводиться розглядати не два, а більшу кількість варіантів. Це можна реалізувати, використовуючи декілька умовних операторів. Коли оператор if з'являється всередині іншого оператора if, вони вважаються вкладеними.

Не рекомендується використовувати більше одного-двох рівнів вкладення if. За другим рівнем вкладення стає важко відновити послідовність перевірки умов кожним умовним оператором.

Мова Паскаль надає для цих цілей іншу керуючу структуру (оператор вибору case), яка дозволяє побудувати розгалуження по ряду умов у формі, більш зручній для читання програм.

Оператор вибору дозволяє вибрати одне з декількох можливих продовжень програми. Параметром, за яким здійснюється вибір, служить так званий ключ вибору (або селектор) - вираз будь-якого типу (крім типів REAL і STRING).
Загальна форма запису наступна:
case селектор of

значення1 : оператор (группа операторів);

значення2 : оператор (группа операторів);

. . . . . . . . . . . . . . . . . . . . . .

значенняN : оператор (группа операторів)

else оператор (группа операторів);

end;
Оператор вибору працює таким чином.

Спочатку обчислюється значення виразу, що стоїть після зарезервованого слова case, а потім виконується оператор (або складений оператор), відповідний результату обчислення виразу. Може статися, що в списку вибору не виявиться константи рівній обчисленого значення ключа. У цьому випадку управління передається оператору, що стоїть за словом ELSE.

Якщо один оператор виконується при декількох значеннях, то їх можна перерахувати через кому.

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

  goto мітка;

Після опису мітки її можна використовувати в програмі. Мітка записується перед оператором і відокремлюється від нього двокрапкою. А оператор goto повинен бути розміщений в тому місці програми, звідки виконується перехід. Оператор goto передає управління на оператор із заданою міткою. Оператор goto можна вставляти в будь-яке місце програми.

В простих програмах цей оператор не викликає труднощів. При написанні складних і об'ємних програм можуть бути труднощі, тому програмісти намагаються не використовувати цей оператор. Застосування оператора безумовного переходу – це поганий стиль програмування.

Задача 1. Розв’язати квадратне рівняння.
Program kv_rivnyannya;

Uses CRT

Var

a,b,c:real;

x1,x2:real;

D:real;

Begin

clrscr;

write('a=>');

readln(a);

write('b=>');

readln(b);

write('c=>');

readln(c);

D:=sqr(b)-4*a*c;

if D>=0 then

Begin

X1:=(-b+sqrt(D))/(2*a);

X2:=(-b-sqrt(D))/(2*a);

writeln('x1=>',x1:4:2);

writeln('x2=>',x2:4:2);

end

else

writeln(‘Nema koreniv y rivnyannya’

readln;

End.

Задача 2. Визначити номер квадранта, в якому розміщено точка М(х,у).
Program koordunatu;

Var

x,y:real;

Begin

Write( 'x=>' );

readln(x);

Write( 'y=>' );

readln(y);

if (x=0) and (y=0) then

writeln('M(0,0)')

else

if x=0 then

writeln('OY')

else

if y=0 then

writeln('OX');

if (x>0) and (y>0) then writeln('І');

if (x<0) and (y>0) then writeln('II');

if (x<0) and (y<0) then writeln('III');

if (x>0) and (y<0) then writeln('IV')

End.

Задача 3. Дано два дійсних числа Х і У. Менше з них замінити їх напівсумою, а більше – їх подвоєним добутком. Результат вивести на екран монітора.
Program porivnyannya;

Uses CRT

Var

x,y:real;

Begin

clrscr;

write('x=>');

readln(x);

write('y=>');

readln(y);

if x>y then

Begin

x:=2*x*y;

y:=(x+y)/2;

end

else

Begin

y:=2*x*y;

x:=(x+y)/2;

end;

writeln(‘x=’,x:4:2);

writeln(‘y=’,y:4:2);

readln;

End.

Задача 4. Дано три дійсних числа. Піднести до квадрату лише додатні числа. Результат вивести на екран монітора.
Program dodat_chusla;

Uses crt;

Var

a,b,c:real;

Begin

clrscr;

write('a=>');

readln(a);

write('b=>');

readln(b);

write('c=>');

readln(c);

if a>0 then a:=sqr(a);

if b>0 then b:=sqr(b);

if c>0 then c:=sqr(c);

writeln('a=',a:4:2);

writeln('b=',b:4:2);

writeln('c=',c:4:2);

readln;

End.

Задача 5. Залежно від розміру суми, розмір податку з неї розраховується за такою схемою: якщо сума не перевищує деяку величину а , то податок не вираховується, якщо сума більша за а , але не перевищує b ,то податок становить 10%, якщо сума більша за b , але не перевищує с , то податок становить 25% і якщо сума більша за с , то податок становить 50%. Визначити, який податок буде нарахований із суми розміром S.
Program podatok;
Var
a, b, c s,p: real;
Begin
writeln(‘Введить числа a, b, c’);
readln(a,b,c);

writeln(‘Введите числа суму’);
readln(s);
if (s<=a) then p:=0

if (s>a) and (s<=b) then p:=s*0.1;

if (s>b) and (s<=c) then p:=s*0.25;

if (s>c) then p:=s*0.5;

writeln(‘p=’,p:5:2);
readln;
End.

Задача 6. Дано цілі числа a, b, c. Якщо a ≤ b ≤ c, то всі числа замінити їх квадратами, якщо a> b> c, то кожне число замінити найбільшим з них, в іншому разі змінити знак кожного числа.

Program porivnyannya;
Var
a, b, c : integer;
Begin
writeln(‘Введить числа a, b, c’);
readln(a,b,c);
if (a<=b) and (b<=c) then
begin
a:=sqr(a);
b:=sqr(b);
c:=sqr(c);
end
else
if (a>b) and (b>c) then
begin
b:=a;
c:=a;
end
else
begin
a:=-a;
b:=-b;
c:=-c;
end
writeln(a,b,c);
readln;
End.

Задача 7. Дано три різні числа, найти среднє з них. Среднім називається число, яке більше найменшого з даних чисел, але меньше найбільшого.

Program seredne;

Var

a, b, c, ser: integer;

Begin

writeln(‘Введить числа a, b, c');

readln(a,b,c);

if ((a>b) and (b>c))or((a
if ((b>a) and (a>c))or((b
if ((a>c) and (c>b))or((c>a)and(c
writeln('seredne=',ser);

readln;

End.

Задача 8. Визначити, чи потрапляє точка "A" з координатами (х, у) всередину кола радіуса R. Центр кола співпадає з початком координат.

Program kolo;
Var
r,x,y : integer;
Begin
writeln(‘Введить числа r,x,y’);
readln(r,x,y);
if r>sqrt(sqr(x)+sqr(y)) then
writeln(‘Tochka A popadae v sereduny kola’)

Else

if r=sqrt(sqr(x)+sqr(y)) then

writeln(‘Tochka A znachodutsya na koli’)

Else

if r
writeln(‘Tochka A znachodutsya poza kolom’);

readln;
End.

Задача 9. Два квадратних рівняння задано своїми коефіцієнтами a1, b1, c1 та a2, b2, c2, де a1<>0 і a2<>0. Визначити:

  1. Чи мають ці рівняння одинакові пари коренів;

  2. Чи збігаються відношення між меншими і більшими коренями обох рівнянь;

  3. Чи можуть бути корені обох рівнянь сторонами деякого прямокутника.


Program kv_rivnyannya1;

Uses Crt;

Var

a1,b1,c1,a2,b2,c2:real;

x11,x12,x21,x22:real;

D1,D2:real;

Begin

clrscr;

write('a1=>');

readln(a1);

write('b1=>');

readln(b1);

write('c1=>');

readln(c1);

write('a2=>');

readln(a2);

write('b2=>');

readln(b2);

write('c2=>');

readln(c2);

D1:=sqr(b1)-4*a1*c1;

if D1>=0 then

Begin

X11:=(-b1+sqrt(D1))/(2*a1);

X12:=(-b1-sqrt(D1))/(2*a1);

end

else

writeln('Nema koreniv y pershogo rivnyannya');

D2:=sqr(b1)-4*a1*c1;

if D2>=0 then

Begin

X21:=(-b2+sqrt(D2))/(2*a2);

X22:=(-b1-sqrt(D2))/(2*a2);

end

else

writeln('Nema koreniv y drygogo rivnyannya');

if ((x11=x21)and(x12=x22))or((x11=x22)and(x12=x21)) then

writeln('Rivnyannya majt odunakovi paru koreniv');

if x11/x21=x12/x22 then

writeln('Vidnoshennya migh menshumu І bilshumu korenyamu obox rivnyann

zbigajtsya');

if ((x11>0)and(x12>0)and(x21>0)and(x22>0)) and((x11=x21)and(x12=x22)) or((x11=x22)and(x12=x21)) then

writeln('Koreni rivnyann moghyt bytu storonamu pryamokytnuka');

readln;

End.

Задача 10. Дано дійсні додатні числа a, b, c, х, у. З'ясувати, чи пройде цеглина з ребрами a, b, c в прямокутний отвір зі сторонами х, у. Просовувати цеглу в отвір дозволяється тільки так, щоб кожна з його ребер було паралельно або перпендикулярно кожної зі сторін отвору.
Program kv_rivnyannya1;

Uses Crt;

Var

a,b,c,x,y:real;

Begin

clrscr;

write('a=>');

readln(a);

write('b=>');

readln(b);

write('c=>');

readln(c);

write('x=>');

readln(x);

write('y=>');

readln(y);

if ((a<=x)and(b<=y))or((a<=y)and(b<=x))or

((a<=x)and(c<=y))or((a<=y)and(c<=x))or((c<=x)and(b<=y))or((c<=y)and(b<=x)) then

writeln('Proshtovchnytu zegluny moghna')

else

writeln('Proshtovchnytu zegluny ne moghna');

readln;

End.

Задача 11. Послуги стаціонарного телефонного зв’язку сплачують за такими правилом. Кожного місяця, сплачуючи абонентну плату в розмірі с1 грн., користувач отримує х безоплатних хвилин. Якщо час розмов більший за безоплатний (х хв.), але не перевищує у хвилин, то його оплачують з розрахунку с2 грн. за 1 хв розмови. Якщо ж абонент протягом місяця користувався телефонним зв’язком понад у хв, він сплачуватиме свої розмови з розрахунку с3 грн. за кожну хвилину розмови. Необхідно розрахувати, яку суму має сплатити абонент за користування стаціонарним телефоном.
Program telefon;

Uses Crt;

Var

c1,c2,c3,x,y,s,t:real;

Begin

clrscr;

write('c1=>');

readln(c1);

write('c2=>');

readln(c2);

write('c3=>');

readln(c3);

write('x=>');

readln(x);

write('y=>');

readln(y);

write('t=>');

readln(t);

if t
if (t>x)and(t
if t>y then s:=c1+t*c3;

writeln('S=',s:4:2);

readln;

End.

Задача 12. Дано двозначне число n. Необхідно створити інтерфейс та визначити:

  1. Чи є сума його цифр двозначним числом;

  2. Чи кількість одиниць цього числа більша за кількість його десятків.


Program dv_chuslo;

Uses Crt;

Var

n,a,b,s:integer;

Begin

TextBackGround(7);

Clrscr;

window(2,2,78,8);

TextBackGround(1);

Clrscr;

TextColor(14);

GoToXY(27,2);

Writeln('Yvedit dvoznachne chuslo');

GoToXY(37,5);

Write('n=');

readln(n);

window(3,9,79,9);

TextBackGround(0);

Clrscr;

window(79,3,79,8);

TextBackGround(0);

Clrscr;

window(2,11,78,15);

TextBackGround(4);

Clrscr;

a:=n div 10;

b:=n mod 10;

s:=a+b;

TextColor(15);

GoToXY(23,3);

Write('Syma zufr chusla dorivnje: ',s);

TextColor(15);

GoToXY(23,5);

if (s div 10)<>0 then Writeln('Syma zufr - dvoznachne chuslo')

else Writeln('Syma zufr - ne dvoznachne chuslo');

window(3,16,79,16);

TextBackGround(0);

Clrscr;

window(79,12,79,15);

TextBackGround(0);

Clrscr;

window(2,18,78,23);

TextBackGround(4);

Clrscr;

TextColor(15);

GoToXY(18,4);

if b>a then Writeln('Kilkist odunuz chusla bilsha za kilkist desyatkiv')

else Writeln('Kilkist odunuz chusla mensha za kilkist desyatkiv');

window(3,24,79,24);

TextBackGround(0);

Clrscr;

window(79,18,79,24);

TextBackGround(0);

Clrscr;

readln;

End.

Задача 13. Необхідно створити інтерфейс та визначити, чи є введене користувачем тризначне число паліндромом.
Program chuslo_palidr;

Uses Crt;

Var

x,y,a,b,c: integer;

Begin

TextBackGround(7);

Clrscr;

window(2,2,78,13);

TextBackGround(1);

Clrscr;

TextColor(14);

GoToXY(27,5);

Write ('Yvedit chuslo=>');

ReadLn(x);

a:=x div 100;

b:=(x mod 100) div 10;

c:=(x mod 10);

y:=c*100+b*10+a;

window(3,14,79,14);

TextBackGround(0);

Clrscr;

window(79,3,79,14);

TextBackGround(0);

Clrscr;

window(2,16,78,23);

TextBackGround(4);

Clrscr;

TextColor(15);

GoToXY(26,4);

if x=y then Writeln ('yes - chuslo palidrom' )

Else Writeln ('No - chuslo ne palidromu');

window(3,24,79,24);

TextBackGround(0);

Clrscr;

window(79,17,79,24);

TextBackGround(0);

Clrscr;

ReadLn;

End.

Задача 14. Розмір наданної знижки залежить від вартості придбаних у магазині товарів. Якщо загальна вартість покупки менша 201 грн., знижка не надають. Якщо покупець придбав товари на суму від 201 грн. до 501 грн., то він отримає знижку х % . Якщо ж загальна вартість покупки перевищує 501 грн., його знижка дорівнюватиме у %.
Program znughka;

Uses Crt;

Var

x,y: integer;

s,s1,s2: real;

Begin

TextBackGround(7);

Clrscr;

window(2,2,39,23);

TextBackGround(3);

Clrscr;

TextColor(14);

GoToXY(2,4);

Writeln ('Vidsotok znughku, yaksco pokypka vid');

writeln;

Write(' 201 do 501 grn. ==>');

read(x);

writeln;

writeln;

Writeln (' Vidsotok znughku, yaksco pokypka vid');

writeln;

Write(' 501 grn. ==>');

read(y);

writeln;

writeln;

writeln;

Writeln;

Write(' Zagalna vartist pokypku ==> ');

readln(s);

window(3,24,40,24);

TextBackGround(0);

Clrscr;

window(40,3,40,24);

TextBackGround(0);

Clrscr;

window(42,2,78,23);

TextBackGround(4);

Clrscr;

TextColor(15);

GoToXY(2,4);

Write('Vam nadano znughky');

if s<201 then

begin

Writeln(' ',0,'%');

s1:=s*0;

end

else

if s<501 then

begin

Writeln(' ',x,'%');

s1:=s*x/100;

end

else

begin

Writeln(' ',y,'%');

s1:=s*y/100;

end;

writeln;

writeln;

writeln;

Writeln (' Syma znughku');

writeln;

Writeln(' stanovut ',s1:4:2,' grn. ');

writeln;

writeln;

writeln;

writeln;

Writeln;

s2:=s-s1;

Writeln (' Splatutu do kasu ', s2:4:2,'grn.');

window(43,24,79,24);

TextBackGround(0);

Clrscr;

window(79,3,79,24);

TextBackGround(0);

Clrscr;

ReadLn;

End.

Задача 15. Необхідно визначити вартість міжміської телефонної розмови за її тривалістю у хвилинах та кодом міста абонента. Вартість хвилини розмови залежить від відстані між містами, її визначають за введеним кодом. Розробити зручний інтерфейс програми.
Program vart_telefon;

Uses Crt;

Var

k,tr: integer;

vart: real;

Begin

TextBackGround(7);

Clrscr;

window(2,2,40,24);

TextBackGround(3);

Clrscr;

TextColor(14);

GoToXY(2,4);

Writeln (' Misto Kod');

writeln;

Writeln('--------------------------------------');

writeln;

writeln(' Brovaru 4494 0.4');

Writeln;

writeln(' Binnuzya 432 0.8');

Writeln;

writeln(' Dnipropetrovsk 56 1.2');

Writeln;

writeln(' Lviv 322 1.0');

Writeln;

writeln(' Ternopil 352 1.0');

Writeln;

writeln(' Chernivzi 372 1.2');

Writeln;

writeln(' Charkiv 57 1.0');

Writeln;

Writeln('--------------------------------------');

writeln;

writeln(' Vartist chvulunu, grn.');

window(42,2,78,12);

TextBackGround(2);

Clrscr;

TextColor(14);

GoToXY(4,3);

Write(' Yvedit kod mista => ');

Readln(k);

writeln;

Writeln;

Writeln;

Writeln(' Yvedit truvalist');

Writeln;

Write(' rozmovu y chvulunax => ');

Readln(tr);

window(42,14,78,24);

TextBackGround(4);

Clrscr;

TextColor(15);

GoToXY(4,4);

Case k of

4494: vart:=0.4*tr;

432: vart:=0.8*tr;

57,322,352: vart:=tr;

56,372: vart:=1.2*tr;

Else

begin

writeln('Informaziya pro vartist rozmovu ');

writeln;

writeln(' z zum mistom nevidoma');

writeln;

end;

end;

if vart<>0 then

begin

Writeln(' Vartist rozmovu ');

writeln;

writeln(' stanovut ',vart:4:2,' grn.');

end;

ReadLn;

End.

Задача 16. За введеним номером дня тижня виводити його назву. Якщо цей день робочий, то на екран необхідно виводити розклад уроків на цей день.
Program rozklad_yrokiv;

Uses Crt;

Label a,b,c,d,e,f,g,h;

Var

k: integer;

Begin

Clrscr;

TextBackGround(7);

Clrscr;

window(2,2,79,25);

TextBackGround(2);

Clrscr;

TextColor(14);

GoToXY(7,4);

write('Yvedit nomer dnya tughdnya => ');

readln(k);

writeln;

Writeln (' Rozklad yrokiv');

writeln;

Writeln('--------------------------------------');

writeln;

Case k of

1: goto a;

2: goto b;

3: goto c;

4: goto d;

5: goto e;

6: goto f;

7: goto g;

Else

writeln('Ze ne den tughdnya');

end;

a: writeln(' Ponedilok');

Writeln;

Writeln(' 1. Chimiya');

Writeln;

Writeln(' 2. Chimiya');

Writeln;

Writeln(' 3. Algebraa');

Writeln;

Writeln(' 4. Algebra');

Writeln;

Writeln(' 5. Fizkyltyra');

Writeln;

Writeln(' 6. Informatuka');

Writeln;

Writeln(' 7. Informatuka');

Writeln;

goto h;

b: writeln(' Vivtorok');

Writeln;

Writeln(' 1. Chimiya');

Writeln;

Writeln(' 2. Chimiya');

Writeln;

Writeln(' 3. Algebraa');

Writeln;

Writeln(' 4. Algebra');

Writeln;

Writeln(' 5. Fizkyltyra');

Writeln;

Writeln(' 6. Informatuka');

Writeln;

Writeln(' 7. Informatuka');

Writeln;

goto h;

c: writeln(' Sereda');

Writeln;

Writeln(' 1. Chimiya');

Writeln;

Writeln(' 2. Chimiya');

Writeln;

Writeln(' 3. Algebraa');

Writeln;

Writeln(' 4. Algebra');

Writeln;

Writeln(' 5. Fizkyltyra');

Writeln;

Writeln(' 6. Informatuka');

Writeln;

Writeln(' 7. Informatuka');

Writeln;

goto h;

d: writeln(' Chetver');

Writeln;

Writeln(' 1. Chimiya');

Writeln;

Writeln(' 2. Chimiya');

Writeln;

Writeln(' 3. Algebraa');

Writeln;

Writeln(' 4. Algebra');

Writeln;

Writeln(' 5. Fizkyltyra');

Writeln;

Writeln(' 6. Informatuka');

Writeln;

Writeln(' 7. Informatuka');

Writeln;

goto h;

e: writeln(' Pyatnuzya');

Writeln;

Writeln(' 1. Chimiya');

Writeln;

Writeln(' 2. Chimiya');

Writeln;

Writeln(' 3. Algebraa');

Writeln;

Writeln(' 4. Algebra');

Writeln;

Writeln(' 5. Fizkyltyra');

Writeln;

Writeln(' 6. Informatuka');

Writeln;

Writeln(' 7. Informatuka');

Writeln;

goto h;

f: writeln(' Sybota');

Writeln;

Writeln(' Vuxidnuj den');

goto h;

g: writeln(' Nedilya');

Writeln;

Writeln(' Vuxidnuj den');

h: ReadLn;

End.

Задача 17. Вартість квитка на «Льодову арену» залежить від часу початку сеансу. Вартість дитячого квитка становить половину вартості квитка для дорослого. Якщо у відвідувача ковзанки є дисконтна картка, купуючи квиток, він отримує знижку, яка становить х%. Необхідно визначити суму коштів, які повинен сплатити відвідувач ковзанки в касу.
Program vart_kvutka;

Uses Crt;

label 1;

Var

K1,k2,t,x,d: integer;

vart,s: real;

Begin

TextBackGround(7);

Clrscr;

window(2,2,40,24);

TextBackGround(3);

Clrscr;

TextColor(14);

GoToXY(1,2);

Writeln (' Chas pochatky - Chas zakinch seansy');

writeln;

Writeln('-------------------------------------');

writeln(' 8:00 - 9:30 ');

writeln(' 10:00 - 11:00 25 grn.');

writeln(' 12:00 - 13:00 ');

writeln;

writeln(' 14:00 - 15:00 30 grn.');

writeln(' 16:00 - 17:00 ');

writeln;

writeln(' 18:00 - 19:00 ');

writeln(' 19:00 - 20:00 35 grn.');

writeln(' 20:00 - 21:00 ');

Writeln;

writeln(' 22:00 - 23:30 25 grn.');

Writeln('-------------------------------------');

writeln(' Vartist kvutka, grn.');

writeln;

writeln(' Vidsotok znughku, yaksco j ');

writeln;

write(' duskontna kartka => ');

readln(x);

window(42,2,78,12);

TextBackGround(2);

Clrscr;

TextColor(14);

GoToXY(2,3);

Write('Yvedit chas pochatky seansy =>');

Readln(t);

Writeln;

Write(' Kilkist dutyachux kvutkiv => ');

Readln(k1);

Writeln;

Write(' Kilkist doroslux kvutkiv => ');

Readln(k2);

Writeln;

Write(' Y vas j duskontna kartka => ');

Readln(d);

Writeln;

window(42,14,78,24);

TextBackGround(4);

Clrscr;

TextColor(15);

GoToXY(1,3);

Case t of

8,10,12,22: vart:=25*k2+(25*k1)/2;

14,16: vart:=30*k2+(30*k1)/2;

18,19,20: vart:=35*k2+(35*k1)/2;

Else

begin

TextColor(15);

GoToXY(1,5);

writeln(' Informaziya pro takuj chas ');

writeln;

writeln(' pochatky seansy nevidoma');

writeln;

goto 1;

end;

end;

If d=1 then

begin

s:=vart*x/100;

writeln;

Write(' Vu majte znughky y rozmiri=>',s:4:2,'grn.' );

end

Else

Write(' Y vas nema znughku');

vart:=vart-s;

if vart<>0 then

begin

writeln;

writeln;

writeln;

Writeln(' Vartist kvutka stanovut ',vart:4:2,'grn.');

end;

1: ReadLn;

End.

Задача 18. Необхідно перевести час наданий у секундах в ті одиниці часу, що обере користувач.
Program odunuzi_chasy;

Uses Crt;

Var

N,s: longint;

r,m,d,g,ch:real;

Begin

TextBackGround(7);

Clrscr;

window(2,2,39,23);

TextBackGround(3);

Clrscr;

TextColor(14);

GoToXY(4,5);

Writeln (' Odunuwi vumirjvannya chasy: ');

writeln;

Writeln('--------------------------------------');

writeln;

writeln(' 1 - chvulunu');

Writeln;

writeln(' 2 - godunu');

Writeln;

writeln(' 3 - doba');

Writeln;

writeln(' 4 - misyaz');

Writeln;

writeln(' 5 - roku');

writeln;

Writeln('--------------------------------------');

window(3,24,40,24);

TextBackGround(0);

Clrscr;

window(40,3,40,24);

TextBackGround(0);

Clrscr;

window(42,2,78,12);

TextBackGround(2);

Clrscr;

TextColor(14);

GoToXY(4,3);

Writeln(' Yvedit nomer odunuz');

Write(' vumirjvannya chasy => ');

Readln(n);

writeln;

Writeln;

Writeln;

Writeln(' Yvedit znachennya chasy');

Write(' y sekyndach => ');

Readln(s);

window(43,13,79,13);

TextBackGround(0);

Clrscr;

window(79,3,79,13);

TextBackGround(0);

Clrscr;

window(42,15,78,23);

TextBackGround(4);

Clrscr;

TextColor(15);

GoToXY(10,4);

Case n of

1: writeln(s,' c = ',s/60:4:2,' ch');

2: writeln(s,' c = ',s/3600:4:2,' godun');

3: writeln(s,' c = ',s/(24*3600):4:2,' dobu');

4: writeln(s,' c = ',s/(30*24*3600):4:2,' misyziv');

5: writeln(s,' c = ',s/(365*3600):4:2,' rokiv');

Else

writeln('Inshuch odunuz vumirjvannya chasy nema');

end;

window(43,24,79,24);

TextBackGround(0);

Clrscr;

window(79,16,79,23);

TextBackGround(0);

Clrscr;

ReadLn;

End.



<< предыдущая страница   следующая страница >>