120
17
Nazorat savollari
1.
Tanlash shartli operatori
2.
Takrorlanish operatori 3 xil shakli
3.
O`tish operatori GOTO
17
Richard L. Halterman Fundamentals of C++ Programming. Copyright © 2008–2016. All rights reserved. pg.129-131
121
Mavzu-13:
Dasturlashda funktsiya va modullarni qoʼllash
Modullar
va modulli dasturlash
Real murakkab dasturlash ta‘minoti o‘zida monolit dasturlarni emas.
Balki dasturlash tizimlarini namoyon qiladi. Dasturlash tizimi- bu
gi‘shtlardan—tizim komponentlaridan quriluvchi konstruksiyadir. Bunday
komponentlarni qurish metodikasi har xi bo‘lishi mumkin.
Shu kabi
metodlardan biri
, modul dasturlash deb nomlangan yondashuvga asoslangan.
Modullardan quriladigan dasturlash tizimida—modul sistemada—har bir
modul umumiy konstruksiyaning g‘ishtchasi sifatida, formal bo‘lmagan
holda o‘zining belgilanishi bilan, formal holda esa o‘zining interfeysi
bilan xarakterlanadi. Modul belgisini qoida bo‘yicha, modul tizim uchun
modul bo‘lib realizatsiya qilinadigan funksiyalarni formal bo‘lmagan holda,
tabiiy tillarida yoziladi псевдоестественном. Modul interfeysi modul bo‘lib
realizatsiya qilinadigan va bu moduldan tashqari modul tizimni boshqa
modullarida ham qo‘llaniladigan obyektlar spetsifikatsiyasida izga tushadi.
Modul eksporti bu—umumiy modul tizim uchun modul berilganlari
namoyish bo‘luvchidir, import esa- modulni modul tizimlarni boshqa
modullaridan talab qilinayotgan narsasidir. Modul eksportida
eksportirlanadigan obyektlar kiritiladi. (turlar, o‘zgarmaslar, o‘zgaruvchi va
dasturostilar).
Dasturiy tizim uzoq vaqt va xodimlar kollektivi bilan yaratilishi
mumkin, shuning uchun modul shunday tizimni komponentasi kabi qayta
ishlashni erkinligi va nazorati talabini qoniqtirishi kerak.
modulni interfeysi
va belgilari fiksirlangandan so‘ng, uning realizatsiyasi boshqa modullar
realizatsiyasiga halaqit qilmasligi kerak. modul xatoligi ham boshqa
modullar xatoligi bilan shartlanmagan bo‘lishi kerak—xatolik vaqtida,
modul o‘zini belgisini to‘g‘ri realizatsiya qilayotganiga va o‘zining
obyektlarini interfeys bilan mos ravishda eksportlayotganiga ishonch hosil
qilish kerak, importga kelsak, u holda xatolik vaqtida importlanayotgan
obyektlar xossalar interfeysida fiksirlanganlarni qoniqtiruvchi oddiy
psevdoaylana yaratish mumkin. Modul modul sistemaning qurilayotgan
elementi sifatida, uni turli hil modul tizimlarda foydalana
olish mumkin
bo‘lishi kerak, faqatgina uni belgisi va interfeysi ushbu modul tizimda
uni qo‘llanilishiga mos bo‘lsa bas. Eksportlanayotgan obyekt realizatsiya
uchun kerak bo‘lgan lokal obyektlarga ham ega bo‘lishi mumkinligidan—
ular boshqa modullardan yashirin va ularda qo‘llanila olmaydi.
Foydalanuvchi modullarini yozish va ularning obyektlarini dasturlarda
qo‘llash quyidagi sabablarga ko‘ra effektiv dasturlashni usullaridan biri
hisoblanadi.
Birinchidan, modulda ba‘zi ―predmetli‖ sohani bazaviy tushunchalarini
olib o‘tuvchisi hisoblangan obyektlar aniqlanadi, va shu modul bu
predmetli sohaga kontekst beradi. Shuning uchun bu saohada ishlab
chiqishni turli algoritmlarini
bajaruvchi dasturlar, tayyorlardan va muhimi
122
bazaviy obyektlarni bir xil aniqlanishlaridan foydalanishlari mumkin.
Demak, masalan Так,
например
, в системном модуле
Graph
tizimli
modulida, bir qancha o'nlab elementar grafik amallarni realizatsiya qiluvchi
grafik funksiyalar va jarayonlar va bir qancha o‘nlab xatolarni, rang va
chiziq ko‘rinishi va hk kodini bildiruvchi o‘zgarmaslar aniqlandi.
Ikkinchidan, modullar ham, dasturlarda qatnashuvchilar ham bog‘liq
bo‘lmagan ravishda kompilyatsiya qilinadi. (modul u dasturda
qo‘llanilishidan avval kompilyatsiya qilingan bo‘lishi kerak). ushbu
kompiliyatsiya yordamida katta dasturlar sezilarli qisqaradi,
muhimi ularni
ko‘p marta kompiliyatsiya qilishda xatoliklarda.
Modulning uchinchi asosiy xossasi, ular eksportlayotgan obyektlarni
realizatsiyasi va namoyishini berkitadi va ―inkapsulyatsiya‖ qiladi, shunday
ekan ularning modulda bo‘lishi mumkin bo‘lgan o‘zgarishi, foydalanuvchi
dasturini hech qanday qayta ishlanishini talab qilmaydi.
Barcha modullar, ular tomonidan aniqlanadigan o‘zgarmaslar,
o‘zgaruvchilar, turlar va dasturostilar uchun ularni belgilarini
tushunish va
esda saqlashni yengillashtiradigan mnemonik nomlarni qo‘llaydi.
Modul ba‘zi tizimlarda bir qancha qismlardan tashkil topadi:
-
modul mavzusi
;
- interfeys qism;
- realizatsiya qilingan qismlar;
- initsializatsiyanlangan qism.
Bu qismlarni har biri yopiq dasturiy fragment hisoblanadi,
modulda
yuqorida ko‘rsatilgan tartibda faqat bir marta takrorlanadi. Quyida modulni
strukturasi sxemasi, tarkibi va har bir qism belgilariga qarashli
kommentariyalari berilgan.
Unit <имя модуля
>;{ modul mavzusi}
Interface
{modulli interfeys seksiyasi }
Uses < eksportlanayotgan obyektlar spetsifikatsiyasida qo‘llaniladigan
modullar nomlari>;
Implementation
Uses
;
< keyingi modulni eksportlanadigan funksiya va jarayonlar yozilishida
qo‘llanadigan modulning lokal obyektlari yozilishi (o‘zgarmas, tur,
o‘zgaruchilar, funksiyalar va jarayonlar), >
begin
{initsializatsiya seksiyasi}
end
modulni qo‘llanilishiga bir qancha tipik namunalar keltiramiz:
1. modul, ba‘zi predmet sohani tushunchasini xarakterlaydigan, ba‘zi
nomlangan yozilgan obyektlar to‘plami kabi qo‘llanilishi mumkin. Bunday
modul shu soha nilan bog‘langan barcha masalalarda qo‘llanadi va kerakli
tushunchalar tizimini unifitsirlaydi. Planimetriya
masalarini yechib, modul
yordamida asosiy geometrik shakllarni namoyishini unifitsirlash mumkin:
123
unit Geomfig;
interface
type point =record x, y: real end;
segment = record a, b :
point end;
triangle =record a, b, c: point end;
circum = record centre : point; rad:real end
{boshqa shakllarni yozilishi}
const pi;
pi = 3.1415926; twopi = 2
implementation
end
bu yerda modul vazifasi, kerakli tabiatni berilganlari namoyishi bilan
bog‘langan turlarni yozilishi ekanligi va balki o‘zgarmaslarni umumiy
ishlari uchun kerakli bo‘lganligidan realizatsiya bo‘limi yo‘q. Aniq
dasturda (yoki modulda) yuqorida ko‘rsatilgan tur o‘zgaruvchilarini
kiritish
mumkin
, dastur boshida ko‘rsatish yoki modul interfeysida uses
Do'stlaringiz bilan baham: