Олимпиадаға дайындалуға арналған есептер жинағЫ №1 Екі санның қосындасын табу программасын құру керек



бет2/5
Дата17.07.2016
өлшемі0.66 Mb.
#205713
1   2   3   4   5

Егер а(і)=7, онда а(i)=1

Егер а(і)=6, онда а(i)=2

Егер а(і)=5, онда а(i)=3

Dim a(9) As iteger

Dim і, k As iteger

For i=1 to 9 do

a(i)=InputBox(“Видите a” +str(i))

Next i


For i=1 to 9 do

IF a(i)=7 then a(i)=1

IF a(i)=7 then a(i)=2

IF a(i)=5 then a(i)=3

Print “a(i)=”;a(i)

Next i


55 А(9) жиым берілген. Нөлге тең емес элементтерді жиымның алдыңғы жағына, нольге тең элементтерді жиымның соңына орналастыру керек.

Dim a(9) As iteger

Dim і, k As iteger

For i=1 to 9 do

a(i)=InputBox(“Видите a” +str(i))

Next i


For i=1 to 9

IF a(i)<>then PRINT “a(“;i;”)=”; a(i)

Next i

For i=1 to 9



IF a(i)=0 then PRINT “a(i)=”; a(i)

Next i


56 Екі өлшемді жиым А(4,4) берілген үшінші жолының элементтерінің қосындысын табыңыз.

Dim a(4,4) As iteger

Dim і, j, S As iteger

S=0


For i=1 to 4 do

For j=1 to 4 do

a(i,j)=InputBox(“Видите a” +str(i))

Next i


Next j

For i=1 to 4

Next i

For i=1 to 4



S=S+a(3.j)

Next j


Print “S=”;S

57 Массасы 5 г дене түзу сызықты қозғалғандығы жылдамдық уақыты берілген. Денеге әсер етуші күшті тап.



Программасы:

10. Rem


20. Read m, z1, z2, t

30. Let F=(m*(z1-z2))/t

40. Print “F=”;F

50. End


Run F5. Enter

58. 1-ден 15-ке дейінгі барлық полиндром сандардың тізімін басып шығаратын программа құр (полиндром сан деп кері оқығанда да сол санға тең сан, яғни берілген есеп үшін бірінші және үшінші цифрлары тең сандар).



Программасы:

Program Polindrom;

Var a, b, c, P1: integer;

Begin


For a:=1 to 15 do

For c:=0 to 15 do

For b:=1 to 15 do

Begin


P1:=a*100+b*10+c;

If a=c then write (P1:5);

End.

59. Массивтің элементтерінің 1-ден 7-ге дейінгі қосындысын тап:



Программасы:

Program ma;

Const n=7;

Type m1=array [1…n] of real;

Var a:m1; k: integer; S: real;

begin


for k:=1 to n do

begin read (a[1,...7]);

end;

S:=ø


for k:=1 to n do

if a[k]>0 then S:=S+a[k];

Write (S);

End.


60 Мына өрнекті есептеп программасын құр? Q=(1+12/f*d*g).

Программасы:

10. Rem


20. Input Q, f, d, g

30. Q=(1+12/f*d*g).

40. Print “d=”;d

50. End.


61 Тиын ақшаны n рет лақтырғанда цифр жағымен түсу жиіліктігін жуық шамамен анықтау программасын құрыңыз?

Программасы:

Program G; uses ctr;

{жиіліктік}

Label 10;

Var n, m, k, r: integer; W: real;

Begin clrscr;

10: Write (‘n=?’); readln (n); m:=0;

For k:=1 to n do

Begin r:=round(random)

If r:=1 then m:=m+1;

end; W:=m/n;

Writeln(n; сынақта сифр көрінуі-? , m ‘, рет’);

Writeln(‘бос орын клавишын бас’);

Repeat until (key pressed); goto 10

End.

62 S1, V1 жылдамдықпен ағып жатқан өзеннен судың ағысына қатысты V2 жылдамдықпен қарсы жағаға қайықпен ағысқа перпендикуляр бағытта жүзіп өту үшін қанша уақыт кетеді? t=S/V өтуге кеткен уақыт формуласы.



10. Rem

20. Input S,V1,V2

30. S=80

40. If V1>V2 then 90

50. V=Sqr(V2^2-V1^2)

60. t=S/V

70. Print “t=”;t

80. Stop


90. Print “қайық қарсы жағаға өте алмайды”

100. End.

63 Жазық бетте жатқан денеге горизонталь бағытта күш әсер етеді. Осы күштің әсерінен t - секунтта дене қанша жол жүреді?

10. Rem


20. Input M, F, k, t

30. If F>9.8*k*M then A=(F-9.8*k*M)/M

40. S=A*(t^2)/2 else S=0

50. Print “S=”;S

60. End.

64 25м мыс. Сымның массасы 100,7г. Сымның диаметрін табыңдар?

L=2500 m=100.7 p=8.94 v=m/p d=Sqr((4*v)/(p*L))

10. Rem


20. Input L, M, R

30. v=mirIf F>9.8*k*M then A=(F-9.8*k*M)/M

40. d=Sqr((4*v)/(p*L))

50. Print “d=”;d

60. End.

65 Ұжымдық мекемеде дипломы бар азаматқа жұмыс ұсыну процесі жүруде. Оған мамандарды ретімен қабылдайды. Программасын құр?

Program ds;

Var x, y, z, m: real;

Begin read(x, y, z);

If x>0 then writeln (‘m=’, жұмысқа қабылдау);

Else Writeln(‘y=’, жұмысқа қабылдамау);

If y>3.5 then writeln (‘m:=’, инженер конструктор);

Else Writeln(‘m :=’, ғылыми қызметкер);

If z>2 then writeln (‘m:=’, инженер қызметін ұсыну);

Else Writeln(‘m :=’, жұмысқа қабылдамау);

End.
66 Шеңбер

Енгізу файлының аты: А.in

Шығару файылының аты: А. Out

Есептің жауабы файылының аты: A. pas

Уақыт шектеу: 2 секунд

Жадыға шектеу: 64 мегабайт
Шеңберде бірдей қашықтықта N нүктелер белгіленген, олар қарсы сағаттық тілдің бүтін сандармен 1-ден N-ға нөмірленген. Сіздерге осы шеңбердің бірнеше қос хордалар берілген, хорданың ұштары сол нүктелер болады. Әрбір хордалар үшін анықтаңыздар, олар қиылып кетеді ме, немесе қиылымайды (сүйкелмейген хордалар қиылған деп саналады).
Мәліметтерді енгізу форматы

Кіріс файлдың бірінші жолында екі бүтін сан тұрады: N және К (1 <=N <=109, 1<=K<=100). Келесі К жолда 4 бүтін сан тұрады: А1, В1, А2, В2- бірінші хорданын (А1, В1) және екінші хорданын (А2, В2) нүктелерінің нөмірлері. Жолдағы сандар пробелмен арқылы бөлінген.


Мәліметтерді шығару форматты

Шығыс файлға әрбір қос хорладың үшін бір жол жазылу керек- YES, егер хордалар қиылып кетеді, немесе Noегер хордалар қиылыспайды (сүйкелмейді).


Мысал

A.in

A.out

4 3

1 3 2 4


1 2 3 4

1 2 3 2


YES

NO

YES


uses crt;

var e,w,q,i,j,k,l,m,n:longint;

a:array[1..4,1..100]of longint;

b:boolean;

function min(var i,j:longint):longint;

begin

if(i

end;

function max(var i,j:longint):longint;

begin
if(i

end;


begin

assign(input,'a.in');reset(input);

assign(output,'a.out');rewrite(output);

readln(n,k);

for i:=1 to k do readln(a[1,i],a[2,i],a[3,i],a[4,i]);

for i:=1 to k do begin

if(a[1,i]=a[3,i])or(a[2,i]=a[4,i])then writeln('YES')else begin

b:=false;

q:=abs(a[1,i]-a[2,i]);

if(q<=n-q)then begin

for l:=min(a[1,i],a[2,i])to max(a[1,i],a[2,i])do begin

for j:=max(a[3,i],a[4,i])downto min(a[3,i],a[4,i])do

if(l=j)then begin

b:=true;


writeln('YES');

break;


end;

if b then break;

end;

if(not b)then writeln('NO');



end else begin

e:=max(a[1,i],a[2,i]);

w:=max(a[3,i],a[4,i]);

b:=false;

for l:=min(a[1,i],a[2,i])to max(a[1,i],a[2,i])do begin

if(e=n+1)then e:=1 else inc(e);

for j:=min(a[3,i],a[4,i])to max(a[3,i],a[4,i])do

begin


w:=w-1;

if(e=w)then begin

b:=true;

writeln('YES');

break;

end; end;



if b then break;

end;


if not b then begin writeln('NO');end;

end;


end; end;

close(input);close(output);

end.

67 Бөлгіштер



Енгізу файлының аты: В.in

Шығару файылының аты: В. Out

Есептің жауабы файылының аты: В. pas

Уақыт шектеу: 2 секунд

Жадыға шектеу: 64 мегабайт
А оң саны В санының бөлгіші аталып жатыр, егер В А санға қалдықсыз бөлінсе. Мысалы, 15 санында 4 бөлгіш бар: 1,3,5,15. Әрбір берілген сандардың үшін, оның бөлгіштердің саны жұп сан немесе тақ сан болады ма сіздерге анықтау қажетті.
Мәліметтерді енгізу форматы

Кіріс файлдың бірінші жолында бір бүтін сан N (15) жазылған. Келесі жолда N бүтін сан Хі(1<=Xi<=1018) жазылған. Бір жолдағы сандар аралары пробелмен бөлінген.


Мәліметтерді шығару форматы

Шығыс файлда аралары пробелмен бөлінген N сан жазылу керек: i- ші сан 0 деп жазылады, егер Х, бөлгіші саны жұп сан болады, немесе 1, егер Х, бөлгіші саны тақ сан болады.




B. in

B. out

2

4 5


1 0

uses crt;

var i,j,k,l,m,n:longint;

function prime(n:longint):boolean;

var i:longint;

begin

prime:=true;



for i:=2 to trunc(sqrt(n))do

if(n mod i=0)then begin prime:=false;break;end;

end;

procedure aaa(l:longint);



var i:longint;

begin


k:=2;

for i:=2 to (l div 2) do

if(l mod i=0)then inc(k);

end;


begin

assign(input,'b.in');reset(input);

assign(output,'b.out');rewrite(output);

readln(n);

for i:=1 to n do

begin


read(l);

if(prime(l))then write('0 ')else begin

k:=0;

aaa(l);


if(odd(k))then write('1 ')else write('0 ');

end;


end;

close(input);close(output);

end.
68 Пайда.

Енгізу файлының аты: C.in

Шығару файылының аты: C. Out

Есептің жауабы файылының аты: C. pas

Уақыт шектеу: 2 секунд

Жадыға шектеу: 64 мегабайт


Компьютер процессор бөлігінен және монитордан құралады.Қоймада цессор бөлігі және М монитор болып жатыр. І-ші процессор бөлігінің бағасы- Аі тугрик, j-ші монитордың бағасы- Вj тугрик. Дүниежүзілік қаражаттық дағдарыс артынан, і- ші процессор бөлігінен және j-ші монитордан құралған компьютердің бағасы Аi,Bj (көбейту) тугрик болады. Сіздерге дәл осылай компьютерлердің ең үлкен мүмкін саны жинау керек, олардың барынша ең көп мүмкін болған жиынтық бағасы болу үшін.

Мәліметтерді енгізу форматты

Кіріс файлдың бірніші жолда екі бүтін сан тұрады N және М (1<=N, M<=1000). Екінші жолда N бүтін сан тұрады: і-ші жолдағы сан Аі. Үшінші жолда М бүтін сан тұрады: j-ші жолдағы сан Вj(1<=Aj, Bj<=1000). Жолдағы сандар пробелмен арқылы бөлінген.


Мәліметтерді шығару форматы

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



Мысал

C.in

C.out

3 2

1 2 3


4 5

2 23

uses crt;

type mas=array[1..1000]of longint;

var


i,j,k,l,m,n,min:longint;

sum:longint;

a,b:mas;

procedure sort(var a:mas;n:longint);

begin

for i:=1 to n-1 do



for j:=i+1 to n do

if(a[i]

l:=a[i];

a[i]:=a[j];

a[j]:=l;

end;


end;

begin


assign(input,'c.in');reset(input);

assign(output,'c.out');rewrite(output);

readln(n,m);

for i:=1 to n do read(a[i]);

for j:=1 to m do read(b[j]);

sort(a,n);sort(b,m);

if(n>m)then min:=m else

min:=n;


for i:=1 to min do

sum:=sum+(a[i]*b[i]);

write(min,' ',sum);

close(input);close(output);

end.
69 Жалқаулық.

Енгізу файлының аты: D.in

Шығару файылының аты: D. Out

Есептің жауабы файылының аты: D. pas

Уақыт шектеу: 2 секунд

Жадыға шектеу: 64 мегабайт

Оқытушы емтиханға дайындалуға үшін оқушыларына N сұрақтарды берді. Осы сұрақтардан ол емтиханға үшін А сұрақты таңдайды, ал оқушы, бесті алу үшін В сұрақты (бұларды А сұрақтан) жауап беру тиісті. Ку оқушы барлық сұрақтарды оқытуға қаламайды. Бесті алу үшін, сұрақтардың қандай ең аз саны оған жатап алу керек?

Мәліметтерді енгізу форматы

Кіріс файлдың жекеше жолында үш бүтін сан жазылған: N, A және В (1<=N<=100000, 1<=B<=A<=N). Сандар аралары пробел арқылы бөлінген.


Мәліметтерді шығару форматы

Шығыс файлда бір бүтін сан жазылу керек- есептің жауабы.


Мысал

D.in

D.out

10 7 3

6

uses crt;

var i,j,k,l,m,n:longint;

begin


assign(input,'d.in');reset(input);

assign(output,'d.out');rewrite(output);

readln(i,j,k);

writeln(i-(j-k));

close(input);close(output);

end.
70 Серіппе

Енгізу файлының аты: E.in

Шығару файылының аты: E. Out

Есептің жауабы файылының аты: E. pas

Уақыт шектеу: 2 секунд

Жадыға шектеу: 64 мегабайт

N мөлшерлі серіппе- натуральды сандарлардың NxN мөлшерімен кестесі, кесте орталығында әрқашан 1 тұрады, одан оң жақтан 2, серіппе қарсы сағаттық тілдің бұралып қалып жатыр. N мөлшерлі серіппесін шығарыңыздар.



Мәліметтерді енгізу форматы

Кіріс файлдың жекеше жолында бір бүтін сан жазылған- N(1,=N<100, N-тақ сан).



Мәліметтерді шығару форматы

Шығыс файылдың N жолда N бүтін саны жазу керек- N мөлшерлі спираль. Сандар аралары пробелмен бөлінген болу керек.


Мысал

E.in

E. out

1

1

3

5 4 3

6 1 2


7 8 9

5

17 16 15 14 13

18 5 4 3 12

19 6 1 2 11

20 7 8 9 10

21 22 23 24 25

uses crt;

var w,q,o,i,j,k,l,m,n:longint;

a:array[1..100,1..100]of longint;

b:array[1..100,1..100]of boolean;

procedure aaa(l:longint);

begin

if(n>0)then begin



inc(m);
if(m=1)then begin

for i:=1 to n do begin

if(b[l,i]=false)then begin

b[l,i]:=true;

a[l,i]:=o;

dec(o);


end;

end;


aaa(n);

end else


if(m=2)then begin

for i:=1 to n do

begin

if(b[i,l]=false)then begin



b[i,l]:=true;

a[i,l]:=o;dec(o);

end;

end;


aaa(n);

end else


if(m=3)then begin

for i:=n downto 1 do

if(b[l,i]=false)then begin

a[l,i]:=o;dec(o);

b[l,i]:=true;

end;


inc(w);

aaa(w);


end else

if(m=4)then

begin

for i:=n downto 1 do



if(b[i,l]=false)then begin

b[i,l]:=true;a[i,l]:=o;dec(o);

end;

m:=0;


if(m=0)then begin inc(k);dec(n);end;

aaa(k);


end;

end;end;


begin

assign(input,'e.in');reset(input);

assign(output,'e.out');rewrite(output);

w:=0;


readln(n);q:=n;k:=1;

m:=0;o:=sqr(n);

fillchar(a,sizeof(a),0);

fillchar(b,sizeof(b),false);

aaa(1);

for i:=q downto 1 do



begin for j:=q downto 1 do write(a[i,j],' ');writeln;end;

close(input);close(output);

end.
71 Дәрежесі

Енгізу файлының аты: F.in

Шығару файылының аты: F. Out

Есептің жауабы файылының аты:F. pas

Уақыт шектеу: 2 секунд

Жадыға шектеу: 64 мегабайт

Сіздерге А,В және С бүтін сандары берілген. АВ(А-нің В дәрежесі) С-ға бөлуінің қалдығы шығарыңыздар. Назарды ықылас білдіріңіздер:

(Х-Y) mod Z=((X mod Z)* (Y mod Z)) mod Z

(Х-Y) mod Z=((X mod Z)+ (Y mod Z)) mod Z
Мәліметтерді енгізу форматы

Кіріс файлдың жекеше жолында үш бүтін сан жазылған А,В,С(0<=A, B<=1018,1<=C<=1018). Сандар аралары пробел арқылы бөлінген.


Мәліметтерді шығару форматы

Шығыс файлда бір бүтін сан жазылу керек-есептің жауабы.


Мысал

F. in

F. out

3 4 5

1

uses crt;

var i,j,k,l,m,n:longint;

begin


assign(input,'f.in');reset(input);

assign(output,'f.out');rewrite(output);

readln(i,j,k);

l:=1;m:=0;

repeat

inc(m);


l:=l*(i mod k);

until(m=j);

writeln(l mod k);

close(input);close(output);

end.

72 Спортшы бірінші күні 10 км жүгірді. Әр күні ол күнделікті жүгіру нормасына 10 % қосып отырды.Спортшы неше күнен кейін:



а) 20 км астам жол жүгіреді;

b) қосқанда 100 км астам жол жүгіреді.

a) Program F7_a1;

Var s: real; i: integer;

Begin

S:=10; i:=1;



While s<=20 do

Begin


I:=i+1;s:=s+0.1*s end;

Write (‘20 км астам жол жүгіреды ол ',I,’күні’);

End.
b) Program F7_b1;

Var s, sum: real; i: integer;

Begin

S:=10; i:=1; sum:=s;



While sum<=100 do

Begin


I:=i+1;s:=s+0.1*s;sum:=sum+s end;

Write (‘қосқанда 100 км астам жол жүгіреді, ол.',I,’күні’);

End.

73 Берілген үштаңбалы санның бірдей цифрларының бар екенін анықтайтын программа жаз.


Program F8_a1;

Var x,x1,x2,x3: integer;

Begin writeln; write(‘үш таңбалы санды енгіз’); read(x);

x1:=x mod 10;

x2:= x mod 10;

x:=x div 10;

x3:=x div 10;

if (x1=x2) or (x2=x3) or (x1=x3) then write(‘бар ’) else write (‘ жоқ’);

end.

74 N элементтен түратын массив берілген. Оны төмендегі берілген ереже бойынша өзгертіп жаңа массив құрастыратын программа жаз(егер хкі- мағынасында берілсе к-жаңа массивтің элементы болады):




  1. Xri =max x, егер I<=i<=k;

  2. массив элементтерінің кері жағдайдағы;

  3. XiN=XI, xik=xk+1 , мұнда k=1,2,…N-1 .




  1. Program F9_d1;

Const n=5;

Var x:array[1..n] of integer; i, k, max : integer;

Begin

For I:=1 to n do



Begin

Write(‘массив элементінің нөмірін енгіз’, i); readln (x[i]);

End;

For k:=1 to n do



Begin

Max= x[k];

For i:=1 to k do if x [i]> max then max:= x[i];

X[k]:= max;

End;

For i:=1 to n do write (‘ ‘,x[i])



End.



  1. Program F9_d2;

Const n=5;

Var x:array[1..n] of integer; i,z : integer;

Begin

For I:=1 to n do



Begin

Write(‘массив элементінің нөмірін енгіз’, i); readln (x[i]);

End;

For i:=1 to n do



Begin

z:= x[i];

x [i]:= x[n-i+1];

x[n-i+1]:= z;

End;

For i:=1 to n do write (‘ ‘,x[i])



End.


  1. Program F9_d3;

Const n=5;

Var x:array[1..n] of integer; I, z : integer;

Begin

For I:=1 to n do



Begin

Write(‘массив элементінің нөмірін енгіз’, i); readln (x[i]);

End;

Z:= x[n];



x [n]:= x[1];

for i:=1 to n-2 do x[i]= x[i+1];

x[n-1];=z;

For i:=1 to n do write (‘ ‘,x[i])

End.
75 Х және У массив элементтері кему ретімен орналасқан. Массив элементтерін бір Z массивіне қосып, оның элменттерінде кему ретілігімен орналстырып программа жаз.

Program F10_d1;

Const n=5;

Var x,y:array[1..n] of integer; z :array[1..2*n] of integer; I,j,k,m:integer;

Begin

For I:=1 to n do



Begin

Write(‘x,y элементінің нөмірін енгіз’, i); readln (x[i], y[i]);

end;

k:=0;


for i:=1 to n do

begin


k:=k+1; z[k]:=x[i];

k:=k+1; z[k]:=y[i];

End;

For i:=1 to n do



Begin

M=z[i]; k:=I;

For j:=I to n do if z[j]>m then begin m:=z[j]; k:=j end;

B:=z[i]; z[i]=z[k]; z[k]:=b

End;

For i:=1 to n do write(‘ ‘,z[i])



End.

76 Қашықтан сегіру жарысының қортындысы келесі матрицада көрсетіледі 5х3(5- спортшы, 3- әр споршының кезегі). Қандай споршы, қай кезекте ең жоғары нәтиже көрсететін программа жаз.

Program f11_d1;

Var I,j,max,k,m: integer; a:array[1..5,1..3] of integer;

Begin

For i:=1 to 5 do



For j:=1 to 3 do

Begin


Write(‘енгіз а ’, I,j); read (a[I,j]);

End;


Writeln(‘енгізілген екі өлшемді массивтің түрі:’);

For i:=1 to 5 do

Begin

For j:=1 to 3 do write(a[I,j]:3);



Writeln end;

Max:=a[1,1]; k:=1; m:=1;

For i:=1 to 5 do

For j:=1 to 3 do

If a(I,j)> max then begin max:=a[I,j]; k:=I; m:=j end;

Write(‘жоғары нәтиже =’. max);

Write(‘споршы нөмірі’, k,’кезекті нөмірде’, m) end.

77 3х3 берілген екі өлшемді массивтің қатар , бағана және диагональ бойынша сандардың қосындысы бірдей матрицаны шығаратын программа жаз. Мысалы:




2

9

4

7

5

3

6

1

8

Program f12_d1;

Const n=3;

Var I,j,x1,k,s,s1: integer; a: array[1..n,1..n] of integer;

Begin

For I:=1 to n do



For j:=1 to n do

Begin


Write(‘ а енгізу’, I,j ); read(a[I,j]);

End;


Writeln(‘енгізілген матрица түрі:’);

For I:=1 to n do

Begin

For j:=1 to n do write(a[I,j]:3);



Writeln

End;


X1:=0;

For i=1 to n do x1:=x1+ a(1,i) k:=0; for i:=1 to n do

Begin s:=0;

For j:=1 to n do s:=s+a[I,j];

If s=x1 then k:=k+1;

End;


For i:=1 to n do

Begin s:=0;

For j:=1 to n do s:=s+a[j,i];

If s=x1 then k:=k+1 end;

S:=0; s1:=0;

For i:=1 to n do begin

S:=s+a[I,i];

S1:=s1+a[I,n-i+1] end;

If s=x1 then k=k+1; if s1=x1 then k=k+1;

If k=2*n+2 then write(‘магикалық квадрат’) else write (‘жоқ’) end.

78 Латын кестесі

Берілген 4х4 екі өлшемді массивтің қатары мен бағанасында 1 ден 4-ке дейінгі сандар бір рет қана кездесетін матрица екенін анықтайтын программа жаз. Мысалы:



1

2

3

4

2

1

4

3

3

4

1

2

4

3

2

1

Program f13_d1;

Label 1,2;

Const n=4;

Var I,j,s,s1:integer: a: array[1..n,1..n] of integer;

Begin


For i:=1 to n do

For j:=1 to n do

Begin

Write(‘’,I,j); read( a[I,j]);



End;

Writeln(‘’);

For i:=1 to n do

Begin


For j:=1 to n do write(a[I,j]:3);

Writeln


End;

S1:=0;


For i:=1 to n do s1:=s1+I;

For i:=1 to n do

Begin

S:=0;


For j:=1 to n do s:=s+a[I,j];

If s<>s1 then goto 1

End;

For i:=1 to n do



Begin

S:=0;


For j:=1 to n do s:=s+a[j,i];

If s <> s1 then goto 1

End;

Write(‘латын квадрат’);



Goto 2;

1: write(‘’);

2: end.
79 Берілген санды ондық жүйеден : а) екілік санау жүйесіне;

b) сегіздік санау жүйесіне аударатын программа жаз.

Program f14_d1;

Var x,x1:integer;

Function dv(x:integer): integer;

Var y,z,k: integer;

Begin z:=1; y:=0;

While x> 0 do begin

K:=x mod 2; y:=y+k*z; z:=z*10;x:=x div 2 end; end;

Function vos(x: integer): integer;

Var y,z,k: integer;

Begin z:=1; y:=0;

While x>0 do begin

K:=x mod 8; y:=y+ k*z; z:=z*10; x:=x div 8

End; end;

Begin

Write(‘ санды енгіз’,x); x1:= dv(x);



Write(‘сан’, x,’екілік санау жүйесі=’, x1);

X1:=vos(x);

Write(‘саны’, x,’сегіздік санау жүйесінде=’, x1);

End.


80

1, мұнда n =0

Xn= { 1/x|n| мұнда n< 0

X*xn-1 мұнда n > 0

Х саның n- дәріжесін, жоғардағы формула бойынша табатын программа жаз.
Program f15_d1;

Var x,y:real; k,n:integer;

Function xn(x:real; n: integer): real;

Begin


If n=0 then xn:=1 else xn:=x*xn(x,n-1)

End;


Begin

Writeln; write( ‘x,n енгіз’); readln(x,n);

If n< 0 then begin k:=-1; n:=abs(n) end;

Y:=xn(x,n);

If k=-1 then y:=1/y;

Write(‘x-тің дәрежесі n=’, y) end.


81 M мен N натурал сандары берілген. М санынан кіші және N санның цифрлардың квадратына тең сандарды табатын программа жаз.

Program f16_d1;

Label 1;

Var I,j,m,n,x,a,s: integer;

Begin writeln; write(‘M,N енгіз’ ) ; readln(m,n);

For i:=1 to m-1 do begin

S:=0; x:=I;

1: a:=x mod 10; s:=s+a;

X:=x div 10;

If x> 0 then goto 1;

If s*s= n then write(‘ ‘, i)

End;


Readln;

End.
82 Берілген натурал санды 16-лық есептеу өлшеміне ауыстыратын программа жаз.

Program f17_d1;

Var n,k,r,x,x1: integer; as.bs: string;

Begin

Writeln; write(‘ондық санды енгіз ’); read (x); x1:=x;



As:= ‘’; write (‘есепетеу жүйенің негізін енгіз’); read(n);

While x> 0 do begin k:=x mod n; x:=x div n;

If k < 10 then str (k,bs) else bs:= chr(ord(‘A’)+k-10);

As:= bs+as end; write (‘сан’, x1,’ есесптеу өлшемінің негізі’, n,’=’, as) end.


83 Берілген мәтіннің ішіндегі ең ұзын сөзды таңдайтын программа жаз.

Program f18_d1;

Label 1;

Var I,m,l,k,d: longint; t,n: string;

Begin

Writeln; write (‘мәтін енгіз’); readln(t); t:=+’ ’;



I:= length(t); m:=0; k:=1; i:=1;

While i<=l do begin

If copy (t,I,1)=’’ then begin d:=i-k;

If d> m then begin

M:=d; n:= copy(t,k,d);

End;


K:=i+1; end;

1: I:=i+1 end; write(‘ ең ұзын сөз’’ ‘,n,’’’әріптер саны ‘, m); readln; end.

84 Мәтін ішіндегі сөздердің соңында берілген әріп қанша кездеседі, оны пайыз түрін аудар.

Program f19_d1;

Var I,s,l,k,s1: longint; t,a: string; p: real;

Begin


Writeln; write (‘мәтін енгіз’); readln(t); t:=+’ ’;

I:= length(t); write(‘берілген әріпті енгіз ’); readln(a);

K:=1; s:=0; s1:=0;

For i:=1 to l do begin

If copy (t,I,1)= ‘ ‘ then begin

If copy (t,k,1)= a then s1:=s1+1;

S:=s+1; k:=i+1;

End; end; p:=s1*100/s;

Write(‘берілген әріптің пайызы ’’’, а, ‘’’ тең=’, p); readln; end.
85 Фамилия тізімін пробел арқылы енгізіп, осы тізімді берілген әріптен бастап құрайтын программа жаз.

Program f20_d1;

Var I ,m ,l, k, d: longint; t, a: string;

Begin writeln; write(‘тізімді енгіз ’); readln(t); t:=t+’;

L:= length(t); write(‘берілген әріпті енгіз ‘); readln(a); k:=l;

For i:=1 to l do begin

If copy (t,I,1)= ‘ ‘ then begin

If copy (t,k,1)= a then write(‘ ‘, copy(t,k,i-k)); k:=i+1;

end; end; readln; end.
86 Берілген екі таңбалы санды жазу түрінде жазылатын программа жаз (мысалы, 64 –ті «алпыс төрт » деген мәлімет шығару).

Program f21_d1;

Label 1;

Var n,n1, n2: longint; s: string;

Begin

Writeln; write(‘’); readln(n);



N1:= n mod 10;

N2:= n div 10;

If (n>=10) and (n<20) then begin

If n=10 then s:=’он’;

If n=11 then s:=’он бір’;

If n=12 then s:=’он екі’;

If n=13 then s:=’он үш’;

If n=14 then s:=’он төрт’;

If n=15 then s:=’он бес’;

If n=16 then s:=’он алты’;

If n=17 then s:=’он жеті’;

If n=18 then s:=’он сегіз’;

If n=19 then s:=’он тоғыз’;

Goto 1 end;

If n2=2 then s:=’жиырма’;

If n2=3 then s:=’отыз’;

If n2=4 then s:=’қырық’;

If n2=5 then s:=’елу’;

If n2=6 then s:=’алпыс’;

If n2=7 then s:=’жетпіс’;

If n2=8 then s:=’сексен’;

If n2=9 then s:=’тоқсан’;

If n1=1 then s:=s+’бір ‘;

If n1=2 then s:=s+’ екі‘;

If n1=3 then s:=s+’үш ‘;

If n1=4 then s:=s+’төрт ‘;

If n1=5 then s:=s+’ бес‘;

If n1=6 then s:=s+’ алты‘;

If n1=7 then s:=s+’жеті ‘;

If n1=8 then s:=s+’ сегіз‘;

If n1=9 then s:=s+’ тоғыз‘;

1:write(s);

Readln; end.
87 Берілген квадратық матрицаның элементтерін спираль бойымен орналастыр. Мысалы, 7 х7 квадраттық матрицасы берілген, оны толықтыру ретілгі


  1. 2 3 4 5 6 7

24 25 26 27 28 29 8

23 40 41 42 43 30 9

22 39 48 49 44 31 10

21 38 47 46 45 32 11

20 37 36 35 34 33 12

19 18 17 16 15 14 13

Program f22_d1;

Label 1,2;

Const n=7;

Var I,j,k,c,r,m,g,p: integer;

Begin k:=1; c:=0; r:=1;

Writeln;


For i:=1 to (n div 2) +1 do begin

For j:=I to n-i+1 do begin

C:=c+1; a[r,c]:=k; k:=k+1; write(a[r,c], ‘ ’) end;

For m:=i+1 to n-i+1 do begin r:=r+1; a[r,c]:=k; k:=k+1 end;

For p:=n-I downto I do begin c:=c-1; a[r,c]:=k; k:=k+1 end;

For q:=n-i+1 downto i+2 do begin r:=r-1; a[r,c]:= k; k:=k+1 end; end;

Writeln; for i:=1 to n do begin writeln;

For j:=1 to n do write(a[I,j]-5); end; end.

88 a,b,c натурал сандары берілген, олар келесі күнің күнін, айын және жылын белгілейтін сандар болатын программа жаз.

Program f23_ d1;

Label 1;

Var a,b,c,a1,b1,c1: integer;

D: array[1..12] of integer;

Begin writeln; write(‘күн, ай және жылын енгіз’); read(a,b,c);

D[1]:=31; if c mod 2 =0 then d[2]:=29 else d[2]:=28;

If(c mod 100=0) and (c mod 400 <>0) then d[2]:=28;

D[3]:=31; d[4]:=30; d[5]:=31; d[6]:=30; d[7]:=31; d[8]:=31;

d[9]:=30; d[10]:=31; d[11]:=30; d[12]:=31;

if (b=12) and (a=31) then begin a1:=1; b1:=1; c1:=c+1; goto 1 end;

if a=d[b] then begin a1:=1; b1:=b+1;c1:=c end else begin a1:=a+1; b1:=b; c1:=c end;

1: writeln; write(‘’, a1,’’,b1,’’,c1); end.

89 Мұғалімдер күні жыл сайын қазан айның бірнші жексенбісінде аталып өтеді. Берілген n саны жыл нөмірін белгілейді. Көрсетілген жылдың мұғалімдер мерекесіне сәйкес келетін санын анықта.

Program f24_d1;

Label 1,2,3;

Var n,i,s,s1,d1,v,v1,d2,c : integer;

Begin writeln; write(‘ жылын енгіз’); read(n);

S:=1; for i:=1 to n-1 do begin

if (I mod 4)= 0 then v:=366 else v:=365;

if (I mod 100= 0) and (I mod 400 <>0) then v:=365 ;
s:=s+v;end; s1:=5*31+28+3*30;

if (n mod 4)= 0 then v1:=1 else v:=0;

if (n mod 100= 0) and (I mod 400 <>0) then v:=0;

s1:=s1+v1; s:=s+s1;d2:=s mod 7; c:=7-d2;

write(‘c,s1,d1,d2’,c,s1,d1,d2);

if c >7 then c:=c-7; write(‘f’,v); writeln; write(‘’);

End.

90



Program f24_d1;

Label 1,2,3;

Var i,a,b,c,s,s1: integer;

D: array[1..12] of integer;

Begin 1: writeln; write(‘күн, ай және жылын енгіз’); read(a,b,c);

D[1]:=31; if c mod 2 =0 then d[2]:=29 else d[2]:=28;

If(c mod 100=0) and (c mod 400 <>0) then d[2]:=28;

D[3]:=31; d[4]:=30; d[5]:=31; d[6]:=30; d[7]:=31; d[8]:=31;

d[9]:=30; d[10]:=31; d[11]:=30; d[12]:=31;

if (a>d[b]) or (b> 12) or (c<0) then begin write(‘’); goto 1 end;

if b=1 then begin s:=a-1; goto 2 end;

s:=0;s1:=0;for i:=1 to b-1 do s:=s+d[i]; s:=s+a-1;

2: if b=12 then begin s1:=31- a; goto 3 end;

For i:=b to 12 do s1:=s1+d[i]; s1:=s1-a;

3: write(‘’, s); write(‘’,s1)

End.


91 Шахмат королі. Өлшемі 8х8 болған шахмат тақтасында ақтың корлі мен қараның пешкалары (пешкалар саны 1-ден 8-ге дейінгі аралықта мән қабылдайды) орналасқан.

Ақтың королі тек үш бағытта қозғалады.

Тұрған қатарынан оңға қарай тік;

Диоганаль бойынша оңға қарай төмен;

Төмен;

Король пешкаларды жеуіне болады. Пешкалар бастапқы тұрған орындарынан қозғалмайды. Пешкалар шахмат ойындағыдай шабуылдайды, король пешкалар шабуылдайтын алаңдарға жүре алмайды Шахмат тақтасы латын алфавитінің А, B, C, D, T,F,G,H әріптерімен және 1-ден 8- ге дейінгі цифрлармен белгіленеді.



Тапсырма: Ақтың королі шахмат тақтасындағы көрсетілген торкөзге жету үшін жүруі керек болған ең аз қадамдар санын тап.

Кіру файылының форматы: Кіру файылының алғашқы сегіз қатарында шахмат тақтасымен ондағы тастардың орналасуы берілген. Король «К» әрпімен пешка «Р» әрпімен, ал бос орын «.» символымен бейнеленеді. Кіру файылының соңғы қатарында король баруы керек торкөздің аты көрсетілген.



Шығу файылының форматы: шығу файылында тек бірғана сан королдің көрсетілген торкөзге жету үшін жасауы керек ең аз қадам саны жазылған.

Кіру файлы: Korol.in

……..

……..


……..

..K….


……..

….P..


…..P.

H1

Шығу файлы: Korol.out



Есептің алгоритмі: Есепті шығаруда ең алдымен шахмат жазуы танитындай екі өлшемді кесте жасаймыз. Одан кейін екі өлшемді қосымша сандық кесте аламыз. Осы кестеде корольдің тұрған орнын «2» деп, пешкалардың шабуылдайтын торкөздерін «1» деп белгілеп аламыз.

Король есептің шарты бойынша үш бағытқа жүреді:





I,j I,j+1
I+1,j i+1,j+1
Бұл есеп «бұтақ (дерево)» әдісіне келеді. Королмен осы үш бағыттағы әрбір торкозге жүріп көреміз. Осы үш торкөздің әрбірінен тағы үш торкөзге жүруге болады және тағыда сол сияқты. Әрбір торкөзге жасалынған қадам санын жазып отырамыз. Король көрсетілген торкөзге жеткенде сол торкөздегі сан, ең аз қадам санын береді.

Шешімі:

Program KOROL;

Uses crt;

Const


Y: array[1..8] of string=(‘A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’);

Label 1;


Var I,j,k,t,f,r,l,p: 0..16;

B: array[1..8,1..8] of string [2];

C: array[1..8] of string [8];

A: array[1..8,1..8] of 0..16;

Q: string;

Procedure juru;

Begin

If(i+1<=8) and (a[i+2,j]=0) then if (f=i+1) and (r=j)



Then t:=1

Else


Begin

A[i+1,j]:=i+1;k:=1;

End

If(j+1<=8) and (a[I,j+1]=0) then if(f=i) and (r=j+1) then t:=1 else begin



A[I,j+1]:=i+1; k:=1; end;

If(j+1<=8) and (,j+1<=8) and (a[i+1,j+1]=0) then if(f=i+1) and (r=j+1) then t:=1 else begin

A[i+j+1]:=i+1; k:=1; end; end;

Procedure aqw;

Begin

If(i-1>=1) and (j-1>=1) then a[i-1,j-1]:=1;



If(i-1>=1) and (j+1<=8) then a[i-1,j+1]:=1;

A[I,j]:=0;

End; begin clrscr; p:=9; for i:=1 to 8 do

Begin p:=p-1;

For j:=1 to 8 do

Begin


Str(p,q); b[I,j]:=y[j]+q;

End; end; assign() input, ‘korol.in’);

Reset(input);

assign() output, ‘korol.out’);

rewrite(output);

for i:=1 to 8 do

readln(c[i]); close(input);

for i:-1 to 8 do

for j:=1 to 8 do

begin


if b[I,j]=q then begin f:=I; r:=j; end;

if copy(c[i],j,1)= “K” then begin a[I,j]:=2; l:=I; t:=j: end;

if copy(c[i],j,l)=”P” then a[I,j]:=1;

end; if not((1<=f) and (t<=r)) then begin writeln(“no solution”); exit; end;

if(l=f) and (t=r) then begin writeln(0); exit; end;

for i:=1 to 8 do

for j:=1 to 8 do

if a[I,j]=1 then aqw;

t:=0; l:=2; for i:=1 to 8 do

for j:=1 to 8 do

if a[I,j]=1 then juru; inc(l);

if t=1 then begin writeln(1-2); halt; end;

if k<>0 then goto 1;

writeln(“no solution”);

close(output); end.
92 Меретой. Ғасыр мерейтойы деп атақты адамдардың туылған күнінен бастап 100 немесе 200 жыл өтуін айтамыз. Қалада атақты бір ақынның ғасырлық мерейтойын тойламақшы. Осыған орай ұйымдастырушылар қала орталығында үлкен табло іліп қоюды дұрыс деп тапты. Бұл таблоның қызметі мерейтойға дейін неше күн қалғаны көрсету.

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

Ескерту: сіз жазған программа таблоның 1999-2099 жылдар аралығында дұрыс жұмыс жасауын қаматамасыз ету керек.

Кіру файылындағы мәліметтің форматы: кіру файлы екі қатардан тұрады. Бірініші қатарда- ақынның туылған күні мына форматта :кк:аа:жжжж; екінші қатарда , дәл осы форматтағыдай ағымдағы мерзім берілген.

Шығу файылындағы мәліметтің форматы: сіз жазған программа шығу файлына мерейтойға қалған күндердің санын, егер мерейтой өту үстінде болса немесе өтіп кеткен болса «тойлануда» деген жауап шығару керек.

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

Kyn2-kyn 1<=0

Ai2-ai1<=0

Gil2 mod 4=0 болса, онда ақпан 29-ына бітеді. Егер gil2-gil1 mod 10=9 онда, мерейтойға әлі жылға жуық уақыт бар болып, мына шарт арқылы тексереміз. Gil2 mod 4=3 then b[2]:=29;

Program mereitoi;

Uses crt;

Label 1;

Const b: array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);

Var s,r,m: string;

Q,I,j,n,k,,l,p,gil2,kyn1,kyn2,ail,ai2: integer;

Begin

Clrscr; assign(input,”input.in”)



Reset(input);

Readln(s); readln(r);

Close(input);

Assign(output,”output.out”);

Rewrite(output);

K:=pos(“.”,s); m:=copy(s,l,k-1); delete(s,1,k);

Val(m,kyn1,q);k:=post(“.”,s); m:=copy(s,l,k-1);

Delete(s,l,k); val(m,ail,q);val(s,gil1,q);

K:=pos(“.”,r): m:=copy(r,l,k-1);delete(r,l,k);

Val(m,kyn2,q);k:=pos(“.”,r); m:=cope(r-1,k-1);

Delete(r,l,k);val(m,ai2,q);

Var(r,gil2,q);p:=gil2-gil1;

Q:=p mod 10; p=0;

If q=9 then begin

If (gil2 mod 4=3) or ((ai2<3) and (gil2 mod 4=0)) then b[2]:=29;

K:b[ai2]-kyn2;

For i:=ai2+1 to 12 do

P:=p+b[i];

For i:=1 to ail-1 do

P:= p+b[i]; p:=p+kyn1+k;

Goto 1; end;

If (ai1<=ai2) and (kyn2>= kyn1) then begin writeln(“toilanyda”); exit; end;

If (ai1<=ai2) and (kyn1>= kyn2) then begin p:=kyn1-kyn2; goto 1; end;

P:=gil2 mod 4;

If p=0 then b[2]:=29;

Q:=ai1-ai2; k:=b[ai2]- kyn2;

If q=1 then begin p:=k+kyn1; goto 1; end;

Q:=0;


For i:=ai2+1 to ai1-1 do

Q:=q+b[i];p:=k+q+kyn1;

L:writeln(p);

Close(output);

End.
93 Бөліктерге ажырату. Натурал М(м<30000) санын N(N<20) бүтін, тең немесе жобамен тең бөліктерге ажырату керек. Жобамен тең бөлік деп, кез-келген екі бөліктің айырмашылығы 1-ден аспаған бөліктерді айтамыз.

Кіру файылындағы мәліметтің форматы: Бірінші қатар-М, екінші қатар- ON;

Шығу файлындағы мәліметтің форматы: Өсу ретімен реттелген N саннан тұратын бір қатар:

Кіру файлы: Шығу файлы:

Input.in Output.out

13 3 3 3 4

4

Program bolik;



Uses crt;

Var p, n, m, k: integer;

Begin clrscr;

Assigin(input,’input.in’);

Reset(input);

Readln(n);

Close(input);

Assign(output,’output.out’);

Rewrite(output);

P:=m od n; k:=m div n;

If p=0 then

For i:=1 to n do

Write(k,’ ’);

Else


Begin

For i:=1 to n-p do

Write(k,’ ‘);

For I:=1 to p do

Wr3te(k+1,’ ‘);

End;


Close(output);

End.


94 Ферзілер. Олипиадаларда жиі келетін есептердің бірі- «ферзілерді орналастыру» есебі. Бұл есептің шарты мынадай: N ферзіні n x n- шахмат тақтасына бір-біріне қауіп төндірмейтіндей етіп орналастыр және осындай орналастырулардың барлық варианттарын көрсет. Мұндай орналастыруды «қауіпсіз» орналастырулар деп те атайды. «Input.txt» файлында [4..20] аралығынан алынған n- ферзілер саны болу керек. Ал “output.txt” файлында әрбір «қауіпсіз» орналастыруға сәйкес келетін натурал сандар қатарларды болу керек. Қатардағы әрбір санның реттік нөмірі шахмат тақтасының вертикаль нөмірін, ал мәні горизонаталь нөмірін көрсету креке. Мысалға, «Input.txt» файлында 4 саны болса, онда “output.txt” файлында мынадай сан қатарлары болу керек:

1 3 5 2 4

1 4 2 5 3

Program fersi;

Type

TNom=1..20;



TPole=array[tNom] of TNom;

Var


N:TNom;

Pole:Ypole;

F:text;

Perv:Boolean;



Procedure Sohr;

Var i:TNom;

Begin

Assign(f,’output.txt’);



Append(f);

If perv then writeln(f) else perv:=true;

For i:=1 to n-1 do write(F,Pole[i],’ ‘);

Write(f,pole[n]); close(f);

End;

Function prover(i:TNom): Boolean;



Var

J:TNom;


Flag: Boolean;

Begin


J:=1;

Flag:=true;

While(j<>i) and flag do

Begin


Flag:=(pole[i]<>pole[j]) and (abs (pole[j]<>i-j); j:=j+1; end;

Prover:=flag; end;

Procedure poisk(I:TNom);

Var j,k:TNom;

Begin

For k:=1 to n do



Begin

Pole[i]:=k;

If prover(i) then

If i=n then sohr else poisk(i+1); end;end;

Begin

Assign(f,’input.txt’);



Reset(f);

Read(f,n);

Close(f);

Assign(f,’output.txt’);

Rewrite(f);

Close(f);

Perv:=false; poisk(1);

End.


95 Салыстыру. Сізге А және В екі саны берілген. Соларды салыстыру керек және салыстыру қортындысын шығару қажет.

Енгізу файлының аты: compare.in

Шығару файлының аты: compare.out

Кіріс файылдың жалғыз жолында А және В екі бүтін сан бар. Әр сан 100- ден аспайтын таңбадан тұрады. Егер санды 1-ден көп таңба болса, бірінші таңба нөл емес. Сандар бос орынмен бөлінген.



Есептің шешімі.

Program salistiru(input,output);

Type aa=array[0..100] of 0..9;

Var a,b:aa;

Code:integer;

Ch:char;


F: Boolean;

Function eq(a1,b1: aa): boolean;

Var j:integer;

Begin


Eq:=false;

If (a1[0]<>b1[0]) then exit

Else begin

J:=1;


While(j<=a[0]) and (a1[j]=b1[j]) do inc(j);

Eq:=j=a1[0]+1;

End; end;

Function more(a1,b1:aa): Boolean;

Var j: integer;

Begin if a1[0]< b1[0] then more:=false else if a1[0]>b1[0] then more:= true else begin j:=a[0];

While(j>0) and (a1[j]=b1[j]) do dec(j);

If j=0 then more:=false else if a1[j]> b1[j] then more:=true else more:= false; end; end;

Procedure printA;

Var i:byte;

Begin for i:=1 to a[0] do write(a[j]); end;

Procedure printB;

Var j: byte;

Begin for j:=1 to b[0] do write(b[j]); end;

Begin

Assign(input,’compare.in’); reset(inpuy);



F:=true;

While not(eof(input)) do

Begin

Read(ch);



If ch=’ ‘ then begin f:=false; read(ch); end;

If f then begin inc(a[0]); val(ch,a[a[0]], code); end else begin inc(b[0]); val(ch,b(b[0],code)); end; end; close(input);

Assign(output,’compare.out’); rewrite(output);

If a[0]> b[0] then begin printA; write(“>”); printB: end else

If a[0]< b[0] then begin printA; write(“<”); printB: end else

If eq(a,b) then begin printA; write(“=”); printB: end else

If more(a,b) then begin printA; write(“>”); printB: end else

Begin printA:write(“<”); printB; end;close(ouyput); end.


96 Алмалар. Азатта N алма бар. Достары Л алма сұрады. Таратқаннан кейін Азаттан қалған алмалардың жалпы салмағының қосындысы максималды болатындай етіп, Азатқа тарататын алмаларды таңдауға көмектесіңіз.

Енгізу файлының аты: apples,in

Шығару файлының аты: apples.out

Кіріс файылының бірінші жолында N және К екі сан берілген (110000). Азаттағы алманың саны және таратылған алманың саны. Екінші жолда 1-мен 10-ның арасында. N сан берілген алмалардың салмақтары. Жолдағы сандар бос орын арқылы бөлінген.



Мәліметтерді шығару форматтары. Нәтижелік шығыс файлына бір санды шығарыңыз –қалған алмалардың салмақтарының максималды қосындысы.

Есептің шешімі.

Program almalar(input,output);

Var a,c,d: array[1..10000] of 1..10;

B: array[1..10000] of Boolean;

N,k:1..10000;

M3n,max,s,j:integer;

Procedure rec(m:integer);

Var i: integer;

Begin

If m=k then begin if min< max then max:= min end else



for i:=1 to n do

if b[i] then begin

min:=min+a[i];b[i]:=false; inc(m); rec(m);

min:=min-a[i]; dec(m); b[i]:=true; end; end;

begin

filcher(b,sizeof(b), false); s:=0;



assign(input, ‘apples.in’); reset(input); read(n,k);

for j:=1 to n do begin

read(a[j]); b[j]:= true; s:=s+a[j]; end;

close(input);

max:=s; min:=0;

assign(output,’apples.out’); rewrite(output);

for i:=1 to n do begin

b[j]:=false; min:=a[j]; rec(1);b[j]:=true; end;

write(output,s-max);

close(output);

end.
№97 1) функциясын есептеу программасын ќ±ру керек, єрі формуласын ќолдану керек.

Program esepteu;

Const PI=3.14159;

Var x,y: real;

Begin

Writeln (' x енгізу');



Read(x);

Y:=exp(5*ln(x))+ln(sqrt(PI+ABS(5-x)));

Writeln ('нєтижесі');

Writeln ('y=', y);

End.
№98

функциясыныњ х аргументіне байланысты нєтижесін есепте

Program esepteu;

Var x,y: real;

Begin

Writeln (' х енгіз');



Read (x);

If (x>-5) and (x<0) then y:= sqrt (sqr(x)+abs(x))

else

if(x>=0) and (x<2) then y:= 5*sqr(x)*x+cos(x);



Writeln ('нєтижесі');

Writeln ('y=', y);

End.

99 Е=10 дєлдікпен ќосындыны есептеу программасын ќ±ру керек. Берілген дєлдікке жетті деп есептеледі, егер єрбір келесі ќосынды мєні модулі бойынша Е кіші болса. Есептеу керек:





Программасы мына т‰рде болады:

Program prsum;

Var x, S, AK: real; k: integer;

Begin


Writeln ('x пен e енгіз');

Read (x,e);

S:=0; k:=1;

Repeat


AK:=(sqr (x)+1)/(sqr(sqr(k))+k*sqrt(abs(sqr(x)*x+1))+1);

S:=S+AK;


K:=k+1;

Until abs(AK) < e;

Writeln ('s=', s:7:3, 'AK=`,AK:6:3);

End.


100 А(30) массивіндегі элементтерді µсу реті бойынша орналастыру программасын ќ±ру ќажет.
Program sarmass;

Const N=30;

Var A: array [1..N] of integer; I,L,C: integer;

Begin


Writeln (‘берілгендерді енгіз’);

For I:= to N do

Read (A[I]);

For I:=1 to N-1 do

If A[I] > A[L] then

Begin


C : = A[I];

A[I] := A[L];

A[L] := C;

End;


For I := 1 to N do

Writeln (A[I]:3);

End.
101 A[5,5] массиві берілген. Массивті кему реті бойынша реттеудіњ программасын ќұру керек.

Program sortmin;

Const N = 5;

Type mas = array [1..N, 1..N] of integer;

Var A : mas;

B : array [1..N] of integer;

I, J, L, S, V, min, C : integer;

Begin


Writeln (‘берілгендерді енгіз’);

For I := 1 to N do

For J := 1 to N do

Read (A[I,J]);

For I := 1 to N do

Begin


Min := A[I, 1];

For J := 1 to N do

If A[I,J] < min then min := A[I, J];

B[I] := min ;

End;

For J := 1 to N-1 do



For L := I+1 to N do



Достарыңызбен бөлісу:
1   2   3   4   5




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

    Басты бет