Информатика пәні басқа да пәндермен тығыз байланысты



Дата17.07.2016
өлшемі226.81 Kb.
#205182


Түсінік хат
Информатиканы оқыту процесінің мақсаты - жеке оқушының есеп шығаруын дамыту, шығарылған есептің бағдарламасын құру мектептегі білім сапасын арттыру болып табылады.

Информатика пәні басқа да пәндермен тығыз байланысты.

«Есеп шығара білу – бұл практикада қалыптасқан өнер»-деп әдіскер Д. Пойа айтқандай математикалық есептер шығару және оның бағдарламасын құру оқушылардың ой-өрісін, шығармашылық қабілетін, өз бетінше жұмыс істеу дағдысын қалыптастырады.

Есептерді шығарған кезде оқушылар есептердің ұтымды әдістерін тауып, неғұрлым тиімді жақтарын анықтаудың маңызы ерекше зор екенін айқындайды. Оларды оқып-үйрену, игеру нәтижесінде оқушылар түрлі есептердің бағдарламасын құруға мүмкіндік алады.

Математикалық, физикалық қиындығы жоғары деңгейдегі есептердің шешімін табу үшін оқушыларға жан-жақты жүйелік білім және тапқырлық элементтері қажет.

Бұл жинақта әр түрлі есептердің шығарылу жолы мен Паскаль бағдарламалау тіліндегі бағдарламасы көрсетілген. Информатика пәнінің мұғалімдеріне көмекші құрал ретінде ұсынамын.

№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. Интернеттен алынған материалдар.



Достарыңызбен бөлісу:




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет