Turbo Pascal орындаған тапсырмалар

Тапсырма №1

Паскаль тілінде қолданушының енгізген санын ақшаға айналдыру бағдарламасын құру қажет. Мысалы : 90.45 — 90 рублей 45 копеек.

program Dengi;

var

d: Real;

r, k: Real;

begin

Write('Введите число: ');

Read(d);

r := Int(d);

k := Round(Frac(d) * 100);

Write(r, ' руб. ');

WriteLn(k, ' коп.');

end.

Тапсырма №2

Паскаль бағдарламасында қолданушының енгізген минутын сағатқа, минутқа айналдыратын бағдарлама құру керек. Мысалы: 3 сағат 18 минут.

program timer;

var

t,h,m: Integer;

sm,sh: String;

begin

sm := 'minut';

sh := 'sagat';

Write(Minutty engyz: ');

Read(t);

h := t div 60;

m := t mod 60;

case h of

1, 21: sh := sh + '';

2..4, 22..24: sh := sh + 'а';

5..20: sh := sh + 'а';

end;

case m of

1, 21, 31, 41, 51: sm := sm + 'а';

2..4, 22..24, 32..34, 42..44, 52..54: sm := sm + 'ы';

end;

Write(h, sh, ' ', m, sm);

end.

Тапсырма №3

А(x1, y1), B(x2, y2), C(x3, y3) нүктелер бір түзу бойында жатады ма? анықтаңыз

program z3;

var

x1, x2, x3, y1, y2, y3, z, n:real;

Begin

write (‘А нүктесі енгіз ');

readln (x1,y1);

write (‘В нүктесі енгіз ');

readln (x2,y2);

write (‘C нүктесі енгіз ');

readln (x3,y3);

z:=(x3-x1)/(y3-y1);

n:=(x3-x2)/(y3-y2);

if (z=n) and (z=(x2-x1)/(y2-y1)) then

writeln ('Бір түзуде жататын нүктелер’);

else

writeln ('Бір түзуде жатпайтын нүктелер’);

end.

Тапсырма №4

Роботтар ұжымы келесі заңдар бойынша өмір сүреді: жылына бір рет олар толығымен жинақталған 3 немесе 5 роботтан құралған топтарға біріктіріледі (топтарға қабылдаудың максималды мүмкіндігі 3 роботтан). Жылына 3 роботтан жиналған топтар 5, ал 5 роботтан құралған топ 9 жаңа робот қосады. Әр робот жинақталғаннан кейін 3 жыл өмір сүреді. Бастапқы роботтар саны (К>7) белгілі, олардың барлығы жаңа жинақталғандар. N ші жылдан кейін қанша робот болатынын анықтау керек.

program z4;

var k, i, n, p:integer;

s, x, y:longint;

r:array [1..3] of longint;

Begin

write('Роботтар саны k='); readln(k);

write(‘Жылдар саны n='); readln(n);

r[1]:=k; r[2]:=0; r[3]:=0; s:=k;

for i:=1 to n do

begin

x:=s div 3;

p:=s mod 3;

if p=0 then y:=0

else if p=1 then begin x:=x-3; y:=2 end

else begin x:=x-1; y:=1 end;

r[3]:=r[2]; r[2]:=r[1]; r[1]:=5*x+9*y;

s:=r[1]+r[2]+r[3];

end;

writeln (‘Роботтар саны - ’,s);

end.

Тапсырма №5

Сиырдың күнделікті азығы а кг шөпті, в кг жем және с кг комбикорм құрайды. Сиырдың к басын асырайтын шаруашылықта, х центнер шөп, у тонна жем, 50 кг-нан z қап комбикорм қалды. Шаруашылық толық азық қорымен сиырларды қанша күн тамақтандыра алады.

program z5;

var

a,b,c,x,y,z,kol,r:real;

Begin

readln (a,b,c);

readln (x,y,z);

readln (r);

x:=int(x*100/a);

y:=int(y*1000/b);

z:=int(z*50/c);

kol:=0;

if (x>=r) and (y>=r) and (z>=r) then

begin

if (x<=y) and (x<=z) then kol:=int(x/r);

if (y

if (z

end;

writeln (kol);

end.

Тапсырма №6

Қабылдаушы жобаны бастар алдында, к теңге көлемінде, жылына р процентке кредит алып оны өзінің жобасына салды. Болжам бойынша оның жобасы жылына с теңге кіріс ақша беру керек. Ол кредитін жабу үшін керекті қаражатты жинай алады ма? Жинай алатын болса, қанша жалдан кейін?

program z6;

var

k,p,r,s, h:real;

kol: integer;

Begin

readln (k,p,r);

kol:=0;

while (k>0) and (kol<50) do

begin

kol:=kol+1;

k:=k+k*(p/100);

k:=k-r;

end;

if kol>=50 then writeln ('no') else writeln (kol);

end.

Тапсырма №7

Екі бүтін сан берілген: а мен в. a^b санына аяқталатын санды табатын программа жазу керек.

program z7;

var

a,b,d:integer;

c:byte;

Begin

writeln ('Енгіз a'); readln (a);

writeln ('Енгіз b'); readln (b);

d:=a;

if b=1 then writeln (a)

else

begin

for c:=2 to b do

d:=d*a;

d:=d mod 10;

end;

writeln (d);

end.

Тапсырма №8

Бір айлақтан екінші айлаққа 15 түрлі жүк жеткізу керек. Тасымал жасалатын кеменің жүк көтерімі 50 тонна. Жүктер нөмірленген, және жүктің салмағы туралы ақпарат М(15) массивінде сақталған. Егер жүктер бөлінбеген және нөмірленген реттілік бойынша ғана тасымалданатын болса, кемеге қанша рейс жасау керектігін анықтау керек. Жүктің салмағы 50 тоннадан аспайды деген болжам бар.

program z8;

type

mas=array[1..15] of integer;

var

m:mas;

k,i,s:integer;

Begin

for i:=1 to 15 do

begin

writeln ('Енгіз m','[',i,']');

readln (m[i]);

end;

k:=1; i:=1; s:=0;

repeat

if s+m[i]<=50 then

begin

s:=s+m[i];

i:=i+1;

end

else

begin

k:=k+1;

s:=0;

end;

until i>15;

writeln ('Қажетті , k,'рейс');

Тапсырма №9

Бастапқы капиталы k теңге болатын саудагер ай сайын капиталы p%ке өсіп отыратын саудамен айналысқан. Жеке магазин сатып алу үшін с қаржыны қанша жыл жинайды?

program z9;

var

s,k,p:real;

n:integer;

Begin

writeln ('Бастапқы ақша');

readln(k);

writeln ('Өсетін пайызы');

readln(p);

writeln ('Ақшаны енгіз, сатып алуға жеткілікті');

readln(s);

while k

begin

k:=k+k*(p/100);

n:=n+1;

end;

writeln ('Жылдар саны -',int(n/12));

end.

Тапсырма №10

Цукерман саны өзінің жасайтын сандарына бөлінетін натурал сан. Мысалы: 175 , 1*7*5=35 ке бөлінеді. Цукерманның 3 негізді санын экранға шығаратын программа құр.

program z10;

var i,a,b,c: integer;

Begin

for i := 111 to 999 do

begin

a := i div 100;

b := (i div 10) mod 10;

c := i mod 10;

if (b <> 0) and (c <> 0) and (i mod (a * b * c) = 0) then writeln (i);

end;

end.

Тапсырма №11

Конференцияға N адам келді. Олардф тасымалдау үшін К және М адам сиятын автомобильдер бөлінді(жүргізушісіз). Қонақүйде автоьобильдер мынадай реттілікте беріледі: алдымен К адам сиятын, кейін М адам т.с.с. Жолаушыларды максималды сыймдылықтан асырмай тасымалдыу керек. Конференцияғы барлық делегаттарды тасымалдау үшін қанша автомобиль керегін анықтау.

program z11;

var

N,M,K,x:integer;

Begin

writeln ('Қатысушылар санын енгіз');

readln(N);

writeln ('Сиятын көлік санын енгіз');

readln(K);

writeln ('Екінші көліктікін енгіз');

readln(M);

x:=0;

while N>0 do

begin

x:=x+1;

if x mod 2<>0 then N:=N-K else N:=N-M;

end;

writeln (x);

end.

Тапсырма №12

Ши алынатын қорап кейдейсоқ белгіленеді. Бір қорап босағанша, қанша ши жанады?

program z12;

var

A: array [1..4] of integer;

i, m ,n:integer;

Begin

for i:=1 to 4 do

A[i]:=15;

repeat

n:=1+random(4);

A[n]:=A[n]-1;

m:=m+1;

until A[n]=0;

writeln ('В коробке', n, 'закончились спички');

writeln ('Израсходовано спичек', m);

end.

Тапсырма №13

Кестеде көрсетілгендей квадраттық матрица құру қажет.

program z13;

var

A: array [1..5, 1..5] of byte;

i, j:integer;

begin

for i:=1 to 5 do

for j:=1 to 5 do

A[i, j]:=1+(i+j-2) mod 5;

for i:=1 to 5 do

begin

for j:=1 to 5 do

write (a[i, j]:2);

writeln;

end;

end.

Тапсырма №14

Түбірі байт болатын сан берілген. Тексеріңіз, палиндром екілік өкілдігі жоқ екенің тексеру

program z14;

var

n, a, b, c, d: byte;

Begin

readln (n);

a := n mod 2;

n := n div 2;

b := n mod 2;

n := n div 2;

c := n mod 2;

n := n div 2;

d := n mod 2;

n := n div 2;

a := 8 * a + 4 * b + 2 * c + d;

writeln (n = a);

end.

Тапсырма №15

Екі оң бүтін сандар берілген. Олардың ең кіші ортақ еселігін табыңыз.

Ескерту : екі бүтін сандардың ең кіші ортақ еселігін м және н м бөлінетін және N ең кіші оң бүтін сан болып табылады . Мәні : НОК ( м, N)

program z15;

var

m, n, prod: word;

Begin

readln(m, n);

prod := m * n;

while m <> n do begin

if m > n then begin

m := m – n

end

else begin

n := n – m

end

end;

writeln(prod div m)

end.

Тапсырма №16

Ұзындығы N ( N > = 1) таңбалардың тізбегі . Бұл өрнекте жақша балансын тексеріңіз. NaZhauaby , сіз өрнекті енгізу ( ( ) ) ( ) , бағдарлама жақшаға дұрыс орналастыру туралы есеп тиіс , және сіз өрнек ( ( ( ) ) енгізгенде - бұзушылықтар туралы . Ескерту: балансы жақшаға жазба түртіндінің сөйлемшесі деп аталады , әр ашқан жақша жабылатын жай жақша оң және керісінше сәйкес , әрбір жабылатын жай жақша ашылу жақша солға сәйкес келеді.

program Z16;

var

count: integer;

i, n: byte;

c: char;

Begin

readln(n);

count := 0;

for i := 1 to n do begin

read(c);

if c = '(' then inc(count);

if c = ')' then dec(count);

if count = -1 then break

end;

writeln(count = 0)

end.

Тапсырма №17

Олардың нң жалпы бөлгіш матрицаның D және М ең кіші ортақ еселігін белгілі кімге үшін,оң бүтін А және В жұп қанша тапсырыс?

program Z17;

var

a, b, i, j, d, m:integer;

function nod(a, b:integer):integer;

begin

if a=b then nod:=a

else

if a>b then nod:=nod(a-b, b) else nod:=nod(a, b-a)

end;

Begin

writeln (‘Введите НОД двух чисел d’);

readln (d);

writeln (‘Введите НОK двух чисел m’);

readln (d);

for i:=1 to 100 do

begin

for j:=1 to 100 do

begin

a:=i;

b:=j;

if ((nod(a, b)=d) and ((a*b div nod(a, b))=m)) then writeln (i, j);

end;

end;

readln

end.

Тапсырма №18

Басшылық, жаңа жылдағы инфляция р% құрайды,- деп сендіріп отыр.жылына қандай баға өсімін күтуге болады? Есепті шешуге арналған программа құр.

program Z18;

var

a, p, s:real;

Begin

writeln (‘айлық инфляция пайызын енгіз’);

readln (p);

a:=exp(ln(1+p/100)*12);

s:=(a-1)*100;

writeln (s:10:2);

readln

end.

Тапсырма №19

Факутетке айына F рубль степендия бөлінді. Сессия қорытындысы бойынша: «үздік», «жақсы оқитын»б «үшпен оқитын». Үздік студенттерге берілетін көтерілген степендия рубльды құрайды, қарапайым степендия рубль, қарызы бар студенттер степендиядан айрылады. Әр категориядан қанша студент степендия ала алады?

program Z19;

var

n1,n2,n3,k1,k2,k3,s,s1,s2:integer;

f:longint;

Begin

writeln (‘фонд көлемін енгіз’);

readln (f);

writeln (‘Үшпен, төртпен,үздік оқитын оқушылар санын енгіз’);

readln (n1,n2,n3);

writeln (‘Степендия көлемін енгіз’);

readln (s1,s2);

if f>s1*n1 then k1:=n1 else k1:=f div s1;

f:=f-s1*k1;

if f>s2*n2 then k2:=n2 else k2:=f div s2;

f:=f-s2*k2;

if f>s2*n3 then k3:=n3 else k3:=f div s2;

f:=f-s2*k3;

writeln ('үздік оқитын студент саны степндия алатын ==',k1);

if k2>0 then writeln ('жақсы оқитын студент саны степндия алатын =',k2);

if k3>0 then writeln ('үшпен оқитын студент саны степндия алатын =',k3);

writeln (‘көмек фонды =’, f);

readln

end.

Тапсырма №20

N қорап шеңбер құрап тұр. I-інші қорапта j жылан. Әр минут сайын жылан көрші қорапқа жылжып барады (i қораптан i+1 қорапқа), ал N-ші қораптан біріншіге. М минуттан кейінгі әр қораптағы жылан санын есептейтін программа құр.

program Z20;

var

n, m, i, j:integer;

Begin

writeln (‘Қорап көлемін енгіз n’);

readln (n);

writeln (‘Қанша минут енгіз m’);

readln (m);

m:=m mod n;

if m=0 then begin j:=0; m:=n end else j:=n-m;

for i:=1 to n do

begin

j:=j+1;

write (j,' ');

if i=m then j:=0;

end;

writeln (n);

readln

end.


Наши рекомендации