logo

Strukturali dasturlash

Yuklangan vaqt:

12.08.2023

Ko'chirishlar soni:

0

Hajmi:

63.6015625 KB
Strukturali dasturlash 
Reja :
I. Kirish.
II. Asosiy qism:
a. Strukturaviy dasturlash.
b. Strukturaviy dasturlash qoidalari.
c. Strukturaviy dasturlash printsiplari.
d. Strukturaviy dasturlashdan foydalanish.
III. Foydalanilgan adabiyotlar Kirish
Fayllar va ma'lumotlar bazalari ma'lumotlari bilan ishlashda ko'pincha 
ma'lumotlarning katta qismini bir bo'lakda qayta ishlash qulay bo'ladi, masalan, 
mijoz faylidagi butun mijoz yozuvi. Buning uchun yaxshi vosita tuzilma 
kontseptsiyasidir. Struktura - bu qandaydir tarzda vositachi aloqaga ega bo'lgan 
ma'lumotlar to'plami.
Struktura bilan bog'liq holda ko'rsatkichlar va ko'rsatkich arifmetikasidan 
foydalanamiz. Strukturalar ob'ektga yo'naltirilgan dasturlash doirasidagi sinflar 
uchun oldingi holatdir. Shuning uchun, ushbu mavzu ob'ektga yo'naltirilgan 
dasturlashning keyingi bosqichiga ko'prikdir.
Ushbu mavzuda biz strukturani aniqlash, strukturada saqlanadigan 
ma'lumotlar bilan ishlash, struktura massivlari va struktura bilan bog'liq holda 
fayllar bilan ishlashni ko’ramiz. Shuningdek, strukturaga ko‘rsatgichlardan 
foydalanish, strukturalarni funksiyaga yuborish va strukturalarni dinamik 
xotirada saqlashni ham ko’ramiz. Strukturaviy dasturlash
Strukturaviy dasturlashda biz dasturni tushunish oson bo'lishi uchun butun
dasturni kichik modullarga ajratamiz.   Strukturaviy dasturlashning maqsadi - 
bajarilish ketma-ketligi kod yozilgan ketma-ketlikka rioya qilish uchun 
kompyuter dasturi orqali boshqarish oqimini chiziqli qilishdir.   Dasturning 
dinamik tuzilishi dasturning statik tuzilishiga o'xshaydi.   Bu dasturni o'qish, 
sinovdan o'tkazish va o'zgartirish imkoniyatini oshiradi.   Ushbu chiziqli 
boshqaruv oqimi ruxsat etilgan ilovalar konstruktsiyasini bitta kirish, bitta 
chiqish formatlari bilan cheklash orqali boshqarilishi mumkin.
Ism, manzil, telefon, elektron pochta, chegirma profili, yetkazib berish 
shartlari, to'lov shartlari va boshqalarni o'z ichiga olgan mijoz faylidagi mijoz 
yozuvini o'ylab ko'ring. Bu ma'lumotlarning barchasi har bir mijoz uchun mijoz 
faylida saqlanadi.
Ushbu ma'lumotni fayl yoki ma'lumotlar bazasiga o'qish, qayta ishlash va 
saqlashda mijoz uchun barcha ma'lumotlarni bir xilda boshqarish imkoniyatiga 
ega bo'lish qulay. Keyin u dastur kodini yaxshiroq tashkil qilishni 
ta'minlaydigan tuzilmaga yig'iladi.
Tuzilish har bir mijoz uchun barcha ma'lumotlar uchun shablonga 
o'xshaydi. Struktura kodda int, double yoki char kabi ma'lumotlar turi kabi 
ishlaydi. Siz aniqlangan struktura turidagi o'zgaruvchini e'lon qilasiz. Tuzilish 
o'zgaruvchisida siz ma'lum bir mijoz uchun barcha ma'lumotlarni saqlashingiz 
mumkin.
Shuningdek, siz har bir massiv elementi har bir mijoz uchun barcha 
ma'lumotlarga ega bo'lgan tuzilma bo'lgan struktura elementlari qatorini 
yaratishingiz mumkin. Shunday qilib, massiv barcha mijozlar uchun barcha 
ma'lumotlarni o'z ichiga oladi. Strukturaviy dasturlash  qoidalar
Strukturaviy birinchi qoida: kod bloki
Agar   kirish   shartlari   to'g'ri   bo'lsa,   lekin   chiqish   shartlari   noto'g'ri   bo'lsa,   xato
blokda   bo'lishi   kerak.   Agar   ijro   blokga   o'tishga   ruxsat   berilsa,   bu   to'g'ri
emas.   Xato   dasturning   istalgan   joyida   bo'lishi   mumkin.   Bunday   sharoitda   disk
raskadrovka qilish ancha qiyin.
Strukturaviy   dasturlashning   1-qoidasi:   Kod   bloki   rasmda   ko'rsatilganidek
tuzilgan.   Oqim   diagrammasi   sharoitida   bitta   kirish   nuqtasi   va   bitta   chiqish
nuqtasi   bo'lgan   quti   tuzilgan.   Strukturaviy   dasturlash   -   bu   dasturning   to'g'ri
ekanligini ko'rsatish usuli.
Strukturaning ikkinchi qoidasi: ketma-ketlik
Har   bir   blokning   chiqish   shartlari   keyingi   blokning   kirish   shartlariga   mos   kelsa ,
bloklar   ketma - ketligi   to ' g ' ri   bo ' ladi .   Bajarish   har   bir   blokga   blokning   kirish
nuqtasida kiradi va blokdan chiqish nuqtasi orqali chiqib ketadi.   Butun seriyani
kirish va chiqish nuqtasi bo'lgan yagona blok sifatida ko'rish mumkin. Strukturaviy   dasturlashning   2-qoidasi:   ketma-ketlikdagi   ikki   yoki   undan
ortiq kod bloklari rasmda ko'rsatilganidek tuzilgan.
Strukturaviy qoida uchinchi: almashinish
If-then-else   ko'pincha   almashtirish   deb   ataladi   (chunki   muqobil   variantlar
mavjud).   Strukturaviy   dasturlashda   har   bir   tanlov   kod   blokidir.   Agar
almashinish   o'ngdagi   sxemadagi   kabi   tashkil   etilgan   bo'lsa,   unda   bitta   kirish
nuqtasi   (yuqorida)   va   bitta   chiqish   nuqtasi   (pastki   qismida)   mavjud.   Tuzilish
shunday   kodlangan   bo'lishi   kerakki,   agar   kirish   shartlari   bajarilsa,   chiqish
shartlari qondiriladi (xuddi kod bloki kabi).
Strukturaviy   dasturlashning   3-qoidasi:   Ikki   kod   blokining   almashinishi
rasmda ko'rsatilganidek tuzilgan.
Muqobil   usul   uchun   kirish   shartiga   misol:   $8   ro'yxati   imzolangan   butun   sonni
o'z ichiga oladi.   Chiqish sharti bo'lishi mumkin: ro'yxatdan o'tish $8 imzolangan raqamning   mutlaq   qiymatini   o'z   ichiga   oladi.   Filial   tuzilishi   chiqish   shartini
bajarish uchun ishlatiladi.
Strukturaviy qoida 4: Takrorlash
Iteratsiya   (while-loop)   o'ng   tomonda   tashkil   etilgan.   Bundan   tashqari,   bitta
kirish va bitta chiqish nuqtasi mavjud.   Kirish nuqtasida bajarilishi kerak bo'lgan
shartlar   mavjud   va   chiqish   nuqtasida   bajariladigan   talablar   mavjud.   Kodning
tashqi nuqtalaridan shaklga o'tishlar yo'q.
Strukturaviy   dasturlashning   4-qoidasi:   Kod   blokining   iteratsiyasi   rasmda
ko'rsatilganidek tuzilgan. Strukturaviy qoida 5: ichki o'rnatilgan tuzilmalar
Oqim   diagrammasi   sharoitida   har   qanday   kod   bloki   istalgan   strukturaga
tarqalishi   mumkin .   Agar oqim sxemasining  bitta  kirish  nuqtasi va bitta chiqish
nuqtasi bo'lgan qismi mavjud bo'lsa, uni bitta kod bloki sifatida umumlashtirish
mumkin.
Strukturaviy   dasturlashning   5-qoidasi:   Bitta   kirish   nuqtasi   va   bitta   chiqish
nuqtasi   bo'lgan   struktura   (har   qanday   o'lchamdagi)   kod   blokiga   tengdir.   Misol
uchun, biz har birining mutlaq qiymatini hisoblaydigan imzolangan butun sonlar
ro'yxatidan   o'tish   uchun   dastur   ishlab   chiqmoqdamiz.   Biz   (1)   avval   dasturni
bitta blok sifatida ko'rib chiqamiz, so'ngra   (2)   kerakli iteratsiyada eskiz qilamiz
va nihoyat   (3)   rasmda ko'rsatilganidek, halqa tanasining tafsilotlarini kiritamiz. Boshqa boshqaruv tuzilmalari case, do-until, do-while va for kerak emas.   Biroq,
ular   ba'zan   qulay   va   odatda   tuzilgan   dasturlashning   bir   qismi   sifatida
qaraladi.   Assambleya tilida ular ozgina qulaylik qo'shadi.
Strukturaviy dasturlashning  printsiplari
Ko'rib turganimizdek, tuzilgan dasturlash har qanday dasturlash tillarining 
muhim jihati hisoblanadi.   U asosan dasturimizni chiziqli tuzilish ko'rinishida 
qiladi, unda dastur bayonining bajarilishi dasturning boshidan boshlanadi, 
so'ngra u dastur bo'ylab chiziqli ravishda o'tadi va ketma-ketlikda buyruqni 
birma-bir bajaradi.   Bunday xususiyat har bir dasturlash tillarida samarali 
ishtirok etish imkonini beradi.   Agar tillarning har biri shunday jihatga ega 
bo'lsa, uni bajarish juda oson bo'ladi.                                                                     
Shunday qilib, tizimli dasturlashning asosiy printsipi kompyuter dasturi orqali 
boshqarish oqimini chiziqli qilishdir, shunda bajarilish ketma-ketligi kod  yozilgan ketma-ketlikda bo'ladi.   Ushbu muhim tamoyil quyidagi xususiyatlarni 
aniq ko'rsatadi:
 Faqat bitta kirish va chiqishdan foydalanish kerak.
 Konstruktsiyalar ketma-ketligini tanlash va takrorlashning hech biri uchta 
qutidan iborat emas.
 Agar biz uchta konstruksiyadan birini (yuqorida muhokama qilingan) 
ulardan foydalanilganda tasavvur qilsak, uchinchi xususiyat aniq bo'ladi.
 Kirish boshlanish, chiqish esa oxirida.
Shunday qilib, ushbu printsip kodning o'qilishini oshiradi, bu esa testlarni 
tuzatish hujjatlarini va dasturlarni o'zgartirishni tushunishni osonlashtiradi.
Ushbu asosiy maqsadni asosiy printsipimiz sifatida o'z ichiga olgan holda, 
tuzilgan dasturlash uchun qo'llaniladigan yana bir qancha printsiplar mavjud:
 Standartlashtirish
 Abstraktsiya
 Ekspressiv kuch
 Ortogonallik
 Minimallik
(a) Standartlashtirish:   Har doim bir xil tashqi interfeysga ega bo'lgan dasturiy 
ta'minot shakli komponentlarini yaratish maqsadga muvofiqdir.   Oddiy bo'yalgan
yuz boshida bitta kirish nuqtasi va oxirida bitta chiqish nuqtasidan iborat.   Bu 
ketma-ket dasturlashning mohiyatiga mos keladigan mavjudotlarning kuchiga 
ega.   Shuningdek, u protsedurani chaqirish haqidagi muhim g'oyaga ham mos 
keladi.   Biz protsedurani chaqirish g'oyasini ketma-ket bosqich deb hisoblaymiz 
va undan navbatdagi ko'rsatmaga ketma-ket qaytish.
Yakuniy xususiyatdagi boshlang'ich bitta chiqishda bir xil bitta kirishga ega 
bo'lgan boshqa konstruktsiyalar if then else va while do hisoblanadi. (b) Abreaktsiya:   Abstraktsiya, ehtimol, tuzilgan dasturlashdagi eng muhim 
g'oyadir.   Inson ongi butun murakkab tizimni tuza olmaydi yoki tushuna 
olmaydi.   U faqat tizimning bir qismini tushunishi mumkin.   Ammo bu butun 
tizimni tushunish uchun zarur va zarurdir.   Shunday qilib, bunday muammoni 
hal qilish uchun abstraktsiya qo'llaniladi.   Abstraksiyada tizim quyi tizimlarni 
vazifasi oson tushuniladigan, ammo tafsilotlari ko'rinmaydigan qora qutilar 
sifatida ko'rishga imkon beruvchi belgida tasvirlanishi kerak.   Dasturlashda 
protsedura uzoq vaqtdan beri ushbu rolni bajaradigan mexanizm bo'lib kelgan.
(c) Ekspressiv kuch : o‘tish gapi juda kam ifodali kuchga ega, chunki bir o‘tish 
gapi 3-4 turdagi ma’noga ega bo‘lishi mumkin.   Shuning uchun biz takrorlash 
uchun ba'zi mexanizmlarni talab qilamiz va bu imkoniyatni ta'minlash uchun 
vaqtinchalik bayonot yoki rekursiya etarli.   Ko'pgina tillarda ham while, ham do 
while iboralari mavjud.   ko'pchilik tillar ham rekursiyani qo'llab-quvvatlaydi.
(d) Ortogonallik : Majmuiy ob'ektlarni loyihalashda yaxshi dizayn printsipi har 
biri imkon qadar bir-biridan farq qiladigan xususiyatlarni yaratishdir.   Agar 
shunday bo'lsa, biz minimal miqdordagi funktsiyalar maqsadini osonroq 
qondirishimiz mumkin va shu bilan birga ob'ektlar bizning barcha ehtiyojlarimiz
uchun etarlicha kuchli bo'lishini ta'minlay olamiz.
(e) Minimallik : Minimallik printsipi bizning haddan tashqari ko'p ob'ektlarni 
kiritish tendentsiyasini cheklaganida.   Shunday qilib, minimallik 
kontseptsiyasiga amal qilish uchun Boem Jacopini tomonidan berilgan uchta 
konstruktsiya tuzilgan dasturni ishlab chiqish uchun etarli 
konstruksiyadir.   Boshqa boshqaruv tuzilmalari mavjud bo'lib, ularda faqat uchta
yoki undan kam qutilar mavjud, ammo ular orasidan ushbu uchta 
konstruktsiyalar to'plami minimal to'plamdir Strukturaviy dasturdan foydalanish
Endi tuzilmalar yordamida butun dasturni yaratamiz. Biz oldingi misolga
ko'ra   mahsulot   tuzilishini   va   mahsulot   ma'lumotlariga   ega   ikkita   tuzilma
o'zgaruvchisini   yaratamiz.   Ulardan   biri   to'g'ridan-to'g'ri   deklaratsiyada
boshlanishi kerak, ikkinchisi esa foydalanuvchi ma'lumotlari bilan ta'minlanishi
kerak. Nihoyat, dastur mahsulotlar jadvalini chop etishi kerak.
Biz JSP grafigidan boshlaymiz:
Mantiq oddiy. Eng qiyin vazifa strukturani tog’ri bajarishdir. Bu yerda kodi:
#include  
<iostream.h>  
struct   Prod
{
char   cName[20];
int   iId;  
double  
dPrice;  
int   iNo;
char   cSupp[25];
};
void main()
{
// Prod Prod prodOne = {"Olive Oil", 1001, 120.50, 250, tipidagi o'zgaruvchini
e'lon qilish va ishga tushirish "Frescati Oil S/A"};
// Yangi Prod o'zgaruvchisini e'lon qilish Prod prodTwo;
// Foydalanuvchiga mahsulot haqida ma'lumot so'rash
cout << "Mahsulot uchun ma'lumotlarni  kiriting:" << endl; cout << "Mahsulot
nomidan boshlang: "; cin.getline(prodTwo.cName, 20);
cout << "Mahsulot identifikatori: "; cin >> prodTwo.iId;
cout << "Narxi:"; cin >> prodTwo.dPrice;
cout << "Stokda nechta mahsulot bor?"; cin >> prodTwo.iNo;
cin.get();   //   yangi   satrdan   buferni   tozalash   char   cout   <<   "Mahsulotni   kim
yetkazib beradi: "; cin.getline(prodTwo.cSupp, 25);
cout <<"Mahsulot nomi \tMahsulot identifikatori \tNarx \tMiqdori
\tSupplier" << endl; // \t bilan tab
cout << prodOne.cName << '\t' << prodOne.iId
<<   "\t\t"   <<  prodOne.dPrice   <<  '\t'   <<   prodOne.iNo   <<   '\t'   <<   prodOne.cSupp
<< endl << endl;
cout   <<   prodTwo.cName   <<   '\t'   <<   prodTwo.iId   <<   "\t\t"   <<   prodTwo.dPrice
<< '\t' << prodTwo.iNo << '\t' << prodTwo .cSupp << endl << endl;
}
Strukturaning   ta'rifi   main()   dan   oldin   bo'lib,   uni   butun   dastur   uchun,
shuningdek, funktsiyalar  ichida ham amal qiladi. Tuzilmani main() ichida ham
belgilashingiz   mumkin,   lekin   u   faqat   main()   da   amal   qiladi,   boshqa
funksiyalarda emas.
Birinchi   tuzilma   o'zgaruvchisi   prodOne   to'g'ridan-to'g'ri   deklaratsiyadagi
qiymatlar   bilan   boshlanadi.   Keyin   bir   qator   sarlavha   matnlari   va   ikkinchi tuzilma   o'zgaruvchisining   struktura   a'zolariga   qiymatlarni   kiritish   mavjud.
E'tibor   bering,   biz   struktura   o'zgaruvchisi   va   a'zo   o'rtasidagi   nuqtadan
foydalanamiz.
Chiqish yorliqlar yordamida amalga oshiriladi \t. Ma'lumot to'g'ri ustunda
chop   etilishi   uchun   kiritilgan   matnlarning   uzunligini   moslashtirishingiz   kerak
bo'lishi mumkin. Biz buni 1-bobdagi matn formatlash funksiyalari orqali yanada
moslashuvchan   qilishimiz   mumkin   edi,   ammo   soddalik   uchun   biz   qo'pol
usuldan foydalandik.
Struktura o'zgaruvchilari bilan massiv
Oldingi   dasturning   kamchiligi   shundaki,   har   bir   mahsulot   uchun   alohida
tuzilma   o'zgaruvchisi   (prodOne,   prodTwo)   kerak   edi.   Tuzilish   o'zgaruvchilari
bilan massivdan foydalanish qulayroq yechim bo'lib, struktura o'zgaruvchilarini
bir xilda qayta ishlash uchun tsikldan foydalanishga imkon beradi.
Quyida   biz   uchta   elementdan   iborat   Prod   tipidagi   sProds   struktura
massivini e'lon qilamiz:
Prod sProds[3];
Biz   uchta   mahsulot   uchun   xotira   maydoni   ajratdik,   lekin   tuzilma
a'zolariga   hali   qiymatlarni   belgilamadik.   Bu   to'g'ridan-to'g'ri   deklaratsiyada
amalga oshirilishi mumkin:
Mahsulot sProds[3] = {
{"Oziq-ovqat moyi", 101, 12.50, 100, "Felix Ltd"},
{"Baby Oil", 102, 23.75, 25, "Baby Prod"},
{"Qozon moyi", 103, 6100, 123000, "Shell"},
}; E'tibor   bering,   har   bir   tuzilma   o'zgaruvchisi   uchun   qiymatlar   jingalak
qavslar   bilan   o'ralgan   va   qiymatlar   har   bir   jingalak   qavs   ichida   odatiy   tarzda
sanab   o'tilgan.   Barcha   uch   juft   qavslar   qiymatlarning   boshlang'ich   ro'yxatini
chegaralovchi qo'shimcha jingalak qavslar bilan o'ralgan. Oxirgi qavsdan keyin
nuqta-vergul qo'yilishi kerak.
Agar   siz   foydalanuvchiga   qiymatlarni   kiritishiga   ruxsat   bermoqchi
bo'lsangiz, bu odatda tsiklda amalga oshiriladi:
for   (int   i=0;   i<3;   i++)
{
cout << "Mahsulot raqami uchun qiymatlarni kiriting." << i+1 << endl;
cout << "Mahsulot nomidan boshlang: "; cin.getline(sProds[i].cName, 20);
cout << "Mahsulot identifikatori: "; 
cin >> sProds[i].iId;
cout << "Narxi:"; cin >> sProds[i].dPrice;
cout << "Qancha zaxirada?"; cin >> sProds[i].iNo;
cin.get(); //bufer ichidagi yangi qatorni tozalash  char cout << "Mahsulotni kim
yetkazib beradi: "; cin.getline(sProds[i].cSupp, 25);
}
Strukturaga ko'rsatgich
Siz   boshqa   ma'lumotlar   turlariga   ko'rsatgichlarni   e'lon   qilgandek   tuzilmalarga
ko'rsatgichlarni e'lon qilishingiz mumkin:
Mahsulot *pProd; Buning   o'rniga   ko'rsatgichni   prodOne   struktura   o'zgaruvchisiga   ishora   qilish
uchun biz yozamiz:
Mahsulot* pProd = &prodOne;
Bu shuni anglatadiki, pProd prodOne manziliga teng.
Afzallik shundaki, turli xil tuzilma o'zgaruvchilari bo'ylab qadam qo'yish uchun
ko'rsatkich arifmetikasidan foydalanish imkoniyati mavjud:
pProd++;
Ushbu bayonot keyingi tuzilma o'zgaruvchisiga o'tadi.
Struktura ko'rsatgichi bilan siz o'zgaruvchi va a'zo o'rtasida chegaralovchi
sifatida   nuqtadan   (.)   foydalanishga   ruxsat   berilmagan.   Siz   ->   belgilardan
foydalanishingiz kerak:
pProd->iNo = 25;
Masalan,   pProd   tomonidan   ko'rsatilgan   struktura   ma'lumotlarini   chop
etish uchun biz quyidagi bayonotdan foydalanishimiz mumkin:
cout << pProd->cName << endl << pProd->iId << endl <<
pProd->dPrice << endl << pProd->iNo << endl << pProd->cSupp;
  Aytaylik,   biz   uchta   struktura   o'zgaruvchisi   uchun   bo'sh   joy   va   oldingi
bo'limdagi kabi qiymatlarga ega sProds massivini e'lon qildik va ishga tushirdik:
Mahsulot sProds[3] = {
{"Oziq-ovqat moyi", 101, 12.50, 100, "Felix Ltd"},
{"Baby Oil", 102, 23.75, 25, "Baby Prod"},
{"Qozon moyi", 103, 6100, 123000, "Shell"},
};
Keyin   biz   massivning   birinchi   elementiga   ishora   qiluvchi   Prod   tipidagi
ko'rsatgichni e'lon qilishimiz mumkin:
Mahsulot* pProd = &sProds[0];
Keyin,   masalan,   uchta   mahsulot   uchun   mahsulot   identifikatorini   chop   etish
uchun tsikldan foydalanishimiz mumkin:
for   (int   i=0;   i<3;   i++)
{
cout   <<   pProd->iId   <<  
endl;   pProd++;
}
E'tibor   bering,   biz   mahsulotdan   mahsulotga   qadam   qo'yish   uchun
ko'rsatkich arifmetikasidan foydalanganmiz.  Foydalanilgan adabiyotlar
1. https://en.wikipedia.org/wiki/Structured_programming    .
2. https://www.brighthub.com/internet/webdevelopment/articles/73961/
#summary
3. https://seriouscomputerist.atariverse.com/media/pdf/book/Structured
%20Programming.pdf
4. https://structured-programming-with-c-plus-plus%20(3).pdf
5. https://www.techtarget.com/searchsoftwarequality/definition/structured-   
programming-modular-programming
6. https://www.geeksforgeeks.org/structured-programming-approach-with-   
advantages-and-disadvantages/
7. https://www.makeuseof.com/tag/basic-programming-principles/   
8. https://accu.org/journals/overload/30/168/teodorescu/

Strukturali dasturlash Reja : I. Kirish. II. Asosiy qism: a. Strukturaviy dasturlash. b. Strukturaviy dasturlash qoidalari. c. Strukturaviy dasturlash printsiplari. d. Strukturaviy dasturlashdan foydalanish. III. Foydalanilgan adabiyotlar

Kirish Fayllar va ma'lumotlar bazalari ma'lumotlari bilan ishlashda ko'pincha ma'lumotlarning katta qismini bir bo'lakda qayta ishlash qulay bo'ladi, masalan, mijoz faylidagi butun mijoz yozuvi. Buning uchun yaxshi vosita tuzilma kontseptsiyasidir. Struktura - bu qandaydir tarzda vositachi aloqaga ega bo'lgan ma'lumotlar to'plami. Struktura bilan bog'liq holda ko'rsatkichlar va ko'rsatkich arifmetikasidan foydalanamiz. Strukturalar ob'ektga yo'naltirilgan dasturlash doirasidagi sinflar uchun oldingi holatdir. Shuning uchun, ushbu mavzu ob'ektga yo'naltirilgan dasturlashning keyingi bosqichiga ko'prikdir. Ushbu mavzuda biz strukturani aniqlash, strukturada saqlanadigan ma'lumotlar bilan ishlash, struktura massivlari va struktura bilan bog'liq holda fayllar bilan ishlashni ko’ramiz. Shuningdek, strukturaga ko‘rsatgichlardan foydalanish, strukturalarni funksiyaga yuborish va strukturalarni dinamik xotirada saqlashni ham ko’ramiz.

Strukturaviy dasturlash Strukturaviy dasturlashda biz dasturni tushunish oson bo'lishi uchun butun dasturni kichik modullarga ajratamiz. Strukturaviy dasturlashning maqsadi - bajarilish ketma-ketligi kod yozilgan ketma-ketlikka rioya qilish uchun kompyuter dasturi orqali boshqarish oqimini chiziqli qilishdir. Dasturning dinamik tuzilishi dasturning statik tuzilishiga o'xshaydi. Bu dasturni o'qish, sinovdan o'tkazish va o'zgartirish imkoniyatini oshiradi. Ushbu chiziqli boshqaruv oqimi ruxsat etilgan ilovalar konstruktsiyasini bitta kirish, bitta chiqish formatlari bilan cheklash orqali boshqarilishi mumkin. Ism, manzil, telefon, elektron pochta, chegirma profili, yetkazib berish shartlari, to'lov shartlari va boshqalarni o'z ichiga olgan mijoz faylidagi mijoz yozuvini o'ylab ko'ring. Bu ma'lumotlarning barchasi har bir mijoz uchun mijoz faylida saqlanadi. Ushbu ma'lumotni fayl yoki ma'lumotlar bazasiga o'qish, qayta ishlash va saqlashda mijoz uchun barcha ma'lumotlarni bir xilda boshqarish imkoniyatiga ega bo'lish qulay. Keyin u dastur kodini yaxshiroq tashkil qilishni ta'minlaydigan tuzilmaga yig'iladi. Tuzilish har bir mijoz uchun barcha ma'lumotlar uchun shablonga o'xshaydi. Struktura kodda int, double yoki char kabi ma'lumotlar turi kabi ishlaydi. Siz aniqlangan struktura turidagi o'zgaruvchini e'lon qilasiz. Tuzilish o'zgaruvchisida siz ma'lum bir mijoz uchun barcha ma'lumotlarni saqlashingiz mumkin. Shuningdek, siz har bir massiv elementi har bir mijoz uchun barcha ma'lumotlarga ega bo'lgan tuzilma bo'lgan struktura elementlari qatorini yaratishingiz mumkin. Shunday qilib, massiv barcha mijozlar uchun barcha ma'lumotlarni o'z ichiga oladi.

Strukturaviy dasturlash qoidalar Strukturaviy birinchi qoida: kod bloki Agar kirish shartlari to'g'ri bo'lsa, lekin chiqish shartlari noto'g'ri bo'lsa, xato blokda bo'lishi kerak. Agar ijro blokga o'tishga ruxsat berilsa, bu to'g'ri emas. Xato dasturning istalgan joyida bo'lishi mumkin. Bunday sharoitda disk raskadrovka qilish ancha qiyin. Strukturaviy dasturlashning 1-qoidasi: Kod bloki rasmda ko'rsatilganidek tuzilgan. Oqim diagrammasi sharoitida bitta kirish nuqtasi va bitta chiqish nuqtasi bo'lgan quti tuzilgan. Strukturaviy dasturlash - bu dasturning to'g'ri ekanligini ko'rsatish usuli. Strukturaning ikkinchi qoidasi: ketma-ketlik Har bir blokning chiqish shartlari keyingi blokning kirish shartlariga mos kelsa , bloklar ketma - ketligi to ' g ' ri bo ' ladi . Bajarish har bir blokga blokning kirish nuqtasida kiradi va blokdan chiqish nuqtasi orqali chiqib ketadi. Butun seriyani kirish va chiqish nuqtasi bo'lgan yagona blok sifatida ko'rish mumkin.

Strukturaviy dasturlashning 2-qoidasi: ketma-ketlikdagi ikki yoki undan ortiq kod bloklari rasmda ko'rsatilganidek tuzilgan. Strukturaviy qoida uchinchi: almashinish If-then-else ko'pincha almashtirish deb ataladi (chunki muqobil variantlar mavjud). Strukturaviy dasturlashda har bir tanlov kod blokidir. Agar almashinish o'ngdagi sxemadagi kabi tashkil etilgan bo'lsa, unda bitta kirish nuqtasi (yuqorida) va bitta chiqish nuqtasi (pastki qismida) mavjud. Tuzilish shunday kodlangan bo'lishi kerakki, agar kirish shartlari bajarilsa, chiqish shartlari qondiriladi (xuddi kod bloki kabi). Strukturaviy dasturlashning 3-qoidasi: Ikki kod blokining almashinishi rasmda ko'rsatilganidek tuzilgan. Muqobil usul uchun kirish shartiga misol: $8 ro'yxati imzolangan butun sonni o'z ichiga oladi. Chiqish sharti bo'lishi mumkin: ro'yxatdan o'tish $8 imzolangan