Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 3000UZS
Размер 1.0MB
Покупки 0
Дата загрузки 19 Март 2023
Расширение pptx
Раздел Презентации
Предмет Информатика и ИТ

Продавец

Bohodir Jalolov

Dinamik dasturlash metodlarini optimallashtirish usullari

Купить
DINAMIK DASTURLASH METODLARINI OPTIMALLASHTIRISH USULLARI I Kirish II Asosiy qism 2.1. Dinamik dasturlash haqida umumiy tushunchalar 2.2. Dinamik dasturlashda optimallik tamoyili 2.3. C++ dasturlash tilida dinamik dasturlar yaratish 2.4. C++ dasaturlash tilida dinamik ma’lumotlar tuzi lmasi III Xulosa IV Foydalanilgan adabiyotlar DINAMIK DASTURLASH ODATDA MUAMMOLARNI HAL QILISHDA IKKITA YONDASHUVNI QO&#39;LLAYDI • Yuqoridan pastga dinamik dasturlash: muammo kichikroq kichik muammolarga bo&#39;linadi, ular hal qilinadi va keyin asl muammoni hal qilish uchun birlashtiriladi. Yodlash allaqachon hal qilingan kichik vazifalarni hal qilish uchun ishlatiladi. • Pastdan yuqoriga dinamik dasturlash: asl muammoni hal qilish uchun keyinchalik zarur bo&#39;lgan barcha kichik vazifalar oldindan hisoblab chiqiladi va keyin asl muammoning echimini yaratish uchun ishlatiladi. Bu usul kerakli stekning o&#39;lchami va funksiya chaqiruvlari soni bo&#39;yicha yuqoridan pastga dasturlashdan ko&#39;ra yaxshiroqdir, lekin ba&#39;zida kelajakda qaysi kichik muammolarni hal qilishimiz kerakligini oldindan aniqlash oson emas. 1.Yuqoridan pastga yondashish-Bu har qanday • muammoning rekursiv formulasidan • to&#39;g&#39;ridan-to&#39;g&#39;ri tushish. Agar biron-bir muammoning • echimi uning kichik muammolari echimi yordamida • rekursiv tarzda tuzilishi mumkin bo&#39;lsa va agar uning • pastki muammolari bir-birining ustiga chiqsa, unda osonlikcha • xotirada saqlab qolish yoki pastki muammolarning • echimlarini jadvalda saqlash mumkin . 2. Pastdan yuqoriga dinamik dasturlash: • asl muammoni hal qilish uchun keyinchalik zarur bo&#39;lgan • barcha kichik vazifalar oldindan hisoblab chiqiladi • va keyin asl muammoning echimini yaratish uchun ishlatiladi DINAMIK METODLARNI OPTIMALLASHTIRISH • Optimal pastki tuzilish ma&#39;lum bir optimallashtirish muammosining echimini uning quyi masalalariga optimal echimlarni birlashtirish orqali olish mumkinligini anglatadi. Bunday maqbul pastki tuzilmalar odatda rekursiyalardir. • Biz rekursiyadan foydalanganimizda ma’lum darajada tuzilayotgan dasturimizni optimallshtiramiz. Fibonachchi ketma-ketligining pythondagi dinamik dasturi class Solution(object): def fib(self, n): #int parameter sifatida qabul qiladi va int qaytarishi kerak &#34;&#34;“ :type n: int :rtype: int &#34;&#34;“ if n == 0: return(0) if n == 1: return(1) dp = [0] * (n + 1) dp[0] = 0 dp[1] = 1 print(&#34;oldindan yaratilgan dinamik massiv= &#34;, dp) for i in range(2,n+1): dp[i] = dp[i-1] + dp[i-2] print(&#34;to’ldrilgandan keyin dinamk massiv yaratiladi= &#34;, dp) return(dp[n]) STATIK MA’LUMOTLAR BILAN ISHLASHA QUYIDAGI MUAMMOLAR KELIB CHIQADI • int Numbers[100]; //100 ta butun son uchun statik massiv. • 1-muammo: Bu yerda dasturimizning imkoniyatlarini chegaralaymiz, chunki u 100 dan ortiq raqamni saqlay olmaydi. • 2-muammo: Masalan, faqat 1 ta raqamni saqlash kerak bo&#39;lganda va 100 ta raqam uchun xotira ajratilganda resurslardan samarasiz foydalanyapmiz. • Ushbu muammolarning asosiy sababi kompilyator tomonidan massiv uchun statik bo’lgan, doimiy xotirani ajratishdir. • Dastur foydalanuvchidan o&#39;ziga xos ehtiyojlariga qarab xotiradan maqbul foydalanishi uchun xotirani dinamik taqsimotidan foydalanish zarur. Bu sizga kerak bo&#39;lganda ko&#39;proq xotira ajratish va kerak bo&#39;lmaganda bo&#39;shatish imkonini beradi. C++ dasturida xotiradan foydalanis C++ DASTURLASH TILIDA DINAMIK DASTURLAR YARATISH • Ko’rsatkich – bu maydon manzilini xotirada saqlaydigan o&#39;zgaruvchidir. int o&#39;zgaruvchisi butun qiymatni saqlash uchun ishlatilgandek, ko&#39;rsatgich o&#39;zgaruvchisi xotira maydoni manzilini saqlash uchun ishlatiladi • Ko&#39;rsatkich boshqa barcha o&#39;zgaruvchilar singari e&#39;lon qilinishi kerak: • Tip_nomi * Ko’rsatkich nomi; & adres olish amali • int age = 30; • const double Pi =3.1416; • int *a=&age; • const double *b-&Pi; • cout <<&#34;age manzili: &#34;<<&age<<endl; • cout<<”age qiymat=”<<*a<<endl; • cout <<&#34;Pi manzili: &#34;<<&Pi<<endl; • cout<<”Pi qiymati=”<<*b; • return 0; • } 0x101 manzilidagi ko&#39;rsatkich 0x558 qiymatini o&#39;z ichiga oladi Xotiradagi ma&#39;lumotlar 0x558 manzilida DINAMIK XOTIRADA QO’LLANILUVCHI FUNKSIYALAR • Tip* Ko’rsatkich = new Tip -Xotiraga bitta element uchun so’rov • Tip* Ko’rsatkich = new Tip [n] -Xotiraga n ta element uchun so‘rov • Delete [] Ko’rsatkich- ko’rsatkichni o’cherish • free() xotirani bo’shatish funksiyasi o’chiriladigan xotira bo’la-giga ko’rsatkich bo’lgan yagona parametrga ega bo’ladi • malloc() funksiyasining sintaksisi • void * malloc(size_t size); • ko’rinishida bo’lib, u xotiraning uyum qismidan size bayt o’lchamidagi uzluksiz sohani ajratadi • butun turdagi uzunligi 3 ga teng massivga joy ajratishni quyidagicha amalga oshirish mumkin: • int * pInt=(int*)malloc(3*sizeof(int)); • calloc() funksiyasi malloc() funksiyasidan farqli ravishda massiv uchun joy ajratishdan tashqari massiv elementlarini 0 qiymati bilan inisializasiya qiladi. Bu funksiya sintaksisi • void * calloc(size_t num, size_t size); • Quyidagi programmada butun sondan iborat dinamik massiv yaratish, unga qiymat berish va o’chirish amallari bajarilgan. • #include<iostream> • using namespace std; • int main(){ • int m; • cout << &#34;m=&#34;; cin >> m; //massiv elementlari soni; • float *b = new float[m]; //Element haqiqiy sonlar bo&#39;lgan m ta elementli dinamik massiv; • • for (int j = 0; j < m; j++) • cin >> b[j]; // bir o&#39;lchamli Massivni to&#39;ldirish • cout<<&#34; bir o&#39;lchamli dinamik massiv&#34;<<endl; • for (int j = 0; j < m; j++) • cout<<b[j]<<&#34; &#34;; • delete [] b;//xotira bo&#39;shatildi • cout<<&#34;\\n xotira bo&#39;shatildi&#34;; • return 0; • } DINAMIK MA’LUMOTLAR TUZILMASI • Statik ma’lumotlar tuzilmasi vaqt o’tishi bilan o’z o’lchamini o’zgartirmaydi. Biz har doim dastur kodidagi statik ma’lumotlar tuzilmasiga qarab ularning olchamini bilishimiz mumkin. Bunday ma’lumotlarga teskari ravishda dinamik ma’lumotlar tuzilmasi mavjud bo’lib, bunda dastur bajarilishi davomida dinamik ma’lumotlar tuzilmasi o’lchamini o’zgartirishi mumkin. Dinamik ma’lumotlar tuzilmasi – bu qandaydir bir qonuniyatga asoslanib shakllangan, lekin elementlari soni, o’zaro joylashuvi va o’zaro aloqasi dastur bajarilishi davomida shu qonuniyat asosida dinamik o’zgaruvchan bo’lgan ma’lumotlar tuzilmasidir . DINAMIK MA’LUMOTLAR TUZILMASI KLASSIFIKATSIYASI E’TIBORINGIZ UCHUN RAHMAT
Купить
  • Похожие документы

  • Operatsion tizimlarda journaling file system
  • I/O scheduling algoritmlari
  • O‘rta Osiyo kutubxonalarining o‘rganilish masalalari
  • Funksiyalar va arrow function
  • Tashkilot xodimlari ma’lumotlarini jamlovchi tizim

Подтвердить покупку

Да Нет

© Copyright 2019-2026.

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha