Лабораториялық жұмыс №8
Бір өлшемді массивтерді өңдеу программалары. ListBox компоненті Тапсырма.
А(10) массивінде максимумды және минимумді элементтерін, олардың орын ауыстыруын табу.
Шешімі.
1.Жаңа жобаға D:\My Project\LBOX папкасын құрамыз.
Баспа менюдегі File/New/Application командасын қолданып жаңа жоба ашамыз.
Standard бетінен Form1 формаға келесі компоненттерді еңгіземіз. Олар: Edit, Button, ListBox.
55
Инспектора Объектов арқылы Edit1 компонентіне Text қасиетіне бос жол қалдырамыз. Сол кнопкаға Captionқасиетіне тең етіп мән береміз: ‘Ввод’, ал оң кнопкаға - ‘Решение’.
Interfaceбөлімінде массив берілгенін қоямыз және ол төменде көрсетілген:
A: array [1…10] of integer;
I, min, max, Imax, imin: integer;
Form1 формасына екі рет басып, On Create оқиғасы формаға құрылады: I: =0
ListBox1. Clear ListBox2. Clear;
«Ввод»кнопкасын екі рет басу арқылы белсенділігін ояту және On Click оқиғасына келесі кодты еңгіземіз:
ListBox1. Items. Add (Edit. Text); I: =I+1;
A [I]: =StrToInt (Edit. Text); Edit1. Set Focus
«Решение» кнопкасын екі рет басу арқылы іс-қимылға жұмылдыру және келесі текстті орналастырамыз:
max:=a[1];
imax:=1;
min:=a[1];
imin:=1;
for k:=2 to 10 do begin
if max
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]));
Edit 1жолын еңгізу үшін OnKeyDown оқиғасына қосымша құру жұмысын өңдеу құрамыз.Enter клавишасын басқанда «Ввод» кнопкасына еңгізу фокусы көшеді:
If key=13 then Button1. Set Focus
Басты менюдегі File/Save All командасыарқылыжобанысақтаймыз.
F9 клавишасы арқылы жобаны іске орындауға жібереміз. Барлық санды еңгізіп отырғанда Enter-ді немесе «Ввод» кнопкасын басып отырамыз. Еңгізілген сандар бірінші тізімде көрініп тұрады. «Решение» клавишасын басқанда екінші қатардан нәтижесін алып отырамыз.
56
Модульдің қалыптасуының толық текстін көрсетеміз. 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}
57
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
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;
58
end.
Достарыңызбен бөлісу: |