• Dasturlash tili tarixi
  • Metodist-ta’lim-tarbiya metodlari bo’yicha mutaxassis. Dasturlarni ishlab chiqishda va amalga oshirish jarayonida metodik masalalarni hal etib boradi




    Download 43,82 Kb.
    bet6/11
    Sana18.01.2024
    Hajmi43,82 Kb.
    #140413
    1   2   3   4   5   6   7   8   9   10   11
    Bog'liq
    “Paskal dasturlash tilida protseduralar bilan ishlash”

    Metodist-ta’lim-tarbiya metodlari bo’yicha mutaxassis. Dasturlarni ishlab chiqishda va amalga oshirish jarayonida metodik masalalarni hal etib boradi.




    II BOB. INTERFAOL METODLARDAN FOYDALANISH METODIKASI
    2.1. “Paskal dasturlash tilida protseduralar bilan ishlash” mavzusini o’qitishda interfaol metodlardan foydalanish metodikasi


    Paskal (talaff. délfi) — dasturlash tillaridan biri. Borland firmasi tomonidan ishlab chiqarilgan. Paskal dasturlash tili ishlatiladi va avvaldan Borland Paskal paketi tarkibiga kiritilgan. Shu bilan bir qatorda 2003-yildan hozirgacha qoʻllanilayotgan shu nomga ega bo'lgan. Object Pascal — Pascal tilidan bir qancha kengaytirishlar va toʻldirishlar orqali kelib chiqqan boʻlib, u ob’yektga yoʻnaltirilgan dasturlash tili hisoblanadi. Avvaldan ushbu dasturlash muhiti faqatgina Microsoft Windows Operatsiyon tizimi uchun dasturlar yaratishga mo'ljallangan, keyinchalik esa GNU/Linux hamda Kylix tizimlari uchun moslashtirildi, lekin 2002-yilgi Kylix 3 versiyasidan so'ng ishlab chiqarish to'xtatildi, ko'p o'tmay esa Microsoft.NET tizimini qo'llab quvvatlashi to'g'risida e'lon qilindi.

    Lazarus proekti amaliyotidagi (Free Pascal) dasturlash tili Paskal dasturlash muhitida GNU/Linux, Mac OS X va Windows CE platformalari uchun dasturlar yaratishga imkon beradi.

    Dasturlash tili tarixi

    Paskal — Paskal dasturlash tilining rivojlangan davomchisi boʻlmish Turbo Paskal tilining rivojlanishi natijasi hisoblanadi. Paskal tilida butunlay Proceduralar yordamida dasturlar tuzilgan. Turbo Paskal 5.5-sonidan boshlab obyektga moʻljallangan xususiyatlarni qoʻshdi, paskal — obyektga moʻljallangan dasturlash tili esa Introspekiyani, yaʼni metodli klasslari xususiyatlari hamda ulardan tashkil topuvchilarining kompilyatsiya kodi tarkibiga qoʻshdi.

    Protsedura - qism dasturi. Protsedura qism dasturda bir necha natija hosil qilish kerak bo‘lgan hollarda ishlatiladi va u asosiy dasturda struktura bo‘yicha qism dastur bo‘limida, yani o‘zgaruvchilar va operatorlar bloki bo‘limlari orasida tasvirlanadi. Har bir protsedurani tasvirlash sarlavhadan boshlanadi. Protsedura sarlavhasi va umumiy ko‘rinishi quyidagicha bo‘ladi: PROCEDURE [()] ; end; Bu yerda PROCEDURE – xizmatchi so‘z; ­ protseduraning nomi; ­ tiplari ko‘rsatilgan berilganlar va natijalarni ifodalaydigan nomlar tiplari bilan sanab o‘tiladi. Berilganlar quyidagicha yoziladi: ::=:[;:…]; Berilganlarni parametr qiymat deb ham ataladi. Natijalarni ifodalaydigan nomlar quyidagicha yoziladi: ::=:[;:…]; Natijalarni parametr o‘zgaruvchi deb ham ataladi. Soxta parametrlar ro‘yxatida parametr protsedura va parametr funksiyalar ham bo‘lishi mumkin. Protsedura qism dasturiga murojaat Protsedurani bajarish uchun asosiy dasturning kerakli joyidan unga murojaat qilish kerak. Murojaat quyidagicha amalga oshiriladi: [()]; Bunda haqiqiy parametrlar ro‘yxati va protseduradagi soxta parametrlar ro‘yxati orasida to‘liq moslik bo‘lishi shart, yani ular soni bir xil bo‘lishi, kelish tartiblari mos tushishi va tiplari ham mos ravishda bir xil bo‘lishi kerak. Ro‘yxatda parametrlar vergul bilan ajratiladi. Protsedura chaqirilganda soxta parametrlar o‘rniga haqiqiy parametrlar qo‘yiladi. Berilganlar(parametr qiymat) va natijalar(parametr o‘zgaruvchi)ni yuqoridagidek ajratishni quyidagicha tushuntirish mumkin: Berilganlar protsedura ichida foydalanish uchun kerak, yani protsedura asosiy dasturdan chaqirilganda berilganlar(soxta parametrlar) asosiy dasturdan kelayotgan aniq parametrlar bilan almashtiriladi. Ushbu parametrlar protsedura ichida o‘zgarishi ham mumkin, bu o‘zgarish protseduradan chiqishda hisobga olinmaydi. Natijalar(parametr o‘zgaruvchi) ro‘yxatidagi nomlarga esa asosiy dasturdan qiymat uzatilishi bilan bir qatorda protsedurada hosil bo‘lgan natijani asosiy dasturga uzatiladi ham. Masalan, ushbu dasturni karaylik: Program PR; X:integer; Procedure izm(y:integer); Begin Y:=1 end; Begin X:=0; izm(x); Writeln(x); end. Ushbu dasturda protseduradagi y:=1 o‘zgarish asosiy dasturga qaytarilmaydi, chunki soxta o‘zgaruvchi y var so‘zi bilan tavsiflangan emas, shuning uchun x ning uz qiymati, yani 0 qiymat bosmaga chiqariladi. Endi dasturni quyidagicha o‘zgartiramiz: Program PR; X:integer; Procedure izm(var y:integer); Begin Y:=1 end; Begin X:=0; izm(x); Writeln(x); end. O‘zgaruvchi var so‘zi bilan tavsiflanganda va asosiy dasturdan murojaat qilinganda ularning qiymati emas, balki adreslari beriladi. Natijada soxta parametrlarning hamma o‘zgarishlari aniq parametrlarga ham tegishli bo‘ladi. Shuning uchun endi ushbu dastur bajarilganda bosmaga x ning 1 ga teng qiymati chiqariladi. Endi mavzu boshida keltirilgan dasturni protseduradan foydalanib tuzaylik: Program line1; Var i:integer; Procedure line(n:integer;c:char); Begin For i:=1 to n do Write(c); writeln; end; Begin Line(50,’*’); Line(40,’­‘); Line(50,’*’); Line(40,’+’); Line(50,’=’); end. Endi ushbu dasturdagi protsedurada 2 ta parametr qiymat bor, natija esa asosiy dasturga qaytarilmaydi, balki proseduraning o‘zida bosmaga chiqarish tashkil etilgan. Parametrsiz protseduralar Protseduraning umumiy ko‘rinishidan ko‘rinib turibdiki, protsedura parametrsiz ham bo‘lishi mumkin. U holda protsedura sarlavhasida uning faqat nomi bo‘ladi: Procedure ; Bunday hollarda protsedura ichida ishlatiladigan malumotlar oldindan asosiy dasturda aniqlangan bo‘lishi kerak. Masalan, bizga ikkita uchburchak yuzini uning tomonlari orqali hisoblash kerak bo‘lsin. Dasturni quyidagicha tuzish mumkin: Program s; Var a1,b1,c1,a2,b2,c2,s,a,b,c,p:real; Procedure str; Begin P:=(a+b+c)/2; s:=sqrt(p*(p­a)*(p­b)*(p­c)); write(s); end; Begin read(a1,b1,c1); a:=a1;b:=b1; c:=c1; str; read(a2,b2,c2); a:=a2;b:=b2; c:=c2; str; end. Ushbu dasturda p o‘zgaruvchi faqat protsedura ichida kerak bo‘lganligi uchun u shu protsedura uchun lokal hisoblanadi. Uni protsedura ichida elon kilsa ham bular edi. Yuqoridagi dasturni parametrlar ishlatib quyidagicha ham tuzish mumkin: Program s2; Var a1,b1,c1,a2,b2,c2,s1,s2:real; Procedure str1(a,b,c:real; var s:real); Var p:real; Begin P:=(a+b+c)/2; S:=sqrt(p*(p­a)*(p­b)*(p­c)); end; Begin Read(a1,b1,c1); str1(a1,b1,c1,s1); writeln(s1); Read(a2,b2,c2); str1(a2,b2,c2,s2); writeln(s2); End. Protseduraga parametr sifatida massivlarni ham uzatish mumkin. Lekin protsedurada massivni quyidagicha tavsiflash mumkin emas: Procedure umnoj(a:array[1..10,1..10] of real); Bu shuning bilan bog‘liqki, prosedura etalonida parametr qiymat va parametr o‘zgaruvchilar faqat tip identifikatori bilan ishlatiladi. Shuning uchun bunday hollarda quyidagicha yul to‘tish mumkin: Const n=10; Type matrix=array[1..n,1..0] of real; Endi protsedura sarlavhasi quyidagicha yozilishi mumkin: Procedure umnoj(a:matrix); Endi misol sifatida massiv elementlari ichidan eng kattasini topish uchun protseduradan foydalanib dastur tuzaylik: Program s3; Const n=20; Type mas=array[1..n] of real; Var max:real; a: mas; j:integer; Procedure max1(b:mas; var m:real); Var i: integer; Begin M:=b[1]; for i:=2 to n do If b[i]>m then m:=b[i]; end; Begin For j:=1 to n do read(a[j]); Max(a;max); writeln(‘max=’,max); end. Ushbu dasturda n soni protsedura ichida ham, asosiy dasturda ham ishlaydi, shuning uchun uni parametr sifatida uzatib utirish shart emas. Agar bordiyu protsedura bir necha marta chaqirilib, har birida elementlar soni har xil bo‘lganida parametr sifatida kiritish zarur bo‘lgan bular edi. Protseduradan foydalanganda quyidagi izoxlarni hisobga olgan ma’qul:


    Download 43,82 Kb.
    1   2   3   4   5   6   7   8   9   10   11




    Download 43,82 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Metodist-ta’lim-tarbiya metodlari bo’yicha mutaxassis. Dasturlarni ishlab chiqishda va amalga oshirish jarayonida metodik masalalarni hal etib boradi

    Download 43,82 Kb.