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.