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