Просмотр содержимого документа
«Олимпиада есептер жинагы»
Т.Рысқұлов атындағы №24 жалпы орта мектеп
ОЛИМПИАДАҒА ДАЙЫНДАЛУҒА
АРНАЛҒАН ЕСЕПТЕР ЖИНАҒЫ
Жинақтаған: Баетова Шынар Қыдырбайқызы
Информатика пәні мұғалімі
Кентау қаласы
№1. у =3x+1 x €[1 ; 2 ], h =0,5 өрнегін WHILE, REPEAT операторларын пайдаланып программа құр.
Program y-tabu;
Var x , y : real ;
Begin
X:=-1;
Repeat
Y: = 3*x+1;
WriteLn (‘ y = ‘ , y);
X:=X+0,5;
Until x2;
End.
№2. x €[1 ; 3 ] аралығында 0,2 қадаммен өзгергендегі y= функциясының мәнін тап.
Program esep;
Var x, y: real;
Begin
X:=1;
repeat
y:= sqrt (x+1)-1/x ;
Writeln ( x:3, y:5);
x:=x+0.2;
until x3
readln;
end.
№3. 1- ден 100-ге дейінгі сандарды экранға шығаратын программа құрыңдар.
Program san;
Var i: integer;
Begin
Wtiteln (‘ 1- den 100- ge dein butin san’);
Writeln;
For i:=1 to 100 do
Write (i:4);
End.
№4. 30-дан 10-ға дейінгі барлық жұп сандарды экранға шығаратын программа құрыңдар.
Program jup;
Var i: integer;
Begin
Writeln (’30-dan 10-ga deingi jup san’);
For i:=30 downto 10 do
If I mod 2=0 then
Writeln (i);
End.
№5. 1- ден 100 –ге дейінгі тақ сандардың және жұп сандардың қосындыларын табудың программасын құру керек.
Program tak and jup
Var I, s, s1: integer;
S:=0; S1:= 0;
For i:=1 to 100 do
Begin
If I mod 2 = 0 then s:=s+I else s1:=s1+I;
Writeln (‘ s=’, s, ‘ , ‘ , ‘s1= ‘, s1);
End;
End.
№6. 5- тен 1-ге дейінгі сандардың қосындысын есептеу керек.
Program kosindi;
Var I, s:integer;
Begin
S:=0;
For i:=5 downto 1 do
S:=S+I;
Writeln (‘s = ‘, s);
End.
№7. Кіші латын әріпімен енгізілген жолды, үлкен латын әріптеріне ауыстыру программасын құрыңыз.
Program austir:
Var s:string:
k:byte:
begin
readln(s):
for k:=l to length (s) do
s[K]: =Upcase (s[k]);
writeln(s):
end.
№8. 20 нақты сан берілген. Осы сандардың арифметикалық ортасын табу програмасы . Осы 20 нақты сандар тобын А жиымы деп қарастырсақ , жиымның элементтері A[1], A[2], …,A[20] нақты сандар болады.
Program
Var A: array [l..20] of real;
I:integer;
S:real;
Begin
For i:=1 to 20 do
Read (A[i]);
S:=0;
For i:=l to 20 do
S:=S+A[i];
S:=S\20;
Write (S);
End.
№9. 10 элементтен тұратын А массивтің элементтерін енгізу және шығару программасын құру керек.
Program esepl:
Uses crt:
Var l:integer:
A:array [l..10] of integer;
Begin
Clrscr;
For i:=l to 10 do
Begin
Writeln( ‘a[‘,I,’]-? ’);
Readln (a[i]);
End;
For i:=l to 10 do
Writeln(‘a[‘,I, ’]=’,a[i]);
End
№10. Берілген бір өлшемді A{2,-3,5,8,-2} массив элементтерінің қосындысын есептейтін прграмма жазу керек.
Program esep2:
Uses crt;
Var I,s:integer:
A: array [l…5] of integer;
Begin
Clrscr;
For i:=1to 5 do
Begin S:= 0;
Writeln(`a[`,I`]-?`);
Readln(a[i]);
End;
For i:=1 to 5do
Begin
S:=S+a[i];
Writeln(`S[`,I,`]=`,S);
End;
End.
11. Берілген бір өлшемді А{2,-3,5,-8,2} ма ссив элементтерінің квадраттарының қосындысын есептеу программасын құру керек.
Program esep3;
Uses crt;
Var I,s:integer:
A: array [l…5] of integer;
Begin
Clrscr;
For i:=1to 5 do
Begin S:= 0;
Writeln(`a[`,I,` ]-?`);
Readln(a[i]);
End;
For i:=1 to 5do
Begin
S:=S+sqr(a[i]);
Writeln(`S[`,I,`]=`,S);
End; End.
№12.Берілген бір өлшемді А{2,-3,5,-8,2} массив берілген, оң элементтерін баспаға шығаратын программа құру керек
Program esep4;
Uses crt;
Var I:integer:
A: array [l…5] of integer;
Begin
Clrscr;
For i:=1to 5 do
Begin
Writeln(`a[`,I,` ]-?`);
Readln(a[i]);
End;
For i:=1 to 5do
Begin
If (a[i])0 then Writeln(`a[`,I,`]=`,a[i]);
End; End.
№13.Бірөлшемді А{2,-3,5,-8,2} массив берілген, теріс элементтерін баспаға шығаратын программа құру керек.
Program esep5;
Uses crt;
Var I:integer;
A: array [l…5] of integer;
Begin
Clrscr;
For i:=1to 5 do
Begin
Writeln(`a[`,I,` ]-?`);
Readln(a[i]);
End;
For i:=1 to 5do
Begin
If (a[i])0 then Writeln(`a[`,I,`]=`,a[i]);
End; End.
№34. Бірөлшемді А{2,-3,5,-8,2} массив элементтерінің ең үлкен
баспаға шығаратын программа құру керек.
Program esep6;
Uses crt;
Var I, max :integer:
A: array [l…5] of integer;
Begin
Clrscr;
For i:=1to 5 do
Begin
Writeln(`a[`,I,` ]-?`);
Readln(a[i]);
End;
Max:= a [I];
For i:=2to 5do
Begin
If max
End.
№15. Екіөлшемді А (3,3) жиым элементтерін енгізу және шығару программасын құру керек.
program esep mas;
uses crt;
var i,j:integer;
A: array [l..3,1..3] of integer;
Begin clrscr;
for i:=1to 3 do
for j:=1to 3 do
begin
writeln(`engiz a[`,i,`,`,j,`]`);
readln(a[i,j]);
end;
for i:=1 to 3 do
begin
for j:=1to 3 do
write (a[i,j]:3);
Writeln; end;
R.eadln; end.
№16. Екіөлшемді жиым элементтерінің қосындысын және көбейтіндісін табу.
program esep 1;
uses crt;
var i,j,s,k:integer;
A: array [l..3,1..3] of integer;
Begin clrscr;
for i:=1to 3 do
for j:=1to 3 do
begin
writeln(`engiz a[`,i,`,`,j,`]`);
readln(a[i,j]);
end;
for i:=1 to 3 do
begin
for j:=1to 3 do
write (a[i,j]:3);
writeln; end;
k:=1; s:=0;
for i:=1to 3 do
for j:=1to 3 do
s:=s+a[i,j];
for i:=1to 3 do
for j:=1to 3 do
k;=k*a[i,j];
writeln(`s=`,s): writeln(`k=`,k);
readln; end.
№17. Екі өлшемді жиым элементтерінің квадраттарын табатын программа құру керек.
program esep1;
uses crt;
var i,j:integer;
A:array[1..3,1..3] of integer;
begin
clrscr;
for i:=1to 3 do
for j:=1to 3 do
begin
writeln(`engiz a[`,i,`,`,j,`]`);
readln(a[i,j]);
end;
for i:=1 to 3 do
begin
for j:=1to 3 do
write (a[i,j]:3);
writeln;
end;
writeln;
for i:=1 to 3 do
begin
for j:=1to 3 do
write (sgr(a[i,j]):3):
writeln;
end;
readln;
end.
№18. Екіөлшемді жиым элементтерінің түбірлерін табатын программа құру керек.
program esep1;
uses crt;
var i,j:integer;
A:array[1..3,1..3] of integer;
begin
clrscr;
for i:=1to 3 do
for j:=1to 3 do
begin
writeln(`engiz a[`,i,`,`,j,`]`);
readln(a[i,j]);
end;
for i:=1 to 3 do
begin
for j:=1to 3 do
write (a[i,j]:3);
writeln;
end;
writeln;
for i:=1to 3 do
begin
for j:=1to 3 do
write (sgr(a[i,j]):3):
writeln;
end;
readln;
end.
№19. А (3,3) матрицасының оң элементтерінің қосындысын табу программасын құр.
Program matr;
Const n=3;
Var I,j,k:integer;
A:array[1..n,1..n] of integer;
Begin for i:=1to n do
for j:=1to n do
begin read (A[I,J]);
if A[I,J]0 Then k:=k+A[I,J];
end;
writeln (k:3):
end.
№20. Берілген А (3,3) матрицасының оң және теріс элементтерінің санын санау программасын құру керек.
var i,j,o,i:integer;
a:array[1..3,1..3] of integer;
begin
for i:=1to 3 do
for j:=1to 3 do
begin
writeln(`engiz a[`,i,`,`,j,`]`);
readln(a[i,j]);
end;
for i:=1 to 3 do
for j:=1to 3 do
if a[i,j]0 then 0:=0+1else t:=t+1;
writeln (`0=`,0, `t=`,t);
end.
№21 Шеңбер
Енгізу файлының аты: А.in
Шығару файылының аты: А. Out
Есептің жауабы файылының аты: A. pas
Уақыт шектеу: 2 секунд
Жадыға шектеу: 64 мегабайт
Шеңберде бірдей қашықтықта N нүктелер белгіленген, олар қарсы сағаттық тілдің бүтін сандармен 1-ден N-ға нөмірленген. Сіздерге осы шеңбердің бірнеше қос хордалар берілген, хорданың ұштары сол нүктелер болады. Әрбір хордалар үшін анықтаңыздар, олар қиылып кетеді ме, немесе қиылымайды (сүйкелмейген хордалар қиылған деп саналады).
Мәліметтерді енгізу форматы
Кіріс файлдың бірінші жолында екі бүтін сан тұрады: N және К (1 9, 11, В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
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.
№22 Бөлгіштер
Енгізу файлының аты: В.in
Шығару файылының аты: В. Out
Есептің жауабы файылының аты: В. pas
Уақыт шектеу: 2 секунд
Жадыға шектеу: 64 мегабайт
А оң саны В санының бөлгіші аталып жатыр, егер В А санға қалдықсыз бөлінсе. Мысалы, 15 санында 4 бөлгіш бар: 1,3,5,15. Әрбір берілген сандардың үшін, оның бөлгіштердің саны жұп сан немесе тақ сан болады ма сіздерге анықтау қажетті.
Мәліметтерді енгізу форматы
Кіріс файлдың бірінші жолында бір бүтін сан N (15) жазылған. Келесі жолда N бүтін сан Хі(1i18) жазылған. Бір жолдағы сандар аралары пробелмен бөлінген.
Мәліметтерді шығару форматы
Шығыс файлда аралары пробелмен бөлінген 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.
№23 Пайда.
Енгізу файлының аты: C.in
Шығару файылының аты: C. Out
Есептің жауабы файылының аты: C. pas
Уақыт шектеу: 2 секунд
Жадыға шектеу: 64 мегабайт
Компьютер процессор бөлігінен және монитордан құралады.Қоймада цессор бөлігі және М монитор болып жатыр. І-ші процессор бөлігінің бағасы- Аі тугрик, j-ші монитордың бағасы- Вj тугрик. Дүниежүзілік қаражаттық дағдарыс артынан, і- ші процессор бөлігінен және j-ші монитордан құралған компьютердің бағасы Аi,Bj (көбейту) тугрик болады. Сіздерге дәл осылай компьютерлердің ең үлкен мүмкін саны жинау керек, олардың барынша ең көп мүмкін болған жиынтық бағасы болу үшін.
Мәліметтерді енгізу форматты
Кіріс файлдың бірніші жолда екі бүтін сан тұрады N және М (1і. Үшінші жолда М бүтін сан тұрады: j-ші жолдағы сан Вj(1j, Bj
Мәліметтерді шығару форматы
Шығыс файлға пробелмен бөлінген екі бүтін сан жазылу керек-ең үлкен мүмкін болған компьютердің саны және олардың барынша ең көп мүмкін болған жиынтық бағасы.
Мысал
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(nm)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.
№24 Жалқаулық.
Енгізу файлының аты: D.in
Шығару файылының аты: D. Out
Есептің жауабы файылының аты: D. pas
Уақыт шектеу: 2 секунд
Жадыға шектеу: 64 мегабайт
Оқытушы емтиханға дайындалуға үшін оқушыларына N сұрақтарды берді. Осы сұрақтардан ол емтиханға үшін А сұрақты таңдайды, ал оқушы, бесті алу үшін В сұрақты (бұларды А сұрақтан) жауап беру тиісті. Ку оқушы барлық сұрақтарды оқытуға қаламайды. Бесті алу үшін, сұрақтардың қандай ең аз саны оған жатап алу керек?
Мәліметтерді енгізу форматы
Кіріс файлдың жекеше жолында үш бүтін сан жазылған: N, A және В (1
Мәліметтерді шығару форматы
Шығыс файлда бір бүтін сан жазылу керек- есептің жауабы.
Мысал
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.
№25 Серіппе
Енгізу файлының аты: E.in
Шығару файылының аты: E. Out
Есептің жауабы файылының аты: E. pas
Уақыт шектеу: 2 секунд
Жадыға шектеу: 64 мегабайт
N мөлшерлі серіппе- натуральды сандарлардың NxN мөлшерімен кестесі, кесте орталығында әрқашан 1 тұрады, одан оң жақтан 2, серіппе қарсы сағаттық тілдің бұралып қалып жатыр. N мөлшерлі серіппесін шығарыңыздар.
Мәліметтерді енгізу форматы
Кіріс файлдың жекеше жолында бір бүтін сан жазылған- N(1,=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(n0)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.
№26 Дәрежесі
Енгізу файлының аты: 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
Мәліметтерді енгізу форматы
Кіріс файлдың жекеше жолында үш бүтін сан жазылған А,В,С(018,118). Сандар аралары пробел арқылы бөлінген.
Мәліметтерді шығару форматы
Шығыс файлда бір бүтін сан жазылу керек-есептің жауабы.
Мысал
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.
№27 Спортшы бірінші күні 10 км жүгірді. Әр күні ол күнделікті жүгіру нормасына 10 % қосып отырды.Спортшы неше күнен кейін:
а) 20 км астам жол жүгіреді;
b) қосқанда 100 км астам жол жүгіреді.
a) Program F7_a1;
Var s: real; i: integer;
Begin
S:=10; i:=1;
While s
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
Begin
I:=i+1;s:=s+0.1*s;sum:=sum+s end;
Write (‘қосқанда 100 км астам жол жүгіреді, ол.',I,’күні’);
End.
№28 Берілген үштаңбалы санның бірдей цифрларының бар екенін анықтайтын программа жаз.
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.
№29Nэлементтен түратын массив берілген. Оны төмендегі берілген ереже бойынша өзгертіп жаңа массив құрастыратын программа жаз(егер хкі- мағынасында берілсе к-жаңа массивтің элементы болады):
Xri =max x, егер I
массив элементтерінің кері жағдайдағы;
XiN=XI, xik=xk+1 , мұнда k=1,2,…N-1 .
Program F9_d1;
Const n=5;
Var x:array[1..n] of integer; i, k, max : integer;
№30 Х және У массив элементтері кему ретімен орналасқан. Массив элементтерін бір 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;