Другие языки программирования и технологии

Помогите с задачей в паскале абс

Яша плавал в бассейне размером N x M метров и устал. В этот момент он обнаружил, что находится на расстоянии x метров от одного из длинных бортиков (не обязательно от ближайшего) и y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик?
Вводятся 4 натуральных числа: N, M, x, y (N ≠ M), разделенные пробелами. Все числа не превосходят 100.

Выходные данные
Требуется вывести одно число – минимальное расстояние, которое должен проплыть Яша, чтобы выбраться на бортик.
__
_Вадим _
151
Код программы:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var
N, M : byte; // Размеры бассейна
x, y : byte; // Введённые расстояния до бортов
x1, y1 : byte; // Расстояния до других бортов
r : byte; // Минимальное расстояние
begin
repeat
Write('Введите размеры бассейна N, M и расстояния x и y через пробел : ');
ReadLn(N, M, x, y);
if N = M then
WriteLn('Размеры бассейна N и M должны быть различными. ');
if x >= N then
WriteLn('Расстояние x до борта должно быть меньше N.');
if y >= M then
WriteLn('Расстояние y до борта должно быть меньше М. ');
if (M > 100) or (N > 100) then
WriteLn('Размеры не должны превышать 100.');
until (N <> M) and (x < N) and (y < M) and (N <= 100) and (M <= 100);

// Расстояния до других бортов
x1 := N - x;
y1 := M - y;

r := x; // предположим, что минимальное расстояние = x
// Проверим остальные расстояния
if r > x1 then r := x1;
if r > y then r := y;
if r > y1 then r := y1;

WriteLn('Расстояние до ближайшего бортика : ', r);
end.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Результаты исполнения:
Введите размеры бассейна N, M и расстояния x и y через пробел : 30 40 20 15
Расстояние до ближайшего бортика : 10
Павел Сержантов
Павел Сержантов
88 011
Лучший ответ
ну хоть в одном вопросе указали какой паскаль
молодец
в чем проблема?
в математике или программировании?
если напишешь
решение в математике, можно помочь в программировании,
а то думать неохота
там у тебя проверок понаделать нужно
и на <=100 и на N<>M

Алмаз не прав я сначала тоже так подумал

var x0,y0,n,m,x,y:integer;
//читаем N,M,X,Y - думаю справишься
смотрим
if n>100 then
begin
writeln('Ошибка параметра N');
end;
//также остальные проверяем
if n=m then
begin
writeln('Ошибка параметр N=M');
end;
//теперь решаем
узнаем какая стенка длинная N или M
if N>m then
begin
x0:=N;
y0:=m;
end
else
begin
x0:=M;
y0:=N;
end;
вот теперь и вычитать можно зная что х от х0, y от y0
выводи
N, M, x, y
x1:=n-x;
y1:=m-y;
и минимальное из x,y,x1,y1
KS
Karen Sahakyan
1 511