Яша плавал в бассейне размером N x M метров и устал. В этот момент он обнаружил, что находится на расстоянии x метров от одного из длинных бортиков (не обязательно от ближайшего) и y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик?
Вводятся 4 натуральных числа: N, M, x, y (N ≠ M), разделенные пробелами. Все числа не превосходят 100.
Выходные данные
Требуется вывести одно число – минимальное расстояние, которое должен проплыть Яша, чтобы выбраться на бортик.
Другие языки программирования и технологии
Помогите с задачей в паскале абс
Код программы:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
ну хоть в одном вопросе указали какой паскаль
молодец
в чем проблема?
в математике или программировании?
если напишешь
решение в математике, можно помочь в программировании,
а то думать неохота
там у тебя проверок понаделать нужно
и на <=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
молодец
в чем проблема?
в математике или программировании?
если напишешь
решение в математике, можно помочь в программировании,
а то думать неохота
там у тебя проверок понаделать нужно
и на <=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
N, M, x, y
x1:=n-x;
y1:=m-y;
и минимальное из x,y,x1,y1
Похожие вопросы
- ПОМОГИТЕ С ЗАДАЧАМИ В ПАСКАЛЕ
- Помогите решить задачи по Паскалю
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- ПОМОГИТЕ НАПИСАТЬ ЗАДАЧИ НА ПАСКАЛЕ
- Помогите написать задачи в паскале!!!!
- Ребят помогите дописать прогу в паскале абс
- Помогите решить задачу в паскале
- Помогите решить задачу в паскале. Задание: Заменить в строке все вхождения "да" на "нет".
- Уважаемые!Помогите решить задачу по Паскалю,пожайлуста!
- Помогите с задачей на паскале