Dasturni rekursiv va oddiy usulda yozing


Download 33.87 Kb.
Sana25.11.2020
Hajmi33.87 Kb.
#151628
Bog'liq
Laboratoriya ishi


O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI

MUHAMMAD AL-XORAZMIY NOMIDAGI

TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI

Dasturlash usullari va paradigmalar



fanidan

3- Tajriba

Guruh: DUVP 315-18

Bajardi:Yursunov Dadaxon

Toshkent 2020

6-Topshiriq

1-9 –gacha 1-9 jurnal nomerdagi talabalar uchun

10-18-gacha jurnal nomerdagi talabalar uchun 1-9

19-27- gacha jurnal nomerdagi talabalar uchun 1-9 ketma-ketlikda bajaring

Dasturni rekursiv va oddiy usulda yozing.



  1. 100 qavatli bino berilgan. Agar g'isht har qanday kichik qavatdan yiqilib tushmasa va m-qavatdan yiqilayotganda singan bo'lsa, m darajali deb aytamiz. Sizda ikkita g'isht bor. Minimal otish uchun g'ishtning navini(butun,yoriq, siniq navli g’isht) topish kerak.

  2. 3D vektor uzunligini hisoblaydigan lenVec uchta argumentli funktsiyani amalga oshiring. Argumentlar vektor oxirining dekart koordinatalarini belgilaydi, uning kelib chiqishi boshida qabul qilinadi. Kvadrat ildizni ajratib olish uchun standart kutubxonada aniqlangan sqrt funktsiyasidan foydalaning.

>lenVec3 2 3 6

Musbat son kiritilsa 1, manfiy son kiritilsa (-1), 0 o'tganida 0 qaytaradigan belgi funktsiyasining bajarilishini yozing.

Agar bo'lsa, unda else



  1. Unga berilgan argumentlar farqi modulini qaytaradigan | - | operatorini amalga oshiring



Ikkita faktorialni hisoblaydigan funktsiyani aniqlang, ya'ni berilgan sondan oshmaydigan va bir xil tenglikka ega bo'lgan tabiiy sonlarning ko'paytmasi. Masalan: 7 !! = 7⋅5⋅3⋅1, 8 !! = 8⋅6⋅4⋅2. Funktsiya argumenti faqat manfiy bo'lmagan qiymatlarni qabul qilishi mumkin deb taxmin qilinadi.

5.

0,1,1,2,3,5,8,13,21, ... Fibonachchi raqamlarining ketma-ketligini birinchi ikkita tugatuvchi qiymatni o'rnatish va keyingi har qanday qiymatni darhol oldingi ikkitasining yig'indisi sifatida aniqlash orqali rekursiv ravishda aniqlash oson:



F0 = 0

F1 = 1


Fn = Fn - 1 + Fn - 2

Haskellda ushbu ta'rif quyidagi funktsiya bilan berilgan:

Fibonachchi 0 = 0

fibonachchi 1 = 1

fibonacci n = fibonacci (n - 1) + fibonacci (n - 2)

Ushbu funktsiya faqat manfiy bo'lmagan sonlar uchun belgilanadi. Biroq, yuqorida keltirilgan ta'rifdan siz Fibonachchi raqamlarini salbiy indekslar bilan hisoblash uchun formulani chiqarishingiz mumkin va ketma-ketlik quyidagicha bo'ladi:

F - 1 = 1, F - 2 = -1,…, F - 10 = -55,…

Fibonachchi funktsiyasining ta'rifini o'zgartiring, shunda u barcha butun sonlar uchun aniqlanadi va salbiy argumentlar uchun belgilangan ketma-ketlikni hosil qiladi.

6. To'g'ridan-to'g'ri rekursiv ta'rifga asoslanib, Fibonachchi sonini hisoblash funktsiyasini amalga oshirish juda samarasiz - funktsiya chaqiruvlari soni argument qiymatining o'sishi bilan beqiyos o'sib boradi. Ghci buyruqni berib, xotirani ishlatilishini va ifodani baholashga sarflangan vaqtni kuzatishga imkon beradi: set + s:

>: set + s

> fibonachchi 30

832040


(8.36 soniya, 298293400 bayt)

Akkumulyator mexanizmidan foydalanib, chiziqli murakkablikka ega bo'lgan yanada samarali dasturni yozishga harakat qiling. Oldingi topshiriqdagi kabi, funktsiya barcha butun sonlar uchun aniqlanishi kerak.

7. Quyidagi takrorlanadigan ketma-ketlik elementlarini topadigan seqA funktsiyasini amalga oshiring

a0 = 1; a1 = 2; a2 = 3; ak + 3 = ak + 2 + ak + 1−2ak.

Samarali echim topishga harakat qiling.

> seqA 301

1276538859311178639666612897162414

8. Berilgan tamsayı sonining yig'indisi va sonini topadigan funktsiyani amalga oshiring.

sum'n'count :: Integer -> (Integer, Integer)

sum'n'count x = aniqlanmagan

> sum'n'count (-39)

(12.2)


9. Tuzilgan trapetsiya usuli yordamida berilgan [a, b] intervalda berilgan f funktsiyasining aniq integralining qiymatini topadigan funktsiyani amalga oshiring. (Bir xil katakchadan foydalaning; 1000 ta chiziq segmenti etarli.)

integratsiya :: (Double -> Double) -> Double -> Double -> Double

integratsiya f a b = aniqlanmagan

> sin pi 0 integratsiyasi



-2.0

Natija -2.0 dan farq qilishi mumkin, lekin 1e-4 dan oshmasligi kerak.
Download 33.87 Kb.

Do'stlaringiz bilan baham:




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