Write(‘Введіть швидкості теплоходу та туриста: ‘);
Readln(VI,V2);
Write (‘Введіть час, через який турист підсів на теплохід:’) ;
Readln(N);
Write(‘Введіть швидкість, з якою турист плив за теплоходом,
час зупинки теплоходу, та тривалість зупинки:’) ;
Readln(V3,Y,Z);
If (Vl<=0)or(V2<=0)or(V3<=0)or(N<=0)or(Y<=0)or(Z<=0)
Then writeln(‘Помилкові вхідні дані’)
Else
Begin
S: = (V1+V2)*N;
St: = (V3-Vl)*(Y-N+Z) ;
If St>=S
Then writeln(‘Турист встигне на теплохід.’)
Else writeln(хТурист не встигне на теплохід.’);
End;
Readkey;
End.
Взагалі задача має дуже простий розв’язок: адже бабуся не буде ошуканою в тому випадку, якщо площа городу, що залишилася для неї, не буде меншою, ніж площа дідусевого городу, тобто
C2<=а В-С2
Та це тільки на перший погляд. Насправді в даній задачі може бути велика кількість винятків.
Наприклад, якщо дідусь захоче відрізати собі город зі стороною більшою, ніж сторона загального городу, то це неможливо зробити взагалі. Якщо ж він відріже, то город, що залишиться, може мати квадратну (варіант А), прямокутну (варіант Б) або іншу форми (вариант В) (дивись малюнок):
Програма, що реалізує запропонований алгоритм, має вигляд:
Program Example_90;
Uses crt;
Var А,В,С:real;
Begin
Clrscr;
Write (‘Введіть розміри городу: ‘);
Readln(А,В);
Write(‘Введіть довжину сторони дідусевого городу: ‘);
Readln(С);
If (A<=0)or(B<=0)or(C<=0) Then writeln (‘Помилкові вхідні дані’)
Else
Begin
If (OA) or (OB)
then writeln(‘Дідусь не зможе відрізати город такого розміру’)
else
begin
If A*B-sqr(C)<=sqr(С) then writeln(‘Бабуся ошукана.’)
else writeln(‘Бабуся не ошукана.’);
If (A<>C) and (B<>C)