пʼятниця, 22 січня 2021 р.

Основні алгоритми опрацювання масивів

Дивитися підручник Інформатика 9 клас Бондаренко

Розглянемо найбільш поширені дії з елементами масиву на прикладі


Заповнення масиву


Перший рядок  - це номери стовпчиків і це ж номери елементів масиву (заповнюються одночасно з запуском програми)

procedure TForm1.FormCreate(Sender: TObject);
  var i:integer;
begin
  For i :=1 to 10 do
  StringGrid1.Cells[i-1, 0] := IntToStr(i);
 end;             

Заповнення масиву

     

Заповнимо масив випадковими числами від 0 до 20

procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
Randomize;
For i := 1 to 10 do begin
a[i] := Random(20);
StringGrid1.Cells[i-1, 1] := IntToStr(a[i]); end;
end;

 Сума елементів масиву



Знаходження суми елементів масиву і їх добутку

procedure TForm1.Button4Click(Sender: TObject);
 var i,sum,pr: Integer;
begin
 sum:=0;
 pr:=1;
 For i := 1 to 10 do begin
  sum:= sum + a[i];
  pr:=pr*a[i];
 end;
 Edit1.Text:=IntToStr(sum);
 Edit6.Text:=IntToStr(pr);
end;     

Середнє значення елементів масиву



procedure TForm1.Button2Click(Sender: TObject);
 var sr_znach: Real;
begin
 sr_znach:=StrToInt(Edit1.Text)/10;
 Edit2.Text:=FloatToStr(sr_znach)
end;   

Знаходження кількості елементів масиву


Знайдемо кількість елементів масиву, які більші за середнє значення

procedure TForm1.Button3Click(Sender: TObject);
  var i,kol: Integer;
begin
  kol:=0;
  For i := 1 to 10 do
  if a[i]>StrToFloat(Edit2.Text) then
  kol:=kol+1;
  Edit3.Text:=IntToStr(kol)
end;   

Знаходження мінімального елементу


procedure TForm1.Button5Click(Sender: TObject);
 var i,min,n: Integer;
begin
 min:=a[1];
 For i := 2 to 10 do
  if a[i]<min then begin
   min:=a[i];
   n:=i;
  end;
 Edit4.Text:=IntToStr(min);
 Edit7.Text:=IntToStr(n);
end;  

Знаходження максимального елементу


procedure TForm1.Button6Click(Sender: TObject);
 var i,max,m: Integer;
begin
  max:=a[1];
 For i := 2 to 10 do
  if a[i]>max then  begin
  max:=a[i];
  m:=i;
  end;
 Edit5.Text:=IntToStr(max);
 Edit8.Text:=IntToStr(m);
end;  

Ведення елементів масиву з клавіатури


procedure TForm1.Button8Click(Sender: TObject);
  var i: Integer;
begin
  For i:=1 to 10 do
  If Length(StringGrid2.Cells[i-1,1]) <> 0
  then b[i] := StrToInt(StringGrid2.Cells[i-1,1])
  else b[i] := 0;
end;   

Змінення елементів масиву

а) зміна розташування обміном (поміняти місцями сусідні елементи)

procedure TForm1.Button9Click(Sender: TObject);
  var i,c: Integer;
begin
  i:=1;
  While i <= 9 do begin
   c:= b[i]; b[i]:= b[i+1]; b[i+1]:= c;
   i:= i+2 end;
   For i:=1 to 10 do
   StringGrid2.Cells[i-1,1]:=IntToStr(b[i]);
end;   

б) зміна значення за умовою (елементи з парними номерами замінити на 0)


procedure TForm1.Button11Click(Sender: TObject);
   var i: Integer;
begin
  For i:=1 to 10 do begin
   if i mod 2 = 0 then
   b[i]:=0;
   StringGrid4.Cells[i-1,1]:=IntToStr(b[i]);
  end;
end; 

Очистка масиву


procedure TForm1.Button10Click(Sender: TObject);
begin
   StringGrid2.Rows[1].Clear;
   StringGrid3.Rows[1].Clear;
   StringGrid4.Rows[1].Clear;
end;  

Алгоритми упорядкування масиву

Сортування перестановкою (за зростанням)


procedure TForm1.Button12Click(Sender: TObject);
var i,k,max,m,c: integer;
begin
For k:=10 downto 2 do
begin
m:=1; max:=a[1];
for i:=2 to k do
if a[i]>max then
begin
max:=a[i]; m:=i;
end;
c:=a[m]; a[m]:=a[k]; a[k]:=c;
end;
For i:=1 to 10 do
StringGrid5.Cells[i-1,1]:=IntToStr(a[i]);
end;

Сортування бульбашкою (за спаданням)

procedure TForm1.Button13Click(Sender: TObject);
  var i,j,c: integer;
   flag:boolean;
begin
  j:=1;
repeat flag:=false;
for i:=1 to 9 do
if a[i]<a[i+1] then begin
c:=a[i]; a[i]:=a[i+1]; a[i+1]:=c;
flag:=true end;
j:=j+1;
Until flag=false;
for i:=1 to 10 do
StringGrid6.Cells[i-1,1]:=IntToStr(a[i]);
end;  

І ще раз про очистку


procedure TForm1.Button7Click(Sender: TObject);
begin
StringGrid1.Rows[1].Clear;
StringGrid5.Rows[1].Clear;
StringGrid6.Rows[1].Clear;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
Edit7.Clear;
Edit8.Clear;
end;







Немає коментарів:

Дописати коментар