Предмет: Информатика,
автор: almazstrela
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) : Ошибка времени выполнения: Индекс находился вне границ массива.
Подскажите в чем ошибка
Ответы
Автор ответа:
1
"Ошибка времени выполнения: Индекс находился вне границ массива." В этом и есть ошибка. Какой индекс? Вот этот - j. Что с этим делать? Инициализировать j. Так как вы ничего не присвоили переменной j, то паскаль туда положил ноль. А статический массив b у вас индексируется от 1. Так понятно? Я правда, не совсем понимаю, что должна делать ваша программа, но это и не суть важно. Хотя можете объяснить что вы там ищете и что хотите вывести.
Приложения:
almazstrela:
Мне нужно из одного массива в другой вывести простые числа.
Тогда ваша строка: if (i mod 2 = 1) and (i div i = 1) and (i div 1 = i) then b[j] := i; не находит простые числа, там нужно написать подпрограмму пару строк, написать?
Пожалуйста, если вам не трудно)
ловите вашу программу
Спасибо огромное
Все отлично, только объясните, почему при выводе выводится одинаковое просто число 3-4 раза?
Похожие вопросы
Предмет: Экономика,
автор: nyhalkabebr
Предмет: Алгебра,
автор: NakanoNiino
Предмет: Русский язык,
автор: Аноним
Предмет: Геометрия,
автор: SoDeadlyFire
Предмет: Математика,
автор: Некогда1