Pascal tarmoqlanuvchi va takrorlanuvchi dasturlar Reja
Download 21.12 Kb.
|
Pascal tarmoqlanuvchi va takrorlanuvchi dasturlar
NE’MATOVA GAVHAROY 19.103 GURUH Pascal tarmoqlanuvchi va takrorlanuvchi dasturlar Reja: Paskal dasturlash tillari Tarmoqlanuvchi dasturlar Takrorlanuvchi dasturlar .1-masala. Tarmoqlanuvchi dasturlarga doir Paskal da kvadrat tenglamaning haqiqiy ildizlarini topish dasturi tuzilgan. Bu dasturga mos prosteduralarning ko’rinishi quyidagicha bo’ladi: Program kvadrat; var d,a,b,c,x1,x2:real; begin write('a=');read(a); write('b=');read(b); write('c=');read(c); d:=b*b-4*a*c; if d<0 then Write('xaqiqiy echimi yo`k') else begin x1:=(-b-sqrt(d))/(2*a); x2:=(-b+sqrt(d))/(2*a); Write(''x1= ,x1); Write(''x2= ,x2);; end; end; end. 2.2masala. Ikki butun musbat son m va n larning eng katta umumiy bo’luvchisi (EKUB) ni aniqlash dasturini tuzing. Dastur matni program ekub; label 1,2; var m,n,x,y:ineteger; begin write('m=');read(m); write('n=');read(n); x:=m;y:=n; 1: if x=y then goto 2; if x>y then x:=x-y else y:=y-x; goto 1; 2: write('x=',x);; end. 2.3masala. Ikkita x va y sonlarning kattasini tanlash (EKT) dacturini tuzing. Dastur matni program ekt; var m,y,x:ineteger; begin write('x=');read(x); write('y=');read(y); if x>y then begin m:=x; write('m=',m); end else if y>x then begin m:=y; write('m=',m); end else write('‘Bu sonlar teng!’); end. 2.4 masala. Raketa v (km/soat) tezlik bilan Er ekvatoridagi nuqtadan Erning quyosh atrofidagi orbitasi bo’ylab uchiriladi. Raketani uchirish natijasi qanday bo’ladi? Dastur matni program raketa; var a:real; begin write('a=');read(a); if a<7.9 then write('Raketa Yerga qaytib tushadi'); if (a>=7.9) and (a<11.2) then write('Raketa Yerning sun`iy yo`ldoshiga aylanadi'); if (a>=11.2) and (a<16.7) then write(' Quyoshning sun`iy yo`ldoshiga aylanadi'); if a>=16.7 then write('Raketa Galaktikaning sun`iy yo`ldoshiga aylanadi'); end. 2.5-masala. Optimal og’irlikni aniqlash dasturini yozing. Dastur formasi quyidagicha ko’rinishga ega. Dastur matni program optimal; var w,h,opt,d:real; begin write('w=');read(w); write('h=');read(h); opt:=h-100; if w=opt then begin write('optimal'); end else if w write('siz semirishingiz kerak'); end else begin d:=w-opt; write('siz ozishingiz kerak',d ,'ga'); end; end; end. 2.6-masala. Agar kvadratning tomoni A, doiraning radiusi r ga teng bo’lsa, kvadrat va doiraning yuzlarini solishtirib kattasini aniqlang. Dastur matni program kvadrat; var a,r,sk,sd:real; begin write('a=');read(a); write('r=');read(r); sk:=a*a;sd:=pi*r*r; if sk>sd then write(’Kvadratning yuzi katta!’) else if sk 2.7-masala. Quyidagi funkstiya hisoblansin: x>0 bo’lganda 1 ga teng; x=0 da nolga teng; x<0 da -1 ga teng. Dastur matni progran funksiya; var x,y:real; begin write('x=');read(x); if x>0 then y:=1 else if x=0 then y:=0 else y:=-1; write('y=',y); end. 2.8-masala. Berilgan N yil kabisa yili bo’lish-bo’lmasligini aniqlang. Izoh. Agar N 100 ga karrali son bo’lmasa va uning oxirgi ikki raqami 4 ga karrali son bo’lsa, u holda N-yil kabisa yilidir. Agar N soni 100 karrali bo’lsa, u holda N soni 400 ga karrali bo’lgandagina mazkur yil kabisa yili bo’ladi. Dastur matni program kabisa; var n:integer; begin write('n=');read(n); if n mod 100=0 then begin if n mod 400 =0 then write('Bu yil kabisa yili!') else write('Bu yil kabisa yili emas!'); end else if n mod 4 =0 then write('Bu yil kabisa yili!') else write('Bu yil kabisa yili emas!'); end. 2.9-masala. a, b, c sonlar mos ravishda uchta kesmaning uzunliklarini ifodalaydi. Agar kesmalar uchburchakning tomonlarini ifodalasa, uchburchakning yuzi s, uchburchakka tashqi va ichki chizilgan aylanalarning radiuslari r1 va r2 larni toping. Dastur matni program uchburchak; var a,b,c,r1,r2,s,p:real; begin write('a=');read(a); write('b=');read(b); write('c=');read(c); if ((a+b)>c) and ((a+c)>b) and ((b+c)>a) then begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); r2:=s/p; r1:=a*b*c/(4*s); write('r1=',r1); write('r2=',r2); write('s=',s); end else write('Kiritilgan sonlar uchburchak tomonlarini ifodalamaydi!'); end. Model — haqiqiy obyektning izlanish olib borilayotgan sohaning ma’lum talablariga javob beradigan nusxasidir. Algoritm deganda biror maqsadga erishishga yo‘naltirilgan, ijrochi bajarishi uchun mo‘ljallangan buyruqlarning ketma-ketligi tushuniladi. 18 Paskal dasturlash tili 1969-yil Nikalas Virt tom onidan ishlab chiqildi.1981- yilda Paskal tilining xalqaro standarti taklif etildi. Paskal tilining Borland firmasi tomonidan ishlab chiqilgan Turbo Pascal 7.0 naqlidan hozirgi davrda keng foydalaniladi. U foydalanuvchilar uchun juda qulay tizim — dasturlashning integrallashgan muhitiga ega. Paskal dasturlash tilida dastur yozishda quyidagilar qollaniladi: Konstantalar (o‘zgarmaslar) — dastur ishlaganda qiymati o’zgarmaydigan miqdorlar; O`zganivchilar — dastur ishlaganda qiymati o’zgaradigan miqdorlar; Ifodalar — mos amallar bilan boglangan 0‘zgarmaslar, 0‘zgaruvchilarva funksiyalar; Operatorlar — dasturlash tilining tugallangan biror amalini berishuchun moljallangan ko‘rsatmasi; Funksiya va protseduralar — o‘z nomiga ega bo’lgan alohida dastur qismlari. Ularga asosiy dasturdan murojaat etiladi; Nishonlar — dasturda boshqarish uzatilayotgan operatorni ko‘rsatadi. Paskal tilidagi dasturlar umumiy holda quyidagi tuzilishga ega: Program dastur nomi; {majburiy emas} Uses {Modullar ro`yxati} Label {Nishonlar ro`yxati} Const {Konstantalarni tavsiflash} Var {O‘zgaruvchilarni tavsiflash} Protsedura va funksiyalar Begin {Asosiy qism} End. Label, Const, Var, Begin, End — Paskal tilining maxsus so`zlari bo`lib , label — nishon, const (constant — konstanta) — O‘zgarmas miqdor, var (variable) — o’zgaruvchilami tavsiflash, begin — boshlanish, end — tamomlash ma’nolarini anglatadi. O‘zgarmas va o‘zgaruvchi miqdorlar: Paskal tilida, asosan, uch xil: o`zgarmas, o‘zgaruvchi va jadval ko‘rinishidagi miqdorlar ishlatiladi. Ular belgili, satrli, mantiqiy va sonli turdagi qiymatlarni qabul qilishi mumkin. O‘zgarmas miqdorlar Belgili o‘zgarmaslar apostrof ichiga olingan bitta belgi — harf,raqam yoki maxsus belgidan iborat. Masalan: ’a’; ’B’; ‘9’; ‘-‘ va hokazo. Satrli o‘zgarmaslar (belgilardan iborat satr) soni 0 tadan 122 tabelgigacha bo’lgan va apostrof ichiga olingan harf, raqam va maxsusbelgilar ketma-ketligidan iborat. Masalan: ‘Toshkent’; ‘A549’; ‘B***M.’; ‘47% ’; vahokazo. Apostrof ichida hech narsa yozilmasa u bo‘sh satr deyiladi. 19 Mantiqiy o‘zgarmaslar True (rost) yoki False (yolg’on) mantiqiyqiymatlardan biridir. Sonli o‘zgarmaslar ikki turda — butun yoki haqiqiy bo’lishi mumkin.Butun sonlar ishorali yoki ishorasiz ko`rinishda -2147483648 dan +2147483647 gacha bo`lgan butun sonlardir. Agar butun sonlio’zgarmas bu oraliqdan chiqib ketsa, translyator bu xato haqida habarberadi. Haqiqiy sonlar o‘z navbatida qo’zg’almas nuqtali vaqo’zg’aluvchinuqtali sonlarga bolinadi. О`nlikasrlarningbutunvakasrqisminiajratuvchi «vergul» о`rnigaPaskaldasturlashtilida «nuqta» yoziladi. Qo‘zg‘almas nuqtali sonlar — o‘nli kasr ko‘rinishidagi sonlardir. Masalan: – 2.753; 283.45; 0.517; – 0.0013 Qo‘zg‘aluvchi nuqtali sonlar — eksponensial ko`rinishda (E yoki e yordamida) ifodalangan sonlardir. Sonlarni yozishning bu usuli juda kichik yoki juda katta sonlarni ifodalashda juda qulay. O‘qilishi quyidagicha: 2.1E+07 — «2.1 ko`paytirilgan 0‘nning 7-darajasi»; 2.301e-63 — «2.301 ko`paytirilgan o`nning minus 63-darajasi». Masalan, 3400000000 = 3,4* 109 soni Turbo Pascalda 3.4E+09 kabi eksponensial ko`rinishda yoziladi. E harfidan oldin yozilgan son mantissa, E harfidan keyin yozilgan son esa tartib deb ataladi. O‘zgaruvchi miqdorlar Dasturda o‘zgaruvchilarni tavsiflash Paskalning Var xizmatchi so`zi bilan boshlanadi: Var o‘zgaruvchi : turi; o‘zgaruvchi : turi; Masalan: var i, j: Integer; bma: longint; mmr: Shortint; Turi QiymatlariChegarasi Egallaydiga n Xotira xajmi integer longint shortint byte word real single double extented comp -32767 … 32767 2 -2 147 483 647 … 2 147 483 647 4 -128 … 127 1 0 … 255 1 0 … 65535 2 − 2.9⋅10−39 … 1.7⋅1038 6 −1.5⋅10−45 … 3.4⋅1038 4 − 5.0⋅10−324 … 1.7 ⋅10308 8 − 3.4 ⋅10−4932 … 1.1⋅104932 10 − 9.2 ⋅10−18 … 9.2 ⋅1018 8 20 Belgili o’zgarmaslar qiymatini qabul qiluvchi o’zgaruvchilar belgili o‘zgaruvchilar deyiladi. Ular Paskalning Char maxsus so’zi yordamida tavsiflanadi. Masalan: var harf, belgi : char; Satrli o‘zgaruvchilarni tavsiflash uchun Paskalning String maxsus so’zi qollaniladi. Bunday o’zgamvchilar uchun kompyuter xotirasidan 255 bayt (255 ta belgi uchun) joy ajratiladi Agar satrli o’zgamvchi qabul qiladigan satrdagi belgilar soni dastur ishlashi davomida ma’lum miqdordan, masalan, 10 ta belgidan oshmasa, kompyuter xotirasini tejash maqsadida, uni String[ 10] orqali tavsiflash maqsadga muvofiq. Masalan: Var qator : String; {qator nomli 0‘zgaruvchiga xotiradan 255bayt ajratildi} satr : String[24]; {_satr nomli 0‘zgaruvchiga xotiradan 24 baytajratildi} Butun sonlar ustida div (butun bo‘lish) va mod (qoldiq) amallari o‘rinli. Masalan: 25 div 4 = 6; 25 mod 4 = 1; 49 div 7 = 7; 49 mod 7 = 0. Mantiqiy o’zgarmas qiymatlarni qabul qiladigan o‘zgaruvchilar mantiqiy o’zgamvchilar deb atalib, Paskalning Boolean maxsus so‘zi orqali tavsiflanadi. Masalan: var natija : Boolean; katta, kichik : Boolean; Paskal dasturlash tilida jadvallar bilan ishlash uchun massiv tushunchasi kiritilgan. Massiv — jadval ko‘rinishidagi miqdor bo‘lib, u aniq sondagi bir turli va tartiblangan (ya’ni, tartib raqamiga ega) elementlar majmuidan iborat. Ikki o‘lchovli massiv elementlari ikkita indeks orqali aniqlanib, ular o‘zaro vergul bilan ajratib yoziladi va birinchi indeks satr tartib raqamini, ikkinchi indeks ustun tartib raqamini bildiradi. Masalan, S[4,3] yozuvi — S nomli massivning 4-satri va 3-ustuni kesishgan katakda joylashgan elementini bildiradi. 21 Standart funksiyalar va protseduralar, algebraik ifodalar Chiqarish operatori “WriteLn” 22 Ma`lumotlarni kiritish operatori “ReadLn” Tarmoqlanish operatorining umumiy shakli quyidagicha: If Takrorlanuvchi dasturlar tuzish uchun takrorlash operatorlaridan foydalaniladi. Paskalda ular uchta bo’lib, bu darsda ulardan bittasi — parametrli takrorlash operatori o’rganib chiqiladi. Mazkur operatorning umumiy ko’rinishi quyidagicha: For I: = N1 To N2 Do bu yerda For (uchun ), To (gacha) va Do (bajar) Paskalning xizmatchi so’zlari; I — butun turli ixtiyoriy o’zgaruvchi bo’lib, u takrorlash parametri deyiladi; N1 — takrorlash parametrining qabul qiladigan boshlang’ich qiymati; N2 — takrorlash parametrining qabul qiladigan oxirgi qiymati; Avvalgi ko’rilgan misollarda takrorlanishlar soni aniq edi. Ammo shunday masalalar ham uchraydiki, ularda biror amallar ketma-ketligini ma’lum bir shart bajarilganda takrorlash kerak bo ‘ladi. Bundatakrorlanishlar sonini avvaldan aytib bo’lmaydi. Bunday hollarda shart bo‘yicha takrorlash operatorlaridan foydalaniladi. Paskalda bunday operatorlar ikkita: While va Repeat. While operatori quyidagi um um iy ko’rinishga ega: While bu yerda While (ing. toki) va Do Paskalning xizmatchi so’zlari; Mazkur takrorlash operatori quyidagicha ishlaydi: Avval shart tekshiriladi. Agar uning qiymati rost bo ‘ls a , takrorlash tanasini tashkil etuvchi operatorlar ishlaydi va yana shart tekshiriladi. Bu jarayon shart yolg‘on qiym at qabul qilgunga qadar davom etadi. Repeat operatori ham shart bo‘yicha takrorlashni amalga oshiradi. Uning umumiy ko‘rinishi quyidagicha: Repeat bu yerda Repeat (ing. takrorlash) va Until (ing. gacha) Paskalning xizmatchi so‘zlari bo‘lib, Repeat — takrorlash boshi, Until — takrorlash oxirini bildiradi; Belgili va satrli miqdorlar bilan ishlash 23 Kompyuter ekranida turli rasm lar ham hosil qilish mumkin. Buning uchun Paskalning Graph (graf) modulida nuqta, to‘g‘ri chiziq, to’g’ri to’rtburchak, aylana kabi bir qancha shakllarni chizishga mo’ljaUangan operatorlar mavjud. Shakl chizish operatorlaridan foydalanish uchun dastur boshida Uses Graph; ko’rsatmasi beriladi. Ekrandagi nuqtalar soni ко‘pi bilan 640×480 ta (0..639×0..479) bo‘ladi. Paskal tilida 16 xil rangdan foydalanish mumkin bo’ladi. Bu ranglar 0 dan 15 gacha butun sonlar bilan kodlangan. PutPixel(X,Y,Rang) protsedurasi ekranning (X,Y) koordinatali nuqtasini «Rang» parametri bilan aniqlangan rangga bo’yaydi. Masalan, PutPixel(400,200,Red) protsedurasi ekranning (400,200) koordinatasiga mos joyda qizil rangli nuqta joylashtiradi GetPixel(X,Y) funksiyasi ekranning (X,Y) koordinatali nuqtasi qanday rangda ekanni aniqlaydi. Masalan, Rang — butun tipli o’zgaruvchi bo’lsa, Rang:= GetPixel(40,50); operatori bajarilgach Rang o’zgaruvchi (40,50) koordinatali nuqta rangining qiymatiga teng boladi. Paskalda chiziq rangini tanlash uchun SetColor(rang), fon rangini tanlash uchun esa SetBkColor(rang) protseduralaridan foydalaniladi. Line(Xl,Yl,X2,Y2) protsedurasi ekranning (XI,Yl) koordinatali nuqtasi bilan (X2,Y2) koordinatali nuqtasini birlashtiruvchi joriy rangli kesma chizadi. Circle(X,Y,R) protsedurasi markazi (X,Y) nuqtada va radiusi R ga teng aylana chizadi. Ellipse(X,Y,BB,OB,XR,YR) protsedurasi markazi (X,Y) nuqtada, x va уo‘qlari bo‘yicha radiuslari mos ravishda XR va YR ga teng ehipsning RR burchagidan OB burchagigacha bo‘lgan yoyini chizadi. Burchak gradus o‘lchov birligida beriladi. XR=YR bo‘lsa, aylananing yoyi chiziladi. Rectangle(Xl,Yl,X2,Y2) protsedurasi ekranda yuqori chap burchagi (XI,Yl)koordinatali va quyo‘ng burchagi (X2,Y2) koordinatali nuqtada bo‘lgan to‘g‘ri to‘rtburchak chizadi. Paskalda ko‘p takrorlanadigan amallar majmuini asosiy dasturdan ajratib olib, ulardan alohida bloklar — protsedura va funksiyalar tashkil qilish mumkin. Protsedura va funksiyalarni ularga murojaat etishda beriladigan ma’lum bir qiymatlarga bog’liq qilib tashkil etish ham mumkin. Bu qiymatlar param etrlar, shu tarzda tashkil etilgan protsedura va funksiyalar esa parametrli protsedura va funksiyalar deyiladi Foydalanilgan adabiyotlar. 1. Abduqоdirоv A. Infоrmatika. 2002. 2. Zakirоva F.M. Infоrmatika i infоrmatsiоnnie texnоlоgii. 2007. 3. Оbidоv A.A. Infоrmatika misоl va masalalar. 2006. 4. Tоylоqоv N., Axmedоv A. IBM - PC Kоmpyuteri. - T.: "O’zbekistоn", 2001. 5. G’ulоmоv S.S. va bоshqalar. Axbоrоt tizimlari va texnоlоgiyalari - T.: "Sharq", 2000. 6. Ermatоv Sh.T. Shaxsiy kоmpyuterlar. Оperatsiоn tizimlar, qurilmalar. 2006. 7. Proff.M.M.Arihov “Informatika.Axborot texnologiyalari” (1-2-qismlari) 2003 y. 8. T.X.Xolmatov,N.I.Tayloqov,U.A.Nazarov “Informatika” 2003 y. Download 21.12 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling