linkedin facebook linkedin facebook nod32

Dinamik ro`yxat

Muallif: Mengliyev SH.

Qo`shilgan sana: 2014-09-16

Dinamik ro‘yxat

      Quyidagi dastur talaba familiyasini ro‘yxat boshiga qo‘shib, talabalar ro‘yxatini hosil qiladi. Ma’lumotlar taxrirlash komponentasiga kiritilib, Ko‘shish (button1) tugmasini bosib, ro‘yxatga kiritiladi. Kiritilgan elementlar ro‘yxati Ro‘yxat (button2) tugmasini bosib, alohida oynada chiqariladi.
Elementni ro‘yxatdan o‘chirish uchun Ro‘yxat (button3) o‘chirish tugmasi bosiladi.

Dastur matni

unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
   procedure FormActivate(Sender: TObject);
   private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}
type
TPStudent=^TStudent;
TStudent = record
f_name:string[20];
l_name: string[20];
next: TPStudent;
end;
var
head: TPStudent; // nachalo (golova) spiska
procedure TForm1.Button1Click(Sender: TObject);
var
curr: TPStudent;
begin
new(curr);
curr^.f_name := Edit1.Text;
curr^.l_name := Edit2.Text;
curr^.next := head; head := curr;
Edit1.text:=''; Edit2.text:= '';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
curr: TPStudent;
n:integer;
st:string;
begin n := 0; st := '';
curr := head;
while curr <> NIL do begin
n := n + 1;
st := st + curr^.f_name + ' ' + curr^.l_name+#13;
curr := curr^.next;
    end;
if n <> 0
then ShowMessage('Spisok:' + #13 + st)
else ShowMessage('V spiske net elementov.');

end;
 procedure TForm1.Button3Click(Sender: TObject);
var
curr: TPStudent;
begin
if head<>NIL then

 if head^.next=NIL then
 begin
 Dispose(head);
 head:=NIL;
 end
 else
 begin
 new(curr);
 curr:=head;
 head:=curr^.next;
 Dispose(curr);
 end;
end;
  procedure TForm1.FormActivate(Sender: TObject);
begin
head:=NIL;
end;
end.

Elementlarni ro‘yxatga qo‘shishni TForm1.Button1Click protsedurasi bajaradi. Bu protsedura dinamik o‘zgaruvchi ro‘yxat yaratib, maydonlariga qiymat beradi va head ko‘rsatkichi qiymatini to‘g‘rilaydi.
Ro‘yxatni TForm1.Button2Click potsedurasi chiqaradi. Ro‘yxat elementlariga murojaat qilish uchun curr ko‘rsatkichidan foydalaniladi. Oldin uning qiymati birinchi element adresiga teng bo‘ladi. Keyin unga next maydoni qiymati beriladi. Jarayon to next maydon qiymati NIL bo‘lmaguncha davom etadi.
Elementni ro‘yxatdan o‘chirish TForm1.Button3Click, protsedurasi tomonidan amalga oshiriladi.

1742 marta o`qildi.

Parol:
Eslab qolish.


Ro`yhatdan o`tish

testing

+998915878681

Siz o`z maxsulotingizni 3D reklama ko`rinishda bo`lishini xohlaysizmi? Unda xamkorlik qilamiz.

3D Reklama


Рейтинг@Mail.ru
Рейтинг@Mail.ru

Besucherzahler
счетчик посещений