7.6-rasm.
7.5-listing. unit rd_;
interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm) Button2: TButton; Edit1: TEdit;
Memo1: TMemo;
Button1: TButton;
procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
f: TextFile; // fayl
fName: String[80]; // fayl nomi
buf: String[80]; // fayldan o'qish uchun bufer
begin
fName := Edit1.Text; AssignFile(f, fName);
{$I-}
Reset(f); // o'qish uchun ochish
{$I+}
if IOResult <> 0 then begin
MessageDlg('Faylga murojaatda xatolik ' + fName, mtError,[mbOk],0); exit;
end; Memo1.Clear;
// fayldan o'qish while not EOF(f) do begin
readln(f, buf); // satrlarni fayldan oq'ish Memo1.Lines.Add(buf); // Memo1 maydoniga satrlarni qo'shish
end;
CloseFile(f); // faylni yopish
end;
// faylga yozish
procedure TForm1.Button2Click(Sender: TObject);
var
f: TextFile; // fayl
fName: String[80]; // fayl nomi i: integer;
begin
fName := Edit1.Text; AssignFile(f, fName);
Rewrite(f); // qayta yozish uchun ochish
// faylga yozish
for i:=0 to Memo1.Lines.Count do // satrlar noldan
//raqamlanadi
writeln(f, Memo1.Lines[i]); CloseFile(f); // faylni yopish MessageDlg('Ma`lumotlarni faylga yozish',
mtInformation,[mbOk],0);
end; end.
Faylni qayta ishlashni tashkil qilish uchun While takrorlash buyrug’idan foydalanilgan. Bunda EOF funksiyasining qiymati har bir o’qishdan oldin tekshiriladi.
Saqlash tugmasi Memo maydonidagi ma’lumotlarni faylga saqlash imkonini beradi. Navbatdagi satrni Memo maydoniga qo’shish Lines xususiyatining Add uslubi yordamida amalga oshiriladi.
Ma`ruza. Sinf, ob`ekt, uslub, inkopsulyatsiya va avlod qoldirish. Polimorfizm va virtual usullar. (2 soat)
O’quv modul birliklari:
Delphida Sinf va ob`ekt tushunchasi
Uslub, inkopsulyatsiya va avlod qoldirish.
Polimorfizm va virtual usullar.
Aniqlashtirilgan o’quv maqsadlari:
Talaba ushbu mavzuni to’la o’zlashtirgandan so’ng:
Delphida sinf va ob`ekt tushunchasining mohiyatini o’rganadi
Uslub, inkopsulyatsiya va avlod qoldirish strukturasini biladi
Polimorfizm va virtual usullarni o’zlashtiradi.
Ob’yektga mo’ljallangan dasturlash (OMD) - asosida ob’yekt tushunchasi yotgan dasturlarni qayta ishlash uslubidir. Dasturlashda qo’llaniluvchi ob’yekt tushunchasi real hayotdagi ob’yekt tushunchasiga qaysidir ma’noda mos keladi (Ob’yekt real hayotdagi ob’yekt tushunchasiga mos keluvchi qandaydir strukturadir).
Ob’yekt – real hayotga mos keluvchi ob’yekt strukturasi.
OMD uslubidan foydalanib yechiluvchi masala ob’yekt terminlari va ular ustidagi bajariluvchi amallar bilan ifodalanadi, bunday yondoshishdagi dastur esa ob’yektlar to’plami va ular o’rtasidagi aloqalardan tashkil topadi.
Eslatma
Delphida dasturlash muhiti taklif qilgan komponentlar to’plamidan foydalanib dastur yaratish uchun OMD mohiyatini bilish zaruriy emas.
Sinf (Class)
Pascal dasturlash tili dasturchiga murakkab ma’lumotlar tipi - yozuvlarni (records) aniqlash imkonini berdi. Delphi tili esa ob’yektga mo’ljallangan dasturlash mohiyatidan kelib chiqib sinflarni aniqlash imkonini beradi. Sinf - bu ma’lumotlar,
protsedura va funksiyalar berilishidan tashkil topgan hamda ularni sinf vakili tomonidan ishlatish mumkin bo’lgan murakkab strukturadir.
Oddiy sinfni e’lon qilishga misol:
TPerson = class private
fname: string[15]; faddress: string[35]; public
procedure Show;
end;
Sinf o’zgaruvchilari maydоn deb ataladi, prоsedura va funksiyalar esa uslub deb ataladi. Yuqоridagi misоlda TPerson – sinf nоmi, FName va FAddress – maydоn nоmi, Show – uslub nоmi.
Eslatma
Delphi maydon nomlarini f harfi bilan boshlash kelishib olingan (Field - maydon so’zidan kelib chiqadi).
Sinf tiplarni (type) e’lon qilish bo’limida e’lon qilinadi.
Ob’yekt
Ob’yektlar sinf vakili sifatida dasturning var bo’limida e’lon qilinadi, masalan:
var
student: TPerson; professor: TPerson; Eslatma
Delphida ob’yekt - bu dinamik struktura. Оb’yekt o’zgaruvchisi o’zida ma’lumоtni emas balki оb’yekt ma’lumоtiga yo’lni saqlaydi. Shuning uchun dasturchi ushbu ma’lumotlar uchun ajratilgan хоtira haqida o’ylashi kerak bo’ladi.
Xotirani ajratish sinfning maxsus uslubi create (yarat) nomiga ega bo’lgan konstruktor yordamida amalga oshiriladi. Konstruktorning asosiy rolini ta’kidlash uchun sinfning berilishida procedura so’zi o’rniga constructor so’zidan foydalaniladi.
Quyida tarkibiga konstruktor kiritilgan TPerson sinfini e’lon qilish keltirligan:
TPerson = class private
fname: string [ 15 ]; faddress: string[35];
constructor Create; // konstruktor
Do'stlaringiz bilan baham: |