Не понимаю где ошибка? program a3; var a, b, c, p: integer; begin if a>b then if b>c then...

0 голосов
36 просмотров

Не понимаю где ошибка? 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.


Информатика (24 баллов) | 36 просмотров
Дан 1 ответ
0 голосов

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

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.

(52.6k баллов)