Решение олимпиадных задач Для эффективной подготовки школьников к олимпиадам по программированию необходимы четыре условия




Скачать 81.24 Kb.
Дата 28.08.2016
Размер 81.24 Kb.

Калашникова Е.В.,
МБОУ «Чернянская средняя общеобразовательная школа №1 с УИОП»


Дорогу осилит идущий


Основные направления при подготовке учащихся к олимпиаде по информатике. Решение олимпиадных задач
Для эффективной подготовки школьников к олимпиадам по программированию необходимы четыре условия:

  1. достаточный уровень логического мышления;

  2. трудолюбие и целеустремленность школьника;

  3. достаточное время для подготовки к олимпиаде;

  4. квалифицированное руководство подготовкой.

Выделяют три уровня подготовленности учащихся к участию в олимпиаде.


Первый уровень подготовки(муниципальный)

  • хорошее знание инструмента – языка программирования;

  • умение применять технологию проектирования программ;

  • владение технологией отладки программ;

  • знание простейших алгоритмов:

    • поиск элемента в массиве;

    • сортировка массива;

    • вычисление площади многоугольника;

    • определение положения точки относительно прямой;

    • генерация перестановок.

Второй и третий - соответствуют региональному и всероссийскому этапам.
Методика обучения

1. Изучение операторов языка программирования

2. Решение задач

Подбор задач должен быть таким, чтобы для их решения требовалось применение различных стандартных приемов или алгоритмов




  • моделирование задачи, ее формализация и подбор контрольного примера;

  • разработка алгоритма решения задачи;

    • рекомендуемой формой записи алгоритмов являются блок-схемы. В блок-схемах сочетаются наглядность и краткость записи. Технология разработки алгоритмов достаточно хорошо изучена и изложена в литературе. Основными принципами, которые следует соблюдать при разработке алгоритма, являются: проектирование "сверху-вниз" (поэтапная детализация); последовательность построения алгоритма "от главного к второстепенному"; применение типовых алгоритмических структур.

    • На начальных этапах обучения программированию разработка блок-схем должна быть обязательным шагом проектирования программы. Рисование блок-схем приучает школьников мыслить типовыми алгоритмическими структурами.

  • кодирование алгоритма средствами языка программирования.

Разные задачи можно решать с использованием разных языков программирования и систем программирования. Список допустимых языков и систем программирования устанавливается предметно-методической комиссией по информатике соответствующего этапа до начала проведения олимпиады с учетом рекомендаций центральной предметно-методической комиссией по информатике.

Основная группа гарантирует возможность полного решения олимпиадных задач муниципального этапа. Дополнительная группа языков и сред программирования формируется региональной предметно-методической комиссии самостоятельно.

Таблица 1



Язык

Транслятор

Среда программирования

Операционная система

C/C++

GNU C/C++ 4.2

CodeBlocks 10.05, Eclipse CDT

Любая

C/C++

Microsoft Visual C++ 2005

Встроенная

MS Windows

Object Pascal

Free Pascal 2.4.0

Lazarus 0.9.30

Любая

Object Pascal

Borland/Embarcadero Delphi 7.0

Встроенная

MS Windows

Состав дополнительной группы может формироваться путем выбора языков и сред программирования, представленных в таблице 2, а также дополняться с учетом потребностей муниципального этапа олимпиады.

Таблица 2



Язык

Транслятор

Среда программирования

Операционная система

Borland C/C++

Borland C++ 3.1

Встроенная

MS Windows

C#

Microsoft Visual C# 2005

Встроенная

MS Windows

C#

Mono 2.0

MonoDevelop

Любая

Borland Pascal

Borland Pascal 7.0

Встроенная

MS Windows

Visual Basic

Microsoft Visual Basic 2005

Встроенная

MS Windows

Python 3

Python3.1

IDLE или Wing IDE

Любая

Java

Oracle JDK 1.6

Eclipse JDT

Любая

Примечание: Допускается использование более поздних версий ПО по сравнению с указанными в таблице.

Решение задач
Задания для муниципального этапа Всероссийской олимпиады школьников

по информатике в 2010-2011 учебном году

7-8 класс

Задача 1. Золотой песок

Входной файл – gold.in

Выходной файл – gold.out

Время тестирования – 1 секунда.

Максимальная оценка – 100 баллов.

Имеется три вида золотого песка различной стоимости. Один килограмм песка первого вида стоит А1 рублей, второго вида - А2 рублей, а третьего - A3 рублей. Требуется заполнить этими видами песка три емкости, вмещающими B1, B2 и B3 килограммов золотого песка так, чтобы выполнялись условия:

Разработать программу, вычисляющую максимальную стоимость золотого песка в емкостях.

Входной файл

Входной файл содержит 6 натуральных чисел А1, А2, А3, B1, B2, B3, записанных в одной строке через пробел. Все числа не превосходят 200.



Выходной файл

Выходной файл должен содержать единственное целое число – стоимость золотого песка в трех емкостях в рублях.



Пример:

gold.in

gold.out

1 2 3 3 2 1

14

var A1,A2,A3,B1,B2,B3:longint;

S:longint; F1,F2:text;

Procedure Obmen(var a,b: longint);

var r:longint;

begin


if b>a then begin

r:=a; a:=b; b:=r;

end;

end;
begin



Assign(F1,'Gold.in');

reset(F1);

readln(F1,A1,A2,A3,B1,B2,B3);

Close(F1);


Obmen(A1,A2); Obmen(A2,A3); Obmen(A1,A2);

Obmen(B1,B2); Obmen(B2,B3); Obmen(B1,B2);

S:=A1*B1+A2*B2+A3*B3;
Assign(F2,'Gold.out');

rewrite(F2);

writeln(F2,S);

Close(F2);

end.

9-11 класс

Задача 1. Сортировка букв





Входной файл – sort.in

Выходной файл – sort.out

Время тестирования – 2 секунды

Максимальная оценка – 100 баллов

Дан текст, состоящий из N случайных строчных букв латинского алфавита, имеющих значение от буквы a до z. Необходимо упорядочить эти буквы по алфавиту (должно быть выполнено условие abcdz).

Входной файл

В первой строке файла содержится число N (1  N  500000).

Во второй строке N случайных строчных букв латинского алфавита, имеющих значение от буквы a до z без разделителей.

Выходной файл

В первой строке файла содержится число N (1  N  500000).

Во второй строке N этих букв, упорядоченных по алфавиту без разделителей.

Пример


Sort.in

Sort.out

13

azbzcdddcdbzd

13

abbccdddddzzz

program z_1;

var f1,f2:text;

c,i:char;

cn: array['a'..'z'] of longint;

j,N:longint;

begin

Assign(f1,'sort.in'); {Связываем переменную f1с файлом}



reset(f1); {Открываем файл для чтения}

readln(f1,N); {Считываем значение N}

for i:='a' to 'z' do

cn[i]:=0;

for j:=1 to N do

begin


read(f1,c); {Считываем символ}

Inc(cn[c]); {Увеличиваем на 1 количество этих элементов}

end;

close(f1); {Закрываем файл f1}



Assign(f2,'sort.out'); {Связываем переменную f2 с файлом}

rewrite(f2); {Открываем файл для записи}

writeln(f2,N);

for i:='a' to 'z' do

for j:=1 to cn[i] do write(f2,i); {Вывод в лексикографическом порядке}

close(f2); {Закрываем файл f2}



End.


База данных защищена авторским правом ©infoeto.ru 2022
обратиться к администрации
Как написать курсовую работу | Как написать хороший реферат
    Главная страница