Texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi


Download 247.96 Kb.
Pdf ko'rish
Sana06.12.2020
Hajmi247.96 Kb.
#161114
Bog'liq
mta oraliq pdf


O`ZBEKISTON RESPUBLIKASI AXBOROT

 

TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI



 

RIVOJLANTIRISH VAZIRLIGI

 

MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT 



AXBOROT TEXNOLOGIYALARI UNIVERSITETI 

 

 



 

 

Dasturiy injinering fakulteti 2-kurs  



 

311-19-guruh talabasi  

 

Mirobidov Ibrohimning



 

Ma’lumotlar tuzilmasi va algoritmlar fanidan bajargan   

 

 

 



Oraliq nazorat ishi 

 

 



Variant №50 

1. Ma’lumotlar tuzilmasi klassifikatsiyasi. 

2. Dinamik turdagi ma’lumotlar tuzilmasi royxatni tushuntiring. 

3. Ro’yhatdan nusxa ko’chirish dasturini tuzing. 

 

MT klassifikatsiya qilishda  asosiy belgi bu ma’lumotlar tuzilmasini 

dastur ishlashi mobaynida o‘zgarishi hisoblanadi. Masalan, agar dastur 

bajarilishi mobaynida elementlar soni va/yoki ular orasidagi munosabatlar 

o‘zgarsa, u holda bunday MT 



dinamik ma’lumotlar  tuzilmasi, aks holda 

statik ma’lumotlar tuzilmasi deyiladi. 

Ma’lumki, matematikada o‘zgaruvchilarni, ularning ba’zi bir kerakli 

tavsiflariga mos ravishda klassifikatsiya qilish qabul qilingan. 

O‘zgaruvchilarga misol sifatida quyidagilarni keltirib o‘tish mumkin: haqiqiy 

o‘zgaruvchilar, kompleks o‘zgaruvchilar, mantiqiy o‘zgaruvchilar, bundan 

tashqari ba’zi bir qiymatlarni qabul qiluvchi o‘zgaruvchilar va boshqalar. 

Ma’lumotlarni qayta ishlashda ularni klassifikatsiya qilish ham katta 

ahamiyatga ega. Bu yerda ham klassifikatsiya qilinayotganda har bir 

konstanta, o‘zgaruvchi, ifoda yoki funksiya biror bir toifarga tegishli bo‘ladi, 

degan tamoyilga asoslanadi.     

Umuman olganda toifalar o‘zgaruvchi yoki ifoda qabul qilishi mumkin 

bo‘lgan qiymatlar to‘plami orqali tavsiflanadi. 

Ko‘plab dasturlash tillarida ma’lumotlar 

standart va foydalanuvchi 

tomonidan beriladigan toifalarga ajratiladi.  

Ma’lumotlarni 



standart toifalariga  quyidagi 5 ta tur o‘zgaruvchilari 

kiradi:  



a) butun (INT); 

b) haqiqiy (FLOAT) ; 

c) mantiqiy (BOOL); 

d) belgili (simvol) (CHAR); 

e) ko‘rsatkichli (*).  

Foydalanuvchi tomonidan aniqlanadigan toifalar esa: 

a) sanaladigan; 

b) diapazonli (oraliqli). 

 

Ma’lumotlarning  ixtiyoriy toifasi qiymatlar sohasi va ular ustida 



bajarilishi mumkin bo‘lgan amallar orqali tavsiflanadi.  

 

2. 



Dinamik       ma’lumotlar    tuzilmasi

 

Bizga ma’lumki, massivlar (static tuzilmalar) dasturlash tillarida juda 

foydali va zaruriy tuzilmadir. Lekin uning ikkita kamchiligi bor: 

- Uning o’lchaminidasturbajarilishimobaynidao’zgartiribbo’lmaydi; 

- Tuzilmaorasiga element kiritishuchunqolganlarinisurishkerak. 

Bu kamchilik bog’langan ro’yhatlar bilan  ishlashga olib keladi. 



Bog’langan  ro’yhatlar bir xil toifadagi  elementlar (tugunlar) ketma-

ketligi bo’lib, ular xotirada turli joylarga joylashtiriladi va o’zaro bir-biri bilan 

ko’rsatkichli maydonlar orqali bog’lanadi.  

Bog’langan ro’yhatlarni     dasturda turlicha amalga  oshirish    mumkin. 

Bog’langan    ro’yhatlarda elementlarni  quyidagicha hosil    qilib         

olamiz: 


Information maydonda foydalanuvchining foydali  ma’lumoti  yoziladi. 

Ko’rsatkichli maydonga keying elementning  xotiradagi    adresi 

yoziladi.Shunday elementlardan tashkil topadigan tuzilmaga chiziqli bir 

bog’lamli ro’yhatlar deyiladi. 

Bog’langan    ro’yhatlarda massivning kamchiliklari bartaraf qilinganligi 

sababli  tuzilma uzunligi va  elementlar orasidagi munosabatlar dastur 

bajarilishi mobaynida o’zgarib turadi. Bu dinamik tuzilma xususiyati 

hisoblanadi.  

Dinamik tuzilma deb dastur bajarilishi davomida: 

-  Elementlari orasidagi      munosabatlar 

-  Tuzilma uzunligi (elementlar  soni) o’zgarib turuvchi tuzilmaga aytiladi. 

Dinamik tuzilmalarda elementlar  xotirada istalgan joyda joylashishi 

mumkin.Shu sababli ular orasidagi munosabatlar ko’rsatkichlar orqali 

belgilanadi.Elementlar tuzilmaga kelib qo’shilgan paytda xotiradan bo’sh joy 

qidirib topiladi va elementlar joylashtiriladi. Shu sababli elementlar xotirada 

ketma-ket yacheykalarda joylashmagan bo’lishi mumkin.Agar fizik xotira 

tanqisligi sezilmasa, tuzilma uzunligi oshirilishi mumkin. 

 


3. Masala. Ro’yhatdan nusxa ko’chirish dasturini tuzing. 

 

 

#include



 

 

using



 

namespace

 std; 

 

struct



 

node


 

    



int

 

info



    


node

 

*



next

}; 



void

 

PrintList



(

node


 

*

C) 



    


if

 (C 


==

 

NULL



        


return

    



node

 

*



P

 

=



 C; 

    


cout

 

<<

 

"Ro'yxat elementlari = ("



 

    



while

 (

P



 

!=

 



NULL

    { 



        

cout


 

<<

 

P



->

info


        


P

 

=



 

P

->



next

        



if

 (

P



 

!=

 



NULL

            



cout

 

<<

 

","


    } 


    

cout


 

<<

 

")"



 

<<

 

endl



void



 

copylist


(

node


 

*

Y, 



node

 

**



Z) 

    



if

 (Y 


==

 

NULL



    { 


        

cout


 

<<

 

"ro'yxat bo'sh"



 

<<

 

endl



        


*

=



 

NULL


    } 


    

else


 

    { 


        

node


 

*

P



 

=

 Y; 



        

node


 

*

Q



 

=

 



NULL

 



        

while


 (

P

 



!=

 

NULL





        { 

            

node

 

*



newNode

 

=



 

new


 

node


;

 // first create a node (alloc

ate memory)

 

            



newNode

->

info



 

=

 



P

->

info



;

  // then fill the info

 

            



newNode

->

next



 

=

 



NULL

            



if

 (

Q



 

==

 



NULL

            { 



                

Q

 



=

 

newNode



                

*



=



 

Q



            } 

            

else

 

            { 



                

Q

->



next

 

=



 

newNode


                

Q

 

=



 

Q

->



next

            } 



            

P

 



=

 

P



->

next


        } 

    } 



 



void

 

insertnode



(

int


 

*

A, 



node

 

**



Q) 

    



node

 

*



N

*



P

 



    

N

 



=

 

new



 

node


    


N

->

info



 

=

 



*

A; 


    

N

->



next

 

=



 

NULL


 

    



if

 (

*



==

 



NULL

        



*

=



 

N



    

else


 

    { 


        

P

 



=

 

*



Q; 

 

        



while

 (

P



->

next


 

!=

 



NULL

            



P

 

=



 

P

->



next

 



        

P

->



next

 

=



 

N



    } 



int

 

main



() 

    



node

 

*



z

 

=



 

NULL


    


node

 

*



duplicate

 

=



 

NULL


 

    



int

 

e



    


cout

 

<<

 

"Elementlar soni : "



    


cin

 

>>



 

e



 

    


cout

 

<<

 

"Elementlarni probel bilan kiriting : "



    


while

 (

e



--

    { 



        

int


 

temp


        


cin

 

>>



 

temp


        


insertnode

(

&



temp

&



z

); 


    } 

 

    



cout

 

<<

 

" Berilgan ro'yxat : "



 

<<

 

endl



    


PrintList

(

z



); 

 

    



copylist

(

z



&

duplicate



); 

 

    



cout

 

<<

 

" Nusxalangan ro'yxat : "



 

<<

 

endl



    


PrintList

(

duplicate



); 

 

    



cin

 

>>



 

e



 

    


return

 

0





 



Natijasi:  

 

Document Outline


Download 247.96 Kb.

Do'stlaringiz bilan baham:




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