Лабораториялық жұмыс №8
Бір өлшемді массивтерді өңдеу программалары. ListBox компоненті Тапсырма.
А(10) массивінде максимумды және минимумді элементтерін, олардың орын ауыстыруын табу.
Шешімі.
1.Жаңа жобаға D:\My Project\LBOX папкасын құрамыз.
2. Баспа менюдегі File/New/Application командасын қолданып жаңа жоба ашамыз.
3. Standard бетінен Form1 формаға келесі компоненттерді еңгіземіз. Олар: Edit, Button, ListBox.
4. Инспектора Объектов арқылы Edit1 компонентіне Text қасиетіне бос жол қалдырамыз. Сол кнопкаға Captionқасиетіне тең етіп мән береміз: ‘Ввод’, ал оң кнопкаға - ‘Решение’.
5. Interfaceбөлімінде массив берілгенін қоямыз және ол төменде көрсетілген:
A: array [1…10] of integer;
I, min, max, Imax, imin: integer;
6. Form1 формасына екі рет басып, On Create оқиғасы формаға құрылады: I: =0
ListBox1. Clear ListBox2. Clear;
7. «Ввод»кнопкасын екі рет басу арқылы белсенділігін ояту және On Click оқиғасына келесі кодты еңгіземіз:
ListBox1. Items. Add (Edit. Text); I: =I+1;
A [I]: =StrToInt (Edit. Text); Edit1. Set Focus
8. «Решение» кнопкасын екі рет басу арқылы іс-қимылға жұмылдыру және келесі текстті орналастырамыз:
max:=a[1];
imax:=1;
min:=a[1];
imin:=1;
for k:=2 to 10 do begin
if max<a[k] then begin max:=a[k]; imax:=k
end;
if min>a[k] then begin min:=a[k]; imin:=k
end;
end;
a[imax]:=min;
a[imin]:=max; for k:=1 to 10 do
ListBox2.Items.Add(IntToStr(a[k]));
9. Edit 1жолын еңгізу үшін OnKeyDown оқиғасына қосымша құру жұмысын өңдеу құрамыз.Enter клавишасын басқанда «Ввод» кнопкасына еңгізу фокусы көшеді:
If key=13 then Button1. Set Focus
10. Басты менюдегі File/Save All командасыарқылыжобанысақтаймыз.
11. F9 клавишасы арқылы жобаны іске орындауға жібереміз. Барлық санды еңгізіп отырғанда Enter-ді немесе «Ввод» кнопкасын басып отырамыз. Еңгізілген сандар бірінші тізімде көрініп тұрады. «Решение» клавишасын басқанда екінші қатардан нәтижесін алып отырамыз.
Модульдің қалыптасуының толық текстін көрсетеміз. unit LBox;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm) ListBox1: TListBox; ListBox2: TListBox; Button1: TButton; Button2: TButton;
procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: Tobject); procedure Button2Click(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Edit1Change(Sender: TObject);
private
{ Private declarations } public
{ Public declarations } end;
var
Form1: TForm1; a:array[1..10] of integer; i,min,max,imax,imin:integer;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); begin
ListBox1.Items.Add(Edit1 .Text); i:=i+1; a[i]:=StrToInt(Edit1.Text); Edit1.SetFocus
end;
procedure TForm1.FormCreate(Sender: TObject); begin
i:=0;
ListBox1.Clear
ListBox2.Clear;
end;
procedure TForm1.Button2Click(Sender: TObject); var k:integer;
begin max:=a[1]; imax:=1; min:=a[1]; imin:=1;
for k:=2 to 10 do begin
if max<a[k] then begin max:=a[k]; imax:=k
end;
if min>a[k] then begin min:=a[k]; imin:=k
end;
end;
a[imax]:=min;
a[imin]:=max; for k:=1 to 10 do
ListBox2.Items.Add(IntToStr(a[k]));
end;
procedure TForm1.Edit1KeyDown(Sender: Tobject:var Key: Word; Shift:TShiftstate);
begin
If key = 13 then Button1.SetFocus end;
procedure TForm1.Edit1Change(Sender: TObject); begin
if key = 13 then Button1.SetFocus end;
end.