6-laboratoriya ishi imperative (procedural) dasturlash
Download 22.05 Kb.
|
6-labaratoriya ishi (1)
6-LABORATORIYA ISHI IMPERATIVE (PROCEDURAL) DASTURLASH Maqsad: protsessual dasturlash xususiyatlari bilan tanishish. Vazifalarni protsessual uslubda hal qilish. Hisobot tuzish. Nazariy ma'lumotlar Dasturning protsessual uslubda bajarilishi xotiraning boshlang'ich holatini o'zgartirish maqsadida bayonotlarni ketma-ket bajarilishiga qisqartiriladi, ya'ni. dastlabki ma'lumotlarning qiymatlari, yakunida, ya'ni. natijalarga. Shunday qilib, dasturchi nuqtai nazaridan, birinchisi ikkinchisining tarkibini ketma-ket yangilab turadigan dastur va xotira mavjud. Protsessual uslub dasturchiga muammoni hal qilishning har bir bosqichini belgilashga imkon beradi. Bunday dasturlash tillarining o'ziga xos xususiyati shundaki, vazifalar bosqichlarga bo'linib, bosqichma-bosqich hal etiladi. Protsessual tildan foydalanib, dasturchi algoritmik qadamlar ketma-ketligini bajarish uchun til konstruktsiyalarini belgilaydi. O'zgaruvchan nom va unga mos keladigan ajratilgan xotira maydonidan iborat. O'zgaruvchini e'lon qilish yoki boshqacha qilib aytganda, direktivalar (kalit so'zlar, konstruktsiyalar) ishlatiladi. O'zgaruvchilarni yaratish turli dasturlash tillarida turlicha. Funktsiya - bu parametrlarni kirish sifatida qabul qilishi, har xil harakatlarni bajarishi va ish natijalarini mumkin bo'lgan maxsus turdagi uzatishi yetkazadi. Funktsiya chaqiruvi, dasturlash tili nuqtai nazaridan, iboradir, u boshqa iboralarda yoki topshiriqning o'ng tomonida ishlatilishi mumkin. Protsedura - bu dasturning mustaqil nomlangan qismi bo'lib, u bitta tavsifdan so'ng, ma'lum bir harakatlarni bajarish uchun keyingi dastur qismlaridan bir necha bor ism bilan chaqirilishi mumkin. chr_var <- "Dunyoga salom!" # Satr turi (belgi) o'zgaruvchisini yarating (character) num_var <- 24.3 # Haqiqiy turdagi o'zgaruvchini yarating (raqamli) (numeric) int_var <- 124L # Butun sonli o'zgaruvchini yarating (integer) cplx_var <- 56 + 4i # Murakkab turdagi o'zgaruvchini yarating (complex) logi_var <- TRUE # Mantiqiy o'zgaruvchini yarating (mantiqiy) (logical) assign("name_var", "Какое-то значение") # assign()yordamida o'zgaruvchini yarating 1-rasm - R tilida o'zgaruvchilar yaratish Vazifalar. Funksiyalar yaratish uchun funktsional so'zlardan foydalaniladi: func, def, function va boshqalar. Funktsiyalarni yaratish sintaksisi turli dasturlash tillarida farq qiladi. Kattaroq qiymatni qaytaradigan funktsiyani yaratish bigger <- function(a, b) { if (a > b) { return(a) } else { return(b) } }
bigger(5, 8) # Funktsiyadan to'g'ri foydalanish bigger(5) # Funktsiyani noto'g'ri ishlatish bigger(7, 6, 9) # Funktsiyani noto'g'ri ishlatish Dasturlarni yozish Dasturlash tillarining rivojlanishi bilan dastur kodini yozishda ishlatiladigan texnologiyalar rivojlandi. Birinchi dasturlar yaxlit matnda yozilgan. Bu buyruqlarning oddiy ketma-ketligi edi. Hammasi shunday edi: Dasturning boshlanishi 1-Komanda 2-Komanda ... N-komanda Dastur tugashi Dasturlashda ushbu yondashuv bilan juda oz narsa qilish mumkin edi. Bu holda mantiqni yaratish uchun dasturchiga mavjud bo'lgan yagona narsa o'tish edi. O'tish deganda protsessorda ma'lumotlarni qayta ishlash jarayonida rivojlangan ma'lum sharoitlarda buyruqqa o'tish tushuniladi. 1-Komanda 2-Komanda Agar shart bajarilgan bo'lsa, unda 1-Komanda qayting 3-Komanda ... N-komanda Dastur tugashi Shartsiz dallanma yordamida qurilgan dastur qismining misoli Shartsiz sakrash (goto, jmp). Qoidaga ko'ra, shartsiz o’tish bayonoti ikki qismdan iborat: bayonotning o'zi va dasturdagi o’tishning maqsad nuqtasini ko'rsatuvchi yorliq (masalan: goto yorlig'i). Yorliq, til qoidalariga qarab, yoki raqam bo'lishi mumkin (masalan, klassik BASICda), yoki ishlatilgan dasturlash tilining identifikatori. Identifikator yorliqlari uchun yorliq odatda sakrash kerak bo'lgan operator oldiga qo'yiladi va undan ikki nuqta (belgi :) bilan ajratiladi. Tarmoqlanuvchi operatorining harakati shundan iboratki, uning bajarilishidan so'ng, yorliqdan so'ng (tarmoqlanuvchi yoki siklgacha) darhol matnga ergashgan dastur bayonotlari keyingi qismida bajariladi. Mashina tillari uchun tarmoq buyrug'i protsessor registriga keyingi bajariladigan buyruqning manzilini, yorliq bilan belgilangan buyruqning manzilini o'z ichiga oladi. 1 i=0 1 FOR i=1 TO 100 2 i+=1 2 PRINT i; "squared="; i*i 3 PRINT i; "squared="; i*i 3 NEXT i 4 IF i>100 THEN GOTO 6 4 PRINT "Program Completed." 5 GOTO 2 5 END 6 PRINT "Program Completed." 7 END
a – protsedurali uslub, b – structurali dasturlash 1 dan 100 gacha bo'lgan sonlarni va shu raqamlarning kvadratlarini bosib chiqaradigan dasturlarning misoli BASIC dasturlash tilidagi turli uslublar Protsessual yondashuvda ba'zi dastur kodlari alohida bloklarga birlashtirilishi mumkin edi (protseduralar). Shundan so'ng, bunday buyruqlar blokini dasturning istalgan qismidan chaqirish mumkin. Jarayonning boshlanishi 1 1-Komanda 2-Komanda Jarayonning tugashi 1 Dasturning boshlanishi 1-Komanda 2-Komanda Agar shart bajarilgan bo'lsa, unda 1 protsedura kodini bajaring. 3-Komanda Dasturning oxiri. Bu structurali uslubda - protsessual uslubda bajarilgan dasturning tuzilishi Amaliy qism Vazifa 1 - protsessual uslubdagi dasturni yozing. Dastur psevdokod shaklida, blok-diagramma shaklida va yuqori darajadagi tilda (HLL) bajarilishi kerak (bundan keyin, agar boshqacha ko'rsatilmagan bo'lsa, HLL haqida gap ketganda, R tilida kodni bajarish kerak). Blok-sxemani yaratish uchun draw.io resursidan yoki shunga o'xshash dasturdan foydalanish tavsiya etiladi. Blok-sxemani qurish taqdimotda mavjud bo'lgan qoidalarni hisobga olgan holda amalga oshiriladi Imperativ (protsessual) dasturlash. Variant 1 Uch shaklning maydonini hisoblaydigan dastur yozing: kvadrat, to'rtburchak va doira. Ustida kirish qismida dastur raqamlar haqidagi ma'lumotlarni kiritishni so'raydi (kvadrat tomoni, aylana radiusi uchun, to'rtburchak - ikki tomon). Chiqish paytida dastur uchta raqamning maydonlarini va umumiy maydonni ko'rsatadi. Variant 2 Oylik xarajatlaringizni hisoblaydigan dastur yozing. Kirish dasturida bir nechta moddalar bo'yicha xarajatlar to'g'risidagi ma'lumotlarni so'raydi (xarajatlarning kamida 3 moddasi). Chiqishda dasturda umumiy xarajatlar va maksimal xarajatlar moddasi ko'rsatilgan. Variant 3 Haftada o'rtacha seanslar sonini hisoblaydigan dastur yozing. Dastur kuniga mashg'ulotlar soni (haftaning kuni bo'yicha) haqida ma'lumot so'raydi. Chiqish paytida dastur ko'rsatiladi haftada o'rtacha darslar soni, butun songa yaxlitlanadi. Vazifa 2 - Taqdim etilgan kodni psevdokod shaklida tavsiflang va savolga javob bering, 7 raqami funktsiyaga o'tkazilganda nima olinadi? Shuningdek, ushbu algoritmni Java-da amalga oshiring. AT&T sintaksisiga ega yig'ilish tili funktsiyasi: Download 22.05 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling