Түсінік хат
Информатиканы оқыту процесінің мақсаты - жеке оқушының есеп шығаруын дамыту, шығарылған есептің бағдарламасын құру мектептегі білім сапасын арттыру болып табылады.
Информатика пәні басқа да пәндермен тығыз байланысты.
«Есеп шығара білу – бұл практикада қалыптасқан өнер»-деп әдіскер Д. Пойа айтқандай математикалық есептер шығару және оның бағдарламасын құру оқушылардың ой-өрісін, шығармашылық қабілетін, өз бетінше жұмыс істеу дағдысын қалыптастырады.
Есептерді шығарған кезде оқушылар есептердің ұтымды әдістерін тауып, неғұрлым тиімді жақтарын анықтаудың маңызы ерекше зор екенін айқындайды. Оларды оқып-үйрену, игеру нәтижесінде оқушылар түрлі есептердің бағдарламасын құруға мүмкіндік алады.
Математикалық, физикалық қиындығы жоғары деңгейдегі есептердің шешімін табу үшін оқушыларға жан-жақты жүйелік білім және тапқырлық элементтері қажет.
Бұл жинақта әр түрлі есептердің шығарылу жолы мен Паскаль бағдарламалау тіліндегі бағдарламасы көрсетілген. Информатика пәнінің мұғалімдеріне көмекші құрал ретінде ұсынамын.
№1
bn=2 геометриялық прогрессияның n мүшесін табу.
program geom_pr;
var b1,bn,q,n: real;
begin
cls;
b1:=2; q:=3;
writeln('n мэнiн енгiз');
readln(n);
bn:=b1*exp((n-1)*ln(q));
writeln (bn);
end.
№2
Арифметикалық прогрессияның n-мүшесінің формуласы an=5n+3 бойынша Sn табу керек.
program arif_pr;
var a1,an,d,n,Sn: real;
begin
cls;
a1:=8; d:=5;
writeln('n мэнiн енгiз');
readln(n);
Sn:=2*a1+(n-1)*d;
writeln (Sn);
end.
№3
1; 7; 31; 127; 511;.... тізбегінің n-мүшесін тап.
program tizbek;
var an,n: real;
begin
cls;
writeln('n мэнiн енгiз');
readln(n);
an:=exp((2*n-1)*ln(2))-1;
writeln (an);
end.
№4
Берілген сөздердегі кездесетін әр түрлі әріптер санын анықтау бағдарламасы.
program arip;
var s: string;
r: real;
I,j,n:integer;
begin
r:=0;
readln(s);
for i=1 to length(s) do begin
n:=0;
for j:=1 to length(s) do begin
if s[i]=s[j] then inc(n);
end;
writeln (‘әр турлі әріптер саны =’,r:1:0);
end.
№5
Берілген сөздегі соңғы әріпті 1-ші орынға қою бағдарламасы.
program pr;
var s: string; i,j,n:integer;
begin
readln(s);
s:=s[length(s)]+copy(s,1,length(s)-1);
writeln (s);
end.
№6
Берілген натураль санға бөлінетін барлық сандарды шығару бағдарламасы.
program san;
var a,n,c,d:word;
begin
readln(a);
n:=1;
while (n(=sqrt(a)) do begin
c:=a mod n;
d:=a div n;
if c=0 then begin
writeln (n);
if n<>d then writeln (d);
end;
inc(n);
end;
end.
№7
Берілген массив элементтерінің орта мәнін табу бағдарламасы.
program massiv;
var a:array[1..10] of integer;
s:longint;
i,j: integer;
begin
s:=0; n:=0;
writeln (‘массивтің 10 элементін енгіз:’);
for i=1 to 10 do begin
readln(a[i]);
s:=s+a[i]; inc(n);
end;
writeln (‘массивтің элементтерінің орта мәні:’,s/n);
end.
№8
Берілген бір өлшемді массив элементтерінің қосындысын табу бағдарламасы.
program massiv;
var a:array[1..10] of integer;
s:longint;
i: integer;
begin
writeln (‘массивтің 10 элементін енгіз:’);
s:=0;
for i=1 to 10 do begin
readln(a[i]);
s:=s+a[i];
end;
writeln (‘массивтің элементтерінің қосындысы:’,s);
end.
№9
Берілген екі өлшемді массив элементтерінің қосындысын табу бағдарламасы.
program massiv;
var a:array[1..10,1..2] of integer;
s:longint;
I,j: integer;
begin
writeln (‘массивтің 20 элементін енгіз:’);
s:=0;
for i=1 to 10 do begin
for j=1 to 2 do begin
readln(a[i,j]);
s:=s+a[i,j];
end;
end;
writeln (‘массивтің элементтерінің қосындысы:’,s);
end.
№10
Берілген бір өлшемді массив элементтерінің ең үлкен элементін табу бағдарламасы.
program massiv;
var a:array[1..10] of integer;
max:integer;
i: integer;
begin
writeln (‘массивтің 10 элементін енгіз:’);
max:=-(MAXINT+1);
for i=1 to 10 do begin
readln(a[i]);
if max
end;
writeln (‘массив элементтерінің ең үлкені :’,max);
end.
№11
Берілген бір өлшемді массив элементтерінің ең кіші элементін табу бағдарламасы.
program massiv;
var a:array[1..10] of integer;
min:integer;
i: integer;
begin
writeln (‘массивтің 10 элементін енгіз:’);
min:=MAXINT;
for i=1 to 10 do begin
readln(a[i]);
if min>a[i] then min:=a[i];
end;
writeln (‘массив элементтерінің ең кішісі :’,max);
end.
№12
Берілген бір өлшемді массив элементтерінің ішінен белгілі бір сандар интервалының арасындағы элементтерді табу бағдарламасы.
program massiv;
var a:array[1..10] of integer;
c,d:integer;
i: integer
begin
writeln (‘массивтің 10 элементін енгіз:’);
for i=1 to 10 do readln(a[i]);
writeln (‘cd’);
readln(c,d);
for i=1 to 10 do begin
if (a[i]>=c) and (a[i]<=d) then writeln(a[i]);
end;
end.
№13
Берілген бір өлшемді массив элементтерінің 1-ші элементін ең соңғы элементімен алмастыру бағдарламасы.
program massiv;
var a:array[1..10] of integer;
x:integer;
i: integer;
begin
writeln (‘массивтің 10 элементін енгіз:’);
for i=1 to 10 do readln(a[i]);
x:=a[10];
for i=10 to 2 do begin
a[i]=a[i-1];
end;
a[1]=x
writeln(‘өзгерістен кейін’);
for i=1 to 10 do writeln(a[i]);
end.
№14
Берілген бір өлшемді массив элементтерінің ішіндегі ең көп кездесетін элементті табу бағдарламасы.
program massiv;
var a:array[1..10] of integer;
I,j,m,p,n: integer;
begin
writeln (‘массивтің 10 элементін енгіз:’);
for i=1 to 10 do readln(a[i]);
m:=1; p:=1;
for i=1 to 10 do begin
n:=0;
for i=1 to 10 do begin
if a[i]=a[j] then inc(n);
end;
if n>m then begin
m:=n; p:=I;
end;
end;
writeln(‘ең көп кездесетін элемент:’,a[p]);
end.
№15
Берілген бір өлшемді массив элементтерінің ішінде кездесетін бірдей элемент бар, жоғын табу бағдарламасы.
program massiv;
var a:array[1..10] of integer;
i,j: integer;
begin
writeln (‘массивтің 10 элементін енгіз:’);
for i=1 to 10 do readln(a[i]);
for i=1 to 9 do begin
for j=i+1 to 10 do begin
if a[i]=a[j] then break;
end;
if i<9 then writeln(‘массивте бірдей элементтер бар’);
else writeln(‘Массив элементтері әр түрлі:’);
end.
№16
Берілген бір өлшемді массив элементтерін өсу реті бойынша орналастыру бағдарламасы.
program massiv;
const n=10;
var a:array[1..n] of integer;
i,j,x: integer;
begin
writeln (‘массивтің 10 элементін енгіз:’);
for i=1 to 10 do readln(a[i]);
for i=1 to n-1 do begin
for j=i+1 to n do begin
if a[i]>a[j] then begin
x:=a[i]; a[i]:=a[j]; a[j]:=x;
end;
end;
end;
writeln(‘сұрыпталғаннан кейін’);
for i:=1 to n do writeln(a[i]);
end.
№17
ax2+bx+c=0 теңдеуін шешу бағдарламасы.
program esep;
var a,b,c,d,x: real;
begin
writeln(‘a,b,c – мәндерін енгіз=’)
readln(a,b,c);
d:=sqr(b)-4*a*c;
if d<0 then begin
writeln(‘теңдеудің шешімі жоқ’);
end else if d=0 then begin
x:=(-b)/2*a;
writeln (‘теңдеудің шешімі=’,x);
end else begin
x:=(-b+sqrt(d))/2*a;
writeln (‘1 - теңдеудің шешімі=’,x);
x:=(-b-sqrt(d))/2*a;
writeln (‘2 - теңдеудің шешімі=’,x);
end;
end.
№18
Ондық жүйедегі сандарды екілік жүйеге аудару бағдарламасы.
program esep;
var a: longint;
function DEC_BIN(x:longint):string;
const digits:array[0..1] of char = (‘0’,’1’);
Var res, ves,: longint; i,j: byte;
begin
res:=’’;
while (x<>0) do begin
d:=x mod 2; res:= digits[d]+res;
x:=x div 2;
end;
DEC_BIN:=res;
end;
begin
readln(a);
writeln(DEC_BIN(a));
end.
№19
Екілік жүйедегі сандарды ондық жүйеге аудару бағдарламасы.
program esep;
var a: string;
function DEC_BIN(x string:): longint;
const digits:array[0..1] of char = (‘0’,’1’);
begin
res:=0; ves:=1;
for i:=length(x) downto 1 do begin
j:=0;
while (digits [j]<>x[i]) do inc(j);
res:= res+ves*j;
ves:=ves*2;
end;
DEC_BIN:=res;
end;
begin
readln(a);
writeln(DEC_BIN(a));
end.
№20
Ондық жүйедегі сандарды он алтылық жүйеге аудару бағдарламасы.
program esep;
var a: longint;
function DEC_HEX(x: longint): string;
const digits:array[0..15] of char = (‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,
’D’,’E’,’F’);
Var res:string; d:0..15;
begin
res:=’’;
while (x<>0) do begin
d:=x mod 16;
x:=x div 16;
res:= digits[d]+res;
end;
DEC_HEX:=res;
end;
begin
readln(a);
writeln(DEC_HEX(a));
end.
№21
Он алтылық жүйедегі сандарды ондық жүйеге аудару бағдарламасы.
program esep;
var a: string;
function HEX _ DEC (x: string): longint;
const digits:array[0..15] of char = (‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,
’D’,’E’,’F’);
Var res, ves,: longint; i,j: byte;
begin
res:=0; ves:=1;
for i:=length(x) downto 1 do begin
j:=0;
a[i]:=UpCase(a[i]);
while (digits [j]<>x[i]) do inc(j);
res:= res+ves*j;
ves:=ves*16;
end;
HEX _ DEC:=res;
end;
begin
readln(a);
writeln(HEX _ DEC (a));
end.
№22
Екі санның көбейтіндісі (ЕСК- HOD) және ортақ бөлінетін санын (ЕСБ- HOK) табу алгоритмі.
program esep;
var a,b,: longint;
function NOD(x,y: longint;) longint;
begin
if x<>0 then NOD:=NOD(y modx,x) else NOD:=y;
end;
function NOK(x,y: longint;) longint;
begin
NOK:=(x div NOK(x,y)*y;
end;
begin
readln(a,b);
writeln(‘берілген сандардың ЕОБ - ’HOD (a,b));
writeln(‘берілген сандардың ЕСК - ’HOK (a,b));
end.
№23
Берілген бір өлшемді массив элементтерін өсу реті бойынша сұрыптау бағдарламасы.
program massiv;
var a:array[1..10] of integer;
n: integer;
procedure QuickSort(L, R: integer);
var I,j,x,y:integer;
begin
i:=L; j:= R;
x:=a[(L+R) div 2];
repeat
while (a[i]
while (x
if (i<=j) then
begin
y:=a[i]; a[i]:=a[j]; a[j]:=y;
inc(i); dec(j);
end;
until (i>j);
if (i
if (i
end;
begin
writeln (‘массивтің 10 элементін енгіз:’);
for n:=1 to 10 do readln(a[n]);
QuickSort(1,10);
writeln(‘сұрыпталғаннан кейін:’);
for i:=1 to n do writeln(a[n]);
end.
№24
Берілген санның дәрежесін есептеу бағдарламасы.
1 – түрі
program esep;
var x,y: integer;
function Degree(a,b: integer;) longint;
var r: longint;
begin
r:=1;
while b>0) do begin
r:=r*a;
b:=b-1;
end;
Degree:=r;
end;
begin
writeln (‘Санды енгіз және орын тастап дәрежесін енгіз =’);
readln(x,y);
writeln(Degree(x,y));
end.
2 – түрі
program esep;
var x,y: integer;
function Degree(a,b: integer;) longint;
var r: longint; c:integer;
begin
r:=1; c:=a;
while b>0 do begin
if odd(b) then begin
r:=r*c;
dec(b);
end else begin
c:=c*c;
b:=b div 2;
end;
end;
Degree:=r;
end;
begin
writeln (‘Санды енгіз және орын тастап дәрежесін енгіз=’);
readln(x,y);
writeln(Degree(x,y));
end.
№25
Берілген сөйлемдегі сөздердің санын анықтау бағдарламасы.
program esep;
const Alpha: set of char=[‘A’..’Z’,’A’..’П’,’P’..’Я’,’a’..’z’,’a’..’п’,’р’..’я’];
var s:string;
i: integer;
wc:integer;
begin
writeln (‘Сөйлемді енгіз =’);
readln(s);
i:=1; wc:=0;
Repeat
while NOT(s[i] in Alpha) and (i<=Length(s)) do inc(i);
if (i<= Length(s)) then inc(wc);
while (s[i] in Alpha) and (i<=Length(s)) do inc(i);
until (i> Length(s));
writeln(‘Сөйлемдегі сөздер саны:’,wc);
end.
№26
Берілген сөйлемдегі сөздерді анықтау бағдарламасы.
program esep;
const Alpha: set of char=[‘A’..’Z’,’A’..’П’,’P’..’Я’,’a’..’z’,’a’..’п’,’р’..’я’];
var s,t:string;
i: integer;
begin
writeln (‘Сөйлемді енгіз =’);
readln(s);
i:=1;
Repeat
while NOT(s[i] in Alpha) and (i<=Length(s)) do inc(i);
t:=’’;
while (s[i] in Alpha) and (i<=Length(s)) do begin
t:=t+s[i];
inc(i);
end;
if Length(t)<>0 then writeln(t);
until (i> Length(s));
end.
№27
Берілген сөйлемдегі сандарды анықтау бағдарламасы.
program esep;
const Digits: set of char=[‘0’..’9’];
var s,d:string;
i: integer;
begin
writeln (‘Ішінде сандары бар сөйлемді енгіз =’);
readln(s);
writeln (‘сөйлемдегі сандар =’);
i:=1;
Repeat
while NOT(s[i] in Digits) and (i<=Length(s)) do inc(i);
d:=’’;
while (s[i] in Digits) and (i<=Length(s)) do begin
d:=d+s[i];
inc(i);
end;
if Length(d)<>0 then writeln(d);
until (i> Length(s));
end.
№28
Берілген сөйлемдегі үлкен әріптерді кішкентай әріптерге айналдыру бағдарламасы.
program esep;
function SmallAlpha(ps:string):string;
var i: integer;
begin
for i:=1 to Length(ps) do begin
case ps[i] of
‘A’..’Z’,’A’..’П’: inc(ps[i],32);
’P’..’Я’ : inc(ps[i],80);
end;
end;
SmallAlpha:=ps;
end;
begin
writeln(‘Кез келген сөзді енгіз:’);
readln(s);
writeln(‘Сөз кішкентай әріптермен:’);
writeln(SmallAlpha(s));
end.
№29
Үш натурал сан берілген. Олардың арасында тең сандар болмаса, «жоқ» деп, егер олардың екеуі бір-біріне тең болса, «ия» деп, ал үшеуі де бірдей сан болса, бәрі тең деп жазу керек.
program esep1;
var a,b,c:integer;
begin
writeln(’үш сан енгіз’);
read(a,b,c);
if (a<>b) and (b<>c) and (a<>c) then writeln(‘жоќ’) else if (a=b) and (b=c) and (a=c)
then writeln(‘бәрі тең’) else writeln(‘екеуі тең’);
end.
№30
Екі үшбұрыш қабырғалары a, b, c және d, e, f берілген. Қайсы үшбұрыштың ауданы үлкен екенін аңықтау қажет.
program esep2;
var a,b,c,d,e,f,p1,p2,S1,S2:real;
begin
writeln(’1-ші үшбұрыш қабырғаларын енгіз:’);
readln(a,b,c);
writeln(’2-ші үшбұрыш қабырғаларын енгіз:’);
readln(d,e,f);
p1:=(a+b+c)/2;
p2:=(d+e+f)/2;
S1:=sqrt(p1*(p1-a)*(p1-b)*(p1-c));
S2:= sqrt(p2*(p2-d)*(p2-e)*(p2-f));
if S1>S2 then writeln(‘үлкені 1-үшбұрыш, ауданы =’, S1:8:2)
else writeln(‘үлкені 2-үшбұрыш, ауданы =’, S2:8:2)
end.
№31
a, b, c және d төрт түзу сызығының ұзындықтары берілген. Осылар квадраттың немесе тікбүрышты төртбұрыштың қабырғалары бола алады ма? Соны тексеріңдер.
program esep3;
var a,b,c,d:integer;
begin
writeln(’үзындықтарды енгіз:’);
write(’a=’); read(a);
write(’b=’); read(b);
write(’c=’); read(c);
write(’d=’); read(d);
if (a=b) and (a=c) and (a=d) and (b=c) and (b=d) and (c=d)
then writeln(‘Квадрат қабырғалары бола алады’);
if (a=c) and (b=d) then writeln(‘Тікбұрышты төртбұрыштың қабырғалары бола алады’)
else writeln(‘Тікбұрышты төртбұрыштыњ да, квадраттың да қабырѓалары бола алмайды’)
end.
№32
Үшбұрыштың қабырғалары x, y және z берілген. Осы үшбұрыштың тікбұрышты үшбұрыш екенін анақтау керек. Егер солай болып шықса, онда оның қай қабырғасы гепотенуза болатынын табыңдар.
program ushburish;
uses crt;
var x, y, z:real;
begin
clrscr;
writeln;
writeln('үшбұрыш қабырғаларын енгіз:');
write('x='); readln(x);
write('y='); readln(y);
write('z='); readln(z);
if (z<>sqrt(sqr(x)+sqr(y))) and (x<>sqrt(sqr(z)+sqr(y))) and (y<>sqrt(sqr(x)+sqr(z)))
then writeln('тік бұрышты үшбұрыш бола алмайды');
if (z=sqrt(sqr(x)+sqr(y)))
then writeln('тік бұрышты үшбұрыш бола алады, гипотенузасы z=',z:6:2);
if (x=sqrt(sqr(z)+sqr(y)))
then writeln('тік бұрышты үшбұрыш бола алады, гипотенузасы x=',x:6:2);
if (y=sqrt(sqr(x)+sqr(z)))
then writeln('тік бұрышты үшбұрыш бола алады, гипотенузасы y=',y:6:2);
end.
№33
P натурал сан болғанда, a p өрнегін есептейтін бағдарлама құрыңдар
for to do
program esep;
var i,n:integer;
p,a,S:real;
begin
writeln('шекарасын көрсет: ');
readln(n);
a:=5;
S:=1; p:=1;
for i:=1 to n do
begin
S:=S*exp(p*ln(a));
writeln('a= ',a:8:2,' p= ',i:5, ' S =',S:8:2);
end;
end.
While do
program esep;
var i,n:integer;
p,a,S:real;
begin
writeln('шекарасын көрсет: ');
readln(n);
a:=5;
S:=1; p:=1;
while i
begin
i:=i+1;
S:=S*exp(p*ln(a));
writeln('a= ',a:8:2,' p= ',i:5, ' S =',S:8:2);
end;
end.
№34
Төмендегі өрнектің мәнің табу қажет:
a) program esep;
var i,n:integer;
S: real;
begin
writeln('n-ді енгіз:');
readln(n);
S:=0;
for i:=1 to n do
S:=S+1/i;
write(S:8:4)
end.
ә) program esep;
var i,n:integer;
S:real;
begin
readln(n);
S:=0;
for i:=2 to n do
S:=S+1/((i-1)*i);
write(S:8:4)
end.
б) program esep;
var i,n:integer;
S:real;
begin
readln(n);
S:=0;
for i:=1 to n do
if i mod 2=0 then S:=S+(-1)/i else S:=S+1/i;
write(S:8:4);
end.
в) program esep;
var i,n:integer;
S:real;
begin
readln(n);
S:=1;
for i:=1 to n do
S:=S*(1+1/(sqr(i)));
write(S:8:4);
end.
г) program esep;
var i,n:integer;
S:real;
begin
readln(n);
S:=0;
for i:=0 to n do
S:=S+(1/(sqr((2*i)+1)));
write(S:8:4);
end.
№35
1-ден 100-ге дейінгі тақ сандардың жєне жұп сандардың қосындыларын табатын программа құрыңдар.
program esep;
var i, k, t,n,S1,S2 :integer;
begin
writeln('n-ді енгіз:');
readln(n);
t:=0; k:=0;
for i:=1 to n do
if i mod 2=1 then begin t:=i; S1:=S1+i; end else begin k:=i; S2:=S2+i; end;
write('1-ден ', n, ' -ге дейінгі тақ сандардың қосындысы ', S1:6, ' жұп сандардың қосындысы', S2:6);
end.
№36
Әрбір бактерия бір минутта екіге бөлінеді. Басында бір бактерия берілген деп, 5, 7, 9, ... 15 минуттан кейін неше бактерия пайда болатынын табыңдар. Жаңа пайда болған бактериялар да минут сайын көбейіп отырады.
program bakterialar;
var a,S:real;
begin
writeln('минут санын енгіз:');
readln(a);
S:=exp(a*ln(2));
writeln(a:6:2,'-минуттан кейін бактериялардың саны ',S:6:2, ' болады' );
end.
№37
Бірөлшемді массивтің ішіндегі индексі жұп болатын ең кіші элементті анықтау.
program massiv;
var a,b:array[1..10] of integer;
i:integer;
min:integer;
begin
for i:=1 to 10 do
read(a[i]);
for i:=1 to 10 do
min:=a[1];
for i:=2 to 10 do
if (i mod 2 =0) and (a[i] < min) then min:=a[i];
write(min:8);
end.
№38
Бірөлшемді массивтің ішіндегі ең үлкен элементті анықтау.
program massiv;
var a:array[1..10] of integer;
i:integer;
max:integer;
begin
for i:=1 to 10 do
read(a[i]);
for i:=1 to 10 do
max:=a[1];
for i:=2 to 10 do
if a[i] > max then max:=a[i];
write(max:8);
end.
№39
Бірөлшемді массивтің элементтерін өсу реті бойынша сұрыптау.
program suriptau;
const n=10;
var z:array[1..n] of integer;
i,j,k:integer;
begin
for i:=1 to n do read(z[i]);
for j:=1 to n-1 do
begin
for i:=1 to n-1 do
if z[i]>z[i+1] then begin k:=z[i];
z[i]:=z[i+1];
z[i+1]:=k;
end;
end;
for i:=1 to n do write(z[i],' ');
end.
№40
Бірөлшемді массивтің ішіндегі ең үлкен элементті алып тастау.
program massiv;
label 1;
const n=5;
var a,b:array[1..5] of integer;
i,k:integer;
max:integer;
begin
for i:=1 to 5 do
read(a[i]);
for i:=1 to 5 do
max:=a[1]; k:=1;
for i:=2 to 5 do
if a[i] > max then begin max:=a[i]; k:=i; end;
if k=1 then begin for i:=2 to n do write(a[i],' '); goto 1; end;
for i:=1 to k-1 do
write(a[i],' ');
for i:=k+1 to 5 do
write(a[i],' ');
end.
№41
Екіөлшемді 5х4 массив берілген. Екінші жолдың бойынан ең кіші элементті анықтау.
program matrica;
var a:array[1..5,1..4] of integer;
min:integer;
i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 4 do
read(a[i,j]);
min:=a[2,1];
for j:=2 to 4 do
if a[2,j]
write(min:8);
end.
№42
Екіөлшемді 5х4 массив берілген. Төртінші бағанда орналасқан элементтердің көбейтіндісін анықтау
program matrica;
var a:array[1..5,1..4] of integer;
p:integer;
i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 4 do
read(a[i,j]);
p:=1;
for i:=1 to 5 do
p:=p*a[i,4];
write(p:8);
end.
№43
Екіөлшемді 3х3 массив берілген. Осы массивтің индекстерінің қосындысы тақ болатын элементтердғ экранға шығару.
program matrica;
var a:array[1..3,1..3] of integer;
p:integer;
i,j:integer;
begin
for i:=1 to 3 do
for j:=1 to 3 do
read(a[i,j]);
for i:=1 to 3 do
begin
for j:=1 to 3 do
if (i+j) mod 2=1 then
write(a[i,j],' ');
writeln;
end;
end.
№44
Екіөлшемді 4х5 массив берілген. Осы массивтің жұп элементтерін 0-ге, тақ элементтерін 1-ге айналдыру қажет.
program matrica;
var a:array[1..4,1..5] of integer;
p:integer;
i,j:integer;
begin
for i:=1 to 4 do
for j:=1 to 5 do
read(a[i,j]);
for i:=1 to 4 do begin
for j:=1 to 5 do
if a[i,j] mod 2=1 then a[i,j]:=1 else a[i,j]:=0;
end;
for i:=1 to 4 do begin
for j:=1 to 5 do
write(a[i,j],' ');
writeln;
end;
end.
№45
Екіөлшемді 5х5 матрица берілген. Осы массивтің негізгі диагональ элементтерінің қосындысын табу.
program matrica;
var a:array[1..5,1..5] of integer;
S:integer;
i,j:integer;
begin
for i:=1 to 4 do
for j:=1 to 4 do
read(a[i,j]);
S:=0;
for i:=1 to 4 do
for j:=1 to 4 do
if i=j then S:=S+a[i,j];
write(S:8);
end.
№46
Екіөлшемді 4х4 матрица берілген. Осы массивтің кері диагоналінің астыңғы бөлігіндегі теріс элементтердің санын табу.
program matrica;
const n=4;
var a:array[1..n,1..n] of integer;
S:integer;
i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
S:=0;
for i:=1 to n do
for j:=1 to n do
if ((i+j)>(n+1)) and (a[i,j]<0) then S:=S+1;
write(S:8);
end.
№47
Екіөлшемді 5х5 матрица берілген. Осы массивтің негізгі диагоналінің үстіңгі бөлігіндегі нөлдердің санын анықтау.
program matrica;
const n=5;
var a:array[1..n,1..n] of integer;
S:integer;
i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
S:=0;
for i:=1 to n do
for j:=1 to n do
if (i
write(S:8);
end.
№48
20 элементтен тұратын бүтін сандар массиві берілген. Осы массивтің әрбір төртінші орында тұрған элементтерін нөлге айналдыру.
program auistiru;
const n=20;
var a:array[1..n] of integer;
i:integer;
begin
for i:=1 to n do
read(a[i]);
for i:=1 to n do
if i mod 4=0 then a[i]:=0;
for i:=1 to n do write(a[i],' ');
end.
№49
4х5 матрица берілген. Матрицаның әрбір жолын өсу реті бойынша сұрыптаңыз.
program suriptau;
const n=4; m=5;
var a:array[1..n,1..m] of integer;
i,j,s,k:integer;
BEGIN
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
for i:=1 to n do begin
for j:=1 to n do begin
for s:=1 to n do
if a[i,s]>a[i,s+1] then
begin
k:=a[i,s];
a[i,s]:=a[i,s+1];
a[i,s+1]:=k;
end;
end;
end;
for i:=1 to n do begin
for j:=1 to m do
write(a[i,j],' ');
writeln;
end;
END.
№50
Алмаста N алма бар. Сыныптағы M бала одан әрқайсысы 1 алма беруден сұрады. Алмасқа әр алманың салмағы қанша грамм екені белгілі. M баланың әрқайсысына бір алмадан бере отырып, Алмас өзінде қалған алмалардың (N-M) жалпы салмағы максимум болуын басты назарда үстауы керек.
Мысал: Берілгені: N=10 M=7
25 85 1 6 9 23 41 2 6 10
Нәтиже: 151
program almalar;
const n1=100;
var a:array[1..n1] of integer;
i,j,k,m,n:integer;
f1,f2:text;
S:integer;
BEGIN
Writeln('Алмалардың санын енгіз:');
Readln(n);
Writeln('балалардың санын санын енгіз:');
readln(m);
if (m>n) or (m=n) then writeln('балалардың саны алмалардың санынан аспауы немесе тең болмауы керек');
for i:=1 to n do read(a[i]);
for j:=1 to n-1 do
begin
for i:=1 to n-1 do
if a[i]>a[i+1] then
begin
k:=a[i];
a[i]:=a[i+1];
a[i+1]:=k;
end;
end;
S:=0;
for i:=m+1 to n do S:=S+a[i];
writeln(S:8);
END.
№51
Төмендегі өрнекті есептеу:
Z=(a n+b m)c r-d k
program darezhesepteu;
var a,b,c,d,n,m,r,k,Z,f1,f2,f3,f4:real;
procedure darezhe(s,t:real; var q:real);
begin
q:=exp(t*ln(s));
end;
BEGIN
read(a,n,b,m,c,r,d,k);
darezhe(a,n,f1);
darezhe(b,m,f2);
darezhe(c,r,f3);
darezhe(d,k,f4);
Z:=(f1+f2)*f3-f4;
write(Z:8:2);
END.
№52
Берілген жолдың ішіндегі сөздердің санын анықтау.
program sozder;
var S:string;
k,i:integer;
BEGIN
read(S);
k:=0;
for i:=1 to length(S) do
if S[i]=' ' then k:=k+1;
write(k+1:8,' сөз');
END.
№53
Берілген жолдың ішіндегі 3 символдан тұратын сөздерді экранға шығару.
program esep;
var s:string; i,k:integer;
begin
read(S); k:=0; i:=1;
while i<=length(S) do
begin
if s[i]<>' ' then begin
k:=k+1;
i:=i+1;
end
else begin
if k=3 then begin
writeln(copy(S,i-k,k));
k:=0; i:=i+1;
end
else begin
k:=0;
i:=i+1;
end;
end;
end;
if k=3 then writeln(copy(S,i-k,k));
end.
№54
Кері оқылатын сөздерді «аударылады», ал басқа сөздерді «аударылмайды» деп шығаратын бағдарлама.Мысалы: казак сөзін аударылады деп, ал кітап сөзі – аударылмайды деп шығару керек.
program arip;
var s1,s2: string;
i:integer;
begin
readln(s1); s2:=’’;
for i=length(s1) downto 1 do begin
s2:=s2+s1[i];
end;
if s1=s2 then writeln (s1,‘аударылады’);
else writeln (s1,‘аударылмайды’);
end.
Қолданылған әдебиеттер және басқа да ақпарат көздері:
1.Ван Тассел Д. Стиль, «Разработка, эффективность, отладка и испытание программ» - Москва «Мир», 1981г.
2.Информатика. Задачник-практикум в 2 т. / Под ред. И.Г. Семакина, Е.К. Хеннера: Том 2. — Москва. Лаборатория Базовых Знаний, 1999г
3.С.А.Абрамова, Е.В.Зима. «Начала программирования на языке Паскаль»-
-Москва «Наука»,1987г
4. http://infcd.metodist.ru/
5. Окулов. С.М., Основы программирования. – 3-е изд. – Mосква: БИНОМ. Лаборатория знаний, 2006.
6. Тен А.С., Кабдулов Г. С. Практические задания по Паскль, Алматы, 2005г
7. Мұхамбетжанова С. Т. Паскаль бағдарламалау тілі, Алматы-2007 жыл.
8. Интернеттен алынған материалдар.
0>9>
Достарыңызбен бөлісу: |