Автор работы: Пользователь скрыл имя, 16 Декабря 2012 в 13:13, задача
Информатиканы оқыту процесінің мақсаты - жеке оқушының есеп шығаруын дамыту, шығарылған есептің бағдарламасын құру мектептегі білім сапасын арттыру болып табылады.
Түсінік хат
Информатиканы оқыту
процесінің мақсаты - жеке оқушының есеп
шығаруын дамыту, шығарылған есептің
бағдарламасын құру мектептегі білім
сапасын арттыру болып
Информатика пәні басқа да пәндермен тығыз байланысты.
«Есеп шығара білу – бұл практикада қалыптасқан өнер»-деп әдіскер Д. Пойа айтқандай математикалық есептер шығару және оның бағдарламасын құру оқушылардың ой-өрісін, шығармашылық қабілетін, өз бетінше жұмыс істеу дағдысын қалыптастырады.
Есептерді шығарған кезде оқушылар есептердің ұтымды әдістерін тауып, неғұрлым тиімді жақтарын анықтаудың маңызы ерекше зор екенін айқындайды. Оларды оқып-үйрену, игеру нәтижесінде оқушылар түрлі есептердің бағдарламасын құруға мүмкіндік алады.
Математикалық, физикалық қиындығы жоғары деңгейдегі есептердің шешімін табу үшін оқушыларға жан-жақты жүйелік білім және тапқырлық элементтері қажет.
Бұл жинақта әр түрлі
есептердің шығарылу жолы мен Паскаль
бағдарламалау тіліндегі
№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,
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<a[i] then max:=a[i];
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’,’
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’,’
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]<x) do inc(i);
while (x<a[j]) do dec(j);
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<j) then QuickSort(L, j);
if (i<R) then QuickSort(I,R);
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’..’
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’..’
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)