linkedin facebook linkedin facebook nod32

Paskalda qism dasturlar

Muallif: Mengliyev Sh.

Qo`shilgan sana: 2015-01-13

Paskalda qism dasturlar

1.Kirish
Dasturlash jarayonida shunday holatlar bo‘ladiki, bir xil operatorlar ketma-ketligini dasturning bir necha joylarida takroran yozishga to‘g‘ri keladi. Bunday takrorlanishni yo‘qotish maqsadida dasturlashning ko‘pgina tillarida qism dastur tushunchasi kiritilgan. Ular mustaqil dastur bo‘lagi sifatida dasturning bosh qismida bir marotaba yoziladi.
Paskalь tilida qism dastur protsedura yoki funksiya ko‘rinishida beriladi. Asosiy dastur bilan protsedura orasida o‘zgaruvchilar qiymat almashuvi formal va faktik parametrlar yordamida amalga oshiriladi. Protsedura ichida yana bir necha protsedura yoki funksiya ishlatilishi mumkin. Dasturda e’lon qilingan o‘zgaruvchilar, shu dasturdagi protsedura va funksiyalarga nisbatan global deyiladi. Protsedura va funksilar ichida e’lon qilingan o‘zgaruvchilar lokal deyiladi. Ularning ta’sir doirasi shu qism dastur ichida bo‘ladi.
 2.Protseduralar
Protseduralarni e’lon qilish quyidagicha bo‘ladi.
Procedure <prots.nomi> (<formal parametrlar>);
         <o‘zgaruvchi va o‘zgarmaslarni tavsiflash qismi>
Begin
         <asosiy qism>
End;
Formal parametrlarni shu protsedura bosh qismida yoki sarlavhada e’lon qilish mumkin. Masalan.    Procedure AB (x,y: Real);
Har qanday protsedurani kichik bir dastur deb qarash mumkin. Protsedura ham dasturga o‘xshab bosh va asosiy qismlardan toshkil topadi. Bosh qismda protsedura nomi va uning parametrlari e’lon qilinadi. Asosiy qism operatorlar ketma-ketligidan tashkil topgan bo‘lib, ular Begin - End ichiga olinadi. Protsedura nomi foydalanuvchi tamonidan beriladi.
Misol.   Procedure Dr(Var x,h1,h2,z1,z2 : Real);
                            Var h,z: Real;
                            Begin
                                      h:=h1/z1+h2/z2;   z:=z1/z2;  x:=(h+z)/2;
                            End;
Bu protsedurada h1,z1,h2,z2 parametrlar qiymati protseduraga murojat qilinganda aniqlangan bo‘lishi kerak. Natijani esa x- parametr uzatadi. h va z o‘zgaruvchilar ichki o‘zgaruvchilardir. Bu protseduraga dasturdan quyidagicha murojaat qilinadi Dr(x,h1,h2,z1,z2). Protseduraga murojaat qilinganda mos parametrlar qiymati bir biriga uzatiladi. Beriladigan formal va faktik parametrlar soni teng va ular turlari bir xil bo‘lishi shart. Lekin parametrlar nomlari har xil bo‘lishi mumkin.

   3.Funksiyalar
Funksiyalardan foydalanish va ularni tashkil qilish xuddi protsedura kabi bo‘lib, u quyidagicha bo‘ladi:
   Function <f-ya nomi>(<formal parametrlar>):<f-ya turi>;
<o‘zgaruvchi va o‘zgarmaslarni tavsiflash qismi>
Begin
         <asosiy qism>
End;
Funksiyaning protseduradan farqi, unga murojat qilinganda natija faqat bitta bo‘lib, u shu funksiya nomiga uzatiladi.
Misol 1. Quyidagi hisoblashni funksiyani ishlatgan holda dasturini tuzing.

Program Kol;
  Var ncm:Real;  n,m,i: Integer;
    Function Fact (k: Integer): Integer;
               Var P,i: Integer;
       Begin
             P:=1;    For i:=1 to k do P:=P*i;
             Fact:=P;
       End;
    Begin
           Read(n,m); l:=n-m;  ncm:=Fact(n)/Fact(m)/Fact(i); 
           Write(‘ncm=’,ncm);
    End.

Misol 2. Quyidagi hisoblashni protsedurani ishlatgan holda dastursini tuzing.

Program Fun1;
  Var a,b,z,c,d,t1,t2,t3: Real;
    Procedure Th(Var x,r: Real);
               Var c: Real;
       Begin       c:=exp(2.0*x);    r:=(c-1)/(c+1);       End;
    Begin
           Read(a,b);
   th(a,t1);   c:=a-b;    th(c,t2);
           d:=Sqr(a)-Sqr(b);   th(d,t3);
           z:=(t1+Sqr(t2))/Sqrt(t3);
           Write(‘z=’,z:10:3);
    End.

   4.Ayrim nostandart protsedura va funksiyalar
Paskalь tilida bir qancha maxsus protsedura va funksiyalar mavjud bo‘lib, ular quyidagi guruhlarga bo‘linadi:

  • qatorni qayta ishlash;
  • fayllar bilan ishlash;
  • dinamik o‘zgaruvchilar uchun xotirani boshqarish;
  • arifmetik funksiyalar;
  • ekran bilan ishlash.

     Ularning ayrimlarini ko‘rib chiqamiz:
Halt- dasturni bajarishdan to‘xtatish;
Odd(i)- I-toq bo‘lsa “True” aks holda “False” qiymat oladi;
Edit- bajarilayotgan blokdan chiqish;
Random- 0 dan 1 gacha bo‘lgan sonni tasoddifan olish;
GotoXY(x,y)- kursorni ko‘rsatilgan joyga qo‘yish;
ClrScr- ekranni tozalab, kursorni ekran boshiga qo‘yish;
Trunc- argumentning butun qismi:
Str(I;Var S:String)- raqamni simvolga o‘tkazish (I-ifoda yoki o‘zgaruvchi);
Val(S:String; Var P;ko:Integer)- simvolni raqamga o‘tkazish (P-o‘zgaruvchi);
Length (S:String)- qator uzunligini aniqlash.
Pos(st1,st) - qatordagi qator qismi holatini aniqlash.
Misol: st:=’Toshkent’; st1:=’kent’; p:=pos(st1,st); Javob: p=4. Agar izlanayotgan qator qism qatorda yo‘q bo‘lsa qiymat nulga teng bo‘ladi.
Copy(st,m,n) - qatordan fragment kesib oladi.
Misol: st:=’Toshkent’; p:=Copy(st,4,4);   Javob: p=’kent’.
Delete(st,m,n) - qatordan fragment kesib olib tashlaydi.
Misol: st:=’Toshkent’; p:=Delete(st,4,4);   Javob: p=’Tosh’.

1911 marta o`qildi.

Foydalanuvchi ismi: Nizomiddin 203-guruh
Qo`shilgan sana: 2015-04-18

yaxshi

Foydalanuvchi ismi: Brkchanov Azamat
Qo`shilgan sana: 2016-05-03

Saytga gap yõq

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
счетчик посещений