
Var a:array[1..10] of integer; i,m,max:integer; begin randomize; m:=0; for i:=1 to 10 do begin a[i]
random(50); writeln('a[',i,']=',a[i]); end; max:=a[1]; for i:=2 to 10 do if a[i]>max then max:=a[i]; for i:=1 to 10 do if a[i]=max then m:=m+1; writeln(m); end. почему в этой строчке a[i] random(50); пишет Ожидалось имя процедуры или функции

Ответы на вопрос




В данном коде ошибка возникает потому, что оператор random(50) не может быть использован в качестве значения для элемента массива a[i]. Оператор random(50) является процедурой, а не функцией, и в данном случае ожидается использование функции, возвращающей значение.
Чтобы исправить ошибку, можно использовать функцию RandomRange(0, 50), которая возвращает случайное целое число в заданном диапазоне. Исправленный код будет выглядеть следующим образом:
Var a: array[1..10] of integer; i, m, max: integer; begin randomize; m := 0; for i := 1 to 10 do begin a[i] := RandomRange(0, 50); writeln('a[', i, '] = ', a[i]); end; max := a[1]; for i := 2 to 10 do if a[i] > max then max := a[i]; for i := 1 to 10 do if a[i] = max then m := m + 1; writeln(m); end.
Теперь код будет корректно выполняться и выводить количество элементов массива, равных максимальному значению.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili