[Delphi - form] Дан динамический одномерный массив, после каждого собственного...

0 голосов
86 просмотров

[Delphi - form]
Дан динамический одномерный массив, после каждого собственного числа(Число которое делится на себя и на 1) вставить "0".


Информатика (33 баллов) | 86 просмотров
0

Может после каждого "простого" числа?

0

И вставить в массив, или просто при выводе массива?

0

Можно сказать и простого, да. Чтобы на выводе массива в edit был вставлен 0 после простого числа

0

Вывод лучше в ListBox

0

Хотя это Вам решать

0

Можно и в Listbox, это не меняет результат, главное чтобы выводило :)

0

Как массив заполнять?

0

С клавиатуры или рандомно?

0

Рандомно

0

M[i] := Round(sin(random(20))*20);

Дан 1 ответ
0 голосов
Правильный ответ

Unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  A:array of shortint;
implementation

{$R *.dfm}

Function P(A:integer):boolean;
Var
   d,K:integer;
Begin
P:=true;
if A < 2 then P:=false
else
   if A < 4 then P:=true
   else
      if A mod 2 = 0 then P:=false
      else
         Begin
         K:=Trunc(Sqrt(A));
         d:=3;
         While d <= K do<br>            Begin
            if A mod d = 0 then P:=false;
            d:=d+2
            End;
         End;
End;

procedure TForm1.Button1Click(Sender: TObject);
Var
   N:integer;
begin
Randomize;
Edit2.Text:='';
N:=StrToInt(Edit1.Text);
SetLength(A,N);
For N:= 0 to N-1 do
    Begin
    A[N]:=Trunc(Sin(random(20))*20);
    if P(A[N]) then Edit2.Text:=Edit2.Text+IntToStr(A[N])+'0 '
    else Edit2.Text:=Edit2.Text+IntToStr(A[N])+' '
    End;
end;

end.


image
(6.6k баллов)