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) : Ошибка времени выполнения: Индекс находился вне границ массива.
Подскажите в чем ошибка
Ответы
Ответ дал:
0
"Ошибка времени выполнения: Индекс находился вне границ массива." В этом и есть ошибка. Какой индекс? Вот этот - j. Что с этим делать? Инициализировать j. Так как вы ничего не присвоили переменной j, то паскаль туда положил ноль. А статический массив b у вас индексируется от 1. Так понятно? Я правда, не совсем понимаю, что должна делать ваша программа, но это и не суть важно. Хотя можете объяснить что вы там ищете и что хотите вывести.
Приложения:
![](https://st.uroker.com/files/769/76933e462bacf31b78df11d90da27565.png)
Ответ дал:
0
Тогда ваша строка: if (i mod 2 = 1) and (i div i = 1) and (i div 1 = i) then b[j] := i; не находит простые числа, там нужно написать подпрограмму пару строк, написать?
Ответ дал:
0
Пожалуйста, если вам не трудно)
Ответ дал:
0
ловите вашу программу
Ответ дал:
0
Спасибо огромное
Ответ дал:
0
Все отлично, только объясните, почему при выводе выводится одинаковое просто число 3-4 раза?
Вас заинтересует
2 года назад
2 года назад
7 лет назад
7 лет назад
8 лет назад
8 лет назад