Есть ответ 👍

Программа не работает, когда я ввожу число, которого нет в массиве. Пишет: индекс находится вне границ массива. Как это исправить?
Вот задание:
Уровень 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.

259
443
Посмотреть ответы 2

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


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) выполняется всегда, поэтому оно вообще не нужно

sibuna1
4,6(90 оценок)

сама только что решала, вроде как поняла немножко) ну вот смотри:

    в 7               в 8

2         < 120 < 2

240*8 бит = 1920 бит

ответ : 1920 бит))

 

надеюсь что и надеюсь то правильно))

 

постараюсь немного объяснить, чтобы в следующий раз уже без решила

 

известно, что с n бит можно закодировать 2n  различных чисел. поскольку 2в 7  < 240 < 2  в 8(бит)  и для каждого спортсмена число бит одинаково, то для записи каждого из 240 номеров необходимо 8 бит памяти. поскольку промежуточный финиш прошли 120 велосипедистов, то информационный объем сообщения составит 120*8 бит=1920 бит

Популярно: Информатика