Laboratoriya 2
Strukturali dasturlash
Maqsad: tizimli dasturlash xususiyatlari bilan tanishish. Vazifalarni tizimli uslubda hal qilish. Hisobot tuzish.
Nazariy ma'lumotlar
Strukturaviy dasturlash - bu dasturni ierarxik blok tuzilishi ko'rinishida taqdim etishga asoslangan dasturiy ta'minotni ishlab chiqish metodologiyasi.
Ushbu metodikaga muvofiq har qanday dastur uchta asosiy boshqaruv tuzilmalaridan goto operatoridan foydalanmasdan tuziladi: ketma-ketlik, tarmoq, tsikl; qo'shimcha ravishda pastki dasturlardan foydalaniladi. Bunda dasturni ishlab chiqish bosqichma-bosqich, "yuqoridan pastga" usuli bilan amalga oshiriladi.
Strukturali dasturlashning maqsadi dasturchilarning ish unumdorligini oshirish, shu jumladan katta va murakkab dasturiy ta'minot tizimlarini ishlab chiqish, xatolar sonini kamaytirish, dasturiy ta'minotni disk raskadrovka, o'zgartirish va texnik xizmat ko'rsatishni soddalashtirishdir.
Boem - Jakopini teoremasi - bu tuzilgan dasturlash bayoni, unga ko'ra har qanday bajariladigan algoritmni tuzilgan shaklga aylantirish mumkin, ya'ni uning bajarilishi faqat uchta boshqaruv tuzilmasi yordamida aniqlanganda bunday shakl: ketma-ketlik, shoxchalar va takrorlashlar yoki tsikllar.
Tsikl - bu ko'rsatmalar to'plamining takroriy bajarilishini tashkil qilish uchun mo'ljallangan yuqori darajadagi dasturlash tillaridagi boshqaruv strukturasining bir turi.
Cheksiz tsikl - bu chiqish sharti hech qachon bajarilmaydigan tarzda yozilgan tsikl.
repeat {
# Выполняем действие
}
1-rasm – R dagi cheksiz tsikl.
while(TRUE) {
# Выполняем действие
}
2-rasm - Rdagi cheksiz pastadir (while tsikli asosida)
Shartli tsikl - bu boshlanishidan oldin ko'rsatilgan ba'zi bir shartlar rost ekan, bajariladigan tsikl. Ushbu shart loop tanasini bajarishdan oldin tekshiriladi, shuning uchun tanani bir marta ham bajarmaslik mumkin (agar shart boshidanoq yolg'on bo'lsa). Ko'pgina protsessual dasturlash tillarida while operatori tomonidan amalga oshiriladi, shuning uchun uning ikkinchi nomi - while-tsikl.
i <- 0
while(i <- 5) {
i <- i + 1
print(i)
}
Shakl 3 – shartli tskiloperatori R (while)
Hisoblagichli tsikl - bu o'zgaruvchining o'z qiymatini ma'lum bir boshlang'ich qiymatidan biron bir qadam bilan yakuniy qiymatiga o'zgartiradigan tsikl va bu o'zgaruvchining har bir qiymati uchun tsikl tanasi bir marta bajariladi. Ko'pgina dasturlash tillarida u hisoblagichni ("tsikl o'zgaruvchisi" deb ataladigan), kerakli o'tish sonini (yoki hisoblagichning chegara qiymatini) va, ehtimol, hisoblagich o'zgarishi bosqichini ko'rsatadigan for operatori tomonidan amalga oshiriladi.
for(i in 1:5) {
print(i)
}
4-rasm - R da hisoblagichli tsikl (for)
Tsikldan erta chiqish. Erta chiqish buyrug'i chiqish shartiga hali erishilmagan tsiklning bajarilishini to'xtatish zarur bo'lganda foydalaniladi. Bu, masalan, tsikl tanasini bajarish paytida xato aniqlanganda sodir bo'ladi, shundan so'ng tsiklning keyingi ishlashi mantiqiy bo'lmaydi.
Erta chiqish buyrug'i odatda chiqish yoki uzilish deb nomlanadi va uning ta'siri buyruq joylashgan tsikldan keyin darhol buyruqdagi goto buyrug'iga o'xshaydi.
for(i in 1:5) {
if (i == 3) {
break
}
print(i)
}
5-rasm - R dagi for tsiklidan erta chiqish
Takrorlashni o'tkazib yuboring. Ushbu operator, amaldagi tsiklning takrorlanishida, barcha buyruqlarni tsikl tanasining oxiriga o'tkazib yuborish zarur bo'lganda ishlatiladi. Bunday holda, tsiklning o'zi to'xtatilmasligi kerak, davom etish yoki chiqish shartlari odatiy tarzda hisoblanishi kerak.
C tilida va uning avlodlari tillarida takrorlash konstruktsiyasida davom etuvchi operator takrorlashni o'tkazib yuborish buyrug'i sifatida ishlatiladi. Ushbu operatorning harakati, uning so'nggi buyrug'idan keyin tsikl tanasi ichidagi chiziqqa shartsiz sakrashga o'xshaydi. R da maxsus operator mavjud emas.
Amaliy qism
Vazifa 1 – Strukturali uslubda dasturini tuzing. Dastur raqamning maydonini (kvadrat, to'rtburchak va doira) hisoblashi kerak. Dastur kirish sifatida satrni so'raydi. Agar ikkita qiymat kiritilgan bo'lsa, dastur to'rtburchaklar tomonlari kiritilgan deb hisoblaydi. Agar bitta qiymat kiritilgan bo'lsa, unda dastur foydalanuvchidan kvadrat yoki doiraning maydonini hisoblashni so'rashi kerak. Keyin dastur maydon qiymatini, shuningdek echim usulining tavsifini aks ettiradi.
Dastur blok-sxemada va JCUda bajarilishi kerak.
Vazifa 2 - Noto'g'ri ko'pburchakning maydonini hisoblaydigan dastur yozing. Tekislikdagi ko'pburchak dekart tizimidagi uning N tepaliklarining butun koordinatalari bilan belgilanadi. Ko'pburchakning yon tomonlari tegmaydi (qo'shni bo'lganlar bundan mustasno - tepaliklarda) va kesishmaydi. Birinchi satrdagi dastur N raqamini - ko'pburchakning tepalari sonini, keyingi N satrlarida - tegishli tepaliklarning koordinatalarini qabul qilishi kerak (tepaliklar soat sohasi farqli ravishda ketma-ketlikda ko'rsatilgan). Dastur raqamning maydonini chiqishda chiqarishi kerak.
Dastur blok-sxemada va JCUda bajarilishi kerak.
Laboratoriya materiallaridan nazorat qilish uchun savollar
1. Tarkibiy dasturlash xususiyatlari
2. Boem - Jakopini teoremasi
Savollarni qidirish va yozma javob
1. Postkonditsion bilan ilmoq
2. Qo'shma tsikl
3. Ichki halqalar
4. "Yuqoridan pastga" dasturlarini loyihalashtirish printsipi.
Do'stlaringiz bilan baham: |