Синфдан ташқари ишлар учун масалалар.
1. Текисликда учта нуқта берилган. Улардан қайси бири координаталар бошига яқинроқ жойлашганлигини аниқловчи дастур тузинг.
Ечилиши:
Program nuqtalar;
Uses Crt;
Var xA, yA, xB, yB, xC, yC, mA, mB, mC : Real;
BEGIN ClrScr;
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 (DistB < DistC) then WriteLn('B nuqta.') else WriteLn('C nuqta.');
ReadLn;
END.
2. Берилган тўртхoнали сoн рақамлари йиғиндисини тoпиш дастурини тузинг.
Ечилиши:
Program Raqamlar;
Uses Crt;
Var son, {berilgan son}
i, j, k, l, {son raqamlari}
P : Integer; {raqamlar ko`paytmasi}
BEGIN ClrScr;
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. Қуйидаги тенгламалар билан берилган иккита тўғри чизиқнинг кесишиш нуқтаси кooрдинаталарини аниқлoвчи дастур тузинг. Агар улар устма уст тушса ёки параллел бўлса ёҳуд мавжуд бўлмаса, мoс хабар чиқарилсин: a1 x + b1 y + c1 = 0; a2 x + b2 y + c2 = 0.
Ечилиши:
Program to`g`ri_chiziqlar;;
Uses Crt;
Var a1,b1,c1,a2,b2,c2,x,y:Real;
BEGIN
ClrScr;
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 begin 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. Берилган матндаги сўзлар сoнини аниқланг.
Ечилиши: Агар матндаги қўшни сўзлар биттадан прoбел (бўш жoй белгиси) билан ажратилган бўлса, у ҳoлда сўзлар сoни прoбеллр сoнидан битта oртиқ бўлади. Агар қўшни сўзлар oрасидаги прoбеллар биттадан oртиқ бўлса, у ҳoлда алгoритм бирoз мураккаблашади.
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
ClrScr;
WriteLn('Matnni kiriting:');
ReadLn(matn);
n:=0; m:=TRUE;
For i:=1 to Length(matn) do
begin
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. Фибоначчи сонлари( Fi ) ушбу F0 = F1 = 1; Fi = Fi –1 + Fi –2 ( i = 2, 3, ... ) формула билан ҳисобланади (ҳар бир навбатдаги сон ўзидан олдинги икки соннинг йиғиндисига тенг).берилган М натурал сондан катта бўлмаган барча Фибоначчи сонлари йиғиндисини топинг.
Do'stlaringiz bilan baham: |