12.12. Matndagi (oxiri nuqta bilan tugagan) raqamlar sonini hisoblaydigan parmetrsiz digits rekursiv funktsiyasi tuzilsin.
12.13. Programma. O'qish faylida oxiri nuqta bilan tugaydigan matn berilgan. Bu matnni teskari tartibda chop qiladigan programma tuzilsin.
12.14. Nol bilan tugaydigan butun sonlar ketma-ketligi berilgan. Birinchi navbatda ketma-ketlikning barcha manfiy sonlari, so'ngra musbat sonlar chop qilinsin (ixtiyoriy tartibda).
12.15. Programma. O'qish faylida quyidagi ko'rinishda formula (xatosiz) yozilgan:
::=|()
::= +| – | *
::=0|1|2|3|4|5|6|7|8|9 .
Formula kiritilganda, uning qiymatini hisoblaydigan programma tuzilsin. (Masalan, 55,((2–4)*6)–12.)
12.16. Programma. O'qish faylida nuqta bilan tugaydigan matn berilgan. Bu matn “formula” ning to'g'ri yozuvi ekanligi tekshirilsin (oldingi masalaga qarang).
12.17. Programma. O'qish faylida quyidagi ko'rinishda mantiqiy ifoda xatosiz yozilgan.
::= true | false | ()
::= not | and | or
::= | ,
::=
(and va or amallarida operandlar soni ixtiyoriy bo'lishi mumkin, not amalida esa faqat bitta. Bu ifoda chop etilsin va uning qiymati hisoblansin. (Masalan, and(or(false,not(false)), true, not(true))false.)
12.18. Programma. O'qish faylidan nuqta bilan tugaydigan matn o'qilsin. Uning tuzilishi quyidagi qoidani qanoatlantirishi tekshirilsin.
::= |
::= a | b | () | [] | {}
12.19. n ta (n=100) har xil elementdan iborat bo'lgan haqiqiy turdagi vektor berilgan. Quyidagi tez tartiblash usuli yordamida massiv elementlari o'sish tartibida joylashtirilsin. Massivning ixtiyoriy elementini tanlab, (masalan o'rtadagisini) shu elementning chap tomonida shu elementdan kichik, o'ng tomonda esa katta elementlari joylashtiriladi. (Bu bilan tanlangan element o'zining oxirgi joyiga kiradi), keyin shu usul massivning chap va o'ng qismi uchun rekursiv qo'llaniladi.
12.20. (“Xanoy minorasi”) Uchta A, B, C qoziq va n-ta har xil o'lchamli halqalar mavjud. Halqalarni o'lchamlari o'sish tartibida 1 dan n gacha tartiblangan. Birinchi, barcha halqalar A qoziqqa 6.a rasmdagidek joylashtirilgan. A qoziqdagi barcha halqalarni S qoziqqa quyidagi qoidalarga amal qilgan holda 6.v rasmdagidek o'tkazish talab etiladi: halqalarni bittadan ko'chirish kerak va katta o'lchamli halqani kichik o'lchamli halqa ustiga qo'ymaslik kerak.
6-rasm
Amallar ketma-ketligini chop etadigan («xalqa q dan r ga o'tkazilsin» ko'rinishida, bunda q va r - A,V yoki S) masalani n ta xalqa uchun yechadigan programma tuzilsin. Bunda n berilgan natural son. (ko'rsatma: xalqalarni A dan S ga to'g'ri o'tkazishda v,b rasmlardagidek ko'rinish uchraydi)
12.21. Programma. 1 dan n gacha nomerlangan n ta (n=10) aholi punkti mavjud. Ayrim punktlar o'zaro yo'llar bilan tutashgan. Bu yo'llar yordamida 1-chi punktdan n-chi punktga borish mumkin yoki yo'qligini aniqlaydigan programma tuzilsin. Yo'llar haqidagi ma'lumot i va j (i
Do'stlaringiz bilan baham: |