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

Программа не работает, когда я ввожу число, которого нет в массиве. Пишет: индекс находится вне границ массива. Как это исправить?
Вот задание:
Уровень B. Напишите программу, которая заполняет массив из N = 10 элементов случайными числами в диапазоне [-10,10], выводит его на экран, а затем находит индекс последне-го элемента, равного введённому числу X. Программа должна вывести ответ «не найден», если в массиве таких элементов нет.
Вот программа:
const N=10;
var
A: array[1..N] of integer;
i, X: integer;
begin
for i:=1 to N do begin
A[i]:=random(21);
write(A[i],' ');
end;
writeln();
readln(X);
i:=10;
while (i<=N) and (A[i]<>X) do
i:=i-1;
if i<=N then
writeln('A[', i, ']=', X)
else
writeln('Не найден! ');
end.

Ответ:
Asil1231
Asil1231
11.09.2020 18:56

A[i]:=random(20)-10;

while (i>0)

if i<>0

Объяснение

Ошибка A[i]:=random(21); Твой диапазон [0;20]

Исправление A[i]:=random(20)-10;

Дальше можно находить элемент в массиве по разному, можно просто все элементы проверить, счётчик дойдёт до нуля - программа выведет "Не найден!", если счётчик не равен нулю, значит хотя бы 1 значение х в массиве было найдено.

Ошибка while (i<=N)

Исправление while (i>0)

Ошибка if i<=N

Исправление if i<>0

Условие (i<=N) выполняется всегда, поэтому оно вообще не нужно

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?