• 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) : Ошибка времени выполнения: Индекс находился вне границ массива.
    Подскажите в чем ошибка

Ответы 6

  • Тогда ваша строка: if (i mod 2 = 1) and (i div i = 1) and (i div 1 = i) then b[j] := i; не находит простые числа, там нужно написать подпрограмму пару строк, написать?
  • Пожалуйста, если вам не трудно)
  • ловите вашу программу
    • Автор:

      frost
    • 5 лет назад
    • 0
  • Спасибо огромное
    • Автор:

      salvador
    • 5 лет назад
    • 0
  • Все отлично, только объясните, почему при выводе выводится одинаковое просто число 3-4 раза?
    • Автор:

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

    answer img
    • Автор:

      balduino
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years