Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2012, 12:07   #1
IvaN9900
Пользователь
 
Регистрация: 23.11.2011
Сообщений: 14
По умолчанию [pascal] Сравнение эл-тов

Всем привет!
Есть программа:
Код:
program qwerty;
uses crt;
var
x1, x2, x3, S, y1, y2, y3: real;
BEGIN
writeln('введите х1');
readln(x1);
writeln('введите х2');
readln(x2);
writeln('введите х3');
readln(x3);
S:=(x1+x2+x3)/3;
writeln('Сред. арифм.=', s);
y1:=abs(S-x1);
writeln ('1- ', y1);
y2:=(S-x2);
writeln('2- ', y2);
y3:=abs(S-x3);
writeln('3- ', y3);
If y1>y2>y3 then begin
writeln(y1, '-большее');
end;
else y2>y1>y3 then begin
writeln(y2, '- большее');
end;
else y3>y1>y2 then begin
writeln(y3, '-большее');
end;
end.
в ней не работает сравнение эл-тов у1-3(надо найти и вывести большее из 3 значений на экран), выдает "операнды имеют непереводимые типы", можете поправить код, чтобы сравнение работало, пожалуйста?
IvaN9900 вне форума Ответить с цитированием
Старый 14.02.2012, 13:18   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
If y1>y2>y3 then begin
writeln(y1, '-большее');
end;
и абсолютно правильно ругается.
результат сравнения y>y2 получаетс ЛОГИЧЕСКОЕ значение (истина или ложь),
а потом этот результат Вы пытаетесь сравнить с y3 ... Истина больше, чем 2 ?!

попробуйте написать так:
Код:
If (y1>y2) and (y1>y3) then begin
  writeln(y1, '-большее');
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.02.2012, 13:26   #3
dmitry91
Новичок
Джуниор
 
Регистрация: 14.02.2012
Сообщений: 1
По умолчанию

program qwerty;
uses crt;
var
x1, x2, x3, S, y1, y2, y3, max: real;
BEGIN
writeln('введите х1');
readln(x1);
writeln('введите х2');
readln(x2);
writeln('введите х3');
readln(x3);
S:=(x1+x2+x3)/3;
writeln('Сред. арифм.=', s);
y1:=abs(S-x1);
writeln ('1- ', y1);
y2:=(S-x2);
writeln('2- ', y2);
y3:=abs(S-x3);
writeln('3- ', y3);
If y1>y2 then
begin
max:=y1;
writeln(y1, '-большее');
end
else
begin
max:=y2;
writeln(y2, '- большее');
end;

if y3>max then writeln(y3, '-большее');

readkey;

end.
dmitry91 вне форума Ответить с цитированием
Старый 15.02.2012, 15:02   #4
IvaN9900
Пользователь
 
Регистрация: 23.11.2011
Сообщений: 14
По умолчанию

Спасибо, заработало)
IvaN9900 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение двух массивов(Pascal) Bounty Hunter Помощь студентам 4 19.01.2012 15:58
Задача на сравнение переменных в Pascal ABC Лиза_ Паскаль, Turbo Pascal, PascalABC.NET 1 08.05.2011 22:24
Сумма эл-тов кратных 3м Сristina Паскаль, Turbo Pascal, PascalABC.NET 5 02.03.2011 20:52
Сумма положительных эл-тов в матрице Student_1 Паскаль, Turbo Pascal, PascalABC.NET 3 25.12.2010 20:03