цегла

ЗАДАЧА № 921
Постановка задачі:
Дано дійсні додатні числа а, b, с, х, у. Визначити, чи пройде цеглина з ребрами а, b, с у прямокутний отвір зі сторонами х та у. Проштовхувати цеглину дозволяється лише так, щоб кожне з її ребер було паралельним чи перпендикулярним кожній зі сторін отвору.
Аналіз алгоритму:
Для розв’язання цієї задачі пропонується впорядкувати розміри отвору та розміри цеглини за зростанням, тобто досягти того, щоб було а<=b<=c та х<=у. Тоді перевірка зведеться до порівняння розмірів отвору з найменшими розмірами цеглини (адже ми можемо цеглину розвернути будь-яким боком, щоб проштовхнути її у отвір).
Текст програми:
Program Task_921;
Uses crt;
Var a, b, c, x, y, S:real;
{S – допоміжна змінна для обміну місцями значень двох змінних}
Begin
Clrscr;
Write(‘Введіть розміри цеглини: ‘);
Readln(a, b, c);
Write(‘Введіть розміри отвору: ‘) ;
Readln(х, у);
If (a<=0)or(b<=0)or(c<=0)or(x<=0)or(y<=0)
Then writeln(‘Помилка вхідних даних.’)
Else
Begin
{Впорядкування розмірів цеглини}
If а>b Then Begin S:=а; а:=b; b:=S; End;
If a>c Then Begin S:=a; a:=c; c:=S; End;
If b>c Then Begin S:=b; b:=c; c:=S; End;
{Впорядкування розмірів отвору)
If x>y Then Begin S:=x; x:=y; y:=S; End;
If (a<=x) and (b<=y) Then writeln(‘Цеглина пройде у отвір.’)
else writeln(‘Цеглина не пройде у отвір.’)
End;
Readkey;
End.

Немає коментарів:

Дописати коментар