Mavzu:Paskal dasturlash tilida algoritmlar. Paskalda malumotlarning tiplari
Nazariy qism: Har qanday dasturda muammoni hal qilish uchun ishlatiladigan miqdor va turni aniqlash kerak. Ularning shakli bo'yicha oddiy miqdorlar (dasturlashda ularning barchasi ma'lumotlar deb nomlanadi) doimiy va o'zgaruvchiga bo'linadi. KonstantalarDasturni bajarish paytida qiymatlari o'zgartirilishi mumkin bo'lmagan ma'lumotlar. Const blokida tanishtirilgan. Umuman olganda, oddiy ochilmagan doimiylik quyidagicha tavsiflanadi: Const doimiy_name \u003d ifoda; Terilgan turg'unliklar quyidagicha tavsiflanadi: Const doimiy_name: type \u003d ifoda; Quyidagi iboralardan foydalanish mumkin: · Raqamlar yoki apostroflardagi belgilar to'plami; Matematik operatsiyalar; Aloqalar va mantiqiy operatsiyalar; Abs (x), dumaloq (x), kesmalar (x) funktsiyalari; · Chr (x), ord (x), pred (x), succ (x) va boshqalar vazifalari. Konstantalarni tasvirlash formati: id \u003d qiymat; 1. Butun son - o'nlik yoki o'n oltilik formatda o'nlik kasrsiz yozilgan sonlar yordamida aniqlanadi. 2. Haqiqiy - o'nlik ma'lumotlar formatida yozilgan raqamlar yordamida aniqlanadi. 3. Ramziy har qanday belgi shaxsiy kompyuter, apostroflarga ilova qilingan. 4. String - apostroflarga o'ralgan ixtiyoriy belgilar ketma-ketligi bilan aniqlanadi. 5. Mantiq yo noto'g'ri, yoki rost. Doimiyning turi ko'rsatilmagan, ammo kompilyatsiya paytida u avtomatik ravishda aniqlanadi: ifodalarning qiymatlari darhol hisoblab chiqiladi va keyin faqat ismlar o'rniga o'zgartiriladi. O'zgaruvchilar Dasturni bajarish paytida o'zgarishi mumkin bo'lgan ma'lumotlar. Har bir o'zgaruvchi o'z nomini olgan xotira manzili / manzillariga ega. Bular o'zgaruvchi - bu ba'zi ma'lumotlarni joylashtiradigan va shu erda saqlashingiz mumkin bo'lgan bir turdagi idish. O'zgaruvchilar nomi, turi va qiymatiga ega. O'zgaruvchan ism - harf bilan boshlanishi kerak, bo'sh joy bo'lmasligi kerak va faqat quyidagilarni o'z ichiga olishi mumkin: Lotin alifbosidagi harflar; · Pastga chizish. Misollar: A, A_1, AA, i, j, x, y va boshqalar. Noto‘g‘ri ismlar: Mening 1, 1A. O'zgaruvchan nomlar 126 belgidan iborat bo'lishi mumkin, shuning uchun mazmunli o'zgaruvchan nomlarni tanlashga harakat qiling. Biroq, kompilyator ismlardagi birinchi 63 ta belgini ajratib turadi. Ammo u kichik va katta harflarni farq qilmaydigan nomlarda ham, xizmat identifikatorlarini yozishda ham farq qilmaydi. O'zgaruvchan turi - o'zgaruvchan deklaratsiya blokida VARda aniqlanishi kerak. O'zgaruvchining qiymati bir xil turdagi doimiydir. Har bir dastur ma'lumotlar bilan ishlaydi. Ma'lumotlar, so'zning keng ma'nosida, dastur ishlaydigan ob'ektlardir. Berilgan turi uning o'ziga xos xususiyatidir. Turiga bog'liq: Ushbu ma'lumotlar qanday saqlanadi, Uni saqlash uchun qancha xotira xujayralari ajratiladi, U olishi mumkin bo'lgan minimal va maksimal qiymat nima, · U bilan qanday operatsiyalarni bajarish mumkin. Ba'zi oddiy Paskal ma'lumot turlari: 1. Butun sonlar (ShortInt, Integer, LongInt, Bayt, Word). 2. Haqiqiy turlar (haqiqiy, yakka, er-xotin, kengaytirilgan, komp). 3. Mantiqiy (Boolean). 4. Belgilar (Char). 5. String turlari (String, String [n]). 9. Paskalda shartsiz operatorlar. Ta'rif va foydalanish. Operator turi goto<метка>; Maqsad - dasturdagi boshqaruvni yorliq bilan belgilangan operatorga o'tkazish<метка>... Yorliq nom bo'lishi mumkin (til nomlari uchun qoidalarga muvofiq yozilgan) yoki yorliq ta'rifi operatorida yorliqda tasvirlangan va belgilangan operatordan oldingi, ammo dasturda faqat bitta joyda imzolanmagan butun son bo'lishi mumkin. Yorliq operatordan ":" belgisi bilan ajratilgan. Yorliqqa sakrash blokda bir necha bor sodir bo'lishi mumkin, lekin yorliqning o'zi bir marta paydo bo'lishi mumkin. Agar biron bir yorliqqa boshqaruvni uzatish bo'lmasa, xato bo'lmaydi. Shartli ravishda sakrash operatoriga odatda tarkibiy dasturlashda ruxsat berilmaydi. Dastur matnini qisqartirishga imkon beradigan bo'lsa-da, uni paskalda ishlatish bir qator qoidalar va ko'rsatmalar bilan cheklangan. Murakkab bayonot ichkarisida, kichik dasturning boshiga yoki boshiga kirish va ushbu dastur deb nomlangan dasturga chiqish taqiqlanadi. Dastur matni sahifasidan (ekranidan) tashqariga chiqish tavsiya etilmaydi, dasturning yakuniy bayonotlariga o'tish bundan mustasno. Bularning barchasi dasturning to'g'ri ishlashi uchun muhim ko'rsatmalarning yo'qligi ehtimoli bilan bog'liq. Odatda, shartsiz o'tish operatori faqat pastadir shartli va shartsiz iboralar yordamida tuzilgan bo'lsa, pastadir tanasining boshiga qaytish uchun ishlatiladi. E'tibor bering, goto-dan keyingi bayonot boshqa yorliq bilan ham belgilanishi kerak (agar goto bayonot guruhidagi oxirgi bo'lmasa). Aks holda, goto-dan keyin keyingi operatorga o'tishning imkoni yo'q. 10. Paskalda filial ishlash operatorlari. Ta'rif va foydalanish. Bir nechta ruxsat beruvchi operatorlarga mumkin bo'lgan variantlar dasturni bajarish (filiallar) faqat bittasini tanlang, shu jumladan Bular bu iboralar dastur ko'rsatmalarini bajarish tartibini o'zgartirishga imkon beradi. agar<условие> keyin< оператор 1 > yana<оператор 2> ; agar a\u003e \u003d b bo'lsa, Max: \u003d a boshqa Max: \u003d b; If ifoda ichida ikkala filialda (keyin va yana) bittagina buyruq bajarilishi mumkin! Paskalda dallanma operatorlari uchun vazifaga misol. Ikki butun sonni kiriting va ularning eng kattasini ko'rsating. Yechim g'oyasi: agar birinchi raqam ikkinchi raqamdan katta bo'lsa, yoki ikkinchi raqam birinchi raqamdan katta bo'lsa, uni birinchi raqamda ko'rsatish kerak. Xususiyat: ijrochining harakatlari ba'zi shartlarga bog'liq (agar ... aks holda ...). var a, b, max: butun; writeln ("Ikki butun sonni kiriting"); agar a\u003e b bo'lsa, max: \u003d yana bir max: \u003d b; writeln ("Eng yuqori raqam", maksimal); Qiyin sharoitlar Murakkab holat - bu mantiqiy bog'liq bo'lgan bir nechta oddiy sharoitlardan (munosabatlardan) iborat bo'lgan holat operatsiyalar: YO'Q - YO'Q (rad etish, inversiya) Va - VA (mantiqiy ko'paytirish, qo'shilish, shartlarni bir vaqtning o'zida bajarish) Yoki - YOKI (mantiqiy qo'shish, ajratish, shartlarning kamida bittasini bajarish) Xor - eksklyuziv OR (faqat ijro) ikkita shartdan biri, lekin ikkalasi ham emas) Oddiy sharoitlar (munosabatlar) < <= > >= = <> Bajarish tartibi (ustuvorlik \u003d ish staji) Qavslardagi iboralar <, <=, >, >=, =, <> Xususiyat - har bir oddiy shartlar qavslarga o'ralgan bo'lishi kerak. Ishni tanlash to'g'risida bayonot Case bayoni bir nechta variantlardan birini tanlashga imkon beradi. Variant operatori quyidagilardan iborat A selektor deb ataladigan iboradan Ø va har biri selektor bilan bir xil turiga ega bo'lgan operatorlar ro'yxati. Selektor faqat uzunlamas turga emas, balki faqat buyurtma ma'lumotlar turiga ega bo'lishi kerak. Selektor o'zgaruvchan yoki ifoda bo'lishi mumkin. Doimiy ro'yxatlar aniq ro'yxat sifatida yoki interval yoki ularning birlashishi sifatida belgilanishi mumkin. Takrorlanadigan konstantalar mavjud emas ruxsat berilgan. Kommutatsiya turi va barcha turg'unlarning turlari mos bo'lishi kerak. Ish< выражение {селектор}> ning <список констант 1> : < оператор 1>; < список констант K> : < оператор K>; Ish bayonnomasi quyidagicha rasmiylashtiriladi: 1) selektor qiymati hisoblanadi; 2) olingan natija konstantalarning aniq ro'yxatiga tegishli ekanligi tekshiriladi; 3) agar bunday ro'yxat topilgan bo'lsa, keyingi tekshiruvlar endi amalga oshirilmaydi, lekin mos keladigan operator tanlangan filial, keyin nazorat quyidagi operatorga o'tkaziladi kalit so'z oxiri, bu butunni yopadi kassa qurish; 4) agar mos keladigan doimiy ro'yxat bo'lmasa, boshqa kalit so'z ortida operator bajariladi; agar boshqa filial bo'lmasa, keyin hech narsa qilinmaydi. Bir qatorni ajratish bo'yicha bayonotda barcha filiallar bo'yicha bittagina buyruq bajarilishi mumkin! Agar siz bir nechta buyruqlarni bajarishingiz kerak bo'lsa, siz boshlovchi operator qavslaridan foydalanishingiz kerak. case indeksi 4 of 1: x: \u003d y * y - 2 * y; 11Paskalda tanlov (tanlov) opatori. Ta'rif va foydalanish. Tanlov operatori (optsiya, o'zgartirish) mumkin bo'lgan alternativalardan birini tanlashni amalga oshiradi, ya'ni. dasturni davom ettirish variantlari. Yozuv formati: Ish - tanlov, tanlov; S - selektor, buyruq tipidagi ifoda; Ki - selektiv turiga mos keladigan turg'unlik; OPi - har qanday operator, shu jumladan bo'sh; Tanlangan operator quyidagi qurilishni amalga oshiradi: Paskalda operator ishini tanlang: Selektor ifoda baholanadi. Hisoblangan qiymat alternativlarning doimiylari bilan ketma-ket taqqoslanadi va boshqarish selektorning hisoblangan qiymatiga to'g'ri keladigan operatorni tanlash sobitiga o'tkaziladi. Bayonot bajariladi va boshqarish tanlov bayonnomasidan tashqarida o'tkaziladi. Agar selektorning hisoblangan qiymati biron bir konstantaga mos kelmasa, u holda nazorat Else filialiga beriladi, bu holda uning mavjudligi zarur emas, boshqarish tanlov operatori tashqarisiga o'tkaziladi. Tanlash operatorining blok diagrammasi. Tanlangan bayonotning tuzilishi o'rnatilgan shartli gaplar yordamida amalga oshirilishi mumkin, ammo bu dasturning ravshanligini pasaytiradi. 2-3 darajali biriktirma tavsiya etiladi. 12. Paskalda loop operatorlarining turlari, ularning maqsadi. 5. Tsikllarning algoritmik tuzilishi. Tsikl turlari. Loop algoritmlarining uch turi mavjud: parametrli pastadir (arifmetik pastadir deyiladi), oldingi halqa va postkondision halqa (iterativ pastadir deyiladi). 12.13 Arifmetik halqa.Arifmetik tsiklda parametrlarning dastlabki (N) va yakuniy (K) qiymatlari va uni o'zgartirish bosqichi (h) yordamida o'rnatiladigan parametrni o'zgartirish uchun uning qadamlari (takrorlash) soni aniq belgilanadi. Ya'ni, tsiklning birinchi bosqichida parametr qiymati N ga, ikkinchi bosqichda - N + h, uchinchisida - N + 2h va hokazo. Tsiklning oxirgi bosqichida parametrning qiymati K dan katta emas, ammo uning keyingi o'zgarishi K dan katta qiymatga olib keladi. Hisoblagich dastgohlari dasturning tsikl qismini belgilangan miqdordagi takrorlash kerak bo'lganda ishlatiladi. Bunday pastadirlar aylanma hisoblagich deb nomlangan butun o'zgaruvchiga ega. Agar dastur parchasini bir necha bor takrorlash kerak bo'lsa, unda quyidagi qurilish ishlatiladi: UCHUN<имя счетчика цикла> = <начальное значение> TO<конечное значение> DO<оператор>; FOR, TO, DO - zaxiralangan so'zlar (inglizcha: for, to, ijro); <счетчик (параметр) цикла> - oralig'ida o'zgaradigan INTEGER turidagi o'zgaruvchi<начального значения>tsiklning har bir bosqichi oxirida bittaga ko'payishi; <оператор> - har qanday (ko'pincha aralash) operator. Ushbu operatorning boshqa shakli mavjud: UCHUN<имя счетчика цикла>:= <начальное значение> DOWNTO<конечное значение> DO<оператор> : TO DOWNTO bilan almashtirish (inglizchadan: pastga), tsikl parametrini o'zgartirish bosqichi - 1 ga teng degan ma'noni anglatadi, ya'ni hisoblagichni qadamma-qadam pasayishi sodir bo'ladi. 12.14 Old shart bilan halqa. Tsikldagi qadamlar soni oldindan aniqlanmagan va muammoning kirish ma'lumotlariga bog'liq. Ushbu pastadir strukturasida, pastadir keyingi bosqichini bajarishdan oldin shartli ifoda (shart) ning qiymati avval tekshiriladi. Agar shartli ifoda qiymati to'g'ri bo'lsa, ko'chadan tanasi bajariladi. Shundan so'ng, nazorat yana holatni tekshirishga o'tkaziladi va hokazo. Ushbu harakatlar shartli ifoda FALSE qiymatini baholaguncha takrorlanadi. Birinchi shartga rioya qilmasa, tsikl tugaydi. Ushbu eng ko'p ishlatiladigan takrorlash operatori: HAMMA<условие> DO<оператор>; WHILE, DO - ajratilgan so'zlar (inglizcha: bye, to do); <условие> - mantiqiy turni ifodalash; <оператор> - ixtiyoriy (ehtimol murakkab) operator. Oldingi shartli tsiklning o'ziga xos xususiyati shundaki, agar boshlang'ich shartli ifoda noto'g'ri bo'lsa, unda tsikl tanasi bir marta ham bajarilmaydi. Oldingi shartga ega bo'lgan ko'chadan foydalanish, mantiqiy holat ba'zi mantiqiy holat bilan bog'liq bo'lganda qo'llaniladi. Old sharti bo'lgan pastadir bayonoti ikki qismdan iborat: pastadir bajarilish holati va pastadir tanasi. 12.15 Postkonditsiyali halqa (iteratsiya pastadir). Oldindan shartli ko'chadan kabi, postkonditsiyasi bo'lgan pastadirda, ko'chadan tanasining takrorlanish soni oldindan aniqlanmagan, bu vazifaning kirish ma'lumotlariga bog'liq. Oldindan shartli ko'chadan farqli o'laroq, postkonditsiyasi bo'lgan pastadir tanasi har doim kamida bir marta bajariladi, shundan so'ng holat tekshiriladi. Ushbu qurilishda shartli ifoda qiymati noto'g'ri bo'lsa, tsikl tanasi bajariladi. Bu haqiqat bo'lishi bilanoq, buyruq bekor qilinadi. Ushbu operator quyidagi shaklga ega: Takrorlang<тело цикла> UTIL<условие>: REPEAT, UNTIL - zaxiralangan so'zlar (inglizcha: takrorlang); <условие> - mantiqiy turdagi ifoda, agar uning qiymati to'g'ri bo'lsa, u holda tsikl chiqadi. Shuni ta'kidlash kerakki, ushbu qurilishda tsiklning tanasini aniqlaydigan ko'rsatmalar ketma-ketligi operator operatori kronshteynlariga kiritilmaydi BEGIN ... END, chunki ular REPEAT ... UNTIL juftligi. Postkonditsioner ilmoqlari oldindan tuzilgan pastadirlarga o'xshash, ammo ular ushbu holatni pastadir tanasidan keyin joylashtiradilar. Oldingi shartga ega bo'lgan pastadirdan farqli o'laroq, u hech qachon loopning tanasini bajarmasdan bajarishi mumkin (agar bajarilish sharti loopning birinchi o'tishida noto'g'ri bo'lsa), postkonditsiyasi bo'lgan pastadir tanasi kamida bir marta bajarilishi kerak, shundan so'ng holat tekshiriladi. Loop tanasining operatorlaridan biri halqa bajarilishi holatining qiymatiga ta'sir qilishi kerak, aks holda pastadir cheksiz marta takrorlanadi. Agar shart to'g'ri bo'lsa, u holda tsikl chiqadi, aks holda tsikllar takrorlanadi. 16. Arrayumumiy nom bilan birlashtirilgan va kompyuterda ma'lum bir xotira maydonini egallagan bir xil turdagi elementlarning to'plamidir. Massivdagi elementlar soni har doim cheksizdir. Umuman olganda, massiv - bu bir xil turdagi elementlarning sobit sonidan iborat tuzilgan ma'lumotlar turi. Massivlar odatdagi tip (yoki satrlar) deb nomlanadi, chunki ular bir xil turdagi elementlarni (mantiqan bir hil), bir qatorda har bir elementning o'rnini aniqlaydigan indekslar bo'yicha tartibga solingan (tartibga solingan) elementlarni birlashtiradi. Har qanday turdagi ma'lumotlar massiv elementlari sifatida ishlatilishi mumkin, shuning uchun yozuvlar massivlari, ko'rsatgichlar qatorlari, qatorlar, massivlar va hokazolar uchun qonuniydir. Array elementlari har qanday ma'lumotlarga, shu jumladan tuzilgan ma'lumotlarga ham ega bo'lishi mumkin. Paskal tilining o'ziga xos xususiyati shundan iboratki, massiv elementlarining soni tavsif paytida aniqlanadi va dasturni bajarish paytida o'zgarmaydi. Massivni tashkil etuvchi elementlar shunday tartibda joylashtirilganki, har bir element umumiy ketma-ketlikda uning joylashishini aniqlaydigan raqamlar to'plamiga (indekslarga) to'g'ri keladi. Har bir alohida elementga massiv elementlarini indekslash orqali kirish mumkin. Indekslar har qanday skalyar turlarning ifodasidir (aksariyat sonlar), haqiqiylardan tashqari. Indeks turi indeks qiymatlari o'zgarishi chegaralarini belgilaydi. Bir qator ta'riflash uchun array jumlasi ishlatiladi.
Amaliy qism: Уравнение вида a⋅x2 + b⋅x + c = 0 -
Do'stlaringiz bilan baham: |