7. Matndagi (oxiri nuqta bilan tugagan) raqamlar sonini hisoblaydigan parmetrsiz digits rekursiv funktsiyasi tuzilsin.
8. Programma. O'qish faylida oxiri nuqta bilan tugaydigan matn berilgan. Bu matnni teskari tartibda chop qiladigan programma tuzilsin.
9. Nol bilan tugaydigan butun sonlar ketma-ketligi berilgan. Birinchi navbatda ketma-ketlikning barcha manfiy sonlari, so'ngra musbat sonlar chop qilinsin (ixtiyoriy tartibda).
10. 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.)
11. Programma. O'qish faylida nuqta bilan tugaydigan matn berilgan. Bu matn “formula” ning to'g'ri yozuvi ekanligi tekshirilsin (oldingi masalaga qarang).
12. 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.)
13. Programma. O'qish faylidan nuqta bilan tugaydigan matn o'qilsin. Uning tuzilishi quyidagi qoidani qanoatlantirishi tekshirilsin.
::= |
::= a | b | () | [] | {}
14. (“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 quyidagi rasmdagidek o'tkazish talab etiladi: halqalarni bittadan ko'chirish kerak va katta o'lchamli halqani kichik o'lchamli halqa ustiga qo'ymaslik kerak.
Amallar ketma-ketligini chop etadigan («xalqa q dan r ga o'tkazilsin» ko'rinishida, bunda q va r - A, B yoki C) masalani n ta xalqa uchun yechadigan programma tuzilsin. Bunda n berilgan natural son. (ko'rsatma: xalqalarni A dan С ga to'g'ri o'tkazishda b, d rasmlardagidek ko'rinish uchraydi)
Do'stlaringiz bilan baham: |