Лабораториялы жмыс №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.