1-bilet 1,1// Bir xil hisoblash jarayonlarini bir necha bor takrorlanish jarayoniga takrorlanish


Download 278.92 Kb.
bet8/28
Sana31.01.2024
Hajmi278.92 Kb.
#1818122
1   ...   4   5   6   7   8   9   10   11   ...   28
Bog'liq
dastur azizkhan 007

8.1. Keyingi yillarda amaliy dasturchilarga juda ko‘p integratsion dastur tuzish muhitlari taklif etilmoqda. Bu muhitlar u yoki bu imkoniyatlari bilan bir–biridan farq qiladi. Ci (inglizcha S) dasturlash tili 1970- yilning boshlarida Bi tili asosida Bell Labs Ken Tompson va Denis Ritchilar tomonidan yaratildi. Si dasturlash tili UNIX operatsion tizimida foydalanish uchun mo’ljallangan edi. Ushbu til amaliy dasturlar tuzishda xam qo‘llanilar edi. Aksariyat dasturlashtirish muhitlarining fundamental asosi S++ tiliga borib taqaladi. Ushbu Si ++ jumlani (nomni) Rik Masitti o‘ylab topdi. Bu 1983 yil o‘ylab ko‘rilmagan xam edi. S/S++ tili tarixi. Birinchi elektron hisoblash mashinalari paydo bo‘lishi bilan dasturlash tillari evolyusiyasi boshlanadi. Dastlabki kompyuterlar ikkinchi jahon urushi vaqtida artilleriya snaryadlarining harakat traektoriyasini hisob-kitob qilish maqsadida qurilgan edi. Oldin dasturchilar eng sodda mashina tilini o‘zida ifodalovchi kompyuter komandalari bilan ishlaganlar. Bu komandalar nol va birlardan tashkil topgan uzun qatorlardan iborat bo‘lar edi. Keyinchalik, insonlar uchun tushunarli bo‘lgan mashina komandalarini o‘zida saqlovchi (masalan, ADD va MOV komandalari) assembler tili yaratildi. Shu vaqtlarda BASIC va COBOL singari yuqori sathli tillar ham paydo bo‘ldiki, bu tillar tufayli so‘z va gaplarning mantiqiy konstruksiyasidan foydalanib dasturlash imkoniyati yaratildi. Bu komandalarni mashina tiliga interpretatorlar va kompilyatorlar ko‘chirar edi. Interpretator dasturni o‘qish jarayonida uning buyruqlarini ketma-ket mashina tiliga o‘tkazadi. Kompilyator esa yaxlit dasturkodini biror bir oraliq forma – ob’ekt fayliga o‘tkazadi. Bu bosqich kompilyatsiya bosqichi deyiladi. Bundan so‘ng kompilyator ob’ektli faylni bajariluvchi faylga aylantiradigan kompanovka dasturini chaqiradi.
8.2.Ichma-ich joylashgan siklik algoritmlar . Ba’zan, takrorlanuvchi algoritmlar bir nechta parametrlarga bog‘liq bo‘ladi. Odatda bunday algoritmlarni ichma-ich joylashgan algortmlar deb ataladi.
Misol sifati berilgan nxm o‘lchovli 
aij –matritsa elementlarining yig‘indisini hisoblash masalasini qaraylik.
Bu yig‘indi hisoblash uchuni ning har bir qiymatida j bo‘yicha ko‘paytmani hisoblab, avval yig‘indi ustiga ketma-ket qo‘shib borish kerak bo‘ladi. Bu jarayon quyidagi blok–sxemada aks ettirilgan. Bu yerda i-tashqi sikl - yig‘indi uchun, j-esa ichki sikl-ko‘paytmani hosil qilish uchun foydalanilgan.

10-rasm. Ichma-ich joylashgan siklik algoritmga doir blok-sxema
8,3//#include
using namespace std;
int main (){ int n, s=0; cout<<" nechta son kiritasiz: ";cin>>n; int a[n];cout<<" ularni kiriting:\n";
for(int i=0; i>a[i]; } cout<<" 7 ga karralilari; \n";for(int i=0; i8,4//#include
using namespace std;
int main(){ int n; cin>>n; int a[n]; srand ((unsigned)time(NULL)); for(int i=0;i8,5//#include
using namespace std;
int main(){ int n;char a; cout<<"n="; cin>>n;cout<<"belgini kiriting:"; cin>>a; for(int i=0; icout<9-bilet
9.1. Biz bu bo’limda saralash deganda, eng oddiy bo’lgan arraydagi ma’lumotlarni saralashni nazarda tutamiz va bu kabi saralash algoritmlarining olti xilini ko’rib chiqamiz:Selection sort (Tanlab saralash), Bubble sort (Pufakchali saralash)Insertion sort (Joylashtirib saralash)Quick sort (Tezkor saralash), Merge sort (Qo’shib saralash)Radix sort. Ularning deyarli hammasi (6-sidan tashqari) ma’lumotlarni taqqoslab ko’rish orqali saralaydi va tayyor saralangan arrayni javob sifatida beradi. Birinchi 3 ta algoritm O(n²) vaqtda ishlasa, 4–5 lari O(nlogn) vaqtda ishlaydi. Algoritmlar bir xil ishni bajarsa va ularning aksariyatining ishlash vaqti ham bir xil bo’lsa, unda ularning hammasi nimaga kerak degan haqli savol tug’iladi
Algoritmxilma-xilligigaikkitaasosiysababkeltirishmumkin:Algoritmlarningishlashvaqtlarihardoimhambirxilbo’lmaydivaularningishlashiqandaydirma’lumholatlardao’zgaribturadi. Ya’ni, umumiy holatda biror algoritmdan yomonroq ishlovchi boshqa bir algoritm, aynan, qandaydir holat uchun undan ko’ra yaxshiroq ishlashi mumkin.
9.2. Tasavvur qiling, dastur qiladigan ishni juda katta tezlikda qo'lsa qilyapsiz. Bunda siz bitta qog'oz olib, qandaydir odamga uni ko'zini oldida rasm chizyapsiz va ko'zini oldida o'chirip, qaytadan chizyapsiz. Bu holatda ko'rvotgan odamga albatta g'alati tuyuladi. Uni sal qulayroq qilish usuli - Ikkita varoq ishlatish. Tasavvur qiling, A va B varoqlar bor. Siz A varoqga rasm chizib, foydalanuvchiga berasiz va B varoqga chizishni boshlaysiz. B ga rasm chizib bo'lip, A varoq bilan B ni almashtirasiz. Endi B varoqga chizyapsiz, foydalanuvchi B varoqga qarayapti. Shunday qilib, foydalanuvchi faqatgina tayyor chizilgan rasmlarni ko'radi. O'chirish, chizish ishlari esa ko'rinmaydi. Agar buni tushunmagan bo'lsangiz, hechqisi yo'q. Dasturda realizatsiyasini ko'ring:
Amaliyot: while sikli tepasiga int toifasida o'zgaruvchi e'lon qilamiz. Misol uchun p. Bu varoq raqami.int p = 0;
while sikli ichida chiziladigan varaqni tanlaymiz va p ni 1 bo'lsa 0, 0 bo'lsa 1 ga aylantiramiz.:setactivepage(p);p = 1 - p;setvisualpage(p);Bunda setactive page funksiyasi chizilayotgan varaqni tanladi, setvisualpage esa ko'rinayotgan varaqni tanladi.
Qo'shimcha: Liniyalar qalinroq bo'lishi uchun siklga kirmasdan turib ularni qalinlashtirishni maslahat beraman:setlinestyle(0, 1, 3);
9,3//#includeusing namespace std;int A(int n){int i=0;int *a=new int; while(n!=0){ a[i]=n%10;i++;n=n/10; }int k=0,p; for(int j=0;j>n;if(A(n)==1) cout<<"polindrom";else cout<<"polindrom emas";}
9.4#include #include using namespace std; int main(){ ifstream f("t.txt"); string s[256],l; int i=0,k; while(!f.eof()){ f>>s[i];i++; } int a[i-1]; for(int j=0;j if(min>a[j]){min=a[j]; k=j; } } cout<

Download 278.92 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   ...   28




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling