Информатикадан олимпиада жүргізу және оның әдістері


Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..3
Информатикадан олимпиада жүргізу және оның әдістері
І. Негізгі бөлім
1.1 Олимпиада және оны жүргізу әдісі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .4
1.2 Олимпиада тапсырмаларын есептеудің тиімді жолдары ... ... ... ... ... ... ...4
1.3 Олимпиаданың өткізілу ережесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .18
1.4 Оқушыларды олимпиадаға дайындау ... ... ... ... ... ... ... ... ... ... ... ... ... ... 26
ІІІ. Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 32
IV. Пайдаланылған әдебиеттер тізімі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..33
Факультативтік сабақтармен тығыз байланысты сыныптан тыс жұмыстардың бірі информатика пәні бойынша өтетін олимпиада. Олимпиада білімді оқушыларды анықтау мақсатында ұйымдастырылғанымен, оның басты мақсаты - аса қабілетті және даярлығы күшті 2-3 оқушыны табу ғана емес, мектеп оқушысының басым көпшілігінің информатика пәніне деген ынта, ықыласын арттыру.
Оқушыларды олимпиадаға дайындау барысында олимпиадалық есептерді талдаған дұрыс. Себебі, мұндай талдау оқушылардың олимпиадалық есептердің түрлерімен таныс болып, оны шығарудағы өз күшіне деген сенімін арттырады.
Информатикалық олимпиада - оқушыны информатикалық білім алуға ынталандыратын ойларының дамуына себеп болатын жарыс болып есептеледі. Информатика олимпиадасы мектеп ішілік, аудандық және қалалық, облыстық, республикалық, халықаралық деңгейлерге бөлінеді.
Мектепте өткізілетін олимпиада екі кезең бойынша жүргізіледі:
1. кезеңде барлық үлгеретін оқушылар қатысады. Бұл кезеңнен «4-5» алған оқушылыр келесі кезеңдегі олимпиадаға қатысады.
2. Кезеңде қияндығы жоғары тапсырмалар ұсынылады. Осы кюезеңнің жеңімпаздары алдыңғы олимпиадаға жіберіледі.
Факультатив сабақтарды, олимпиадалық есептерді шығарудың әдіс – тәсілдерін талдау практикасына ацйналдарған тиімді.

Пән: Педагогика
Жұмыс түрі: Курстық жұмыс
Көлемі: 21 бет
Бұл жұмыстың бағасы: 700 теңге




М а з м ұ н ы

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... ..3
Информатикадан олимпиада жүргізу және оның әдістері
І. Негізгі бөлім
1.1 Олимпиада және оны жүргізу
әдісі ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ...4
1.2 Олимпиада тапсырмаларын есептеудің тиімді
жолдары ... ... ... ... ... ... ...4
1.3 Олимпиаданың өткізілу
ережесі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..18
1.4 Оқушыларды олимпиадаға
дайындау ... ... ... ... ... ... ... ... ... ... ... ... ... ... .26
ІІІ.
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... .32
IV. Пайдаланылған әдебиеттер
тізімі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..33

Кіріспе

Факультативтік сабақтармен тығыз байланысты сыныптан тыс
жұмыстардың бірі информатика пәні бойынша өтетін олимпиада. Олимпиада
білімді оқушыларды анықтау мақсатында ұйымдастырылғанымен, оның басты
мақсаты - аса қабілетті және даярлығы күшті 2-3 оқушыны табу ғана емес,
мектеп оқушысының басым көпшілігінің информатика пәніне деген ынта,
ықыласын арттыру.
Оқушыларды олимпиадаға дайындау барысында олимпиадалық есептерді
талдаған дұрыс. Себебі, мұндай талдау оқушылардың олимпиадалық
есептердің түрлерімен таныс болып, оны шығарудағы өз күшіне деген
сенімін арттырады.
Информатикалық олимпиада - оқушыны информатикалық білім алуға
ынталандыратын ойларының дамуына себеп болатын жарыс болып
есептеледі. Информатика олимпиадасы мектеп ішілік, аудандық және қалалық,
облыстық, республикалық, халықаралық деңгейлерге бөлінеді.
Мектепте өткізілетін олимпиада екі кезең бойынша жүргізіледі:
1. кезеңде барлық үлгеретін оқушылар қатысады. Бұл кезеңнен 4-
5 алған оқушылыр келесі кезеңдегі олимпиадаға қатысады.
2. Кезеңде қияндығы жоғары тапсырмалар ұсынылады. Осы
кюезеңнің жеңімпаздары алдыңғы олимпиадаға жіберіледі.
Факультатив сабақтарды, олимпиадалық есептерді шығарудың әдіс –
тәсілдерін талдау практикасына ацйналдарған тиімді. Мектептік үздік
информатика аудандық, облыстық, республикалы, халықаралық
олимпиадаларға қатысуға мүмкіндік алу үшін оқушылар мектеп
информатика пәнін жүйелі игеру қажет.

Олимпиада және оны жүргізу әдістемесі
Олимпиаданың мақсаты;
- білімді, дамыған, дарынды мектеп оқушыларын іздеу;
- мектепте информатиканы оқыту деңгейін бағалау;
- информатиканы оқыту барысындағы ең жоғарғы деңгейге қойылатын талапты
ашу;
- мектеп, жоғарғы оқу орындары буынындағы кері байланысты жүзеге асыру.
Олимпиаданың негізгі мақсаты - оқушының қабілетін ашуды ескере
отырып, логикалық - алгоритмдік және жүйелі комбинаторикалық ойлауы дамыған
оқушыларды табу қажет. Бұл әртүрлі дайын программалық құралдар мен
командаларды пайдалану іскерлігінде пайда болады.
Олимпиадаға дайындау әдістемесі- қарастырылып отырған тәсілде
оқушьшарды олиапиядаға дайындау информатиканың базалық курсының жалғасы
болып табылады. Дайындықтың ең тиімді түрі — сабақты олимпиада түрінде
жүргізу. Стандартты емес есептерді шешгу үшін мәліметтерді ұйымдастыру мен
програлмалаудың қазіргі әдістерін білу қажет.
Олимпиада тапсырмаларын есептеудің тиімді жолдары

Олимпиада —оқушының білім дағдылары мен қисынды ойлау әрекеттерін
саралайтын кезең. Оқушыны олимпиадаға дайындау сәтінде есептеудің
тиімді жолдарын қарастыру – мұғалім атқарар міндетті екені
белгілі. Талапкердің жүйелі жұмыс жасай білу қабілетін саралап,
есептеудің тиімді жолдарын қолдана білу шеберліктерін шыңдап,
өзіндік бағыт – бағдар беру – қазіргі таңдағы ізденімпаз ұстаздардың
негізгі ұстанымы. Төмендегі олимпиада тапсырмалары Pascal ABC
бағдарламасында орындалған Pascal АВС өте ыңғайлы бағдарлама., бұнда
көптеген әрекеттер орындауға болады. Бұл бағдарлама қазіргі
заманның талабына сай операциялық жүйелерге сәйкес келеді.
Сонымен қатар ол терезеелі интерфейспен жұмыс істеуге мүмкіндік
береді Pascal ABC www.sunsclwol.math.rsu.ru сайтында толық
қарастырылған.
1-есеп.Кубиктер
Енгізу файлының аты: cubes.in
Шығару файлының аты: cubes.out
Уақыт шектеу: 2 секунд
Жадыға шектеу: 64 мегабайт
N кубик берілген. Қатар қойылған бірнеше бағаналардан тұратын
кубиктерді жар деп атаймыз.
Жардың і - ші бағанасының биіктігін һ3 деп белгілейміз. Жардағы
бағаналар саны М болса барлық і үшін (1ІМ-1), һ3 һ3-1 және
Һ3 + һ2 + ... + Һм = N ережесіне бағынатындай әр түрлі неше жар бар екенін
табу керек. Мәліметтерді енгізу форматы Кіріс файлына жалғыз N саны
берілген (lN100)
Мәліметтерді шығару форматы Шығыс файлға бір бүгін сан жазу керек
ізделінген сан.
Есептің шығару жолы.
Алдымен мысалда көрсетілген жарларды сандар тізбегі ретінде
белгілейік:
4; 3,1; 2,2; 2,1,1; 1,1,1,1.
Бұл тізбектердің әрқайсысында келесі шарттар орындалуы керек:
1) Әрбір тізбектегі элементтердің қосындысы N-ге тең болуы керек:
h1+h2+...+hM=N.
2) Тізбектің әрбір элементі өзінің алдынлағы элеменітерден аспауы
керек: һ=һ1+1
Мұндай тізбектерді табу үшін терулер орындау керек. Алдымен 1 орынға,
сосын 2 орынға, сосын 3 орынға, сол сияқты ең соңынан N орынға 1-ден N-re
дейінгі бүтін сандардан теру орындаймыз. Терулерді гее(х) рекурсивті
проиедурсы көмегімен жасаймыз. М - тізбек элементтерінің, яғни теру
орындарының саны. М=1, 2 , 3 ... .N.
К-берілген (1),(2) шарттарды қанағаттандыратын тізбектер саны болсын.
Онын алғашқы мәнін О-ге тең етіп аламыз. Программаның негізгі бөлімінде
әрбір М-нің мәні үшін терулер орындайтын гес(х) ироцедурасын шақырамыз.
к:=0;
for m:=l to n do
rec(I);
Енді гес(х) рекурсивті процедурсын қарастырайық. Бұл процедура М
орынға N саннан теру орында керек және табылған терудің (1), (2) шарттарды
қанағаттандыратындығын тексеру керек. Шарттар қанағаттандырылатын болса К
есептеуіш айнымалысы 1 санға артуы керек. Рекурсия алдымен 1-деңгейде
шақырылады, сосын өзін-өзі шақырып келесі деңгейге өтеді. Әрбір і-ші
деңгейде һ тізбегінің і-ші элементін тереді. Егер Х-проиедура параметрі M +
1-re тең болса онда М орынға теру орындалып болғаны. Онда алдымен (1)
шарттың орындалуын тексеру үшін һ тізбегі элементтерінің қосындысын
есептейміз.
s:=0;
for i:=l to m do s:=s+h[i];
Енді (2) шарттың орындалуын тексеру үшін.
t айнымалысын алып, оның бастапқы мәнін О-ге теңестіреміз. Әрбір і үшін (1
іМ-1), һ[іһ[і+1) шарты орындалса t:=l қылып өзгертеміз. Сонда
һ[і]һі+1] шарты ең болмаса бір рет орындалса t-ның мәні 1-ге тең болады,
ал бірді-бір рет орындалмаса t-ның мәні бастапқы 0 қалпында қалады.
for i:=l to m-1 do
if h[i]h[i+l] then t:=l;
Erep бұл шарттардың екеуі де орындалса К-ның мәнін 1 санға есіреміз.
if (s=n)and(t=0) then k:=k+l;
Сонымен программаның толық мәтіні келесідей болады:
program cubes;
var fin, fout: text;
k,n,ra,s,t,i:integer;
h:array[1..100] of integer;
procedure rec(x:integer); {рекурсивті процедура}
var ininteger;
begin if x=m+l tben {peKypcия соңғы деңгейге жетті}
begin
s:=0; {қосындыны есептеу}
for i:=l to m do s:=s+h[i];
t:=0;
for i:=l to m-1 do {(2) шартты тексеру}
if h[i]h[i+l] then t:=l;
if (s=n)and(t=0) then k:=k+l;
end else {Рекурсия соңғы деңгейге жеткен жоқ}
begin
for ir:= 1 to n do
begin h[x]:=ir; rec(x+1)
end; {h-mi теpin, рекурсияның } {келесі деңгейіне өту}
end;
begin {программаның негізгі бөлімі}
assign(fm,'cubes.in'); (негізу файлын байланыстыру)
assign(iout,'cubes.out'); {шығару файлын байліаныстыру}
reset(fin); {енгізу файлын оқу үшін ашу}
read(fin,n); {енгзіу файлынан пдіі енгізу}
close(fin); {енгізу файлын жабу}
к:=0;
for m:= I to n do
rec( 1); {рекурсивті процедураны шақыру}
rewrite(fout); шығару файлын жсау үшін ашу
writcln(fout,k); шығару файлына К – ның мәнін жазу
l(se(fout); шығару файлын жабу
end.
2-есеп. Сақина
Енгізу файлының аты: hoop.in
Шығару файлының аты: hoop.out
Уақыт файлының шектеу: 2 секунд
Жадыға шектеу: 64 мегабайт
Сақинаның бойына бірдей қашықтықта 1 — ден N-re-дейін сандар сағат
тілінің бағыты бойынша өсу ретімен жабыстырылған, 1 саны сақинаның ең
жоғары нүктесінде орналасқан. Осыдан кейін сақинамен М әрекет жасалды.
Сақинаның соңғы қалпын анықгау керек.
Сақинамен жасалатын әрекеттер:
Оңға немесе солға бірнеше санға айналдыру.
Белгілі бір нүктенің айналасында аудару.
Кез - келген әрекет кезінде сақинаның центрі орнында қалады.
Мәліметтерді енгізу форматы
Кіріс файлдың бірінші жолында екі бүтін сан жазылған N және М
(0N,M105). Осыдан кейін әрекеттерді сипаттайтын М жол жазылған. Бұл
жолдардың әрқайсысы келесі форматтардың бірінде болады:
+Х — оң жаққа (сағат тілінің бағытымен) X орынға айналдыру;
-X - сол жаққа (сағат тіліне қарама-қарсы) X орынға айналдыру;
У — У позициясының айналасында аудару; ең жоғары нүктенің позициясы
әрқашан 1-ші, келесі позициялар сағат тілінің бағытымен сананалады.
0Х109, 1YN
Мәліметтерді шығару форматы
Шығыс файлдың бірінші N бүтін сан болу керек-сақинаның бойындағы
сандар ең жоғарысынан бастап сағат тілінің бағаты бойынша.
Мысалға комментарий
Сақинаның бастапқы қалпы: 1 2 3 4 5
1-ші әрекеттен кейін (оң жаққа 2 орынға айналдыру) 4 5 1 2 3
2-ші әрекеттен кейін (сол жаққа 3 орынға айналдыру) 2 3 4 5 1
3-ші әрекеттен кейін (3-ші позииияның айналасында аулару) 1 5 4 3 2

Мысал
Hoop.in Hoop.out
5 3 1 5 4 3 2
+2
-3
3

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

Бұл сақинының, орындарын тізбек элементтері ретінде қарастыруымызға
болады. Ол тізбекті а деп белгілейік.
[ 1.. 1000001 of integer; aI тізбегін түрлендіру үшін қолдануға қосымша
алып отырмыз. Енді түрлендіру үшін қолданылатын процедурадарды қарастырайық
povpra(x) процедурасы саиптына сағат тілі бағытымен X орынға айналдырады.

Біздің мысалымызда берілген сақина үшін сонда povpra (2) процедуралық
шақырту суретте көрсетілгендей түрлендіру орындайды. Яғни әрбір і-ші орынға
і-х -ші орындағы сан ауысады. Егер і-х 1 болса, онда і-ші орынға і-х+п —ші
орындағы санды айтамыз. Түрлендірулерді орындау үшін аі тізбегіне а
тізбегін меншіктеп алып, соңынан түрлендірілгсн aI тізбегін а тізбегіне
қайта меншіктейміз. Сонымен
procedure povpra(x:integer);
begin
al:=a;
for i:=l to n do
if i-x 1 then al[i]:=a[i-x+n] else al[i]:=a[i-x];
a:=al;
end;
povlev(x) процедурасы сақинаны сағат тіліне қарама-қарсы бағытта X
орынға айналдырады.

Біздің мысалымызда берілген сақина үшін соңда povlev(2) процедуралық
шақыту суретте көрсетілгендей түрлендіру орындалады. Яғни әрбір і-ші
орынға і+х -ші орындағы сан ауысады. Егер і+хп болса, онда і-ші орынға і+х-
п —ші орыңдағы санды аламыз. Сонымен
procedure povlev(x:integer
begin------
al:=a;
for i:=l to n do
if i+xn then al[ij:=a[i-\-n else аЦі):=а[і+х;
a:=al;
end;
Енді y-ші пoзицияның айналасында аудару әрекетіп орындайтын
процедурасын қарастырайық.
Мысалға беріліен сақина үшін perev (3) процедуралық шақыру
суретіндегідей түрлендіру жасайды.

Суретте көрсетілгендей әрбір у+і -ші орындағы элементті у-і ші
орындағы элементпен орын ауыстыруымыз керек. ауыстырулар n div 2 циклда
орындалады. Егер у+і г. болса. оны у+і-п-мен ауыстырамыз. Сондай-ақ егер у-
і1 болса, оны у-і+п —мен ауыстырамыз. у-і және у-і мәндерін есептеу алу
үшін оларды ;1.у2 айнымалыларына меншіктеп аламыз. Сонымен процедура
былай жазылады:
procedure perev(y:integer):
varyl,y2:integer;
begin
al:=a;
for i:=l to n div 2 do
begin
if y+in then yl:=y+i-n else yl:=y+i;
if y-i 1 then y2:=y-i+n else y2:=y-i;
al[yl]:=a[y2]; ally2]:=a[yl];
end;
a:=al;
end;
Енді программаның негізгі бөлігін қарастырайық. Алдымен енгізу файлын
ашып алып, одан есеп шартында берілгендей форматта п мен m-ді, содан соң
әрекеттерді білдіретін жолдың қатарларды енгіземіз. Әрбір s жолдың қатарын
енгізген соң оның бірінші символы s[l]-j.i тексереміз. Егер ат'+' болса, s-
тің бірінші символын dekte(s,l,l) процедурасы арқылы жойып. қалған бөлігін
val(s,t,code) процедуфасы арқылы t айнымалысына түрлендіріп жазамыз. Содан
соң povpra(t) процедурасын шақырамыз. Егер s[l]='-' болса да тура осындай
әрекеттер орындаимыз тек povlev(t) процедурасын шақырамыз. Бірінші символ
+ ке де, - -ке де тең болмаса, s-ті t санына түрленліріп жазамызда
perev(t) процедурасын шақырамыз. Соңынан шығару файлын ашып, оған а тізбегі
элементтері мәндерін жазып шығамыз да, ашылған файлдарды жабамыз. Сонымен
программаны толық нұсқасы мынадай:

program hoop;
var a,al:array[l.. 1000000] ofinteger; a,
fin,fout:text:
i,k,n,m,t,code:integer: s:string;
procedure povpra(x:integer):
begin
al:=a;
for i:=l to n do
if i-xl then al[i]:=a[i-x+n] else al[i]:=a[i-x];
a:=al;
end;
procedure povlev (xnnteger):
begin
al:=a;
for i:=l to n do
if i+xn then al[i]:=a[i+x-n] else al[i]:=a[i+x];
a:=al;
end;
procedure perev(y:uiteger):
var yl,y2:integer:
begin
al:=a;
for i:=l to n di\ 2 do
begin
if y+in then yl:=y+i-n else yi:=y+i;
if y-il then y2:=-i-un else y2:=y-i;
ai"[yll:=a[y2]:
aly2]:=a[vl]:
end;
a:=al;
end;
begin
assignffin.'hoop.in):
reset(fin):
readln(fin.n,m):
for k:=l to n do a[k]: = k:
for k:=l lo m do
begin
rcadln(fin.s):
if s!='+" then
begin
delele(s,1.1):
val(s.t.code);
povpra(t);
end else if s[l]='-'then
begin
delete(s,l,l);
val(s,t,code);
povlev(t);
end else .car begin
val(s,t,code);
perev(t);
end; end;
assign(fout,'hoop.out');
rewrite(fout);
for k:=l to n do
write(fout,a[k],' ");
close(fin);
close(fout);
end.

3-есеп. Шахмат тақтасындағы шеңбер
Енгізу файлының аты: сігсіе.іп
Шығару файльшың аты: eircle.out
Уақыт шектеу: 2 секуид
Жадыға шектеу: 64 мегабайт
N х М шахмат тақтасындағы R радиусты шеңбер қойылған, оның центрі
тақтаның белгілі бір ұяшығының центрімен сәйкес келеді. Шеңбердің астында
толығымен қалған ақ және қара ұяшықтардың саның анықтау керек. Тақтаның сол
жақ төменгі ұяшығы қара.
Мәліметтрді енгізу форматы
Кіріс файлдың бірінші жолында аралары пробелмен белінген 4 бүтін caн
жазылған:
N -- тақтаға қабырғасының өлшемі (lN100); R - шеңбер радиусы
(isRslOO):
X. У — шеңбердің центрі сәйкес келетін ұяшықтың координаталары
(ІХ.УХ). ұяшықтардың координаталары сол жақ төменгі ұяшықтан бастап
саналады, ол ұяшықтың координаталары (1.1).
Мәліметтерді шығару форматы
Шығыс файлдың бірінші жолында екі caн болу керек: шеңбермен толығымен
жабылған қара және ақ ұяшықтардың саны сәйкесінше.
мысалы:
circle, in eircle.out!
5 1 3 3 1 0

Есептің шығару жолы.
Алдымене шахмат тақтасын координаталық жүйемен байланыстырамыз.
Координаталар жүйесін есеп шартына байланысты 1-суретте көрсетілгендей етіп
аламыз і арқылы тік, j арқылы көлденең координаталық өстерді алайық. Сонда
әрбір шаршының нөмірлері (і, j) олардың центріндегі нүктеге сәйкес келеді.
Шаршының түсін анықтау үшін олардың координаталарының қосындысының
тақжұптығын анықтаймыз.

Егер i+j жұп сан болса шаршы қара түсті, тақ сан болса ақ түсті
болғаны.
Әрбір шаршы берілген шеңбер ішінде жатуы үшін оның төрт төбесі де сол
шеңбердің ішінде жатуы тиіс.

Біздің алып отырған координаталар жүйемізде ол нүктелердің
координаталары (і-0.5, .. j-0.5), (i+0.5, j-0.5), (i-0.5, j+0.5), (i+0.5,
j+0.5) болады (2-сурет). Осы нүктелер мен шеңбер центрі (х.у)-ке дейінгі
ара қашықтықтар шеңбер радиусынан асып кетпесе, онда бұл нүктелер шеңбер
ішінде немесе бойында жатқаны. Екі нүктенің ара қашықтығы
Д = (х2 - х,)2 + (у1 - у2)2 формуласымен есептеледі. Сонда бұл ара
қашықтықтар мынаған тең:
dl:=sqrt(sqr(x-(i-0.5))+sqr(y-(j-0. 5)));
d2:=sqrt(sqr(x-(i+0.5))+sqr(y-G-0.5 )));
d3:=sqrt(sqr(x-(i-0.5))+sqr(y-(j+0. 5)));
d4:=sqrt(sqr(x-(i+0.5))+sqr(y-(j+0. 5)));
Енді нақты программаны қарастырайық. Алдымен енгізу файлын ашып,
одан N, R, X, Ү мәндерін оқимыз. Сосын енгізу файлын жабамыз.
assign(fin,'circle.in');
reset (fin);
read(fin,n,r,x,y);
ctose(fin);
Шеңбер ішінде жатқан қара түсті шаршылар санын есептеу үшін kb, ал
ақтүсті шаршылар санын есептеу үшін kw айнымалыларын аламыз. Олардың
бастапқы мөлшерін нолге текестіреміз. Енді бірінің ішіне бірі орналасқан
екі FOR циклі арқылы барлық шаршыларды қарасырып шығарамыз әрқайсысы үшін
(*) формуламен dl,d2,d3,d4 мәндерін есептеп аламыз. Егер бұлардың әрқайсысы
R-ден аспаса:
(dl=r)and(d2=r)and(d3=r)and(d4= r) оңда, ол шаршының ақ, қара
түсті екеңдігін анықтаймыз да, kb, kw айнымалыларының сәйкесіне 1 сан
қосамыз.
if(dl=r)and(d2=r)and(d3=r)and(d4= r)then
if (i+j) mod 2 =0 then kb:=kb+l else kw:=kw+l;
Сосын шығару файлын ашып, оған kb, kw айнымалыларының мәндерін
жазамыз да, файлды жабамыз.
assign(fout,'circle.out');
rewrite(fout);
writeln(fout,kb,' ",kw);
close(fout);
Сонымен программаның толық мәтіні төмендегідей болады.
program circle;
var fin,fout:text;
ij,kb,kw,n,r,x,y:integer;
dl,d2,d3,d4:real;
begin
assign(fin,'circle.in');
reset(fm);
read(fin,n,r,x,y);
close(fin);
kb:=0;kw:=0;
for i:=l to n do
for j:=l to n do
begin
dl:=sqrt(sqr(x-(i-0.5))+sqr(y-(j-0. 5)));
d2:=sqrt(sqr(x-(i+0.5))+sqr(y-0-0.5 )));
d3:=sqrt(sqr(x-(i-0.5))+sqr{y-0+0.5 )));
d4:=sqrt(sqr(x-(i+0.5))+sqr(y-(j+0. 5)));
if (dl=r)and(d2=r)and(d3=r)and(d4= r) then
if (i+j) mod 2 =0 then kb:=kb+l else kw:=kw+l;
end;
assign(fout,'cirele,out');
rewrite(fout);
writeln(fout,kb,' ",kw);
close(fout);
end.

Правила проведения олимпиады
Приведем и прокомментируем наиболее важные правила проведения
Всероссийской олимпиады по информатике. Многие из этих правил справедливы
также и для большинства региональных олимпиад.
Олимпиада проводится в два тура. Продолжительность каждого тура 5
часов. На каждом из туров для решения задач участнику предоставляется
персональный компьютер типа ЮМ РС со следующим программным обеспечением:
ТигЬо Разса1 7.0, Вог1апd С++ 3.1. [комментарии}
Из первого пункта правил становится ясно, что, во-первых, оба тура
олимпиады, так называемые, практические. Во-вторых, для решения задач
предлагается использовать лишь один из двух языков программирования. Такое
положение полностью соответствует международной практике, хотя на
российских олимпиадах соблюдается не всегда строго. Basiс исключен из числа
официальных языков программирования олимпиады, так как желание
программировать только на нем высказывают очень небольшое число участников
олимпиад высокого уровня, при профессиональной разработке программ он
практически не используется (в данном случае Visual Basiс мы не
рассматриваем), кроме того, решение задач с использованием этого языка
иногда затруднено по сравнению с Pascal и С. На наш взгляд, заранее
объявляя об ограничениях на использование программного обеспечения, жюри и
оргкомитет олимпиады способствуют практике изучения тех языков
программирования в российских школах, которые позволят ребятам добиваться
не только успехов в различных соревнованиях, но и некоторым из них стать
высокими профессионалами в области информатики и программирования. Мы
считаем, что имение язык программирования Разса1, как никакой другой,
позволяет за короткий срок отлаживать довольно сложные программы, что
особенно важно в условиях практического тура любой олимпиады, но и не менее
значимо при изучении информатики в школе. Использование языка С (С++) на
олимпиаде стоит приветствовать лишь тогда, когда участник владеет им почти
в совершенстве, практически не допуская ошибок при записи решения задачи на
С, часть из которых невозможно обнаружить на этапе компиляции программы.
Кроме того, при программировании на С могут возникнуть сложности с
настройкой компилятора, а в режиме олимпиады даже минута, потраченная не на
собственно решение задач, может сказаться на результатах участника. Хотя,
справедливости ради стоит сказать, что на международной олимпиаде процент
участников, использующих язык программирования С (С++) достаточно высок,
причем многие из них выступают более чем успешно, что опять же
свидетельствует о высокой квалификации таких школьников, а размер кода
программ на С (не следует путать с размером исполняемого файла.) часто
меньше кода на языке Разса1. В заключение заметим, что предоставляемое на
олимиадах программное обеспечение (операционная система, тип и версия
компиляторов, среда программирования) со временем естественно может
изменяться, как это и произошло на последней международной олимпиаде по
информатике в Финляндии (см. № 372001). (коментарии)
2. 1-1 а каждом из туров участникам будет предложено решить несколько
задач. Вопросы по условиям задач можно задавать только в течение первого
часа тура. Вопросы следует задавать только в письменном виде и
формулировать их так, чтобы на них можно было ответить "да" или "нет".
{комментарии}
Такая практика сложилась исторически и применяется на международных
олимпиадах. Строгое соблюдение данного пункта правил иногда вызывает у ряда
участников некоторые сложности. Так. школьникам зачастую тяжело именно в
начале тура пытаться понять нюансы в формулировках сразу всех задач. Кроме
того, часто вопросы по условию возникают лишь тогда, когда участник
приступил к решению той или иной задачи. Поэтому немаловажным является
умение первого раза внимательно прочитать условие любой задачи, выделяя не
ясные для себя места в тексте. Умение грамотно сформулировать вопрос,
допускающий один из двух вариантов ответа, также зачастую у школьников
отсутствует. Заметим, что при ответе на большинство задаваемых вопросов
члены жюри используют фразу "без комментариев". Это означает, что либо
ответ па вопрос все же содержится в формулировке задачи и его следует
искать самостоятельно.
Система асm (Association of Computer Machinery). Обычно по такой
системе проходят студенческие турниры. Чаще всего командные ... жалғасы
Ұқсас жұмыстар
Олимпиада чемпиондары
Қазақстандағы жекешелендіру кезеңдері, оның мәні, жүргізу әдістері
Информатикадан сыныптан тыс жұмыстарды ұйымдастыру
XXX жазғы Олимпиада ойындары
Информатикадан сыныптан тыс жұмыстар әдістемесі
«Информатикадан деңгейлік тапсырмаларды жасау әдісі»
Маркетингтік зерттеулер жүргізу әдістері
Информатикадан зертханалық және практикалық жұмыстарды өткізу әдістемесі
Дезинфекция және оның әдістері
Мектептегі математикалық олимпиада
Пәндер

Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор №1 болып табылады.

Байланыс

Qazaqstan
Phone: 777 614 50 20
WhatsApp: 777 614 50 20
Email: info@stud.kz
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь