Microsoft Word mustaqil ish1



Yüklə 80,01 Kb.
Pdf görüntüsü
tarix20.11.2023
ölçüsü80,01 Kb.
#165068
behruz das mus1



O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA 
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI 
MUHAMMAD AL-XORAZMIY NOMIDAGI 
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI 
QARSHI FILIALI 
KOMPYUTER INJINERINGI FAKULTETI 
1-BOSQICH ATS 12-23 GURUH TALABASINING 
“DASTURLASH 1” fanidan 
MUSTAQIL ISHI 
Bajardi: 
G’afurov B 
Qabul qildi:
Zohidov J 


Mustaqil ishi 1
Mavzu-1:
Chiziqli jarayonlarni tashkil etish (Algoritm va
dastur).
Har qanday murakkab algoritmni ham uch asosiy struktura yordamida
tasvirlash mumkin. Bular ketma-ketlik, ayri va takrorlash strukturalaridir. Ushbu
strukturalar asosida chiziqli, tarmoqlanuvchi va takrorlanuvchi hisoblash
jarayonlarining algoritmlarini tuzish mumkin. Umuman olganda, algoritmlarni
shartli ravishda quyidagi turlarga ajratish mumkin:
- chiziqli algoritmlar;
- tarmoqlanuvchi algoritmlar;
- takrorlanuvchi algoritmlar;
- ichma-ich joylashgan takrorlanuvchi algoritmlar;
- rekurrent algoritmlar;
- takrorlanishlar soni oldindan no’malum algoritmlar;
- ketma-ket yaqinlashuvchi algoritmlar.
Faqat ketma-ket bajariladigan amallardan tashkil topgan algoritmlarga -
chiziqli algoritmlar deyiladi. Bunday algoritmni ifodalash uchun ketma-ketlik
strukturasi ishlatiladi. Strukturada bajariladigan amal mos keluvchi shakl bilan
ko‘rsatiladi. Chiziqli algoritmlar blok-sxemasining umumiy tuzilishi 1.4-rasmda
keltirilgan.
1-misol. Uchburchak tomonlarining uzunligi bilan berilgan. Uchburchakka
ichki r va tashqi R chizilgan aylanalar radiuslarini hisoblang.
Ichki chizilgan aylana radiusi r = (a+b+c)/2S, tashqi chizilgan aylana
radiusi R= 4S
abc
formulalar orqali hisoblanadi. Bu yerda S - uchburchakning yuzi, a,
b, c – uchburchak tomonlarining uzunliklari. Masala echimining blok-sxemasi
Chiziqli algoritmlar. Bu turdagi algoritmlarda hech qanday shart tekshirilmaydi. 
Shu sababli barcha ko‘rsatmalar ketmaket bajarib boriladi. «G‘ishtlar sonini 
hisob!ash», «Doira yuzini
hisoblash» algoritmlari chiziqli algoritmlarga misol bo'ladi. Le- kin hayotimizdagi 
juda ko‘p jarayonlar shartlar asosida bosh- qariladi.
Mavzu-2:
Tarmoqlanuvchi jarayonlarni tashkil etish
(Algoritm va dastur).
Tarmoqlanuvchi algoritm - deb ma’lum shartlarga muvofiq bajariladigan 
ko‘rsatmalardan tuzilgan algoritmga aytiladi.
Takrorlanuvchi algoritm biron bir shart tekshirilishi yoki biron parametrning har 
xil qiymatlari asosida algoritmda takrorlanish yuz beradigan jarayonlarga aytiladi.
Algoritmlarni turli usullarda tasvirlash mumkin. Masalan: so‘z bilan ifodalash; 


formulalarda berish; blok-sxemalarda tasvirlash; dastur shaklida ifodalash va 
boshqalar.
Algoritmlarni blok-sxema ko‘rinishda tasvirlash qulay va tushunarli bo‘lgani 
uchun ko‘p ishlatiladi. Bunda algoritmdagi har bir ko‘rsatma o‘z shakliga ega. 
Masalan: parallelogramm ko‘rinishdagi belgi ma’lumotlarni kiritish va chiqarish; 
to‘g‘ri to‘rtburchak belgisi hisoblash jarayonini; romb belgisi shartlarning 
tekshirilishini bildiradi.
Hayotimizda algoritmlarni turli sohalarda ba’zan bilgan holda ba’zan esa bilmagan 
holda ishlatamiz. Algoritmlar faqat matematik xarakterga ega bo‘lmasdan ularni 
oddiy hayotiy turmushimizda ham ko‘p qo‘llaymiz. Masalan, ovqat tayyorlash, 
choy damlash, biror berilgan ishni bajarish va boshqa. Bu ishlarni bajarishda 
ma’lum bo‘lgan aniq ko‘rsatmalarni ketma ket bajaramiz. Agar bu ko‘rsatmalar 
aniq bir ketma ketlik tartibida bajarilmasa kerakli natijani olaolmaymiz. Misol 
tariqasida matematik xarakterga ega bo‘lmagan butelbrod tayyorlash algoritmini 
ko‘rib chiqaylik. Bunda boshlang‘ich berilganlar: non, kolbasa va pishloq. Natija: 
butelbrod. Butelbrod tayyorlash algoritmi:
• non bo‘lagini kesib olish;
• kolbasa va pishloq bo‘lagini kesib olish;
• kolbasa va pishloq bo‘lagini non bo‘lagi orasiga qo‘yish.
Agar bu jarayonning ketma ketlik o‘rinlari almashsa yoki biror bir bosqich amalga 
oshirilmasa natija bo‘lmaydi.
Algoritmik tillar Masalani echish algoritmi ishlab chiqilgandan so‘ng dastur 
tuziladi.
Dastur - bu berilgan algoritmga asoslangan biror bir algoritmik tilda yozilgan 
ko‘rsatmalar, ya’ni buyruqlar yoki operatorlar to‘plamidir.
Dasturlash - esa bu dastur tuzish jarayoni bo‘lib, u quyidagi bosqichlardan 
iboratdir:
• dasturga bo‘lgan talablar;
• qo‘yilgan masala algoritmini tanlash yoki ishlab chiqish;
• dastur kodlarini (matnlari, buyruqlarni) yozish;
• dasturni to‘g‘rilash va test o‘tkazish.
Hozirgi kunda juda ko‘plab algoritmik tillar mavjud. Ularga dasturlash tillari deb 
ataymiz. Algoritmik til - algoritmlarni bir xil va aniq yozish uchun ishlatiladigan 
belgilashlar va qoidalar tizimidir. Algoritmik til oddiy tilga yaqin bo‘lib u 
matematik belgilarni o‘z ichiga oladi. Tuzilgan algoritmlarni to‘g‘ridan-to‘g‘ri 
mashinaga berib bo‘lmaydi, shu sababli yozilgan algoritmni biror bir algoritmik 
tilga o‘tkazish zarur. Har qanday algoritmik til o‘z qo‘llanilish sohasiga ega. 
Masalan, muxandislik hisob ishlarini bajarishda Paskal, Beysik va Fortran. Iqtisod 
masalalarini echishda Paskal va Kobol. Mantiqiy dasturlash uchun Prolog va 


boshqalar. O‘quv jarayonlari uchun Beysik, Paskal va boshqalar.
Paskal, Fortran va Kobol tillari universal tillardan hisoblanadi. Assembler tili 
mashina tiliga ancha yaqin til bo‘lib o‘rta darajadagi tildir. Algoritmik til inson 
tillariga qancha yaqin bo‘lsa, u tilga yuqori darajali til deyiladi. Mashina tili esa 
eng pastki darajali tildir.
Tarmoqlanuvchi jarayonlarni dasturlash - Tarmoqlanuvchi hisoblash jarayonlarini 
algoritmlash va dasturlash. Ko‘pgina masalalami yechishda ba’zi bir jarayonlar 
ma’him shart yoki shartlaming qo‘yilishiga nisbatan bajariladi. Bunday jarayonlar 
tarmoqlanuvchi jarayonlar deb yuritiladi va bu jarayonlaming algoritmik tavsiflari 
bilan awalgi boblarda tanishgan edik.
Tarmoqlanuvchi hisoblash jarayonlari oddiy va murakkab boTishi mumkin. Bu esa 
jarayondagi tarmoqlar soniga bogTiq. MaTum bir tarmoqlanuvchi jarayon 
tarkibida yana tarmoqlanishlar boTishi mumkin. Bunday tarmoqlanishlari bor 
boTgan hisoblash jarayonlari murakkab tarmoqlanuvchi hisoblash jarayonlari deb 
ataladi.
C++ tilida tarmoqlanuvchi jarayonlarni dasturlash uchun shartsiz, shartli oTish va 
tanlash operatorlaridan foydalaniladi: IF, CASE.
Mavzu-3:
Takrorlanuvchi jarayonlarni tashkil etish
(Algoritm va dastur).
Hozirgi paytda o’nlik sanoq tizimida arifmetik amallarni bajarish usullari hisoblash 
algoritmlariga soddagina misol bo’la oladi xolos. Hozirgi zamon nuqtai nazaridan 
algoritm tushunchasi nimani ifodalaydi? Ma’lumki, inson kundalik turmushida 
turli-tuman ishlarni bajaradi. Har bir ishni bajarishda esa bir qancha elementar 
(mayda) ishlarni ketma-ket amalga oshirishga to’g’ri keladi. Mana shu ketma-
ketlikning o’zi bajariladigan ishning algoritmidir. Ammo bu ketma-ketlikka e’tibor 
bersak, biz ijro etayotgan elementar ishlar ma’lum qoida bo’yicha bajarilishi kerak 
bo’lgan ketma-ketlikdan iborat ekanligini ko’ramiz. Agar bu ketma-ketlikdagi 
qoidani buzsak, maqsadga erishmasligimiz mumkin.
Masalan, shaxmat o’yinini boshlashda shohni yura olmaymiz, chunki bu o’yin 
algoritmida yurishni boshqa bir shaxmat donalaridan boshlash kerak yoki palov 
pishirish algoritmida birinchi navbatda qozonga suv solib ko’ringchi, osh qanday 
bo’lar ekan. Berilgan matematik ifodani soddalashtirishda amallarning bajarilish 
ketma-ketligiga e’tibor bermaslik noto’g’ri natijaga olib kelishi barchaga ma’lum.
Demak ishni, ya’ni qo’yilgan masalani bajarishga mayda elementar ishlarni 
muayyan ketma-ketlikda ijro etish orqali erishiladi. Bundan ko’rinib turibdiki, har 
bir ish qandaydir algoritmning bajarilishidan iboratdir. Algoritmni bajaruvchi 
algoritm ijrochisidir. Algoritmning ijrochisi masalaning qanday qo’yilishiga e’tibor 
bermagan holda natijaga erishishi mumkin. Buning uchun u faqat avvaldan ma’lum 


qoida va ko’rsatmalarni qat’iy bajarishi shart. Bu esa algoritmning juda muhim 
xususiyatlaridan biridir.
Umuman, ajgoritmlarni ikki guruhga ajratish mumkin. Birinchi guruh algoritmning 
ijrochisi faqat inson bo’lishi mumkin ( masalan palovni faqat inson pishira oladi), 
ikkinchi guruh algoritmlarning ijrochisi ham inson, ham EHM bo’lishi mumkin 
(faqat aqliy mehnat bilan bog’liq bo’lgan masalalar). Ikkinchi guruh 
algorimtlarning ijrochisini EHM zimmasiga yuklash mumkin. Buning uchun 
algoritmni EHM tushunadigan biror tilda yozib, uni mashina xotirasiga kiritish 
kifoya.
Shunday qilib, biz algoritm deganda, berilgan masalani yechish uchun ma’lum 
tartib bilan bajarilishi kerak bo’lgan chekli sondagi buyruqlar ketma-ketligini 
tushunamiz.
Biror sohaga tegishli masalani yechish algoritmini tuzish algoritm tuzuvchidan shu 
sohani mukammal bilgan holda, qo’yilgan masalani chuqur tahlil qilishni talab 
qiladi. Bunda masalani yechish uchun kerak bo’lgan ishlarning rejasini tuza bilish 
muhim ahamiyatga ega. Shuningdek, masalani yechishda ishtirok etadigan 
ob’ektlarning qaysilari boshlang’ich ma’lumot va qaysilari natijaligini aniqlash, 
ular o’rtasidagi o’zaro bog’lanishni aniq va to’la ko’rsata bilish, yoki dastur 
(programma) tuzuvchilar tili bilan aytganda, masalaning ma’lumotlar modelini 
berish lozim.
Berilgan masala algoritmini yozishning turli usullari mavjud bo’lib, ular qatoriga 
so’z bilan, bloktarh (bloksxema) shaklida, formulalar, operatorlar yordamida, 
algoritmik yoki dasturlash tillarida yozish va hokazolarni kiritish mumkin.
Endi biror usulda tuzilgan algoritmning ayrim xossalari va algoritmga qo’yilgan 
ba’zi bir talablarni ko’rib chiqaylik.
1. Algoritm har doim to’liq bir qiymatlidir, ya’ni uni bir xil boshlang’ich qiymatlar 
bilan ko’p marta qo’llash har doim bir xil natija beradi.
2. Algoritm birgina masalani yechish qoidasi bo’lib qolmay, balki turli-tuman 
boshlang’ich shartlar asosida ma’lum turdagi masalalar to’plamini yechish yo’lidir.
3. Algoritmni qo’llash natijasida chekli qadamdan keyin natijaga erishamiz yoki 
masalaning yechimga ega emasligi haqidagi ma’lumotga ega bo’lamiz.
Yuqorida keltirilgan xossalarni har bir ijrochi o’zi tuzgan biror masalaning 
algoritmidan foydalanib tekshirib ko’rishi mumkin. Masalan:
ax2 + bx + с = 0
kvadrat tenglamani yechish algoritmi uchun yuqorida sanab o’tilgan algoritmning 
xossalarini quyidagicha tekshirib ko’rish mumkin.
Agar kvadrat tenglamani yechish algoritmi biror usulda yaratilgan bo’lsa, biz 
ijrochiga bu algoritm qaysi masalani yechish algoritmi ekanligini aytmasdan a, b, с 


larning aniq qiymatlari uchun bajarishni topshirsak, u natijaga erishadi va bu natija 
kvadrat tenglamaning yechimi bo’ladi. Demak, algoritmni ijro etish algoritm 
yaratuvchisiga bog’liq emas.
Xuddi shuningdek a, b, с larga har doim bir xil qiymatlar bersak, algoritm har doim 
bir xil natija beradi, ya’ni to’liqdir.
Yaratilgan bu algoritm faqatgina bitta kvadrat tenglamani yechish algoritmi bo’lib 
qolmay, balki a,b,c larning mumkin bo’lgan barcha qiymatlari uchun natija hosil 
qiladi, binobarin u shu turdagi barcha kvadrat tenglamalarning yechish algoritmi 
bo’ladi.
Mavzu-4:
Massivlarni tashkil etish.
Massiv tushunchasi. Massiv bu bir tipli nomerlangan ma’lumotlar jamlanmasidir. 
Massiv indeksli o‘zgaruvchi tushunchasiga mos keladi. Massiv ta’riflanganda tipi, 
nomi va indekslar chegarasi ko‘rsatiladi. Masalan type turidagi length ta 
elementdan iborat a nomli massiv shunday e’lon qilinadi: 
type a[length];
Bu maxsus a[0], a[1], ..., a[length -1] nomlarga ega bo‘lgan type turidagi 
o‘zgaruvchilarning e’lon qilinishiga to‘g‘ri keladi. 
Massivning har bir elementi o‘z raqamiga - indeksga ega. Massivning x-nchi 
elementiga murojaat indekslash operatsiyasi yordamida amalga oshiriladi:
int x=...; //butun sonli indeks 
TYPE value=a[x]; //ch-nchi elementni o‘qish
a[x]=value; //x-yxb elementga yozish 
Indeks sifatida butun tur qiymatini qaytaradigan har qanday ifoda qo‘llanishi 
mumkin: char, short, int, long. C++ da massiv elementlarining indekslari 0 dan 
boshlanadi (1 dan emas), length elementdan iborat bo‘lgan massivning oxirgi 
elementining indeksi esa - bu length -1 (length emas). Massivning int z[3] 
shakldagi ta’rifi, int tipiga tegishli z[0],z[1],z[2] elementlardan iborat massivni 
aniqlaydi.
Massiv chegarasidan tashqariga chiqish (ya’ni mavjud bo‘lmagan elementni 
o‘qish/yozishga urinish) dastur bajarilishida kutilmagan natijalarga olib kelishi 
mumkin. SHuni ta’kidlab o‘tamizki, bu eng ko‘p tarqalgan xatolardan biridir. 


Agar massiv initsializatsiya qilinganda elementlar chegarasi ko‘rsatilgan bo‘lsa , 
ro‘yxatdagi elementlar soni bu chegaradan kam bo‘lishi mumkin, lekin ortiq 
bo‘lishi mumkin emas.
Misol uchun int a[5]={2,-2}. Bu holda a[0] va a[1] qiymatlari aniqlangan bo‘lib, 
mos holda 2 va –2 ga teng. Agar massiv uzunligiga qaraganda kamroq element 
berilgan bo‘lsa, qolgan elementlar 0 hisoblanadi: 
int a10[10]={1, 2, 3, 4}; //va 6 ta nol
Agar nomlangan massivning tavsifida uning o‘lchamlari ko‘rsatilmagan bo‘lsa, 
kompilyator tomonidan massiv chegarasi avtomatik aniqlanadi: 
int a3[]={1, 2, 3};
Bir o‘lchamli massivlarni funksiya parametrlari sifatida uzatish. Massivdan 
funksiya parametri sifatida foylalanganda, funksiyaning birinchi elementiga 
ko‘rsatkich uzatiladi, ya’ni massiv hamma vaqt adres bo‘yicha uzatiladi. Bunda 
massivdagi elementlarning miqdori haqidagi axborot yo‘qotiladi, shuning uchun 
massivning o‘lchamlari haqidagi ma’lumotni alohida parametr sifatida uzatish 
kerak. 
Funksiyaga massiv boshlanishi uchun ko‘rsatkich uzatilgani tufayli (adres bo‘yicha 
uzatish), funksiya tanasining operatorlari hisobiga massiv o‘zgarishi mumkin.
Funksiyalarda bir o‘lchovli sonli massivlar argument sifatida ishlatilganda ularning 
chegarasini ko‘rsatish shart emas. 
Funksiyalarda bir o‘lchovli sonli massivlar argument sifatida ishlatilganda ularning 
chegarasini ko‘rsatish shart emas.
Ko‘p o‘lchovli massivlar ta’rifi. Ikki o‘lchovli massivlar matematikada matritsa 
yoki jadval tushunchasiga mos keladi. Jadvallarning insializatsiya qilish qoidasi, 
ikki o‘lchovli massivning elementlari massivlardan iborat bo‘lgan bir o‘lchovli 
massiv ta’rifiga asoslangandir. 
Misol uchun ikki qator va uch ustundan iborat bo‘lgan xaqiqiy tipga tegishli d 
massiv boshlang‘ich qiymatlari quyidagicha ko‘rsatilishi mumkin:
float d[2][3]={(1,-2.5,10),(-5.3,2,14)}; 
Bu yozuv quyidagi qiymat berish operatorlariga mosdir:
d[0][0]=1;d[0][1]=-2.5;d[0][2]=10; 
d[1][0]=-5.3;d[1][1]=2;d[1][2]=14;


Bu qiymatlarni bitta ro‘yxat bilan xosil qilish mumkin: 
float d[2][3]={1,-2.5,10,-5.3,2,14};
Initsializatsiya yordamida boshlang‘ich qiymatlar aniqlanganda massivning 
hamma elementlariga qiymat berish shart emas. 
Misol uchun: int x[3][3]={(1,-2,3),(1,2),(-4)}.
Bu yozuv quyidagi qiymat berish operatorlariga mosdir: 
x[0][0]=1;x[0][1]=-2;x[0][2]=3;
x[1][0]=-1;x[1][1]=2;x[2][0]=-4; 
Initsializatsiya yordamida boshlang‘ich qiymatlar aniqlanganda massivning 
birinchi indeksi chegarasi ko‘rsatilishi shart emas, lekin qolgan indekslar 
chegaralari ko‘rsatilishi shart.
Misol uchun: 
double x[][2]={(1.1,1.5),(-1.6,2.5),(3,-4)}
Bu misolda avtomatik ravishda katorlar soni uchga teng deb olinadi. 
Funksiyaga ko‘p o‘lchamli massivlarni uzatish. Ko‘p o‘lchamli massivlarni 
funksiyaga uzatishda barcha o‘lchamlar parametrlar sifatida uzatilishi kerak. C++ 
da ko‘p o‘lchamli massivlar aniqlanishi bo‘yicha mavjud emas. Agar biz bir nechta 
indeksga ega bo‘lgan massivni tavsiflasak (masalan, int mas [3][4]), bu degani, biz 
bir o‘lchamli mas massivini tavsifladik, bir o‘lchamli int [4] massivlar esa uning 
elementlaridir
Misol: Kvadrat matritsani uzatish (transportirovka qilish) 
Agar void transp(int a[][],int n){.....} funksiyasining sarlavhasini aniqlasak, bu 
holda biz funksiyaga noma’lum o‘lchamdagi massivni uzatishni xohlagan bo‘lib 
qolamiz. Aniqlanishiga ko‘ra massiv bir o‘lchamli bo‘lishi kerak, hamda uning 
elementlari bir xil uzo‘nlikda bo‘lishi kerak. Massivni uzatishda uning 
elementlarining o‘lchamlari haqida ham biron narsa deyilmagan, shuning uchun 
kompilyator xato chiqarib beradi.
Bu muammoning eng sodda echimi funksiyani quyidagicha aniqlashdir: 
void transp(int a[][4],int n){.....}, bu holda har bir satr o‘lchami 4 bo‘ladi, massiv 
ko‘rsatkichlarining o‘lchami esa hisoblab chiqariladi.


Satrlar. C++ da belgili ma’lumotlar uchun char turi qabul qilingan. Belgili 
axborotni taqdim etishda belgilar, simvolli o‘zgaruvchilar va matniy konstantalar 
qabul qilingan. 
Misollar:
const char c='c';//belgi - bir baytni egallaydi, uning qiymati o‘zgarmaydi 
char a,b;//belgili o‘zgaruvchilar, bir baytdan joy egallaydi, qiymatlari o‘zgaradi.
C++ dagi satr - bu nul-belgi - \0 (nul-terminator)- bilan tugallanuvchi belgilar 
massivi. Nul-terminatorning holatiga qarab satrning amaldagi uzunligi aniqlanadi. 
Bunday massivdagi elementlar soni, satr tasviriga qaraganda, bittaga ko‘p. 
Simvolli massivlar quyidagicha initsializatsiya qilinadi:
char capital[]="TASHKENT"; Bu holda avtomatik ravishda massiv elementlari 
soni aniqlanadi va massiv oxiriga satr ko‘chirish '\0'simvoli qo‘shiladi. 
YUqoridagi initsializatsiyani quyidagicha amalga oshirish mumkin:
char capital[]={'T','A','S','H','K','E','N','T','\0'}; 
Bu holda so‘z oxirida '\0'simvoli aniq ko‘rsatilishi shart.
Qiymat berish operatori yordamida satrga qiymat berish mumkin emas. Satrni 
massivga yoki kiritish paytida yoki nomlantirish yordamida joylashtirish mumkin. 
Funksiyalar va satrlar. Funksiyalarda satrlar ishlatilganda ularning chegarasini 
ko‘rsatish shart emas. Satrlarning uzunligini hisoblash len funksiyasii quyidagicha 
ta’riflash mumkin:
int len(char c[]) 
{ int m=0;
for(m=0;c[m]!=’0’;m++); 
return m;
};
Bu funksiyaning standart varianti strlen deb ataladi va bu funksiyadan foydalanish 
uchun string.h sarlavxali faylidan foydalanish lozim. 


So‘zlar massivini kiritish. C++ tilida so‘zlar massivlari ikki o‘lchovli simvolli 
massivlar sifatida ta’riflanadi. Misol uchun:
char name[4][5]. 
Bu ta’rif yordamida har biri 5 ta harfdan iborat bo‘lgan 4 ta so‘zli massiv kiritiladi. 
So‘zlar massivlari quyidagicha initsializatsiya qilinishi mumkin:
char Name[3][8]={ "Anvar","Mirkomil","YUsuf"}. 
Bu ta’rifda har bir so‘z uchun xotiradan 8 bayt joy ajratiladi va har bir so‘z oxiriga 
' \0' belgisi qo‘yiladi.
So‘zlar massivlari initsializatsiya qilinganda so‘zlar soni ko‘rsatilmasligi mumkin. 
Bu holda so‘zlar soni avtomatik aniqlanadi: 
char comp[][9]={ "kompьyuter","printer","kartridj"}.
Funksiyalar va so‘zlar massivlar. Satrli massivlar funksiya argumenti sifatida 
ishlatilganda satrlarning umumiy uzunligi aniq ko‘rsatilishi shartdir. 
STRING TIPI. SATRLAR BILN ISHLASH UCHUN STANDART 
BIBLIOTEKAGA KIRUVCHI STRING MURAKKAB TURIDAN 
FOYDALANISH QULAYDIR.
Bu tipdan foydalanish uchun quyidagi sarlavxali faylni ulash lozim:
#include
Satrlarni ta’riflashga misollar:
string st( "BAXO \n" ); //simvollar satri bilan initsiallash 
string st2; // bo‘sh satr
string st3( st ); shu tipdagi o‘zgaruvchi bilan initsiallash 
Mavzu-5:
Matrisalarni tashkil etish.
Matritsalarni almashtirish amallari. Matlabda matritsalar ustida oddiy arifmеtik 
amallardan tashqari maxsus amallar va almashtirishlar mavjud. Ulardan biri 
matritsalarni transnponirlashdir. Biror A matritsani transponirlash dеganda uni 
mos qatorlarini ustunlar bilan almashtirish tushuniladi va u A' kabi bеlgilanadi.
Masalan, A= [ 1 2 3; 4 5 6 ] bo’ladi. dеmak bunda (m*n) o’lchovli matritsaga


o’tadi.
Bir nеchta matritsalarni birlashtirish uchun
В= cat ( А1, А2, ... )
komanda ishlatiladi. Bu holda A1, A2, ..., matritsalar ko’rsatilgan o’lchov bo’yicha
birlashtiriladi:
cat (2, А, В) = [А, В]
cat (1, А, В) = [А; В]
Matlabda matritsalarni burish uchun fliplr (A), flipud (A) komandalaridan 
foydalaniladi. fliplr (A) komandasi A matritsani chapdan o’ngga ustunlarini 
almashtirish yo’nalishida buradi. flipud (A) esa A matritsani pastdan yuqoriga 
qatorlarini almashtirish yo’nalishida buradi.
- Masala. A(mxn) matritsa berilgan. Shu matritsa elementlar ini kirituvchi va 
ekranga jadval ko`rinishida chiqaruvchi programma tuzilsin.
#include
#include
int main()
{int m, n, a[10][10];
cout << "Satrlar sonini kiriting \nm=";cin >> m;
cout << "Ustunlar sonini kiriting \nn=";cin >> n;
cout <<"Massiv elementlarini kiriting \n";
for(int satr = 0; satr < m ; satr++)
for(int ustun = 0; ustun < n; ustun++)
{ cout << "a[" << satr << "][" << ustun << "]="; cin >> a[satr][ustun]; }
for(int satr = 0; satr < m; satr++)
{ for(int ustun = 0; ustun < n; ustun++)
cout << a[satr][ustun] << "\t"; cout<<"\n"; }
system ("pause");
return 0; }
Funksiya parametri sifatida massivni jo'natish va funksiya natijasi sifatida massivni 
olish ham mumkin. Funksiyaga matritsani uzatishda matritsa nomi bilan uning 
satrlar va ustunlar sonini ham jo'natish kerak bo'ladi. Funksiyada massivdan 
foydalanishni bir necha xil usuli bor, shularning ba'zilari bilan tanishamiz.
Funksiyaga matritsani uzatish
#include
#include
void matrix_print(int a[10][10], int m, int n)
{// matritsani jadval shaklida chiqarish
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{ cout << a[i][j] << "\t";
}
cout << "\n"; }
int satr_max(int a[], int n
Matritsadagi har bir satrning eng kattasini topish


#include
#include
void matrix_print(int a[10][10], int m, int n)
{
// matritsani jadval shaklida chiqarish
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cout << a[i][j] << "\t";
}
cout << "\n";
}
}
int satr_max(int a[], int n)
a(m, n) matritsani b(n, p) matritsaga ko'paytirishdan hosil bo'lgan c(m, p) 
matritsani chiqaruvchi programma tuzilsin.
#include
#include
void matrix_print(int **a, int m, int n)
{
// matritsani jadval shaklida chiqarish
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cout << a[i][j] << "\t";
}
cout << "\n";
}
}
void matrix_input (int **a, int m, int n)
{
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
}void matrix_delete (int **a, int m)
Foydalanilgan adabiyotlar: 
http://fayllar.org 

Yüklə 80,01 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin