Kotorkovsciy
@Kotorkovsciy

В чём ошибка в коде, паскаль ((30): Ошибка времени выполнения: Ссылка на объект не указывает на экземпляр объекта.)?

const
  n = 100;

type
  massive = array[1..n] of integer;

function ProstMin(a: massive; x: integer): char;
var
  i, j, k: longint;
  min: integer;
  f: boolean;
  b: array of integer;
begin
  for j := 1 to x do 
    if a[j] < 2 then f := false
      else
    begin
      k := 0;
      f := true;
      for i := 2 to round(sqrt(a[j])) do
        if a[j] mod i = 0 then f := false;
      if f then 
      begin
        setlength(b,k+1);
        b[k] := a[j];
        inc(k);
      end;
      for i := 1 to x do
        begin
             write(b[i], ' ');
        end;
    end;
end;

function massiv(x: byte): char;
var
  i: byte;
  a: massive;
begin
  for i := 1 to x do          
  begin
    a[i] := random(100);        
    write(a[i]:3);
  end;
  writeln;
  ProstMin(a, x);
end;

var
  x: byte;

begin
  write('Введите размер массива: '); read(x);
  write('Массив: '); massiv(x);
  
end.
  • Вопрос задан
  • 550 просмотров
Решения вопроса 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Вы задрали
type
  TArray = array of integer;

function IsPrime(const Value: integer): Boolean;
var
  N: integer;
begin
  for N := 2 to Value - 1 do
    if Value mod N = 0 then
      Exit(False);
  Result := True;
end;

function PrimeMin(const A: TArray): Integer;
var
  i: Integer;
begin
  Result := -1;
  for i := 0 to High(A) do
    if IsPrime(A[i]) then
      if (Result = -1) or (Result > A[i]) then
        Result := A[i];
end;

function FillRandom(Count: Integer): TArray;
var
  i: Integer;
begin
  Randomize;
  SetLength(Result, Count);
  for i := 0 to Count - 1 do
  begin
    Result[i] := Random(1000 - 2) + 2;
    write(Result[i]: 4);
  end;
  writeln;
end;

var
  Count: Integer;
  Items: TArray;

begin
  Write('Введите размер массива: ');
  Read(Count);
  Write('Массив: ');
  Items := FillRandom(Count);
  Write('Мин. простое: ', PrimeMin(Items));
  Readln;
  Readln;
end.


Только хоть немного изучите алгоритм
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka
Токсичный шарпист
Ошибок нет - программа компилируется и делает ровно то что написано в коде.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы