Мазмұнға өту
Мақала жариялау
Axiomus олимпиадасы·математика мен физика, 3–11 сынып·нәтиже 20 минутта, дипломда жетекші мұғалімнің аты Математика, физика олимпиадасы·3–11 сынып Қатысу

Информатикадан олимпиадалық есептер

Абдикерова Куралай
7 мин оқу 95 оқылым

Олимпиада есептерін шығару жолдары
А есебі.
N саннан тұратын А сандар тізбегі берілген. Осы сандар тізбегін кері ретімен шығару керек.
Мəліметтерді енгізу форматы
Енгізу файлының бірінші жолында N (1 <= N <= 1 000 000) саны берілген - тізбектегі
сандардың саны. Екінші жолда кемістікпен (пробел) бөлінген N сан берілген - A тізбегінің
сандары. Əрбір санның абсолют мəні 100 000-нан аспайды.
Мəліметтерді шығару форматы
Бір жолда N санды кемістік (пробел) арқылы бөліп шығарыңыз - A тізбегін кері ретімен шығарыңыз.
Есептің шешімі:
program a;
var n,i:longint;
x:array[1..1000000] of longint;
begin
readln(n);
for i:=1 to n do readln(x[i]);
for i:=n downto 1 do write(x[i],' ');
end.
А есебінің тесті
1 тест 2 тест 3 тест 4 тест 5 тест
Мәліметті енгізу 3
1 1 2 3
0 0 0 4
1 2 3 4 6
1 1 2 2 3 3 7
1 0 2 0 3 0 4
Мәліметті шығару 2 1 1 0 0 0 4 3 2 1 3 3 2 2 1 1 4 0 3 0 2 0 1
түсініктеме В есебі.
Екі мысық тышқанды құбырға қуып кіргізді. Бірінші мысық координатасы x нүктесінде орналасқан, екінші мысық координатасы y нүктесінде, ал тышқан координатасы z нүктесінде орналасқан. Егер мысықтар бірдей жылдамдықпен қозғалса қайсысы тышқанға бірінші болып жететінін анықтау керек. Егер екеуі бірдей уақытта жетсе екі мысық кім бірінші жеткенін анықтап жатқанда, тышқан қашып кетеді.
Мəліметтерді енгізу форматы
Бір ғана жол берілген жəне бұл жолда x, y, z (1 <= x, y, z <= 1 000) сандары берілген.
Сандар бір біріне тең емес.
Мəліметтерді шығару форматы
Егер бірінші мысық бірінші жетсе 1 санын, екінші мысық бірінші жетсе 2 санын, екеуі
бірдей уақытта жетсе 3 санын шығарыңыз.
Есептің шешімі:
program b;
var x,y,z:0..1000;
begin
readln(x,y,z);
x:=abs(z-x);
y:=abs(z-y);
if x<y then writeln(1) else if x>y then writeln(2) else writeln(3)
end.
1 тест 2 тест 3 тест 4 тест 5 тест
Мәліметті енгізу 1 3 2 1 1000 400 1 1 1 6 10 9 50 53 51
Мәліметті шығару 3 1 3 2 1
түсініктеме С есебі.
Сізге a, b жəне n сандары берілген. ax саны n санына бөлгендегі қалдығы b болатын жəне
0 <= x <= n-1 болатын барлық x сандарының санын табу керек.
Мəліметтерді енгізу форматы
Бір ғана жолда үш сан берілген - a, b жəне n сандары берілген (0 <= n <= 100000, 0 <= a, b
< n).
Мəліметтерді шығару форматы
Бір ғана сан - барлық x сандарының санын табу керек.
Есептің шешімі:
program c;
label 1;
var a,b,n,x,k:0..1000000;
begin
readln(a,b,n);
if n=0 then begin writeln('на 0 делить нельзя'); goto 1 end;
for x:=0 to n-1 do
if a*x mod n = b then k:=k+1;
writeln(k);
1:end.
1 тест 2 тест 3 тест 4 тест 5 тест
Мәліметті енгізу 2 6 5 10 0 10 36 40 44 54 18 45 2 101 103
Мәліметті шығару 0 10 4 9 1
түсініктеме D есебі.
5 бүтін сандар берілген. Осы сандардың арасынан төртеуін таңдағандағы қосындының ең үлкен және ең кіші мәндерін табыңыз.
Мәліметтерді енгізу форматы
Бірінші жолда 5 бүтін сан берілген. Әр санның абсолют мәні 100-ден сапайды.
Мәліметтерді шығару форматы
Ең кіші және ең үлкен қосындының кемістік (пробел) арқылы бөліп шығарыңыз.
Есептің шешімі:
program d;
var i,min,t,max,k,s1,s2:integer;
a:array[1..5] of integer;
begin
for i:=1 to 5 do
read(a[i]);
max:=a[1]; k:=1;
min:=a[1]; t:=1;
for i:=2 to 5 do
begin
if a[i]<min then begin min:=a[i]; t:=i; end;
if a[i]>max then begin max:=a[i]; k:=i; end;
end;
for i:=1 to 5 do
begin
if i<>t then s1:=s1+a[i];
if i<>k then s2:=s2+a[i];
end;
writeln(s2,' ',s1)
end.
1 тест 2 тест 3 тест 4 тест 5 тест
Мәліметті енгізу -5 -1 -4 -2 -3 78 45 89 56 12 -1 2 -3 4 -5 4 4 4 4 4 79 -46 13 -93 -41
Мәліметті шығару -14 -10 191 268 -7 2 16 16 -167 5
түсініктеме E есебі.
Батырхан 3-ке қалдықсыз бөлінетін сандарды жақсы көрді. Өкінішке орай, өте үлкен сандар үшін жақсы көру керек пе, әлді жоқ па тексере алмайды. Батырхан сіздің көмегіңізді сұрап жатыр, жақсы көру керектігін анықтайтын программа жазып беріңіз!
Мәліметтерді енгізу форматы
Бір ғана сан Х – тексеру керек сан (0<=X<= 10 1000).
Мәліметтерді шығару форматы
Егер х саны 3-ке қалдықсыз бөлінсе «», егер бөлінбесе «» сөзін шығарыңыз (тырнақшасыз).
Есептің шешімі:
program e;
var st:string; s,i,a,code:integer;
begin
readln(st); s:=0;
for i:=1 to length(st) do
begin
val(st[i],a,code);
s:=s+a; end;
if s mod 3=0 then writeln('YES') else writeln('NO')
end.
1 тест 2 тест 3 тест 4 тест 5 тест
Мәліметті енгізу 28 12345 21212121212 77777777777777777777777777777777777777777777777777777777777777777777777777777777 111111111111111111111111111111111111111111111111111111111111111111111111111111111
Мәліметті шығару NO YES NO NO YES
түсініктеме 11 таңба 80 таңба 81 таңба
F есебі.
Cізге ұзындығы n болатын А массиві берілген. Сіз осы массивтің элементтерін алып тастай аласыз. Сізге элементтерді алып тастау арқылы массивті өспелі ету қажет. Соңында пайда болған өспелі массивтің ең үлкен бола алатын ұзындығын табу керек.
Мәліметтерді енгізу форматы
Енгізу файлының бірінші жолында N (1<=N<= 100000) саны берілген – тізбектегі сандардың саны. Екінші жолда кемістікпен (пробел) бөлінген N сан берілген – А тізбегінің сандары. Әрбір санның абсолют мәні 1000000000-нан аспайды.
Мәліметтерді шығару форматы
Бір ғана сан – есептің жауабын шығару керек.

Есептің шешімі:
program f;
var i,j,k,n,l,max:longint; a,c:array[1..100000] of longint;
begin
readln(n);
for i:=1 to n do
read(a[i]);
for j:=1 to n do
begin
k:=0;
max:=a[j];
for i:=j to n do
if a[i]>max then begin max:=a[i]; k:=k+1; end;
l:=l+1;
c[l]:=k;
end;
max:=c[1];
for i:=1 to l do
if c[i]>max then max:=c[i];
writeln(max+1);
readln
end.
1 тест 2 тест 3 тест 4 тест 5 тест
Мәліметті енгізу 9
1 2 3 4 5 6 7 8 10 9
9 8 7 6 5 4 3 2 1 8
1 2 1 3 2 1 2 4 5
3 4 3 9 7 10
2 3 9 6 3 1 2 3 2 4 5
Мәліметті шығару 9 1 4 3 5
түсініктеме Сызудың қажеті жоқ 1 саны қалады 1 2 1 3 2 1 2 4 3 4 3 9 7 2 3 9 6 3 1 2 3 2 4 5

Есептер мен жаттығулар жинағы

 

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

    шығарылуы

 

2. Екі үшбұрыш қабырғалары a, b, c және d, e, f  берілген. Қайсы үшбұрыштың ауданы үлкен екенін анықтау       қажет.    

    шығарылуы

 

3.  a, b, c және d тµрт түзу сызығының ұзындықтары берілген. Осылар квадраттың немесе тікбұрышты                  тµртбұрыштың қабырғалары бола алады ма? Соны тексеріңдер.     

   шығарылуы

 

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

шығарылуы

Есептердің шығарылуы

1.

program esep1;

var a,b,c:integer;

begin

writeln(’үш сан енгіз’);

read(a,b,c);

if (ab) and (bc) and (ac) then writeln(‘жоқ’)

else if (a=b) and (b=c) and (a=c) then writeln(‘бәрі тең’)

else writeln(‘екеуі тең’);

end.

2.

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 S1S2 then writeln(‘‡лкені 1-үшбұрыш, ауданы =’, S1:8:2)

else writeln(‘‡лкені 2-үшбұрыш, ауданы =’, S2:8:2)

end.

3.

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.

4.

program ushburish;

uses crt;

var x, y, z:real;

begin

clrscr;

writeln;

writeln('usburish kabirgalarin engiz');

write('x='); readln(x);

write('y='); readln(y);

write('z='); readln(z);

if (zsqrt(sqr(x)+sqr(y))) and (xsqrt(sqr(z)+sqr(y))) and (ysqrt(sqr(x)+sqr(z)))

then writeln('tik burishti ushburish bola almaidi');

if (z=sqrt(sqr(x)+sqr(y)))

then writeln('tik burishti ushburish bola aladi, gepotenuzasi z=',z:6:2);

if (x=sqrt(sqr(z)+sqr(y)))

then writeln('tik burishti ushburish bola aladi, gepotenuzasi x=',x:6:2);

if (y=sqrt(sqr(x)+sqr(z)))

then writeln('tik burishti ushburish bola aladi, gepotenuzasi y=',y:6:2);

end.

Материал пайдалы болды ма? Бөлісіңіз

WhatsApp Telegram

Мақала құжаттары

Журнал, мақала және жарияланғаны туралы анықтама — бөлек PDF файлдар

Автор

Абдикерова Куралай

Пікірлер

Пікір қалдыру үшін аккаунтқа кіріңіз

Әзірге пікір жоқ — алғашқы болыңыз.

Авторларға

Сіз де өз мақалаңызбен бөлісіңіз

Мақалаңызды жариялап, сертификат пен журналды бірден алыңыз. Жарияланым Google мен Yandex-те табылады.

  • Сертификат (QR-коды бар)
  • Google, Yandex жүйелерінде шығады
  • Журналға шығады (онлайн)
  • Анықтама, журнал
  • Жеке кабинетте құжаттар сақталады
  • Мақалаға тұрақты сілтеме

2015 жылдан бері · ресми тіркелген журнал

Мақала жариялау

Осы тақырыптағы материалдар

Жалпы рубрика

1 қазан – Қарттар күніне арналған «Қарттарым – асыл қазынам» тәрбие сағаты

1 қазан – Қарттар күні: «Қарттарым – асыл қазынам» тәрбие сағаты Қарттар күні тәрбие сағаты оқушыларды үлкенді сыйлауға, ата-әжеге қамқор болуға және ұрпақтар сабақтастығын қадірлеуге баулиды. Төмендегі «Қарттарым – асыл…

Bilimger Media 7 мин 43 оқылым
Жалпы рубрика

Ұстаздарға құттықтау сөздер: әдемі тілектер мен жылы лебіздер

Ұстаздарға құттықтау сөздер Ұстаздарға құттықтау сөздер іздегенде, жүрекжарды әрі нақты лебіз таңдаған жөн. Ұстаз – білім беріп қана қоймай, шәкіртінің болашағына бағыт көрсететін ардақты жан. Мұғалімнің білімі, ақылы…

Bilimger Media 6 мин 158 оқылым
Жалпы рубрика

Мұғалімге тілек

Құрметті ұстаз! Сізге зор денсаулық, ұзақ ғұмыр, отбасыңызға амандық және еңбегіңізге толағай табыс тілейміз. Шәкірт тәрбиелеудегі қажырлы еңбегіңіз әрдайым жоғары бағаланып, оқушыларыңыздың жетістігі сізге қуаныш…

Bilimger Media 2 мин 78 оқылым