Помогите пожалуйста) 1)Оценки в соревнованиях по фигурному катанию выставляются 9...

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

Помогите пожалуйста)
1)Оценки в соревнованиях по фигурному катанию выставляются 9 судьями.Потом одна самая низкая и одна самая высокая оценки отбрасываются и в зачет идет среднее арифметическое оставшихся оценок.Составьте программу,которая определяет зачетную оценку спортсмена.Оценки судей ввести с клавиатуры(целые числа от 1 до 6).
var
max,min,i:integer;
b:real;
a:array[1..9]of integer;
begin
for i:=1 to 9 do
begin
while (a[i]<1) or (a[i]>6) do
begin
write(i,' оценка: ');
readln(a[i]);
end;
if i=1 then
begin
max:=a[1];
min:=a[1];
end;
if a[i]>max then max:=a[i];
if a[i] b:=b+a[i];
end;
b:=(b-min-max)/7;
writeln('Зачетная оценка: ',b);
end.

что тут не так


Информатика (14 баллов) | 92 просмотров
Дано ответов: 2
0 голосов

If a[i] b:=b+a[i];
это к чему? где then?

максимум находишь и аналогично минимум.

для чистоты кода ещё бы б=0 в начале.

такие дела. програмЬ!

(2.3k баллов)
0 голосов

Здесь очень много не так. Вы ссылаетесь на итый элемент массива вне тела цикла, это бессмысленно, ведь индексация i происходит только в цикле, после его окончания i всегда равен конечному значению. Далее Вы делаете проверку условия для элемента массива, когда ещё нет значений этих элементов. Далее Вы вводите в программу элементы массива в цикле по условию, что 1>оценка>6, откуда взялся такой бред я даже представить не могу. Ну и ещё несколько мелких ошибок. Программу надо переделать полностью.

(3.9k баллов)