linkedin facebook linkedin facebook nod32

Paskalda modullar va ma’lumotlar fayllari

Muallif: Mengliyev Sh.

Qo`shilgan sana: 2015-01-14

Paskalda modullar va ma’lumotlar fayllari

1.Kirish
Turbo Paskal sistemasida juda ko‘p maxsus tayyor protsedura va funksiyalar mavjudki ular har qaysi o‘z vazifasiga ega bo‘lib unga biblioteka modullari deyiladi. Har bir biblioteka funksiya va protseduralardan tashkil topgan bo‘lib ma’lum bir turdagi masalani echishga mo‘ljallangan bo‘ladi.

2.Modul tushunchasi
Modul deb protsedura va funksiyaning alohida kompilyasiya qilinib maxsus .tpu kengaytmali fayl shaklidagi ifodalangan dastursiga aytiladi. Moduldan ixtiyoriy dastur ichida foydalanish mumkin. Moduldan foydalanish ya’ni uni aktivlashtirish uchun dasturning bosh qismida quyidagilarni keltirish zarur.
  Uses <Modul1 nomi, modul2 nomi, . . . ,moduln nomi>;
Misol:           Program SS;
Uses Crt,Graph;
Turbo-Paskal sistemasida har bir foydalanuvchi o‘z modulini yaratishi uchun yaratiladigan modul strukturasini quyidagicha tashkil kilish zarur.
  Unit <modul nomi>;
         Interface
                   . . . . .
                   {Interfeys qism- ochiq (yozuvlar) qismi}
                   . . . . .
         Implementation
                   . . . . .
                   {YOpiq (yozuvlar) qismi}
                   . . . . .
   Begin
                   . . . . .
                   {Modulning asosiy qismi}
                   . . . . .
         End.
Bu erda Unit - modulning sarlavhasi;
Interface - modulning interfeysi, ya’ni dastur va boshqa modullar uchun ochiq (ko‘rinarli) qismining boshlanishini bildiradi. Bu qismda o‘zgarmaslar, kattaliklar tiplari, protsedura va funksiyalar aniklanib kursatilgan bo‘ladi, lekin ularning butun ko‘rinishi keyingi yopiq qismda beriladi.
Implementation - modulning dastur va modullar uchun yopiq, ya’ni ko‘rinmaydigan qismining boshlanishini bildiradi. Bu erda interfeys qismda aniqlangan protsedura va funksiyalar yana bir marta ko‘rsatilishi shart (ularning sarlavhalari bir xil bo‘lishi kerak).
Initsializatsiya qismi Begin yozuvidan keyin boshlanadi, agar bu qism mavjud bo‘lmasa Begin ham bo‘lmaydi. Bu qismda boshqaruvni asosiy dasturga o‘tkizishgacha qadar bajarilishi kerak bulgan operatorlar ruyxati joylashadi.

3.Paskal biblioteka modullari
Turbo Paskal sistemasida quyidagi biblioteka modullari majud:
System - standart protsedura va funksiyalarni o‘z ichiga olgan bo‘lib, bu modul avtomatik ravishda aktivlashtirilgan bo‘ladi.
Dos - Ms Dos operatsion sistema imkoniyatlaridan foydalanuvchi protsedura va funksiyalarni o‘z ichiga olgan.
Crt - monitor ekrani va klaviatura bilan ishlash imkoniyatini yaratuvchi protseduralar to‘plamini o‘z ichiga olgan.
Graph - har xil monitor videoadapterlarini qullagan holda Kompyuter grafik imkoniyatlaridan foydalanuvchi protseduralar tuplamini o‘z ichiga oladi.
Printer - printer bilan ishlovchi kichik modul.

4.Modul tashkil qilish
Turbo Passal dasturlash vositasi yordamida har bir dastur tuzuvchi o‘z modulini yaratish imkoniga ega. Buning uchun kerkli dastur qismini yuqorida ko‘rsatilgan struktura ko‘rinishda yozish va uni kompilyatsiya qilish kerak.
Misol tariqasida ikki sonning eng katta va eng kichigini topish modulini yaratish dasturini qaraymiz. Quyidagi dastur Min(x,y) va Max(x,y) funksiyalarini o‘z ichiga olgan.
Unit Study;
Interface {Interfeys qism }
Function Min(x,y:Integer):Integer;
Function Max(x,y:Integer):Integer;
Implementation {YOpik qism}
Function Min(x,y:Integer):Integer;
Begin
If x<=y Then Min:=x Else Min:=y;
End;
Function Max(x,y:Integer):Integer;
Begin
If x>=y Then Max:=x Else Max:=y;
End;
{Inistalyatsiya qism mavjud emas}
End.
Bu modul kompilyasiya qilinib Stadu.tpu fayl nomga ega bo‘lishi kerak. Undan dasturda foydalanish uchun dastur bosh qismida Uses Stadu qatorini yozish kerak bo‘ladi.

5.O‘zgaruvchilar qiymatlarini fayldan o‘qish va faylga yozish
Kiritiladigan va chiqariladigan ma’lumotlar soni ko‘p miqdorda bo‘lsa ularni faylda saqlash dasturda qulaylik tug‘diradi. Bu ma’lumotlar oddiy matn (tekst) fayllarida saqlanadi. Fayl o‘zgaruvchisi dastur bosh qismida e’lon qilinadi, ya’ni
Type f=text;
Var fx:f;
bu erda  f -fayl tipi, oddiy matn faylni bildiradi;  fx-fayl o‘zgaruvchisi.
Kerakli fayldan ma’lumotlarni o‘qishga tayyorlash uchun Assign va Reset funksiyalari ishlatiladi.
Assign-fayl o‘zgaruvchisi bilan ososiy fayl orasida aloqa o‘rnatadi.                 Assign (fx,’c:\a\f1.txt’);
         Reset-faylni topib uni ishga tayyorlaydi.  Reset (fx);
         Bu erda    fx- fayl o‘zgaruvchisi; ‘c:\a\f1.txt’-c: diskning A katalogidagi fx.txt          fayldan o‘qishni bildiradi.
Fayldagi ma’lumotlarni o‘qish uchun Read funksiyasi ishlatiladi.
Read (<fayl o‘zgaruvchisi>, <o‘zgaruvchilar,massivlar>);
Misol.         Read (fx, x,y,z,A[i],B[I]);
Fayldan o‘zgaruvchilar yoki massivlar qiymatlarini o‘qib bo‘lgandan keyin fayl yopiladi. Faylni yopish quyidagi funksiya yordamida bajariladi.        Close (fayl o‘zgaruvchisi);  Misol. Close (fx);
Misol 1. C: diskdagi AA katalogdagi  AB fayldagi ma’lumotlarni o‘qib A va B massivlarga joylashtiring. Fayl ma’lumotlari strukturasi quyidagicha.                                                    

15.2 20.5 

20.1 25.5

. . . . . . .
ya’ni fayl strukturasi ikki ustundan iborat ma’lumotlar to‘plamidan iborat.
         Program FAB;
            Type  f=text;
            Var
                   A,B: Array[1..100] of Real;   m: Integer;
                   fxz: f;
            Begin
                   Assign(fxz,’c:\AA\AB.txt’);   Reset(fxz);
                   m:=0;
                   While not eof(fxz) do
                      Begin  m:=m+1;  Readln(fxz,A[m],B[m]);   End;    Close (fxz);
          End.
Massiv qiymatlarini biron matn fayliga yozib qo‘yish uchun Assign, Rewrite, Append, Write va Close funksiyalari ishlatiladi.
 Assign- fayl o‘zgaruvchisi bilan asosiy fayl o‘rtasida a’loqa o‘rnatadi va u quyidagicha yoziladi.
Assign(fayl o‘zgaruvchisi, diskdagi fayl joyi va nomi);
Append- Fayldan yozish uchun joy tayyorlayli.
Append(fayl o‘zgaruvchisi);
Write- o‘zgaruvchi qiymatini fayl o‘zgaruvchisiga uzatadi va faylga yozadi.    Write(fayl o‘zgaruvchisi, o‘zgaruvchilar);
Close- ochilgan faylni yopadi. Close (fayl o‘zgaruvchisi);
Misol 2. YUqoridagi C: diskdagi AA katalogdagi  AB fayldagi ma’lumotlarni A va B massivlarga o‘qib shu massiv mos elementlarini qo‘shib S massivni tashkil qiling va A,B,C massivlarini ABC nomli faylga yozing.
Fayl  ma’lumotlari strukturasi quyilagicha bo‘lsin.
i       A    B      C
1      15.2 20.5  45.7  
2      20.1 25.5  45.6
. . . . . . . . . . . .
         Program FABS;
            Type  f=text;
            Var  A,B: Array[1..100] of Real;  i,m: Integer;
                     fax: f;
            Begin
                   Assign(fax,’c:\AA\AB.txt’);   Reset(fax);
                   m:=0;
                   While not eof(fax) do
                      Begin      m:=m+1;    Readln(fax,A[m],B[m]);  End;
                       Close (fax);
                   Assign(fax,’c:\AA\ABC.txt’);   Rewrite(fax); Append(fax);
                   For i:=to m do
                     Begin  Write(fax,i,A[i],b[i],A[i]+B[i]); Writeln(fax);  End;
                   Close(fax);
         End.

4748 marta o`qildi.

Parol:
Eslab qolish.


Ro`yhatdan o`tish


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

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