Dasturlashga doir masalalar yechish Uslubiy qo llanma
Ushbu uslubiy qo llanmada 9-sinf Informatika va hisoblash texnikasi asoslari darsligi (Toshkent-2006) ning V bob (Dasturlash asoslari)da berilgan masalalarning yechimlari (Turbo Paskal dasturlash tilida)keltirilgan. Darsda foydalanishga qulay bo`lishi uchun qo llanmadagi mavzular va masalalar tartib raqamlari 9-sinf darsligidagi tartib raqamlariga mos holda berildi. Qo`llanma oxirida sinfdan tashqari mashg`ulotlarda foydalanish uchun qo`shimcha masalalar yechimlari bilan birga berildi. Qo llanmadan barcha turdagi umumiy o rta ta lim maktablarining informatika o qituvchilari dars va to garak mashg ulotlarida foydalanishlari mumkin. Muallif: M. Tashov Chust tumanidagi 52-umumiy o rta ta lim maktabi matematika-informatika o qituvchisi. Muharrir: N. Rahimov VXTB metodika markazi informatika fani metodisti Taqrizchilar: T. Jo`raev O zbekiston Fanlar Akademiyasi Matematika va Informatsion texnologiyalar ilmiy tekshirish instituti aspiranti. R. Ahmadaliyev Chust tumanidagi 1-maktab oliy toifali informatika o qituvchisi. Mazkur uslubiy qo llanma Viloyat Metodika markazi huzuridagi metodika kengashining 2008- yil 26 dekabr dagi 12/2 - sonli qarori bilan foydalanishga tavsiya etilgan.
So`z boshi Namangan viloyati Chust tumanidagi 52-maktab matematika-informatika fani o`qituvchisi Tashov Mansurali Jo rayevich 1958 yilda Chust tumanidagi Mashhad qishlog ida tug ilgan. Ma lumoti oliy, 1978 yilda Namangan Davlat pedagogika institutini imtiyozli tamomlagan. Pedagogik faoliyatini 1978 yilda matematika o qituvchisi sifatida boshlagan. Ish faoliyati davrida o zining bilimdonligi, mehnatsevar va tashabbuskorligi bilan maktab jamoasi, o quvchilar va ota-onalar oldida munosib obro qozondi. Uning o`quvchilari bir necha yillardan buyon viloyat va Respublika fan olimpiadalarida sovrinli o`rinlarni egallab keladi. Jumladan, ikki nafar shogirdi 2007 va 2008 - yillarda Respublika yozgi maktab olimpiadasida faxrli I o`rinni egallab, kompyuterda dasturlash bo`yicha Butun Rossiya ochiq olimpiadasining final bosqichida muvaffaqiyatli ishtirok etdilar. M.J. Tashov ish faoliyati davomida ko`plab uslubiy qo`llanmalar, namunali dars ishlanmalari va pedagogik dastur vositalari yaratib, viloyat va Respublika miqyosida o`tkazilgan ilmiy-uslubiy anjumanlar va ko rik-tanlovlarda faol ishtirok etib keladi. M.J. Tashov ta lim sohasidagi uzoq yillar qilgan samarali mehnatlari uchun 2005-yilda Shuhrat medali bilan taqdirlangan. Quyida Siz uning o quv-metodik qo llanmalaridan biri bilan tanishasiz. Bu qo`llanma Sizning ish faoliyatingizda ijobiy yordam berishiga ishonaman. Ne matjon Rahimov VXTB metodika markazi informatika fani metodisti
V bob. Dasturlash asoslari. 43-dars. Standart funksiyalar va algebraik ifodalar. 43.1. Quyidagi ifodalarni Paskal dasturlash tilida yozing: x y xy x + y 2 2 3x 5 3 a) b) d) + sin x e) ( 5a + 2x) + + tg a 2 2 2 2 3 x y x + y xyz a 3x f) 12 5 2 2 3x 7 x 42yz + g) 5 + x (5a + 2x) + z + a 3 3 z a a) (x-y)/(sqr(x)-sqr(y)); b) x*y/(x 2 +y 2 ) d) (x+y)/(x*y*z)+sin 2 x e) (5a 2 +2x)+3*x/exp(3*ln(a))+exp(5*ln(sin(exp(3*ln(a)))/cos(exp(3*ln(a))))) f) 12*sqr(x)-42*y*z+(3*x-5)/exp(3*ln(z)) g) sqrt(5+x)-(5*sqr(a) 2*x)+sqrt(z)*3*x/exp(3*ln(a))+exp(ln(a)/7) 43.2. Paskalda yozilgan ifodalarni algebraik yozuv ko'rinishiga o'giring: a) a*( Sqr(x)+1); b) e/(r1+r2) d) pi*h*(sqr(r1) + sqr(r2)+ r1*r2)/3; e) sin(x*x*x-sqr(sqr(x))+5); f) abs(arctan(x) + sqr(sin (x)); g) sqr(cos(x))+cos(sqr(x)); h) sqrt(x-sqr(x)*x+sqr(sqr(x))*x); i) tan (sqr(w/(2*r))*x); k) 5+abs(sqrt(x*x+y*y)); l) a+b-c/e*m. a) a ( x +1) 2 2 e πh ( r1 + r2 + r1 r2 ) 3 4 b) d) e) sin( x x + 5) r 1 + r 2 3 f) arctgx+sin 2 x g) cos 2 x+cosx 2 h) 3 5 x x + x 2 2 i) w w sin x / cos x 2r 2r k) 5 + 2 2 c x + y l) a + b m e 43.3. Paskalda yozilgan ifodalar orasidan noto'g'ri yozilganini toping: a) 2*a+b; b) sqr(x*b^2); d) sin(-3*x); e) sin((a+b+cos(x)); f) 2*(-b)+a2. Javob: b) chunki Paskalda darajaga ko`tarish amali yo`q. 44-dars. O`zlashtirish va ma lumotlarni ekranga chqarish operatorlari. 44.1. Quyidagi ifodalarni o'zlashtirish operatori yordamida yozing: x 21 a) y = b) a=3,6x+sinx d) z = x 5 y + xtgx e) S=πr 2 f) F=ma 63 7 x
g) x1 = ( b b2 4ac) /(2a), x1 = ( b + b2 4ac) /(2a) a) y:=(x-21)/(7-exp(63*lnx)) b) a:=3.6*x+sin(x) d) z:=sqrt(x-5*y)+x*sin(x)/cos(x) e) s:=pi*sqr(r) f) f:=m*a g) x1:=(-b-sqrt(b*b-4*a*c))/(2*a); x1:=(-b+sqrt(b*b-4*a*c))/(2*a); 44.2. Paskalda yozilgan quyidagi dastur lavhalaridagi barcha o`zgaruvchilar qiymatlarini va ekranga chiqadigan natijani aniqlang: a) x:= sqr(9); b) a:=-cos(pi)-sin(pi/2); y:= sqrt(19+x); x:= x*x + a; writeln( x=',x); writе('у=',у);\writeln( а=,а, х=',х); d) a:= 'Yashnasin ' b:= 'O'zbekiston!' b:= a + b; write(a, a, b); e) a:=1000; al:=a; a:=a+100; a2:=a; a:=a/100; а3:=а; а:=а*а; a4:=a; a:=(sqrt(a)+9*a)*5; write(al, a2, аз, а4, a). a) x=81; y=10; ekranga x=81 yozuvi chiqariladi. b) a=0; x=0; y=0; ekranga y=0 a=0 x=0 yozuvlari chiqariladi. d) a:= 'Yashnasin '; b='yashnasin O'zbekiston!' ekranga Yashnasin Yashnasin Yashnasin O'zbekiston! yozuvi chiqariladi. e) a=5500; a1=1000; a2=1100; a3=11; a4=121. ekranga 1000 1100 11 121 5500 sonlar chiqariladi. 46-dars. Ma lumotlarni xotiraga muloqot usulida kiritish operatori. 46.1. a=19, b=2, d=1950 bo'lganda, quyidagi ifodalarning qiymatini xotiraga qulay usulda kiritib hisoblash dasturini tuzing: a) y=a+b 2 3 +ad; b) t = a + b d a ; d) s=b*cosa+sind; e) z=ad 2 +ab. a) program masala_a; uses crt; var a,b,d, y: integer; Write( a ning qiymatini kiriting= ); Readln(a); Write( b ning qiymatini kiriting= ); Readln(b); Write( d ning qiymatini kiriting= ); b) program masala_b; uses crt; var a,b,d: integer; t: real; Write( a ning qiymatini kiriting= ); Readln(a); Write( b ning qiymatini kiriting= ); Readln(b); Write( d ning qiymatini kiriting= );
Readln(d); y:=a+b*b+a*d; writeln( y=,y); d) program masala_d; uses crt; var a,b,d: integer; y: real; Write( a ning qiymatini kiriting= ); Readln(a); Write( b ning qiymatini kiriting= ); Readln(b); Write( d ning qiymatini kiriting= ); Readln(d); s:=b*cos(a)+sin(d); writeln( s=,s); Readln(d); t:=sqrt(a+b)-exp(ln(d-a)/3); writeln( t=,t); e) program masala_e; uses crt; var a,b,d, z: integer; Write( a ning qiymatini kiriting= ); Readln(a); Write( b ning qiymatini kiriting= ); Readln(b); Write( d ning qiymatini kiriting= ); Readln(d); z:=a*d*d+a*b; writeln( z=,z); 46.2. y=23x+2 funksiyaning qiymatini x ning -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5 qiymatlarida qulay usulda kiritib, hisoblash dasturini tuzing. Program masala_2; Var x,y: integer; Write( x ni kiriting= ); Readln(x); Y:=23*x+2; Writeln( y= ;y); 46.3. y=21x 2 +7x+1963 funksiyaning qiymatini x ning -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5 qiymatlarida qulay usulda kiritib, hisoblash dasturini tuzing. Program masala_3; Var x,y: integer; Write( x ni kiriting= ); Readln(x);
Y:=21*x*x+7*x+1963; Writeln( y= ;y); 46.4. Tomonlari a=5, b=7, c=4 bo'lgan uchburchakning yuzini topish dasturini tuzing. Program masala_4; Var a, b, c: integer; p, s: real; Write( a tomon uzunligini kiriting= ); Readln(a); Write( b tomon uzunligini kiriting= ); Readln(b); Write( c tomon uzunligini kiriting= ); Readln(c); p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln( Uchburchak yuzi S= ;s); 46.5. ax 2 +bx+c=0 tenglamani a, b, с ning quyidagi qiymatlarini qulay usulda kiritib yechish dasturini tuzing: а) a=1, b=1, c=3; b) a=1, b=4, c=4; d) a=1, b= - 4, c=4; e) a=1, b=5, с=3. program Kvadrat_tenglama; uses crt; var a,b,c,x1,x2,d:real; clrscr; write('bosh koeffitsentni kiriting = '); readln(a); write('ikkinchi koeffitsentni kiriting b= '); readln(b); write('ozod hadni kiriting c= '); read(c); d:=sqr(b)-4*a*c; x1:=(-b+sqrt(d))/(2*a);x2:=(-b-sqrt(d))/(2*a); writeln('x1=',x1);writeln('x2=',x2); 47-dars. Ekran bilan ishlash operatorlari 47.1. Ekranga «Yashnasin O'zbekiston» matnini qizil, matn foni rangini ko'k
rangda chiqaring. Program masala_1; Textcolor(red); TextBackGround(blue); Write( Yashnasin O'zbekiston ); 47.2. Ekranga 5 ta sinfdoshingizni ismini turli ranglarda va ekranning sariq rangida chiqaring. Program masala_2; TextBackGround(14); Textcolor(2); Writeln( Aqida ); Textcolor(5); Writeln( Husanboy ); Textcolor(7); Writeln( Karimjon ); Textcolor(9); Writeln( Muqaddas ); Textcolor(11); Writeln( Dostonbek ); 47.3. Ekranga ismingizni, familiyangizni, sharifingizni turli fon rangida va turli rangda chiqaring. Program masala_3; TextBackGround(10); Textcolor(2); Writeln( Ahmedov ); TextBackGround(9); Textcolor(4); Writeln( Husanboy ); TextBackGround(14); Textcolor(7); Writeln( Normatovich ); 47.4. «Parol» degan iborani ekranda ko'rinmaydigan rangda chiqarishni tashkil eting. Program masala_4;
Textcolor(0); Writeln( Parol ); 47.5. «Xush kelibsiz!» matnini ekranning o'ng tomonidan 12-satrda yashil rangda qizil fonda chiqaring. Program masala_5; Textcolor(2); TextBackGround(4); GotoXY(65,12); Writeln( Xush kelibsiz! ); 49-dars. Chiziqli dasturlar tuzish. 49.1. Uchburchakning tomonlari a, b va ular orasidagi burchak α berilgan. Uchburchakning yuzini hisoblash dasturini tuzing. Program masala_1; Var a, b, alfa: real; Write( a tomon uzunligini kiriting= ); Readln(a); Write( b tomon uzunligini kiriting= ); Readln(b); Write( burchak kattaligini kiriting= ); Readln(alfa); s:=a*b*sin(alfa)/2; Writeln( Uchburchak yuzi S= ;s); 49.2. Quyida berilgan shakllarning shtrixlangan sohalarini yuzalarini hisoblash dasturini tuzing. a) Program masala_2a;
Var b, r: real; Write( b ning qiymatini kiriting= ); Readln(b); Write( r ning qiymatini kiriting= ); Readln(r); s:=b*b-pi*r*r; Writeln( shaklning yuzi S= ;s); b) Program masala_2b; Var a: real; Write( a ning qiymatini kiriting= ); Readln(a); s:=a*a-pi*a*a/4; Writeln( shaklning yuzi S= ;s); d) Program masala_2a; Var R, r: real; Write( R ning qiymatini kiriting= ); Readln(R); Write( r ning qiymatini kiriting= ); Readln(r); s:=pi*(r*r-r*r); Writeln( shaklning yuzi S= ;s); 49.3. Boshlang`ich tezligi v 0 bo`lib, a tezlanish bilan harakat qilayotgan moddiy nuqtaning t vaqt ichida bosib o`tgan yo`lini toping. Program masala49_3; Var s, v0, a, t: real; Write( boshlang`ich tezlik v0= ); readln(v0); Write( tezllanish= ); readln(a);
Write( vaqt t= ); readln(t); S:=v0*t+a*t*t/2; Writeln( S=,s); 49.4. Yer sirtiga nisbatan α burchak ostida v 0 boshlang`ich tezlik bilan otilgan jismning uchish masofasini aniqlash dasturini tuzing. Program masala49_4; Var a, v0; real; g:=9.8; Write( Boshlang`ich tezlik v0= ); readln(v0); Write( Burchak kattaligi= ); readln(a); S:=v0*v0*sin(2*a)/`g Writeln( S=,S); Readln 49.5. Tashqi chizilgan aylananing radiusi R bo'lgan n tomonli muntazam ko'pburchakning tomonini hisoblash dasturini tuzing. Program masala_5; Var n: integer; R, an; real; Write( Tononlar sonini kiriting= ); readln(n); Write( Tashqi chizilgan aylananing radiusini kiriting= ); readln(r); an:=2*r*sin(pi/n); writeln( Ko`pburchak tomonining uzunligi=,an); 49.6. Uzunligi 1 m bo`lgan matematik mayatnikning tebranish davrini topish dasturini tuzing. Program masala49_6; Var T, g: real; g:=9.8; T:=2*pi/sqrt(g); writeln( T:=,T);
49.7. Erkin tushayotgan jismning t vaqt ichida bosib o`tgan yo`lini hisoblash dasturini tuzing. Program masala49_7; Var s, t, g: real; g:=9.8; Write( Vaqt t:= ); readln(t); Writeln( s:=,g*t*t/2); 50-dars. Tarmoqlanish va o`tish operatorlari. 50.1. Quyidagilardan xato yozilganini toping: a) Goto 10; b) goto 30; d) goto -5; e) GoTo _5; e) goto sin; f) goto 2_5; h) GOTO a_5; Javob: xato yozilganlari: d) goto -5 va f) goto 2_5 50.2. Tarmoqlanish operatori uchun quyidagi shartlardan xato yozilganini toping: a) a<>b; b) a<-b; d) a><b; e) -a>0; f) -l>0; g) a>>b; h) a:=b; Javob: xato yozilganlari: d) a><b g) a>>b; h) a:=b; 50.3. Quyidagilardan xato yozilganini toping: a) IF a=b THEN a:=a+l; ELSE b:=a; b) IF a:=l THEN a:=a+l ELSE b:=a; Javob: xato yozilgani: b) IF a:=l THEN a:=a+l ELSE b:=a; chunki tarmoqlanish operatorida shartni a:=l shaklda yozish mumkin emas. 1, agar x > 0; 50.4. y = funksiya qiymatini hisoblash dasturini tuzing. 2 x, agar x 0 Program masala_4; Var x,y: real; Write( x ning qiymatini kiriting= ); readln(x); If x>0 then y:=1 else y:=x*x; Writeln( x=,x, da y=,y); 50.5. Uchta son berilgan. Ular ichidagi manfiy sonlarning kubini hisoblovchi dastur tuzing. Program masala_5;
Label tamom; Var a,b,c: real; Write( 1-sonni kiriting= ); readln(a); Write( 2-sonni kiriting= ); readln(b); Write( 3-sonni kiriting= ); readln(c); If (a>=0) and (b>=0) and (c>0) then Writeln( Bu sonlar orasida manfiylari yo`q ); goto tamom; end; If a<0 then writeln(a, ning kubi=,a*a*a); If b<0 then writeln(b, ning kubi=,b*b*b); If c<0 then writeln(c, ning kubi=,c*c*c); Tamom: 50.6. Uchta а, b, с son berilgan. a<b<c tengsizlikni bajarilishini tekshiruvchi dastur tuzing. Program masala_6; Var a,b,c: real; Write( 1-sonni kiriting= ); readln(a); Write( 2-sonni kiriting= ); readln(b); Write( 3-sonni kiriting= ); readln(c); Write( a<b<c tengsizlik ); If (a<b) and (b<c) then writeln( bajariladi. ) else writeln( bajarilamaydi. ); 50.7. Uzunliklari berilgan uchta kesmadan uchburchak hosil qilish mumkin yoki mumkin emasligini aniqlovchi dastur tuzing. Program masala_7; Var a,b,c: real; Write( 1-kesma uzunligini kiriting= ); readln(a);
Write( 2- kesma uzunligini kiriting= ); readln(b); Write( 3-sonni kiriting= ); readln(c); Write( Bu kesmalardan uchburchak yasab ); If (a>abs(b-c)) and (b>abs(a-c)) and (c>abs(a-b)) then writeln( bo`ladi. ) else writeln( bo`lmaydi. ); 51-dars. Tarmoqlanuvchi dasturlar tuzish. 51.1. Quyidagi berilgan operatorlardagi xatolarni aniqlang va izohlang: a) IF d>0 THEN 63 ELSE s:=d+a; b) IF sl<>s2 THEN ELSE gl:=sl*s2; c) IF i*j THEN goto vo ELSE goto ne; d) IF x<>0 AND x<=5 THEN y=4*sin(x); Javoblar: a) IF d>0 THEN 63 ELSE s:=d+a; da THEN dan keyin GOTO tushib qolgan. b) IF sl<>s2 THEN ELSE gl:=sl*s2; da THEN dan keyin operator y`ozilmagan. c) IF i*j THEN goto vo ELSE goto ne; da shart mantiqiy ifoda emas. d) IF x<>0 AND x<=5 THEN y=4*sin(x); murakkab shartda har bir oddiy shart qavs ichida yozilishi kerak, THEN dan keyin turgan o`zlashtirish operatorida : belgi tushib qolgan. 51.2. Quyidagi mantiqiy ifodalarda amallarning bajarilishi tartibini belgilang: a) (a<-6) OR (a>=0) AND (a<4) ; b) (x*x +y >0) AND (a=0.1) OR ((b>3.7) AND (s<>k4)) ; d) (v='ha') AND (xl>0) AND (x2>0); e) (a>0) OR (a<l) OR (NOT (x*x+x*x<=l )); f) NOT (v<=b) AND ((f<=fl) OR (t=. )); g) NOT(NOT(NOT(a>b) OR TRUE) AND FALSE). javoblar: a) AND, OR; b) AND, AND, OR; d) AND, AND e) NOT, OR, OR; f) NOT, OR, AND; g) NOT, OR,NOT, AND, NOT; 51.3. Istagan butun sonni 17 ga qoldiqsiz bo'linishi yoki bo'linmasligini aniqlovchi dastur tuzing. Program masala_3; Var a: integer; Write( a sonnni kiriting= ); readln(a); If trunc(a/17)*17=a then writeln( bo`linadi. ) else writeln( bo`linmaydi. );
51.4. ax+b=0 chiziqli tenglamani yechish dasturini tuzing. Program masala_4; Label 5; Var a,b,x: real; Write( a ni kiriting= ); readln(a); Write( b ni kiriting= ); readln(b); If (a=0) and (b=0) then writeln( x istalgan son. ); goto 5; end; If a=0 then writeln( yechimga ega emas ); goto 5; end; Writeln( x=,b/a); 5: 51.5. Kvadrat tenglama yechish dasturini tuzing. program Kvadrat_tenglama; uses crt; label 2; var a,b,c,x1,x2,d:real; write('bosh koeffitsentni kiriting а= '); readln(a); write('ikkinchi koeffitsentni kiriting b= '); readln(b); write('ozod hadni kiriting c= '); read(c); d:=sqr(b)-4*a*c; if d<0 then writeln('haqiqiy ildizlari yo`q.'); goto 2; end; if d=0 then writeln('x1=x2= ',-b/2*a); goto 2; end; x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); writeln('x1=',x1); writeln('x2=',x2); 2: 51.6. Yildagi oylarning kunlari miqdorini aniqlab beruvchi dastur tuzing. Program masala_6; Label 4; Var a,b: integer;
Write( Oyning tartib raqamini kiriting= ); readln(a); If (a=1) or (a=3) or (a=5) or (a=7) or (a=8) or (a=10) or (a=12) then Writeln( 31 kun ); goto 4; end; If a=2 then writeln( 28 yoki 29 kun ); goto 4; end; Writeln( 30 kun ); 4: 51.7. Oldingi dastur ko'magida tug'ilganingizdan beri necha kun yashaganingizni aniqiang. Program masala_7; Var a,b,c,a1,b1,c1,s,s1,s2: integer; Write( Tug`ilgan yilingizni kiriting= ); readln(a); Write( Tug`ilgan oyingizning tartib raqamini kiriting= ); readln(b); Write( Tug`ilgan kuningizni kiriting= ); readln(c); Write( Joriy yilini kiriting= ); readln(a1); Write( Joriy oyning tartib raqamini kiriting= ); readln(b1); Write( Joriy kunni kiriting= ); readln(c1); S:=a1-a; s:=s*365; S1:=b1-b; s:=s+30*s1; s2:=c1-c; s:=s+s2; Writein(s, kun ); 53-dars. Parametrli takrorlash operatori. 53.1. Quyidagi operatorlardagi takrorlanishlar sonini aniqlang: a) for i:=l to 88 do b:=l; b) for i:=73 to 161 do m:=2; d) for i:= -21 to 0 do a:=3; e) a:=5; b:=34; for i:=a+7 to b-1 do s:=s+l; f) a:=5; b:=19; for i:=a*a to 2*b+8 do s:=s+l. Javoblar: a) (88-1)+1=88 matra b) (161-73)+1=89 marta d) (0-(-21))+1=22 marta e) (b-1-(a+7))+1=(b-a-8)+1=b-a-7=34-5-7=22 marta f) 2*b+8-a*a+1=2*19+8-5*5+1=22 marta 53.2. y=21x 2 +7x+1963 funksiyaning qiymatini x ning -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5 qiymatlarida hisoblash dasturini tuzing. Program masala_2; Var x, y: integer;
For x:=-5 to 5 do writeln(x, bo`lganda y=,21*x*x+7*x+1963); 53.3. y=2x+1 funksiyaning qiymatini x ning [-15, 5] oraliqdagi butun qiymatlarida hisoblash dasturini tuzing. Program masala_3; Var x, y: integer; For x:=-15 to 5 do writeln(x, bo`lganda y=, 2*x+1); 53.4. y=5x+19 funksiyaning qiymatini x ning [0, 10] oraliqda 0,25 qadam bilan hisoblash dasturini tuzing. Program masala_4; Var i: integer; x, y: real; For i:=0 to 40 do writeln(x, bo`lganda y=, 5*x+19); x:=x+0.25; 53.5. A[1..17] massiv berilgan. Massivning nolga teng elementlarining indeksini chiqaruvchi dastur tuzing. Program masala_5; Var i: integer; a: array [1..17] of real; For i:=1 to 17 do write(i, -elementni kiriting= ); readln(a[i]); end; Writeln( Nolga teng elementlarning indekslari );
For i:=0 to 17 do if a[i]=0 then writeln(i); 54-dars. Shart bo`yicha takrorlash operatorlari. 54.1. Kvadratlari berilgan natural N sondan katta bo'lmagan natural sonlarni chiqaruvchi dastur tuzing. Program masala_54_1; Var I,N: integer; Write( N ning qiymatini kiriting= ); readln(n); I:=1; While I*I<=N do writeln(i); I:=I+1; end; 54.2. a 1, a 2,..., a N butun sonlar ketma-ketligi berilgan. Ularni ketma-ket qo'shib borib, yig'indi berilgan N butun sondan ortishi bilan ekranga chiqaruvchi dastur tuzing. Agar barcha sonlar yig'indisi N dan ortmasa, bu haqda xabar chiqaring. Program masala_54_2; Var i, S: integer; A: array [1..10] of integer; Const N=10; For i:=1 to N do Write(i, -hadni kiriting= ); readln(a[i]); end; S:=0; I:=1; While S<=N do S:=S+a[i]; I:=I+1; end; Writeln( S=,S); 54.3. y=x*sinx funksiyaning qiymatlarini [-π,π] oraliqda 0,3 qadam bilan hisoblash dasturini tuzing.
Yechilish: Program masala_54_3; Var x,y: real; x:=-pi; While x<=pi do Writeln('x=',x:1:2,' bo`lganda y=',x*sin(x):2:2); x:=x+0.3; end; 54.4. Quyidagi yig'indining qiymati berilgan M natural sondan ortiq bo`lguncha hisoblash dasturini tuzing: N + 1 1 1 1 ( 1) y = + +... + 3 10 21 N * (2 * N + 1) Yecilishi: program masala54_4; uses crt; var n: integer; m,y: real; clrscr; write('m ning qiymatini kiriting = '); readln(m); n:=1; repeat if n/2=int(n/2) then y:=y-(1/(n*(2*n+1))) else y:=y+(1/(n*(2*n+1))); n:=n+1; end; until y>m; write('y=',y); 56-dars. Belgili va satrli miqdoorlar bilan ishlash 56.1. Quyidagi funksiyalar bajarilgandagi natijasini aniqlang: a) Concat( o, na ); b) Concat( ya, sha, sin ); d) a:='dunyo'; Length(a); e) Pos('o', 'bahor'); f) Copy('kino', 1, 2) + Copy('oftob', 3, 3). Javob: a) ona b) yashasin d) 5 e) 4 f) kitob 56.2. Kiritilgan so'z palindrom bo'lishini tekshiruvchi dastur tuzing. Program masala_56_2;
Var a, b: string; i, k: integer; Write( So`zni kiriting= ); readln(a); k:=length(a); Write( Bu so`z ); For i:=1 to k do b:=a[i]+b; if a=b then writeln( polindrom. ) else writeln( polindrom emas. ); 56.3. Kiritilgan so'zdan «ona» so'zini hosil qilish imkoniyatini aniqlovchi dastur tuzing. Program masala_56_3; Var s: string; i, k,o,n,a: integer; Write( So`zni kiriting= ); readln(s); k:=length(s); For i:=1 to k do If (s[i]= o ) or (s[i]= O ) then o:=1; If (s[i]= n ) or (s[i]= N ) then n:=1; If (s[i]= a ) or (s[i]= A ) then a:=1; End; if o*n*a=1 then writeln( Hosil qilsih mumkin ) else writeln( Hosil qilsih mumkin emas. ); 56.4. A[1..N] satrli chiziqli jadval berilgan. Jadval elementlari asosida «ona» so'zini hosil qilish imkoniyatini aniqlovchi dastur tuzing. Program masala_56_4; Var a: array [1..10] of string; b: string; i, j,k,o1,n1,a1: integer; For j:=1 to 10 do
Write(j, -elemenni kiriting= ); readln(a[j]); end; For j:=1 to 10 do b:=a[j]; k:= length(b); For i:=1 to k do If (b[i]= o ) or (b[i]= O ) then o1:=1; If (b[i]= n ) or (b[i]= N ) then n1:=1; If (b[i]= a ) or (b[i]= A ) then a1:=1; End; End; if o*n*a=1 then writeln( Hosil qilsih mumkin ) else writeln( Hosil qilsih mumkin emas. ); 56.5. A[1..N] satrli chiziqli jadval berilgan. Jadval elementlari ichidan «m» harfdan boshlanadiganlarini aniqlovchi dastur tuzing. Program masala_56_5; Var a: array [1..10] of string; b: string; i, j,k: integer; For j:=1 to 10 do Write(j, -elemenni kiriting= ); readln(a[j]); end; For j:=1 to 10 do b:=a[j]; if (b[1]= m ) or (b[1]= M ) then writeln(a[j]); End; 56.6. Satrli o'zgaruvchi S ning qiymati «Informatika» bo'lsa, quyidagi amallar bajarilgach, uning qiymatini aniqlang: a) Delete(s,5,7); b) Delete(s,1,2); Delete(s,6,4); d) Delete(s, 1,1); Delete(s,2,1); Delete(s,6,4). Javoblar: a) Info b) forma d) norma 56.7. Berilgan so'zning belgilari orasiga bittadan probel qo'shib chiquvchi dastur
tuzing. Program masala_56_7; Var a: string; i: integer; Write( So`zni kiriting= ); readln(a); For i:=1 to length(a)-1 do Write(a[i], ); Writeln(a[i+1]); 56.8. Berilgan satrdagi barcha «a» harflarini o'chirib chiquvchi dastur tuzing. Program masala_56_8; Var a: string; i: integer; Write( So`zni kiriting= ); readln(a); For i:=1 to length(a) do If (a[i]= a ) or (a[i]= A ) then delete(a,i,1); Writeln(a); 56.9. Lotin «A» harfining ASCII kodi 65 ekani ma'lum bo'lsa, «AHMAD» so'zini undagi harflarning ASCII kodlari orqali tasvirlang. H harfi ASCII jadvalida A da 7 belgi keyinda turadi, shuning uchun uning kodi 65+7=72 bo`ladi. Shu kabi aniqlasak, M ning kodi 65+12=77, D ning kodi 65+3=68 bo`ladi. Demak AHMAD so`zi ASCII kodlari bo`yicha 65 72 77 65 68 kabi tasvirlanadi. 56.10. ASCII kodlari orqali ifodalangan so'zlarni aniqlang: a) 83 65 76 79 77; b) 82 65 88 77 65 84; d) 75 73 84 79 66; e) 77 65 75 84 65 66. Program masala56_10;
Var k,i,n,c : integer; kod, s: string; Write( So`z kodini kiriting= ); Readln(kod); k:=length(kod); For i:=1 to k do If kod[i]<> then s:=s+kod[i]; While length (s)>0 do val(copy(s,1,2),n,c); Write(chr(n));delete(s,1,2); end; Ushbu dastur yordamida berilgan kodlar bo`yicha so`zlarni aniqlaymiz: a) SALOM; b) RAXMAT; d)kitob; e) MAKTAB. 56.11. Chap tarafdagi belgilarga o'ng tarafdagi ASCII kodlarini mos qo'ying. a) b) d) В 69 H 82 S 76 G 70 K 68 V 78 F 66 R 75 L 83 E 71 D 72 N 86 Javob: a) b) d) В 66 H 72 S 83 G 71 K 75 V 86 F 70 R 82 L 76 E 69 D 68 N 78 Bu masalani yechishda quyidagi dasturdan foydalanish mumkin: Program masala56_11; Var s: char; Write('So`z kodini kiriting='); Readln(s); writeln(ord(s)); 56.12. ASCII kodlar jadvalini hosil qiluvchi dastur tuzing. Program masala56_12; Var i: integer;
For i:=0 to 255 do writeln(i,,chr(i)); 58-dars. Paskalda ekranni grafik holatga o`tkazish 58.1. Ekranni grafik holatga o'tkazuvchi va <Enter> klavishi bosilganda yana matnli holatga qaytaruvchi dastur tuzing. Program masala_58_1; Uses graph; Var gd, gm: integer; Gd:=0; initgraph(gd,gm, ); CloseGraph; 58.2. Ekranning to'rtta burchagida sariq rangli nuqta hosil qiluvchi dastur tuzing. Program masala58_2; Uses graph; Var gd,gm: integer; gd:=0; InitGraph(gd,gm,''); PutPixel(1,1,14); PutPixel(1,getmaxY,14); PutPixel(getmaxX,1,14);PutPixel(getmaxX,getmaxY,14); closegraph; 58.3. Nuqtalar yordamida ekranni o'rtasidan bo'luvchi gorizontal chiziq hosil qiling. Program masala58_3; Uses wincrt, graph; label 1; Var gd,gm,i: integer; y: char; gd:=0;
InitGraph(gd,gm,''); for i:=1 to 1000 do PutPixel(i,350,14); PutPixel(i,351,14); 1: y:=readkey; if y<>' ' then goto 1; closegraph; 58.4. Random funksiyasidan foydalanib, turli rangli nuqtalarni hosil qiling. Program masala58_4; Uses wincrt, crt; graph; Var Gd,gm,x,y: integer; Gd:=0; InitGraph(gd,gm, ); Randomize; Repeat X:=round(random(15)); y:=round(random(15)); Putpixel(50*x,50*y, x); Until x=y+1; Closegraph; 58.5. Random funksiyasidan foydalanib, «yulduzli osmon» manzarasini hosil qiling. program osmon; uses graph; var gd,gm,x,y,k,i: integer; gd:=0; initgraph(gd,gm,''); randomize; repeat for i:=1 to 15 do x:=25*k*round(random(15)); y:=20*k*round(random(15)); putpixel(x,y,i); end; k:=k+1; until k>10;
closegraph; 59-dars. Paskalning shakllar chizish operatorlari. 59.1. Ekran o'rtasidan bo'luvchi gorizontal chiziq chizuvchi dastur tuzing. Program masala59_1; Uses wincrt, graph; label 1; Var gd,gm,i: integer; y: char; gd:=0; InitGraph(gd,gm,''); line(1,350,1000,350); closegraph; 59.2. Ekranning o'rtasida radiusi 100 ga teng sariq rangli aylana chizing. Program masala59_2; Uses wincrt, graph; label 1; Var gd,gm,i: integer; y: char; gd:=0; InitGraph(gd,gm,''); Setcolor(14); Circle(500,350,100); closegraph; 59.3. Ekranning 4 ta burchagida eni 60 va bo'yi 40 ga teng qizil rangli to'rtburchaklar chizing. Program masala59_3; Uses wincrt, graph; label 1; Var gd,gm,i: integer; y: char; gd:=0; InitGraph(gd,gm,'');
Setcolor(14); Rectangle(1,1,60,40); Setcolor(12); Rectangle(1,660,60,700); Setcolor(10); Rectangle(940,1,1000,40); Setcolor(1); Rectangle(940,660,1000,700); closegraph; 59.4. Oy va yulduzlar tasvirlangan kechki osmon manzarasini chizing. program oy_va_yulduzlar; uses graph; var gd,gm,x,y,k,i: integer; gd:=0; initgraph(gd,gm,''); randomize; repeat for i:=1 to 15 do x:=25*k*round(random(15)); y:=20*k*round(random(15)); putpixel(x,y,i); end; k:=k+1; until k>10; setcolor(15);setfillstyle(1,15); Fillellipse(800,50,40,40); closegraph; 59.5. Ekranni sariq gorizontal chiziqlar bilan to'ldiring. program masala59_5; uses graph; var gd,gm,x,y,k,i: integer; gd:=0; initgraph(gd,gm,''); setcolor(15); SetFillstyle(2,14); Bar(0,0,1000,700); closegraph; 59.6. Ekranni teng to'rt bo'lakka bo'lib, ularni mos ravishda qizil, sariq, yashil va ko'k ranglarga bo'yang.
program masala59_6; uses graph; var gd,gm,x,y,k,i: integer; gd:=0; initgraph(gd,gm,''); setcolor(15); SetFillstyle(1,4); Bar(0,0,500,350); setcolor(15); SetFillstyle(1,14); Bar(0,350,500,700); setcolor(15); SetFillstyle(1,2); Bar(500,0,1000,350); setcolor(15); SetFillstyle(1,1); Bar(500,350,1000,700); closegraph; 59.7. Ekranning o'rtasida radiusi 100 ga teng sariq rangli doira chizing. Program masala59_7; Uses wincrt, graph; label 1; Var gd,gm,i: integer; y: char; gd:=0; InitGraph(gd,gm,''); SetFillStyle(1,14); FillEllipse(500,350,100,100); closegraph; 59.8. Mos ravishda qizil, sariq va yashil chiroqlari yonib turgan uchta svetofor rasmini chizing. program masala59_8; uses wincrt, graph, crt; var gd,gm: integer; gd:=0;clrscr; initgraph(gd,gm,''); rectangle(10,10,80,240); setfillstyle(1,4); fillellipse(45,45,25,25);circle(45,125,25); circle(45,205,25); rectangle(110,10,180,240); setfillstyle(1,14); circle(145,45,25);fillellipse(145,125,25,25); circle(145,205,25);
rectangle(210,10,280,240); setfillstyle(1,2); circle(245,45,25); circle(245,125,25); fillellipse(245,205,25,25); closegraph; 59.9. 12 xil bo'yash usulini namoyish etuvchi 40x40 o'lchamli 12 ta kvadrat chizing. program masala59_9; uses wincrt, graph, crt; var i,gd,gm,x1,x2,y1,y2: integer; gd:=0; clrscr; initgraph(gd,gm,''); x1:=1; x2:=40; y1:=1; y2:=40; for i:=1 to 12 do setfillstyle(i,i+3); bar(x1,y1,x2,y2); x1:=x1+42; x2:=x2+42; end; closegraph; 61-dars. Fayllar bilan ishlash. 61.1. Sinfdoshlaringizning familiya va ismlaridan tashkil topgan «SINF.TXT» nomli matnli fayl hosil qiluvchi dastur tuzing. program masala61_1; uses crt; var ism: string; f: text; i: integer; clrscr; assign(f,'c:sinf.txt'); rewrite(f); for i:=1 to 7 do write(i,'-oquvchining familiyasini va ismini kiriting='); readln(ism); writeln(f,ism); end; close(f); 61.2. Hafta kunlarining nomlarini kiritib, ularni «HAFTA.TXT» faylida saqlab qo'yadigan dastur tuzing. program masala61_2; uses crt; var kun: string; f: text; i: integer;
clrscr; assign(f,'hafta.txt'); rewrite(f); for i:=1 to 7 do write(i,'-kun nomini kiriting=');readln(kun); writeln(f,kun); end; close(f); 61.3. «HAFTA.TXT» faylida berilgan hafta kunlarining nomlarini ekranga chiqaruvchi dastur tuzing. program masala61_3; uses crt; var hafta: array[1..7] of string; f: text; s: string; i: integer; clrscr; assign(f,'hafta.txt'); reset(f); for i:=1 to 7 do readln(f,s); writeln(s); end; close(f); 61.4. y=sin2x funksiyasining [-π;π] oraliqdagi qiymatlarini 0,01 qadam bilan hisoblang. Natijalarni «sinus.out» faylida saqlab qo'ying. program masala61_4; uses crt; var ism: string; f: text; i: integer; clrscr; assign(f,'c:sinf.txt'); rewrite(f); for i:=1 to 7 do write(i,'-oquvchining familiyasini va ismini kiriting='); readln(ism); writeln(f,ism); end; close(f); 61.5. «sinf.txt» faylida berilgan 9-sinf o'quvchilarning familiyalari ichidan «M» harfi bilan boshlanadiganlarini ekranga chiqaruvchi dastur tuzing. program masala61_5; uses crt; var hafta: array[1..7] of string; f: text; s: string; i: integer;
clrscr; assign(f,'c:\sinf.txt'); reset(f); for i:=1 to 7 do readln(f,s); if s[1]='m' then writeln(s); end; close(f); 61.6. «sinf.txt» faylida berilgan 9-sinf o'quvchilarining familiyalari ichidan «B» harfi bilan boshlanadiganlarini ajratib olib, ulardan «bsinf.txt» faylini hosil qiluvchi dastur tuzing. program masala61_6; uses crt; var hafta: array[1..7] of string; f1,f2: text; s: string; i: integer; clrscr; assign(f1,'c:\sinf.txt'); reset(f1); assign(f2,'c:\bsinf.txt'); rewrite(f2); for i:=1 to 7 do readln(f1,s); if s[1]='b' then writeln(f2,s); end; close(f1); close(f2); 61.7. «massiv.in» fayli 12 ta satrdan iborat. Uning har bir satrida 9 tadan son o'zaro probel bilan ajratib yozilgan. A(12;9) - ikki o'lchamli massiv elementlarining qiymatlarini «massiv.in» faylidan o'qib oluvchi dastur tuzing. Program masala61_7; Var i,j,x,y,k: integer; f: text; s: string; a: array [0..12,0..9] of string; clrscr; clrscr; k:=1; assign(f,'c:\massiv.in'); reset(f); j:=1; repeat k:=1; readln(f,s); for i:=2 to length(s) do if s[i]=' ' then a[j,k]:=copy(s,1,i-1); delete(s,1,i-1); k:=k+1;end; a[j,k]:=s; j:=j+1; until eof(f); close(f); for i:=1 to 12 do for j:=1 to 9 do write(a[i,j],' '); writeln; end;
63-dars. Protsedura va funksiyalar. 63.1. Uchta to'g'ri to'rtburchakning har birining bittadan diagonali uchlarining koordinatalari berilgan: 1) 20,20 va 80,200; 2) 200,97 va 500,156; 3) 300,120 va 400,420. Shu to'g'ri to'rtburchaklarni mos ravishda qizil, sariq va yashil ranglarda chizish dasturini tuzing. program masala63_1; uses graph; var gd, gm: integer; procedure To`rtburchak(x1,y1,x2,y2,col:integer); setcolor(col); rectangle(x1,y1,x2,y2); end; gd:=0; initgraph(gd,gm,''); To`rtburchak (20,20,80,200,4); To`rtburchak (200,97,500,156,14); To`rtburchak (300,12,400,420,2); closegraph; 63.2. Uchta sondan kattasini topish dasturini tuzing. Buning uchun ikkita sondan kattasini topish funksiyasini tuzib, undan foydalaning. program masala63_2; uses crt; var i,max,a,b,c: integer; function IKT(a,b:integer):integer; var c:integer; if a>b then c:=a else c:=b; IKT:=c; end; write('1-sonni kiriting='); readln(a); write('2-sonni kiriting='); readln(b); write('3-sonni kiriting='); readln(c); a:=ikt(a,b); b:=c; max:=ikt(a,b); writeln('kattasi=',max);
63.3. «noma.txt» faylida berilgan matndagi belgilarni ASCII kodlari bilan almashtirib, «shifr.txt» faylida saqlab qo'yuvchi dastur tuzing. Satrdagi belgilarni ASCII kodlari bilan almashtirib, yangi (maxfiy) satr hosil qilish uchun protsedura tuzib, undan foydalaning. program masala63_3; uses crt; var f1,f2: text; i,j,k,n: integer; s,a,matn: string; procedure kod(s:string); for i:=1 to length(s) do n:=ord(s[i]); str(n,a); matn:=matn+a; end; end; clrscr; assign(f1,'c:\noma.txt'); reset(f1); assign(f2,'c:\shifr.txt'); rewrite(f2); repeat readln(f1,s);kod(s); writeln(f2,matn); matn:='';end; until eof(f1); close(f1); close(f2);
Sinfdan tashqari ishlar uchun masalalar. 1. Tekislikda uchta nuqta berilgan. Ulardan qaysi biri koordinatalar boshiga yaqinroq joylashganligini aniqlovchi dastur tuzing. Program nuqtalar; Uses Crt; Var xa, ya, xb, yb, xc, yc, ma, mb, mc : Real; BEGIN WriteLn('A nuqtaning koordinatalarini kiriting:'); Write('x = '); ReadLn(xA); Write('y = '); ReadLn(yA); WriteLn('B nuqtaning koordinatalarini kiriting:'); Write('x = '); ReadLn(xB); Write('y = '); ReadLn(yB); WriteLn('C nuqtaning koordinatalarini kiriting:'); Write('x = '); ReadLn(xC); Write('y = '); ReadLn(yC); ma := sqrt(sqr(xa) + sqr(ya)); mb := sqrt(sqr(xb) + sqr(yb)); mc := sqrt(sqr(xc) + sqr(yc)); WriteLn; Write('Javob: '); If (ma < mb) and (ma < mc) then WriteLn( 'A nuqta.') else If (mb < mc) then WriteLn('B nuqta.') else WriteLn('C nuqta.'); ReadLn; END. 2. Berilgan to`rtxonali son raqamlari yig`indisini topish dasturini tuzing. Program Raqamlar; Uses Crt; Var son, {berilgan son} i, j, k, l, {son raqamlari} P : Integer; {raqamlar ko`paytmasi} BEGIN Write( 'To`rtxonali sonni kiriting: ' ); ReadLn(son); son:=abs(son); Write(son,' sonining raqamlari: '); i:= son div 1000; Write(i:3); {birinchi raqam} j:= son div 100 mod 10; Write(j:3); {ikkinchi raqam} k:= son div 10 mod 10; Write(k:3); {uchinchi raqam} l:= son mod 10; WriteLn(l:3); {to`rtinchi raqam} P:= i * j * k * l ;
WriteLn('Javob: son raqamlarining ko`paytmasi: ',P); ReadLn; END. 3. Quyidagi tenglamalar bilan berilgan ikkita to`g`ri chiziqning kesishish nuqtasi koordinatalarini aniqlovchi dastur tuzing. Agar ular ustma ust tushsa yoki parallel bo`lsa yohud mavjud bo`lmasa, mos xabar chiqarilsin: a 1 x + b 1 y + c 1 = 0; a 2 x + b 2 y + c 2 = 0. Program to`g`ri_chiziqlar;; Uses Crt; Var a1,b1,c1,a2,b2,c2,x,y:real; BEGIN Write( a1,b1,c1 larni kiriting:');readln(a1,b1,c1); Write('a2,b2,c2 larni kiriting:');readln(a2,b2,c2); WriteLn; Write('Javob: '); If ( (a1=0) and (b1=0) ) or ( (a2=0) and (b2=0) ) then WriteLn( 'Bu to`g`ri chiziq emas!!!' ) else if (a1*b2=a2*b1) and (a1*c2=a2*c1) {ustma-ust tushish sharti} then WriteLn('to`g`ri chiziqlar ustma-ust tushadi.') else if a1*b2 = a2*b1 {parallellik sharti} then WriteLn(' to`g`ri chiziqlar parallel.') else x:=(c1*b2-c2*b1)/(b1*a2-b2*a1); y:=(c2*a1-c1*a2)/(b1*a2-b2*a1); WriteLn('Kesishish nuqtasining koordinatalari:); end; WriteLn(x=',x:5:2,',y=',y:5:2); end; ReadLn; END. 4. Berilgan matndagi so`zlar sonini aniqlang. Agar matndagi qo`shni so`zlar bittadan probel (bo`sh joy belgisi) bilan ajratilgan bo`lsa, u holda so`zlar soni probellr sonidan bitta ortiq bo`ladi. Agar qo`shni so`zlar orasidagi probellar bittadan ortiq bo`lsa, u holda algoritm biroz murakkablashadi. Program so`z_soni; Uses Crt; Var matn: String; {berilgan matn} i,n: Integer; {n-matndagi so`zlar soni} m: Boolean; {m-mantiqiy o`zgaruvchi} belgi: Char; {joriy harf}
BEGIN WriteLn('Matnni kiriting:'); ReadLn(matn); n:=0; m:=true; For i:=1 to Length(matn) do belgi:=matn[i]; If (belgi<>' ') and m then n:=n+1; m:=(belgi=' ') end; WriteLn; WriteLn('Javob:Matndai so`zlar soni: ',n); ReadLn; END. 5. Fibonachchi sonlari( F i ) ushbu F 0 = F 1 = 1; F i = F i 1 + F i 2 ( i=2, 3,... ) formula bilan hisoblanadi (har bir navbatdagi son o`zidan oldingi ikki sonning yig`indisiga teng). Berilgan M natural sondan katta bo`lmagan barcha Fibonachchi sonlari yig`indisini toping. Program SummaFib; Uses Crt; Var M,F0,F1,F2,S: Integer; BEGIN Write( М natural sonni kiriting: );ReadLn(M); F0:=1; F1:=1; F2:=2; S:=4; {4 dastlabki uchta Fibonachchi sonlari yig`indisi} Write(M, dan katta bo`lmagan Fibonachchi sonlari:,f0:4,f1:4); While F2<=M do F0:=F1; F1:=F2; Write(F1 : 4); F2:=F0+F1; S:=S+F2; end; S:=S F2; WriteLn; WriteLn; WriteLn( Javob: Bu sonlar yig`indisi=,s); ReadLn: END. 6. A[1..10] sonli massiv elementlarini o`sish tartibida saralovchi dastur tuzing.
program Saralsh; uses crt; Label 5,10; var i,k,m: integer; b,c: real; a: array[1..10] of real; clrscr; for i:=1 to 10 do writeln(i,'-elementni kiriting=> '); readln(a[i]);end; 5: m:=0; for i:=1 to 9 do if a[i]>a[i+1] then b:=a[i]; a[i]:=a[i+1]; a[i+1]:=b; m:=1; end; if m=1 then goto 5; for i:=1 to 10 do writeln(a[i]:3:0); 7. Ekran markazida to`g`ri to`rtburchak chizilsin. Y, P, R va L klavishlari yordamida to`rtburchakni mos ravishda yuqoriga, pastga, o`ngga, chapga harakatlantiruvchi dastur tuzing. program harakat; uses crt, graph, wincrt; label 5,10; var t: char; x1,x2,y1,y2: integer; gd,gm: integer; gd:=0; x1:=400; y1:=300; initgraph(gd,gm,''); settextstyle(0,0,1);outtextxy(50,30,'"y"-yuqoriga, "P"-pastga, "L"-chapga, "R"-o`ngga, "N"-chiqish'); 5:setcolor(14); rectangle(x1,y1,x1+200,y1+100); 10: t:=readkey; if (t='y') or (t='y') then setcolor(0);rectangle(x1,y1,x1+200,y1+100); y1:=y1-10; goto 5; end;
if (t='p') or (t='p') then setcolor(0);rectangle(x1,y1,x1+200,y1+100); y1:=y1+10; goto 5; end; if (t='l') or (t='l') then setcolor(0);rectangle(x1,y1,x1+200,y1+100); x1:=x1-10; goto 5; end; if (t='r') or (t='r') then setcolor(0);rectangle(x1,y1,x1+200,y1+100); x1:=x1+10; goto 5; end; If (t<>'n') and(t<>'n') then goto 10; 8. Shaxmat taxtasida oq shoh va qora ot turibdi. Oq shoh qora ot zarbasi ostida turibdimi yoki qora ot oq shoh zarbasi ostida turibdimi yohud hech biri zarba ostida emasmi ekanligini aniqlovchi dastur tuzing. Shaxmat taxtasini koordinatalar tekisligi sifatida qaraymiz. Shaxmat donalarining joylashgan o`rni xuddi shaxmat o`yinidagi kabi ifodalanadi (masalan, a4, f7, g3 va hokazo). Shuning uchun avval ularni nuqta koordinatalari ko`rinishiga o`tkazib olamiz (masalan: a4 ni (1;4), f7 ni (6,7) va ҳokazoga almashtiramiz). So`ngra ikki nuqta orasidagi msaofani topish formulasidan foydalanamiz. program shaxmat; uses crt; Label 10; var shoh, ot: string; xshoh, yshoh, xot, yot: integer; masofa: real; clrscr; writeln('oq shoh o`rni '); readln(shoh); if shoh[1]='a' then xshoh:=1; if shoh[1]='b' then xshoh:=2; if shoh[1]='c' then xshoh:=3; if shoh[1]='d' then xshoh:=4; if shoh[1]='e' then xshoh:=5; if shoh[1]='f' then xshoh:=6; if shoh[1]='g' then xshoh:=7; if shoh[1]='h' then xshoh:=8; val(shoh[2],yshoh); writeln('qora ot o`rni '); readln(ot); if ot[1]='a' then xot:=1; if ot[1]='b' then xot:=2; if ot[1]='c' then xot:=3; if ot[1]='d' then xot:=4; if ot[1]='e' then xot:=5; if ot[1]='f' then xot:=6; if ot[1]='g' then xot:=7; if ot[1]='h' then xot:=8; val(ot[2],yot); masofa:=round(sqrt(sqr(xot-xshoh)+sqr(yot-yshoh)));
if masofa=round(sqrt(5)) then write('oq shoh qora ot zarbasi ostida'); goto 10; end; if (masofa=round(sqrt(2))) or (masofa=1) then write('qora ot oq shoh zarbasi ostida'); goto 10; end; write('hech biri zarba ostida emas.'); 10: 9. a, b, c larning berilgan qiymatlariga ko`ra y=ax 2 +bx+c funksiya grafigi koordinatalar tekisligining qaysi choraklarida yotishini aniqlovchi dastur tuzing. program Grafik; uses crt; Label 1; var a,b,c,d: real; clrscr; writeln('a,b,c koeffitsiyentlarni=> '); readln(a,b,c); d:=sqr(b)-4*a*c; if d<=0 then if a>0 then write('i,ii choraklarda'); if a<0 then write('iii,iv choraklarda'); goto 1; end; if a>0 then if (c>0) and (b<0) then write('i,ii,iv choraklarda'); if (c>0) and (b>0) then write('i,ii,iii choraklarda'); if c<0 then write('i,ii,iii,iv choraklarda'); end; if a<0 then if (c>0) and (b<0) then write('i,iii,iv choraklarda'); if (c>0) and (b>0) then write('ii,iii,iv choraklarda'); end; 1: 10. Olimlar eski qal a qoldiqlarini tekshirib, u aylana shaklida bo lgan degan fikrga keldilar. Vaqt o tishi bilan qal a devorining ba zi qismlari emirilib ketgan.
Qal aning qolgan qismini saqlab qolish va o rganishni davom ettirish uchun uni to siq bilan o rab qo yish lozim deb topildi. Har bir bo lakni alohida o rash noqulaylik tug dirishini hisobga olib, umumiy to siq yasashga kelishildi (rasmdagi uzliksiz chiziq). To siqning uzunligini 0,001 gacha aniqlikda hisoblang. castle.in fayli: 1-satrda 2 ta son: n-bolaklar soni (1 n 180), r-qal a radiusi (1 r 100). Keyingi n ta satrning har birida 2 tadan son: a i va b i - i-bo lakning boshlanishi va oxiri (graduslarda). Burchak markazi qal a markazida bo lib, o lchash shimol yo nalishida hamda soat mili harakati yo nalishiga teskari. (0 a i, b i 360, a i b i ). Castle.out fayliga quyidagilar chiqarilsin: bitta son - to`siq uzunligi. Fayllar namunasi: castle.in 2 10 330 30 90 270 castle.out 61.8879020479 program qal`a_masalasi; var castle, castle1: text; S,I,N,R,K,H: integer; L, YOY1, YOY2, YOY, RAD: real; A:STRING; B: array[0..100] of integer; O: array[0..100] of integer; D: array[0..100] of integer; G: array[0..100] of integer; assign(castle,'castle.in'); assign(castle1,'castle.'); reset(castle); rewrite(castle1); read (castle,n); read(castle,r); for i:=1 to n do read (castle,b[i]); read (castle,o[i]); end; for i:=1 to n do if B[i]>O[i] then D[i]:=360+O[i]-B[i] else D[i]:=O[i]-B[i]; S:=S+D[i];
end; YOY:=3.14*S*R/180; for i:=1 to N-1 do YOY1:=B[i+1]-O[i]; L:=L+sqrt(2*sqr(R)-2*R*R*COS(YOY1*PI/180)); end; A:=' birlik ip kerak.'; YOY2:=B[1]-O[n]; L:=L+sqrt(2*sqr(R)-2*R*R*COS(YOY2*PI/180)); write (L+YOY:3:9); writeln(a); wriete (castle1, L+YOY:3:9); writeln(castle1,a); close(castle); close(castle1); Foydalanilgan adabiyotlar 1. Informatika va hisoblash texnikasi asoslari. 9-sinf uchun darslik. A. Abduqodirov, N. Taylaqov, B. Boltaev va boshqalar. Toshkent-2006. 2. Turbo Paskal dasturlash tili. N. Otaxonov. Namangan-2006. 3. Informatika va hisoblash texnikasi asoslari fani bo`yicha Respublika (III-IV bosqich) va Xalqaro fan olimpiadalari materiallar. 4. Internet materiallari.