Баяндама Олимпиада есептерін шығару әдістері

Раздел Информатика
Класс -
Тип Другие методич. материалы
Автор
Дата
Формат docx
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:
Баяндама Олимпиада есептерін шығару әдістеріБаяндама Олимпиада есептерін шығару әдістеріБаяндама Олимпиада есептерін шығару әдістері


«№25 Г.Титов атындағы жалпы орта мектебі» коммуналдық мемлекеттік мекемесі



Баяндама Олимпиада есептерін шығару әдістері

















Мақтарал ауданы, Абай ауыл әкімшілігі



Мақтарал ауданы, Абай ауыл әкімшілігі

«№25 Г.Титов атындағы жалпы орта мектебі»

коммуналдық мемлекеттік мекемесінің

информатика пәні мұғалімі Есемханова Жайна


ИНФОРМАТИКАДАН ОЛИМПИАДА ЕСЕПТЕРІН ШЫҒАРУ ӘДІСТЕРІ


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

Олимпиаданың негізгі мақсаты:

  • білімді, дамыған, дарынды мектеп оқушыларын іздеу;

  • мектепте информатиканы оқыту деңгейін бағалау;

  • информатиканы оқыту барысындағы ең жоғарғы деңгейге қойылатын талаптарды ашу;

  • мектеп, жоғарғы оқу орындары буынындағы кері байланысты жүзеге асыру,

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

Оқушыларды олимпиадаға дайындау информатиканың базалық курсының жалғасы болып табылады. Оқушылар олимпиадасы:

  • мектепішілік;

  • аймақтық;

  • аудандық;

  • облыстық;

  • қалалық;

  • Республикалық;

  • Халықаралық деңгейде өтіп келеді. Сонымен қатар, соңғы жылдары интернет-олимпиадалар ұйымдастырылуда. Информатикадан алғашқы интернет- олимпиада 2006 жылы Санкт-Петербург мемлекеттік универститеті басшылығымен, Санкт-Петербург Білім Комитеті ұйымдастырды. Бұл олимпиада 10-11 сынып оқушыларына эксперимент түрінде, 2006 жылдың қарашасында өткізілді. Мұндай интернет-олимпиада елімізде 2012 жылдың қаңтар айынан бастап, «Дарын» республикалық ғылыми - практикалық орталығы «Қазақстандық интернет-олимпиада» ақпараттық порталымен бірлесе отырып, талантты педагогтарды анықтау және оларды қолдау, ынталандыру, мұғалімдердің іскерлік шеберлігін арттыру мақсатында өткізілді. Мұнда негізінен екі кезең қамтылды. Қатысушы алдымен интернет-олимпиада өтетін сайтқа тіркеліп, сол жерден бірінші кезең тапсырмасын орындайды. Бірінші кезеңнен іріктеліп шыққан қатысушылар 2 кезеңге жолдама алады. Іріктеліп шыққан қатысушылар көктемгі демалыста «Балдәурен» РОСО базасында өтетін 2-кезеңге қатысты.

Жалпы «Қазақстандық интернет-олимпиада» тек қана облыстық, республикалық үлкен ауқымды олимпиадаларды жүргізуде ғана қолданылуда [1]. Оқушылардың Республикалық, Халықаралық интернет-олимпиадаларға қатысуына ынталандыру мақсатында мектепішілік және аудандық олимпиадалармен қатар «интернет-олимпиадалар» ұйымдастыру қажет. Олимпиада жеке және топтар арасында да ұйымдастырылады. Топтар арасындағы интернет-олимпиадада топ құрамында үш ойыншы болады, ойыншылар интернет олимпиаданы ұйымдастырып отырған сайт арқылы олимпиадаға қатысуға өтініш білдіріп, ойынның шарттарымен танысып қана қоймай, олимпиада есептеріне ұқсас тапсырмаларды орындап, жаттығуға қол жеткізеді. Қатысушылар бірінші кезеңде мүмкіндігінше көбірек есеп шығарса, екінші кезеңге қатыса алады. Екінші кезеңде ойыншылар онлайн режимде конкурсқа түседі. Оларға үш тапсырма беріледі және қатысушылар бір компьтерде отырып, тапсырманы Турбо Паскаль тілінде жазуы шарт. Ұйымдастыру комитеті мен әділ қазылар алқасы ойыншыларды онлайн - режимде бейнепортал арқылы көріп қана қоймай, олардың жазып жатқан бағдарламаларын қадағалауы керек. Сондықтан, олимпиадаға қатысушыларға қандай да бір ақпарат беретін құрылғыларды пайалануға немесе бөгде адамның көмектесуіне рұқсат етілмейді. Екі турда да өзінің алғырлығымен, ептілігмен, білімімен жоғары балл жинаған қатысушылар бағалы сыйлықтармен марапатталады.

Қарап отырсақ, ақпараттық технологиялардың қарқындап дамуының нәтижесінде, информатика пәнінен ұйымдастырылатын олимпиаданы өткізу әдістері де өзгеріп, дамып барады. Ал, оған ілесіп отыру үшін, мұндай желі мүмкіндіктері пайдаланылып өтетін интернет-олимпиадаға мектеп оқушыларын тарту, қызықтыру, қатыстыру үшін оқушыларды олимпиадалық есептерді шығара алатындай дәрежеге жеткізу қажет. Ол үшін олимпиада есептерімен, олардың түрлерімен таныстыру, оларды шешу жолдарын табу әдістерін үйрету қажет. Информатика пәнінен өтетін олимпиада есептерінің: арифметикалық, геометриялық, комбинаторикалық, бинарлы іздеу, сұрыптау және іздеу, графтарға алгоритмдер, рекурсивті т.б [2, 3] түрлері бар.

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

Ең қарапайым есептің шығарылуын қарастырайық. Мысалы a+b осы екі санның қосындысын табу керек болатын программа құру керек.

Мысал:

a.in

a.out

5 1

6

6 5

11

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

Мысалы ең қарапайым турмен шығарып аламыз:

program esep;
var x, a,b: integer;
begin
Write('a,b= '); Readln(a.b);
X:=а+b;
Writeln('x= ', x)
end.

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

program A;
var F,G:text; - кіріс, шығыс файлын текстік түрмен аламыз
x, a,b: integer;
begin
assign(f,'A.in'); { f айнымалыны a.in файлымен байланыстырамыз}
reset(f) ; { f айнымалымен байланысқан файлды оқу үшін ашамыз }
read(f, a,b); {f айнымалысымен байланысқан файлды ашып оқимыз}
close(f); {Файлды жабамыз}
X:=a+b; {Тапсырманы шешеміз }
assign(g,'a.out'); { g айнымалысын a.out файлымен байланыстырамыз}
Rewrite(g); { g айнымалымен байланысқан файлды жазу үшін ашамыз}
Writeln (g,x) ; {Файлға қорытындысын жазамыз}
close(g); {Файлды жабамыз}
end.

Кіріс файлы A.in ді сол программа жұмыс істеп тұрған жерге создать етеміз де оның ішіне сандарын жазып сақтап қоямыз. Ал a.out ты программа жазып шығарады да ішін ашып қорытындысын жазады.

2-есеп. «а» әрпін еселеу арқылы Murat файлын оқыңдар.

Файл аты: Murat.txt

res.txt

Ata Ana Ara Sana

Almaty

A s t a n a

Kazahstan

AAtaa AAnaa AAraa Saanaa

AAlmaaty

AA s t aa n aa

Kaazaahstaan

program prog_2;

var f1, f2 : text; x : char;

begin

assign(f1,'Murat.txt');

reset(f1);

assign(f2, 'res.txt ');

rewrite(f2);

while not eof(f1) do

begin

read(f1, x);

if (x = 'A') or (x = 'a') then write(f2, x+x)

else write(f2, x)

end;

writeln;

close(f1);

close(f2)

end.

Есепті шешу алгоритмі:

1. Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.

2. Murat файлын f1 файлдық айнымалымен байланыстырамыз және оны оқу үшін ашамыз.

3. f2 айнымалысын стандартты шығару құрылғысымен байланыстырамыз да оны жауапқа шығару үшін ашамыз.

4. f1 файлының элементтерін оқитын және оларды f2 файлына жазатын цикл ұйымдастырамыз. Ол цикл eof(f1) функциясының көмегімен f1 файлының соңы табылғанша орындалады.

5. Егер «А» немесе «а» әрпі кездессе ол жазу кезінде еселенеді.

6. Екі файлды да жабамыз.

Айнымалылар:

F1, f2 -текстік файлдар;

х - файл элементі.

Өңделген файлы мына түрде жауапқа шығарылады. Әрбір «а» немесе «А» әрпі екі рет жазылады.

3-есеп. Файлын оқыңдар және «а» әрпін санаңдар.

Файл аты: Murat.txt

res1.txt

Ata Ana Ara Sana

Almaty

A s t a n a

Kazahstan

16

program prog_3;

var f1,f2 : text;

x : char;

k : integer;

begin

k := 0;

assign(f1,'Murat.txt');

reset(f1);

assign(f2, 'res1.txt ');

rewrite(f2);

while not eof(f1) do

begin

read(f1, x);

if (x='A') or (x='a') then k :=k+1;

end;

writeln(f2,'a әрпінің саны:=', k);

close(f1);close(f2);

end.

Есепті шешу алгоритмі:

1. Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.

2. Murat файлын f1 файлдық айнымалымен байланыстырамыз және оны оқу үшін ашамыз.

3. f1 файлының элементтерін оқитын және «а» әрпін санайтын цикл ұйымдастырамыз. Ол цикл, eof(f1) функциясының көмегімен f1 файлының соңы табылғанша орындалады.

4. Нәтижені жауапқа шығарамыз.

5. Файлды жабамыз.

Айнымалылар:

f1, f2 - текстік файлдар;

х - файл элементі;

к - әріптің санын анықтау.

Жұмыс нәтижесі:

А әрпінің саны:=16.

4 есеп. Төменде арифметикалық прогрессияның бірінші мүшесін есептеу формуласымен шығарылатын есептің бір үлгісі көрсетілген.

Есеп. Ағаштарды кесу

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

input.txt

Шығару файлына аты:

output.txt

Бір тестке берілетін

жұмыс уақыты:

1 секунд

Ақпараттық жадтың

максимальды көлемі:

64 мегабайт

Флатландия королі сарайының алдында өсіп тұрған бірнеше ағашты кесуі керек болды. Король сарайының алдында бірдей арақашықтықта, бір қатарға N ағаш егілген. Ағаштар кесілгеннен кейін, сарай алдында арақашықтығы бірдей М ағаш қалуы керек. Ағаштарды кесудің неше амалы бар екенін білу үшін корольге көмектесіңіз.

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

Енгізілетін мәліметтер форматы

Енгізу файлы INPUT.TXT екі бүтін саннан тұрады, M және N (0 <= M <= N <= 1000).

Шығару мәліметтерінің форматы

Шығару файлы OUTPUT.TXT бір ғана сан - ол ізделініп отырған амалдар саны.

Енгізу және шығару файлдарының үлгісі

input.txt

output.txt

5 3

4

Тапсырманы шешуге арналған қысқаша әдістемелік нұсқау:

Кесілген ағаштардың өзара қашықтығын есептейміз. Егер ол d тең болса, онда n - d(m - 1) - m + 1 ағашты кесу амалы бар. Барлық d бойынша қосындыны есептеп, жауапты аламыз.

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

1- нұсқа (цикл арқылы)

var

n, m : longint;

i, d, s : longint;

input, output: text;

begin

Assign(input,'input.txt');

Reset(input);

Assign(output,'output.txt');

Rewrite(output);

Read(input,n,m);

s := 0;

if m = 0 then

s := 1

else

if m = 1 then

s := n

else

for d := 1 to (n-1) div (m-1) do

inc(s,n-(m-1)*d);

Write(output,s);

Close(input);

Close(output);

end.

2- нұсқа (циклсіз)

var

n, m ,k: longint;

i, d, s : longint;

input, output: text;

begin

Assign(input,'input.txt');

Reset(input);

Assign(output,'output.txt');

Rewrite(output);

read(input,n,m);

if m=0 then

s:=1

else

if m=1 then

s:=n

else

begin

k:=(n-1) div (m-1);{прогрессия мүшелерінің саны}

d:=m-1;{прогрессия қадамы}

s:=(2+(k-1)*d)*k div 2;{арифметикалық прогрессияның бірінші мүшесін есептеу формуласы}

end;

write(output, s);

Close(input);

Close(output);

end.

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


Пайдаланылған әдебиеттер

1. Daryn.kz. Дарын Республикалық ғылыми-практикалық орталығының сайты.

2. Сәлғожа И.Т., Халикова К.З., Гусманова Ф.Р. Есеп оқушылардың шығармашылық қабілетін дамыту құралы ретінде. «Қазақстан жоғары мектебі» Ғылыми журнал, №2. 2010.

3. Олимпиадные задачи по программированию. Стивен С., Мигель А. 2005. Москва.

4. Т.К.Досмайлов. Программалау тілі Паскаль. Алматы, 1996ж

5. studfiles.ru/preview/3545285/page:6/

6. youtube.com/watch?v=W0GZZqOtzVo








© 2010-2022