Консультация № 173065
08.10.2009, 19:12
0.00 руб.
0 3 1
Ребят мне дали задачку,на турбо паскале
Даны вещественные числа a,b,c и m. Если a<b<c>m, то
каждое число заменить наибольшим из них.
Я правельно делаю,если не правельно то как надо?
если не правильно,тогда как?Заранее спасибо

Приложение:
var a,b,c,m;
if a<b then
begin
writeln('a<b');
c:=a+b
end;
else;
begin
writeln('a<b<c');
m:=a+b+c
end;

Обсуждение

Неизвестный
08.10.2009, 20:25
общий
DevilMay:
Добрый вечер, DevilMary! a<b<c - понятно, а что такое a<b<c>m ?
Неизвестный
08.10.2009, 20:33
общий
это ответ
Здравствуйте, DevilMay.
Мой пример решение вашей задачи в приложении

Приложение:
Program 173065;
uses crt;
var a,b,c,m,max:real;
begin
max:=0; {Максимальное значение}
Writeln ('Введите числа через пробел a,b,c,m '); readln (a,b,c,m);
if (a>b) and (a>c) and (a>m) then max:=a else {Проверям все значение на максимальное}
if (b>a) and (b>c) and (b>m) then max:=b else
if (c>a) and (c>b) and (c>m) then max:=c else
if (m>a) and (m>b) and (m>c) then max:=m;
{Проверяем на ваше условие}
if (a<b) and (b<c) and (a<c) and (c>m) then
begin {Если совпадает то присваем всем значения максимальное}
a:=max;
b:=max;
c:=max;
m:=max;
Writeln ('Все значения заменены на =',max:3:2);
end
else {Если нет}
Writeln ('Условие не выполнилось');
readkey;
end.
5
Неизвестный
08.10.2009, 23:19
общий
Sky-er:
Еще раз добрый вечер!
Предлагаю более короткое решение (меньше проверок :)

Program p173065;
uses crt;
var
a,b,c,m,max:real;

begin
Writeln ('Введите числа через пробел a,b,c,m '); readln (a,b,c,m);
max := a;
if b>max then
max := b;

if c>max then
max := c;

if (max=c) and (m<max) then
begin
a:= max;
b:= max;
m:= max;
{ не присваиваем c:= max, это избыточно }
Writeln ('max=', max:3:2, ' a=', a:3:2, ' b=', b:3:2, ' c=', c:3:2, ' m=', m:3:2);
end
else
Writeln ('Условие не выполнилось');
readkey;
end.
Форма ответа