const n=5;
var
a:array[1..n] of integer;
b:array[1..10000] of integer;
i,j:integer;
begin
for i:=1 to n do begin
a[i]:=random(100);
write(a[i]:4);
end;
for i:=1 to n do begin
if (i mod 2=1) and (i div i=1) and (i div 1=i) then b[j]:=i;
end;
writeln(b[j]);
end.
Program1.pas(12) : Ошибка времени выполнения: Индекс находился вне границ массива.
Подскажите в чем ошибка

Ответы

Ответ дал: iolandavalerypad353
0

"Ошибка времени выполнения: Индекс находился вне границ массива." В этом и есть ошибка. Какой индекс? Вот этот - j. Что с этим делать? Инициализировать j. Так как вы ничего не присвоили переменной j, то паскаль туда положил ноль. А статический массив b у вас индексируется от 1. Так понятно? Я правда, не совсем понимаю, что должна делать ваша программа, но это и не суть важно. Хотя можете объяснить что вы там ищете и что хотите вывести.

Приложения:
Ответ дал: iolandavalerypad353
0
Тогда ваша строка: if (i mod 2 = 1) and (i div i = 1) and (i div 1 = i) then b[j] := i; не находит простые числа, там нужно написать подпрограмму пару строк, написать?
Ответ дал: almazstrela
0
Пожалуйста, если вам не трудно)
Ответ дал: iolandavalerypad353
0
ловите вашу программу
Ответ дал: almazstrela
0
Спасибо огромное
Ответ дал: almazstrela
0
Все отлично, только объясните, почему при выводе выводится одинаковое просто число 3-4 раза?
Вас заинтересует