3-Ma’ruza:Qurilish va arxitektura sohasida axborot jarayonlarini algoritmlash va dasturlash.
Ma’ruzachi: H.Xoliyorova
Reja:
Algoritm tushunchasi
Qo’yilgan biror masalani kompyuterda yechish uchun, avval uning matematik modelini, keyin algoritmini va programmasini tuzish kerak bo‗ladi. Bu uchlikda algoritm bloki muhim ahamiyatga ega. Endi algoritm tushunchasining ta‘rifi va xossalarini bayon qilamiz.
Algoritm bu oldimizga qo’yilgan masalani yechish uchun zarur bo‗lgan amallar ketma-ketligidir.
Muammoni hal qilish jarayoni
4
dolzarb muammo
algoritm
dastur
Natija (yechim)
Tahlil
loyiha
amalga oshirish
Jamlama
Muammo
Dasturlar uchun algoritmlarda
5
Muammo
C++ Programma
Algoritm: vazifa (yoki jarayon) ni qanday bajarishni tasvirlash
Аlgоritmning 5-tа аsоsiy хоssаsi bоr:
6
Аlgоritmning tаsvirlаsh usullаri�
7
BLOK-SXEMALARNI TUZISHDA FOYDALANILADIGAN ASOSIY SODDA GEOMETRIK FIGURALAR QUYIDAGILARDAN IBORAT
8
Chiziqli algoritm�
Chiziqli algoritm- bu tartiblangan buyruqlar ketma-ketligi
Boshlanish
Tugash
1-amal
n-amal
…
!
Boshlash
Tamom
kiritish
chiqarish
Chiziqli algoritm
Tamom
Bir bo’lak non
Bir bo’lak pishloq
nonga surtilgan sariyog `
Pishloqni nonni ustiga qo’yish
Boshlanish
Sendvich tayyorlash:
+
=
x kg shokolad a so’m, y kg iris b so‘m turadi. 1 kg shokolad va 1 kg iris qancha turishini va shokolad, irisdan qancha qimmatligi aniqlansin.
Daraxt ekish algoritmi
Tarmoqlanuvchi algoritm
Tarmoqlanuvchi algoritm- bu ma’lum bir shart asosida tartiblangan harakatlar ketma-ketligini amalga oshirish
Shart
2-amal
1-amal
ha
Yo’q
!
Tarmoqlangan algoritm
Shaxzoda Ivan toshni yoniga keldi
O’nga yurasanmi?
Yo’q
Ha
Boshingdan ayrilasan
Otingdan ayrilasan
to`liq tarmoqlantirish
Tarmoqlangan algoritm
Yomg`ir yog`ayaptimi?
Yo’q
Hа
Soyabon olamiz
To’liqmas tarmoqlanish
tarmoqlangan
Agar(if) sog’lom bo’lay desang,
harakatda bo’l doim,
Aks holda(else) kam harakat bo’l
Agar(if) qo’ziqorinman desan ,
savatga kir
Qalbaki tanga
Masala: Uchta bir xil qiymatli tanga bor. Ulardan biri qalbaki..Qanday qilib qalbaki tangani (vazni yengilroq) toshsiz taroziga tortib aniqlash mumkin?
?
Blok-sxema
Boshlanish
Ikkita tangani tarozini 2 pallasiga
qo’yib 3-sini chetga olib qo’yamiz
Tarozini pallasi tengmi?
Yuqoriga ko’tarilgan pallaning
ichidagi tanga qalbaki
tamom
Hа
Yo’q
Оlib qo’yilgan tanga qalbaki
Takrorlanuvchi algoritm
Takrorlanuvchi algoritm- bu biror masala yoki hodisani bajarishda takrorlanib keladigan buyruqlar ketma-ketligi
Shart
Sikl tanasi
Hа
Yo’q
!
Uyga vazifa
Boshlanish
Matematik barcha masalalar
yechildimi?
masalalarni yechish
Ko’chada o’ynayver
tamom
hа
Yo’q
Sikl algoritmi
Eratosfen algoritmi
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
Zolushkani qidirish algoritmi
Boshlanish
Qizni uchratish
Tuflini kiydirib ko’rish
To’g’ri keldimi?
Zolushka topildi
Tamom
Qiz bilan xayrlashish
Yo’q
Ha
Nazorat savollari:
?
MYUNSTERBERG usuli
Qo’llash bo’yicha yuriqnoma: "Harflar testida so’z yashringan. Sizning vazifangiz matnni tez o’qish va so’zlarni ustiga chizib chiqish.
Topshiriq:
Izoh: Ushbu jadvalda – ALGORITMga oid so’zlar yashiringan
4. | |
2. | 5. |
3. | 6. |
A | W | H | B | M | E | M | A | T | G |
CH | C | D | L | A | T | A | K | R | R |
I | D | A | O | T | U | R | A | O | A |
Z | H | E | K | N | C | I | N | R | F |
I | A | L | - | L | I | A | G | L | I |
Q | L | S | S | X | E | M | I | A | K |
L | G | O | R | I | T | M | CH | N | L |
I | E | L | E | M | A | CH | V | U | I |
| 4.Blok-sxema |
2.Grafikli | 5.Chiziqli |
3.Algoritm | 6.Takrorlanuvchi |
4,5-maruza:Zamonaviy dasturlash texnologiyalari. Obyektga yo‘naltirilgan dasturlash tillari.
Reja:
Masalaning kompyuterda ishlash bosqichlari
1.Masalaning qo‘yilishi va maqsadi
2.Masalaning matematik ifodasi
3.Masalani yechish uchun kerakli usulni aniqlash
4.Masalani yechish algoritmini tuzish
5. Masalani dasturini tuzish
6. Yuzaga kelgan xatoliklarni kiritish
7. Natijalarni izohlash va tahlil qilish.
Dastur tushunchasi
Agarda siz hech qachon biror bir kompyuter dasturini mustaqil tuzib ko‘rmagan bo‘lsangiz, sizga dasturni tuzish va uni o‘zgartirish uchun kompyuter dasturchisi zarur bo‘ladi. Shunday ekan, siz dasturchilarni turli dastur ishlab chiqishlari uchun zarur qanday axborotlar talab etilishini tushunishingiz kerak bo‘ladi. Kompyuter dasturi kompyuterda masalalarni bajarilishi uchun yo‘naltirilgan ko‘rsatmalar ketma-ketligini o‘z ichiga oladi.
Dastur (program) - masalani yechish uchun kompyuter buyruqlari (yo‘llanmalari) ning tartibga solingan izchilligidir.
Dasturiy ta’minot (software) - ma’lumotlarni ishlab chiqish dasturlari majmuasi va ulardan foydalanish uchun zarur hujjatlar.
Masala (problem) – yechilishi kerak bo‘lgan muammodir.
Ilova (application) – masalani yechishning kompyuterdagi dasturiy amalga oshirilishi.
Dasturlash tillarining turlari
Dasturlash tillari 3 ta pag’onaga bo’linadi:
Quyi daraja dasturlash tillari mashinaga (kompyuterga) bog‘liq holda ishlaydi.
O’rta darajadagi DTda qisqa-qisqa kodlardan foydalanilgan. Assambler tili dasturlash tilining ikkinchi avlodi hisoblanadi.
Yuqori darajadagi DT COBOL, FORTRAN, Pascal, Delphi, C++, Java…
Mashina tili dasturida 16 lik sanoq tizimidan foydalanib, kodirovka qilinadi.
Assambler dasturida dasturchi oylik ish haqi hisobini hisoblash ishlarini bajarmoqda.
Yuqori darajali dasturlash tillari
1954 yilda FORTRAN (FORmula TRANslation) tili yaratilayotgani haqidagi xabar chop etildi. Bu dastur IBM kompaniyasining Nyu Yorkdagi shtab kvartirasida yaratildi.
1959 yilda COBOL (Common Business Oriented Language – umumiy tijoratga yo‘naltirilgan til ) tili ishlab chiqildi. Bu til mashinadan mustaqillikka ega bo‘lgan yuqori darajali biznesga yo‘naltirilgan dasturlash tilidir.
BASIC dasturlash tili 1964 yilda Jon Kemeni va Tomas Kurtz lar tomonidan yaratildi
1971 yilda PASCAL tili yaratildi. Uning muallifi Shvetsariyalik professor Niklaus Virtdir. Virt bu tilni fransuz fizigi va matematigi Blez Paskal sharafiga qo‘ydi (Blez Paskal 1642 yili hisoblash mexanizmini ixtiro qilgan).
Sun’iy intelekt tillari: O‘tgan asrning 90-yillarida “Sun’iy intelekt” kompyuterlari ishlab chiqarilishi rejalashtirilgandi. Bu ishni asosiy dasturlash tillarida amalga oshirish amri mahol edi, shu sababli loyihada sun’iy intelekt tillari sifatida LISP va PROLOG tillari tanlandi.
LISP dasturlash tili (1956-1959 yillar) asoschisi Jon Makkarti bo‘lib, u sun’iy intelektning otasi hisoblanadi. Aynan u birinchi bo‘lib “sun’iy intelekt” atamasini ishlatgan.
PROLOG tili ham 1972 yilda Fransiyada ishlab chiqildi. PROLOG tili har xil fikrlarni formal ko‘rnishda tavsiflash, mantiqni muxokama qilish, kompyuterni berilgan savollarga javob berdirishga imkoniyatli hisoblanadi.
Ob’ektga mo‘ljallangan dasturlash tizimi
Birinchi OYD elementi Simula-67 (1967 y., Norvegiya) tili bo‘ldi. Turbo PASCAL da 5,5 versiyasidan boshlab OYD vositalari paydo bo‘ldi. Turbo PASCAL ning rivoji yakuni sifatida BORLAND firmasi tomonidan DELPHI dasturlash tizimi yaratilishi bo‘ldi. Ushbu sistema yordamida tez va oson murakkab bo‘lgan grafik interfeysni dasturlash imkoniyati mavjud. 1991 yilda Visual BASIC ning I versiyasidan boshlab bu til to‘laligicha obyektga yo‘naltirildi (1997 yil).
1985 yilda Bell Labs (AQSH) laboratoriyasi C++ dasturlash tili yaratilganligini xabarini berdi. Bugungi kunda bu til OYD tillari orasida mashhurdir. Bu til yordamida istalgan mashina uchun – shaxsiydan to superkompyuterlargacha dasturlar yozish mumkin. Bu tilning asoschisi Straustrupdir.
OYD tillaridan yana biri 1995 yilda Jeyms Gosling boshchiligida Sun Microsystems kompaniyasida yaratilgan JAVA tilidir. Uni ishlab chiqishda maxsus o‘rganish talab qilmaydigan, sodda tilni maqsad qilingan.
Straustrup (Stroustrup, Bjarne; r. 1950) C dasturlash tiliga obyektlar bilan ishlash kismini kiritgan va C++ nomini kiritgan
1995 yilda Jeyms Gosling
С++ Builder 6 muhiti
С++ Builder 6 muhitini ishga tushirish bilan bir vaqtni o‘zida bir qancha oynalar ochiladi. Oynalar soni, ularning joylashish o‘rni va ko‘rinishini dasturchi tomonidan o‘zgartirilishi mumkin. С++ builder 6 ni ishga tushirishda paydo bo‘ladigan oynaning ko‘rinish quyida
Dasturning oynasi
Asosiy oyna har doim oynadan mavjud bo‘ladi va dasturning boshqarish uchun xizmat qiladi. Asosiy menyu dasturni boshqarish uchun barcha mavjud komponenta va buyruqlarni o‘z ichiga olgan. Piktogrammalar bo‘lsa ko‘proq murojat qiladigan buyruqlarga murojaatni osonlashtirish uchun xizmat qiladi.
Menyu komponentalar С++ builder dasturida ba’zi bir tayyor elementlarni oynaga qo‘yish va undan foydalanish imkonini beradi.
Dasturchilar tilida bu interfeysga tez qayta ishlovchi muhit RAD (Rapid Application Development) deb atashadi. Bunga sabab bu muhitda dastur, ilova tuzish va uning dizaynini qurishda tayyor obyektlar va kutubxonada mavjud metodlardan foydalanish mumkin.
Masalan, kompyuter avtomatik ravishda xodisani qayta ishlovchi funktsiya dasturi matnini hosil qiladi.
Vizual komponentalar palitrasi.
Vizual komponentalar palitrasi. Vizual komponentalar palitrasini bir qismi monitorda ko’rinib turadi, qolganlarini o’ng va chapga siljituvchi tugmachalar vositasida ko’rishimiz mumkin.
Ekran (monitor) markazida forma (shakl) dizayneri joylashgan. Bu bo’lg’usi dasturning interfeysini hosil qiluvchi oynadir. Oynaning nomi va sarlavhasi uning tepasida yozilgan bo’ladi. Odatda, Form l (Form 2, Form 3, Form 4) va shuningdek oynani berkituvchi va kichraytiruvchi tugmachalar ekranning o’ng tepasida joylashgan bo’ladi. Oynaning sathiga vizual dastur uchun zarur bo’ladigan VCL komponentalar joylashtiriladi.
Forma (shakl ) dizayneri
Dastur kodi muharriri
Obyektlar inspektori oynasi
Obyektlar inspektori oynasi ostida Obyektlarni daraxtsimon ko’rinishi oynasi joylashgan. Bu oynada ilovadagi barcha obyektlar daraxt strukturasi shaklida ifodalangan bo’ladi. Formalar, dastur kodi va boshqa dastur tarkiblari fayllari berilgan bo’ladi.
Obyektlarni daraxtsimon ko’rish oynasi
Borland C++ Builder 6 muhiti asosiy menyu buyruqlari
File buyrug’i guruhi
Bu menyu buyruqlari fayllar bilan ishlashga mo’ljallangan va qo’yidagi amallarni bajaradi: (New) yangi fayl hosil qilish, forma (oyna) ochish, mavjud fayllarni (Open) ochish, fayllarni saqlash (Save) va (Close) yopish, ilova dastur kodi matnini (Print) chop qilish mumkin.
Menyuning bu buyruqlari guruhi tahrir qilish uchun zarur bo’lgan buyruqlardir. Masalan inkor qilish (Undelete) va (Redo) takrorlash, qirqib olish(Cut), nusxa olish (Copy), nusxa olinganni qo’yish (Paste) va o’chirish (Delete) kabi amallarni o’z ichiga olgan.
Edit buyruqlari guruhi
С++ builder 6 da С++dasturlash tili ishlatiladi. С++ builder 6 da dastur bajarishi lozim bo‘lgan alogoritm(buyruqlar ketma-ketligi) yoziladi. Har bir holat uchun alohida alogoritm yozish mumkin, misol OnClick- sichqoncha bosilganda qandaydir holat vujudga kelsa OnCreate- forma hosil bo‘lganda Yana qandaydir holatni dastur bajarishi mumkin.
Formadan va dastur matni oynasiga yoki aksincha o‘tish uchun klaviaturaning F12 tugmasi xizmat qiladi.
Dastur tuzish va bajartirish tartibi
<cpp-fayl> - cpp ism kengaytmasiga ega bo‘lgan va C++ tilidagi dastur fayli saqlanayotgan fayl.
Sodda dasturning tuzilishi
// C++ dagi soda dastur misoli
#include <iostream>
using namespace std;
int main()
{
cout << "Har davrning o'z tili bor" << endl;
return 0;
}
Kompilyatsiya va bajarish natijasi
Kompilyatsiya jarayoni
Dasturning tuzilishi
#include <iostream> - С++ ning standart kiritish-chiqarish kutubxonasining sarlavhalar fayli(header файл)
using namespace std; -standart nomlar fazosidan foydalanish
int main() – dasturning sarlavhasi, har qanday konsol programma main() degan funksiyadan iborat bo‘ladi.
#include <iostream>
using namespace std;
int main(){
cout >>"Har davrning o'z tili bor" >> endl;
return 0; -qiymat qaytarish
}
Butun sonli tip. O‘zgaruvchilarni e’lon qilish. �
Misol:
//Butun sonning kvadrati va kubini hisoblash. Qiymat berish operatsiyasi.
#include <iostream>
using namespace std;
int main()
{
int n;
const int m=5;
int p,q=0;
cout << "Kiriting:" << endl;
cin >> n;
p=n*n;
q=p*n;
cout << n << "^2=" << p << " " << n << "^3=" << q << endl;
q=m*(q=p=m*m);
cout << m << "^2=" << p << " " << m << "^3=" << q << endl;
return 0;
Misolning kompilyatsiyasi va bajartirish natijasi
E’TIBORINGIZ UCHUN RAHMAT!