1 of 61

3-Ma’ruza:Qurilish va arxitektura sohasida axborot jarayonlarini algoritmlash va dasturlash.

Ma’ruzachi: H.Xoliyorova

2 of 61

Reja:

  • Algoritm tushunchasi
  • Algoritmning xossalari
  • Algoritm turlari
  • Algoritmni tasvirlash usullari

3 of 61

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.

4 of 61

Muammoni hal qilish jarayoni

4

dolzarb muammo

algoritm

dastur

Natija (yechim)

Tahlil

loyiha

amalga oshirish

Jamlama

Muammo

5 of 61

Dasturlar uchun algoritmlarda

5

Muammo

C++ Programma

Algoritm: vazifa (yoki jarayon) ni qanday bajarishni tasvirlash

6 of 61

Аlgоritmning 5-tа аsоsiy хоssаsi bоr:

  1. Diskrеtlilik (Chеklilik).
  2. Tushunаrlilik
  3. Аniqlik
  4. Оmmаviylik
  5. Nаtijаviylik.

6

7 of 61

Аlgоritmning tаsvirlаsh usullаri�

  1. Аlgоritmning so’zlаr оrqаli ifоdаlаnishi
  2. Аlgоritmning fоrmulаlаr bilаn bеrilish
  3. Аlgоritmlаrning grаfik shаklidа tаsvirlаnishidа
  4. Аlgоritmning jаdvаl ko’rinishdа bеrilishi

7

8 of 61

BLOK-SXEMALARNI TUZISHDA FOYDALANILADIGAN ASOSIY SODDA GEOMETRIK FIGURALAR QUYIDAGILARDAN IBORAT

8

9 of 61

Chiziqli algoritm�

Chiziqli algoritm- bu tartiblangan buyruqlar ketma-ketligi

Boshlanish

Tugash

1-amal

n-amal

!

Boshlash

Tamom

kiritish

chiqarish

10 of 61

Chiziqli algoritm

Tamom

Bir bo’lak non

Bir bo’lak pishloq

nonga surtilgan sariyog `

Pishloqni nonni ustiga qo’yish

Boshlanish

Sendvich tayyorlash:

+

=

11 of 61

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.

12 of 61

Daraxt ekish algoritmi

  1. Yerda choh qazish
  2. Chohga niholni qadash
  3. Suqilgan niholni chohini berkitish
  4. Niholga suv qo’yish

13 of 61

Tarmoqlanuvchi algoritm

Tarmoqlanuvchi algoritm- bu ma’lum bir shart asosida tartiblangan harakatlar ketma-ketligini amalga oshirish

Shart

2-amal

1-amal

ha

Yo’q

!

14 of 61

Tarmoqlangan algoritm

Shaxzoda Ivan toshni yoniga keldi

O’nga yurasanmi?

Yo’q

Ha

Boshingdan ayrilasan

Otingdan ayrilasan

to`liq tarmoqlantirish

15 of 61

Tarmoqlangan algoritm

Yomg`ir yog`ayaptimi?

Yo’q

Soyabon olamiz

To’liqmas tarmoqlanish

16 of 61

17 of 61

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

18 of 61

Qalbaki tanga

Masala: Uchta bir xil qiymatli tanga bor. Ulardan biri qalbaki..Qanday qilib qalbaki tangani (vazni yengilroq) toshsiz taroziga tortib aniqlash mumkin?

?

19 of 61

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

Yo’q

Оlib qo’yilgan tanga qalbaki

20 of 61

Takrorlanuvchi algoritm

Takrorlanuvchi algoritm- bu biror masala yoki hodisani bajarishda takrorlanib keladigan buyruqlar ketma-ketligi

Shart

Sikl tanasi

Yo’q

!

21 of 61

Uyga vazifa

Boshlanish

Matematik barcha masalalar

yechildimi?

masalalarni yechish

Ko’chada o’ynayver

tamom

Yo’q

22 of 61

Sikl algoritmi

  1. Birdan n gacha natural raqamlarni yozib chiqing.
  2. Birinchi raqmni ustiga chizing
  3. Birga va o’ziga bo’linadigan eng kichik sonni tagiga chizing
  4. Tagiga chizilgan songa karrali sonlarni ustiga chizing
  5. 3 ga karrali sonlarni tagiga chizing

Eratosfen algoritmi

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20

23 of 61

Zolushkani qidirish algoritmi

Boshlanish

Qizni uchratish

Tuflini kiydirib ko’rish

To’g’ri keldimi?

Zolushka topildi

Tamom

Qiz bilan xayrlashish

Yo’q

Ha

24 of 61

Nazorat savollari:

  1. Chiziqli algoritm deb nimaga aytiladi?
  2. Chiziqli algoritmlar misollar keltiring.
  3. Tarmoqlanuvchi algoritm deb nimaga aytiladi?
  4. Ularga misollar keltiring.
  5. Takrorlanuvchi algoritm deb nimaga aytiladi?
  6. Ularga misollar keltiring.

?

25 of 61

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

  1.  

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

26 of 61

  1. Matnli

4.Blok-sxema

2.Grafikli

5.Chiziqli

3.Algoritm

6.Takrorlanuvchi

27 of 61

4,5-maruza:Zamonaviy dasturlash texnologiyalari. Obyektga yo‘naltirilgan dasturlash tillari.

28 of 61

Reja:

  1. Zamonaviy dasturlash tillari, texnologiyalari.
  2. C++ tilidagi dastur tuzilishi va uning kompilyatsiyasi.
  3. C++ dasturlash tizimlari. Tilning turlari. Izohlar, toifalar, tavsiflar, ifodalar va operatorlar.
  4. C++ tili yordamida loyihalar ishlab chiqish.

29 of 61

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.

30 of 61

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.

31 of 61

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.

32 of 61

Dasturlash tillarining turlari

Dasturlash tillari 3 ta pag’onaga bo’linadi:

  1. Quyi darajadagi dasturlash tillari
  2. O’rta darajadagi dasturlash tillari
  3. Yuqori darajadagi dasturlash tillari

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…

33 of 61

Mashina tili dasturida 16 lik sanoq tizimidan foydalanib, kodirovka qilinadi.

Assambler dasturida dasturchi oylik ish haqi hisobini hisoblash ishlarini bajarmoqda.

34 of 61

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

35 of 61

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.

36 of 61

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).

37 of 61

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.

38 of 61

Straustrup (Stroustrup, Bjarne; r. 1950) C dasturlash tiliga obyektlar bilan ishlash kismini kiritgan va C++ nomini kiritgan

1995 yilda Jeyms Gosling

39 of 61

С++ 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

40 of 61

41 of 61

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.

42 of 61

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.

43 of 61

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.

44 of 61

Forma (shakl ) dizayneri

45 of 61

Dastur kodi muharriri

46 of 61

Obyektlar inspektori oynasi

47 of 61

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

48 of 61

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.

49 of 61

 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

50 of 61

С++ 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.

51 of 61

Dastur tuzish va bajartirish tartibi

  1. Dastur matni (kodi) kiritish va faylda saqlash
  2. Kompilyatsiya qilish.

<cpp-fayl> - cpp ism kengaytmasiga ega bo‘lgan va C++ tilidagi dastur fayli saqlanayotgan fayl.

  1. Bajartirish.

52 of 61

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;

}

53 of 61

Kompilyatsiya va bajarish natijasi

54 of 61

Kompilyatsiya jarayoni

  • Protsessor yordamida qayta ishlash
  • Obyektli (obj) faylni hosil qilish
  • Komponovka (Dasturda foydalanilgan kutubxonalarning obj fayllarini qo‘shish), murojalarni aniqlashtirish (разрешение ссылок) va exe fayl qurish

55 of 61

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.

56 of 61

#include <iostream>

using namespace std;

int main(){

cout >>"Har davrning o'z tili bor" >> endl;

return 0; -qiymat qaytarish

}

57 of 61

Butun sonli tip. O‘zgaruvchilarni e’lon qilish. �

58 of 61

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;

59 of 61

Misolning kompilyatsiyasi va bajartirish natijasi

60 of 61

61 of 61

 

E’TIBORINGIZ UCHUN RAHMAT!