DINAMIK DASTURLASH METODLARINI OPTIMALLASHTIRISH USULLARI
“ALGORITM VA MA’LUMOTLAR STRUKTURASI” FANIDAN “ DINAMIK DASTURLASH METODLARINI OPTIMALLASHTIRISH USULLARI ” Mundarija I Kirish II Asosiy qism ……..………………………………………………..4 2.1. Dinamik dasturlash haqida umumiy tushunchalar……….…......4 2.2.Dinamik dasturlashda optimallik tamoyili……………………....8 2.3. C++ dasturlash tilida dinamik dasturlar yaratish…….…..……..17 2.4. C++ dasaturlash tilida dinamik ma’lumotlar tuzilmasi……..….24 III Xulosa………………………………………………...…………39 IV Foydalanilgan adabiyotlar………………………………….……40 1
Kirish Vatanimizda, erkin va farovon hayot barpo etish, rivojlangan mamlakatlar qatoridan o’rin olish, demokratik jamiyat qurish kabi ezgu maqsadlarni qo’yildi. Bu esa kelajagimizni yaqqol tasavvur etish, jamiyatimizning ijtimoiy-ma‘naviy poydevorini mustahkamlash ehtiyojini tug’diradi. Demak, galdagi eng asosiy vazifa: yosh avlodni vatan ravnaqi, yurt tinchligi, xalq farovonligi kabi olijanob tuyg’ular ruhida tarbiyalash, yuksak fazilatlarga ega, ezgu g’oyalar bilan qurollangan komil insonlarni voyaga etkazish, jahon andozalariga mos, kuchli bilimli, raqobatbardosh kadrlar tayyorlashdir. O’zbekistonning iqtisodiy va ijtimoiy sohalarda yuqori natijalarga erishishi, jahon iqtisodiy tizimida to’laqonli sheriklik o’rnini egallay borishi, inson faoliyatining barcha jabhalarida zamonaviy axborot texnologiyalaridan yuqori darajada foydalanishning ko’lamlari qanday bo’lishiga hamda bu texnologiyalar ijtimoiy mehnat samaradorligini oshishida qanday rol o’ynashiga bog’liq. Keyingi yillarda mamlakatimiz ilm-fani ham axborotlashtirishning nazariy asoslariga katta hissa qo‗shib kelmoqda, shu bilan birgalikda, hodisalar, jarayonlarni yagona axborot asosida tadqiq etishning ilmiy yo’nalishlarini tahlil va sintez qilish natijasi bo’lgan fan-informatikaning vujudga kelishiga boshlang’ich poydevor qo’yildi. Axborot, energiya, vazn, bo’shliq va vaqtni bir butun holda batafsil o’rganish hozirgi vaqtda inson hayotining barcha jabhalarida muhim axamiyatga ega bo’lib qolmoqda. 2
Dinamik dasturlash haqida umumiy tushunchalar Dinamik dasturlash tushunchasi juda keng qamrovli tushuncha bolib,Bu tushunchao’z ichiga ko’plab yo’nalishlar va sohalarni qamrab oladi. Dasturchilar butunlay boshqacha vazifalarga ega bo'lishi mumkin. Bir holatda, biror narsani chizish uchun faqat belgilash tilidan foydalanishingiz kerak, ikkinchisida protsessor samarali ishlashi uchun assembler orqali ko'rsatmalar yozis kerak.Ammo bu assotsiatsiya barcha odamlar uchun ishlaydi - dasturchilar algoritmlarni ishlab chiqadilar. Tasavvur qilaylik, bizga yangi vazifa qo’yildi, uning maqsadi va cheklovlari bor. Har qanday vazifada bo'lgani kabi, u ham ma'lumotlar tuzilmalarini va tizimning boshqa qismlariga bog'liqlikni o'z ichiga oladi za bir vaqtning o'zida siz ushbu vazifa uchun ishlash muhim. Bunidarhol tushunish mumkin. Masalan, avval muammoni hal qilgandan keyin yechim sekin ekanligini payqashimiz mumkin .Bunday holatda hisob-kitob natijalari kamroq vaqt ichida olinishi uchun muammoni qanday hal qilishni kerak. Dasturlash nuqtayi nazaridan dinamik dasturlash atamasi biz yaratayotgan dasturmizga ma’lumotlarni kirtganimizdak keyin vaqt o’tishi bilan avvalgi kiritgan ma’lumotlarimizning bizga keragi bo’lmasligi mumkin.Shunda bizga malumotlarni kiritish va chiqarish jarayonida eski ma’lumotlarni o’chirish kerak bo’ladi. Dinamik dasturga misol C++ dasturlash tilida #include<iostream> using namespace std; int main(){ 3
int m; cout << "m="; cin >> m; //massiv elementlari soni; float *b = new float[m]; //Element haqiqiy sonlar bo'lgan m ta elementli dinamik massiv; for (int j = 0; j < m; j++) cin >> b[j]; // bir o'lchamli Massivni to'ldirish cout<<" bir o'lchamli dinamik massiv"<<endl; for (int j = 0; j < m; j++) cout<<b[j]<<" "; delete [] b;//xotira bo'shatildi cout<<"\n xotira bo'shatildi"; return 0; } Dinamik dastur Java dasturlash tilida class Array { private int arr[]; private int count; public Array(int length) { arr = new int[length]; } public void printArray() { for (int i = 0; i < count; i++) { // Print the elements of an array System.out.print(arr[i] + " "); } } 4
public void insert(int element) { if (arr.length == count) { int newArr[] = new int[2 * count]; for (int i = 0; i < count; i++) { newArr[i] = arr[i]; } arr = newArr; } arr[count++] = element; } } public class GFG { public static void main(String[] args) { Array numbers = new Array(3); numbers.insert(10); numbers.insert(30); numbers.insert(40); numbers.insert(50); numbers.printArray(); 5