Предмет: Информатика, автор: crazy660

не понимаю где ошибка?
program a3;
var
a, b, c, p: integer;
begin
if a>b then
if b>c then
min:= c;
avg:= b;
max:= a;
else
min := b;
avg := c;
max := a
else
begin
if a>c then
min := c;
avg := a;
max := b
else
min := a;
avg := c;
max := b;
end
else
if b>c then
min := b;
avg := a;
max := c;
//else
//p:=a, b, c
writeln ('минимальное число= ',min, среднее число= ', avg 'максимальное число= ', max)
end.

Ответы

Автор ответа: Alphaeus
1

Ошибок несколько:

1. Нету ввода a,b,c (команда read)

2. В каждом if после then ты делаешь три присваивания, их надо обернуть в begin - end

3. Не понятна логика if-then-else. Например, после if b>c then у тебя два else. Используй отступы, чтоб было нагляднее, например:

if b>c then  

     begin


         min:= c;  

         avg:= b;  

         max:= a;


     end


   else  

     begin


         min := b;  

         avg := c;  

         max := a


     end

Ещё, чтобы сделать все эти проверки нагляднее, можешь попробовать использовать такую конструкцию:

if (a>b) and (b>c) then  

   begin


       min:= c;  

       avg:= b;  

       max:= a;


   end


Тогда тебе не будут нужны else и ты в них не запутаешься.

4.  Переменные min, avg, max должны быть описаны в секции var


5. В строке writeln ('минимальное число= ',min, среднее число= ', avg 'максимальное число= ', max) пропущена кавычка перед словом "среднее" и запятая после "avg"

6. Нужна точка с запятой в конце строки writeln

*****************************

У меня на Паскаль АВС работает:

program a3;  

var  

a, b, c, min, avg, max: integer;  

begin  

write('a = '); readln(a);

write('b = '); readln(b);

write('c = '); readln(c);

 if (a>b) and (b>c) then begin min:=c; avg:=b; max:=a; end;

 if (a>c) and (c>b) then begin min:=b; avg:=c; max:=a; end;

 if (b>a) and (a>c) then begin min:=c; avg:=a; max:=b; end;

 if (b>c) and (c>a) then begin min:=a; avg:=c; max:=b; end;

 if (c>a) and (a>b) then begin min:=b; avg:=a; max:=c; end;

 if (c>b) and (b>a) then begin min:=a; avg:=b; max:=c; end;

writeln ('минимальное число= ',min, '  среднее число= ', avg, '  максимальное число= ', max);  

end.

Похожие вопросы
Предмет: История, автор: ellissemenova09