3.
Murakkab takrorlanish jarayonlari.
Yuqorida kеltirilgan opеratorlar asosida murakkab takrorlanishlar tashkil qilish
mumkin. Agar takrorlanish jarayonlarining tanasi takrorlanish strukturasidan tashkil
topgan bo’lsa, u holda bunday takrorlanish “ichma-ich joylashgan yoki murakkab” dеb
ataladi, ya'ni boshqacha qilib aytganda, bitta takrorlanish ichiga bir yoki bir nеcha boshqa
takrorlanishlar kirsa murakkab tarkibli takrorlanishli dasturlar hosil bo’ladi. Bunday
murakkab tarkibli jarayon (21a, b-rasm) da kеltirilgan.
Boshqa takrorlanish jarayonlarini o’z ichiga olgan takrorlanish “tashqi takrorlanish”
dеb ataladi.
Takrorlanish jarayonlarining ichida joylashgan takrorlanish “ichki takrorlanish” dеb
ataladi.
Sinf kompanentalari soda holda tiplangan ma’lumotlar va funksiyalardan iborat
bo’ladi. Figurali qavslarga olingan kompanentalar ro’yxati sinf tanasi deb ataladi. Sinf
tegishli funksiyalar yoki sinf funksiyalari deb ataladi.
Sinf kaliti sifatida Struct xizmatchi so’zi ishlatilishi mumkin. Masalan quyidagi
konstruksiya kompleks son sinfini kiritadi:
struct complex
{
double real;
double imag;
void define (double re=0.0, double im=0.0)
{
real=re; imag=im;
}
void display (void)
{
cout<=”real=”<
cout<=”imag=”<
}
};
Strukturadan bu sinfning farqi shuki, kompanenta ma’lumotlardan (real, imag)
tashqi ikkita kompanenta funksiya (define() va display ()) kiritilgan.
Bu kiritilgan sinf o’zgaruvchilar deb qaralishi mumkin. Bu tiplar yordamida
konkret obyektlarni tavsiflash mumkin:
Misol uchun:
complex x,y;
complex dim[8];
Sinfga tegishli obyektlar quyidagicha tavsiflanadi:
Sinf – nomi.
Obyekt-nomi.
Dasturda obyekt kompanentasiga quyidagicha murojaat qilish mumkin:
Sinf-nomi. Obyekt- nomi::kompanenta-nomi yoki soddaroq xolda Obyekt-nomi.
Element-nomi
Misol uchun:
x.real=1.24;
x.imag=0.0;
dim[3]. Real=0.25;
dim[3]. Imag=0.0;
Sinfga tegishli funkstiyalarga quyidagicha murojat qilinadi:
ob’ekt-nomi. funkstiya-nomi
Misol uchun:
X. define(0.9) (Bu holda real=0.9 va imag=0.0)
X. define(4.3,20.0) (Bu holda kompleks son 4.3+i*20.0)
Display funkstiyasi ekranda kompleks son qiymatlarini tasvirlaydi.
Kompanenta o’zgaruvchilar va kompanenta funkstiyalar. Sinf kompanenta
o’zgaruvchilari sifatida o’zgaruvchilar , massivlar, ko’rsatkichlar ishlatilishi mumkin.
Elementlar ta’riflanganda inistializastiya kilish mumkin emas. Buning sababi shuki sinf
uchun xotiradan joy ajratilmaydi. Kompanenta elementlariga kompanenta funkstiyalar
orkali murojat qilinganda faqat nomlari ishlatiladi Sinfdan tashqarida sinf elementlariga
emas ob’ekt elementlariga murojat kilish mumkin . Bu murojat ikki xil bo’lishi
mumkindir.
Ob’ekt- nomi . Element - nomi.
Sinf elementlari sinfga tegishli funkstiyalarida ishlatilishidan oldin ta’riflangan
bo’lishi shart emas. Xuddi shunday bir funkstiyadan xali ta’rifi berilmagan ikkinchi
funkstiyaga murojaat kilish mumkin.
Komponentalarga murojaat xukuklari. Komponentalarga murojaat xukuki murojaat
spestifikatorlari yordamida boshkariladi. Bu spestifikatorlar:
Protected – ximoyalangan;
Private – xususiy;
Public – umumiy;
Sinf ta’riflangandan so’ng, shu sinf tipidagi o’zgaruvchilarni(ob’ektlarni)
quyidagicha ta’riflash mumkin:
class_name object_one, object_two, object_three;
Quyidagi misolda
Do'stlaringiz bilan baham: |