Студопедия — Олимпиадные задачи по информатике
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Олимпиадные задачи по информатике






 

Особый интерес у студентов и школьников, увлекающихся ин­форматикой, вызывают олимпиадные задачи - наиболее сложные задачи из курса информатики, с помощью которых в форме сорев­нования выявляются наиболее талантливые и способные учащиеся.

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

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

Особенностью олимпиад по информатике является то, что решение олимпиадных задач и выполнение конкурсных заданий проводится исключительно на ЭВМ. Второй особенностью олимпиад по инфор­матике в силу использования персональных компьютеров является форма проведения олимпиад.

В 1995 году по инициативе Международной академии информати­зации была проведена первая сетевая олимпиада, в которой приняло участие более 200 учащихся Москвы и Московской области. Нова­цией этой олимпиады было то, что задачи и результаты их решения передавались с помощью электронной почты, а оценка составленных программ проводилась на ЭВМ с использованием заранее подготов­ленных тестов.

Победителям и призерам этой олимпиады, решившим наиболь­шее число задач с наименьшим числом ошибок, было предложено поступление без экзаменов в Московский институт электроники и математики (МИЭИ) для обучения по специальностям в области информатики и вычислительной техники.

Примеры олимпиадных задач по информатике в других уни­верситетах и вузах Российской Федерации, которые засчитывают результаты побед в региональных, российских и международных олимпиадах по информатике, можно найти в Интернете по запросу «олимпиада информатики» с помощью поисковых систем Апорт, Ремблер или Яндекс. В 1999 году таких вузов было более сорока.

Ниже приводятся тексты задач первого тура первой сетевой олим­пиады с указанием максимального числа баллов за решение этих задач, а также примеры программ их решения на языке Basic.

Оценки за решение задач проставлялись по следующей методике:

1) при правильных результатах на всех тестах 100% баллов; 2) при получении правильного решения хотя бы на одном тесте 40% баллов, а за результаты на остальных (n - 1)-м тестах добавляется 60%/(n - 1) баллов; 3) при неправильных результатах на всех тестах или отсутст­вии программы оценка не ставилась.

На первом туре первой сетевой олимпиады были предложены четыре задачи информационно-логического и геометрического со­держания со следующими оценками сложности, определенными экспертами:

задача 1 («Экзамены») - 50 баллов;

задача 2 («Слова») - 100 баллов;

задача 3 («4 точки») -150 баллов;

задача 4 («Ломаная») - 250 баллов.

Более 120 участников из 200 представили решения задач. Из них более 20 представили решения трех задач, девять участников пред­ложили решения четырех задач. Правильное решение четырех задач представил только один участник, но даже и у него в последней четвертой задаче программа не прошла все тесты.

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

Рассмотрим формулировки задач, проверочные тесты и правильные решения в форме программ на языке Basic. Первая задача относится к классу информационно-логических.

 

Задача 1. «Экзамены».

Среди N абитуриентов, сдававших экзамены по информатике, математике и языку, выбрать всех отличников и всех учащихся, на­бравших в сумме не меньше проходного балла. Данные о проходном балле вводятся с клавиатуры, а данные о результатах сдачи экзаме­нов представлены таблицей:

 

фамилия имя информатика математика язык
Иванов Саша      
Петрова Катя      
Сидоров Алеша      

 

Приведем проверочные тесты и правильные результаты:

Тест 1:

Иванов Саша      
Петрова Катя      
Сидоров Алеша      

 

проходной балл =? 12

 

Правильные результаты:

отличники:

Петрова Катя

не меньше проходного:

Иванов Саша

Петрова Катя

 

Тест 2:

Иванов Саша      
Сидоров Алеша      

проходной балл =? 12

 

Правильные результаты:

отличники:

отсутствуют

не меньше проходного:

Иванов Саша 4 4 4

Тест 3:

Сидоров Алеша      

проходной балл =? 14

Правильные результаты:

отличники:

отсутствуют

не меньше проходного:

отсутствуют.

В приведенных тестах анализируются различные логические ситуации с отсутствием «отличников» или «успешно» сдавших экза­мены. При составлении программы эти ситуации можно явно преду­смотреть в сценарии диалога с ЭВМ:

Сценарий

оценки учащихся:

< фам> < имя> < мат> < инф> < язык> *

………………………………….

проходной балл=? < b1>

отличники:

< фам> < имя> *

……………

отсутствуют

не меньше проходного:

< фам> < имя> < sum> *

……………..

отсутствуют

 

ПрограммаАлгоритм

' результаты экзаменов алг «результаты экзаменов»

cls нач

? «оценки учащихся:» вывод («оценки учащихся:»)

do цикл

read fm$, nm$, mt, in, zk ввод fm$, nm$, mt, in, zk

if fm$ = «» then exit do если fm$ = «» то выход

? fm$, nm$, mt, in, zk вывод (fm$, nm$, mt, in, zk)

loop кцикл

input «проходной балл=», b1 запрос («проходной балл=», b1)

restore ocenki перезагрузка_ oценки

? «отличники:» вывод («отличники:»)

n = 0 п = 0

do цикл

read fm$, nm$, mt, in, zk ввод fm$, nm$, mt, in, zk

if fm$ = «» then exit do если fm$ = «» то выход

if mt=5 and in=5 and zk=5 then если mt=5 и in = 5 и zk=5 то

? fin$, nm$ вывод (fm$, nm$)

n = n + 1 n = n + 1

end if кесли

loop кцикл

if n=0 then? «отсутствуют» если п=0 то вывод(«отсутствуют»)

restore ocenki перезагрузка-оценок

? «не меньше проходного:» вывод («не меньше проходного:»)

n = 0 п = 0

do цикл

read fm$, nm$, mt, in, zk ввод fm$, nm$, mt, in, zk

if fm$ = «» then exit do если fm$ = «» то выход

sum = mt + in + zk sum = mt + in + zk

if sum > = hi then если sum > = bl то

? fm$, nm$, sum вывод (fm$, nm$, sum)

n = n + 1 n = n + 1

end if кесли

loop кцикл

if n = 0 then? «отсутствуют» если п = 0 то вывод («отсутствуют»)

end кон

 

ocenki: 'оценки учащихся

data «Иванов», «Саша», 4, 4, 3

data «Петрова», «Катя», 5, 5, 5

data «Сидоров», «Алеша», 5, 3, 3

data «», «», 0, 0, 0

Рассмотренная задача имеет чисто квалификационный характер проверки знаний информатики по школьной программе и умения самостоятельно составлять алгоритмы и программы решения на ЭВМ простейших информационных задач. С этой задачей справилось большинство участников олимпиады. Однако далеко не все преду­смотрели исключительные ситуации и в результате многие из них потеряли определенную часть баллов на указанных тестах.

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

 

Задача 2. «Слова».

Для фразы на русском языке, в которой нет знаков препинания, а слова отделяются одним единственным пробелом, организовать циклическую перестановку слов.

Исходная фраза:

 

ВЕЧЕРАМИ МЫ СМОТРИМ ТЕЛЕВИЗОР

 

Циклическая перестановка слов:

 

МЫ СМОТРИМ ТЕЛЕВИЗОР ВЕЧЕРАМИ

СМОТРИМ ТЕЛЕВИЗОР ВЕЧЕРАМИ МЫ

ТЕЛЕВИЗОР ВЕЧЕРАМИ МЫ СМОТРИМ

ВЕЧЕРАМИ МЫ СМОТРИМ ТЕЛЕВИЗОР

 

Сценарий

Исходная фраза:

< строка>

Перестановка слов:

< строка'> *

 

Проверочные.тесты:

 

Тест 1: Исходная фраза:

утром был дождь

Правильные результаты:

Перестановка слов:

был дождь утром

дождь утром был

утром был дождь

 

Тест 2: Исходная фраза:

правильно

Правильные результаты:

Перестановка слов:

правильно

Программа Алгоритм

¢ перестановка слов алг «перестановка слов»

cls нач

? «Исходная фраза:» вывод («Исходная фраза:»)

line input st$ ввод-строки (st$)

? st$ вывод st$

In = len(st$) in = len(st$)

? «Перестановка слов:» вывод («Перестановка слов:»)

s$ = st$ s$ = st$

do цикл

k = instr(s$, «») k = instr(s$, «»)

if k = 0 then если k = 0 то

? s$ вывод (s$)

exit do выход

end if кесли

lf$ = left$(s$, k-l) lf$ = left$(s$, k-l)

rt$ = right(s$, ln-k) rt$ = right(s$, ln-k)

ns$ = rt$ + «» + lf$ ns$ = rt$ + «» + lf$

? ns$ вывод (ns$)

if ns$ = st$ then exit do при ns$ = st$ выход

s$ = ns$ s$ = ns$

loop кцикл

end кон

Третью задачу можно отнести к числу комбинаторных задач, реше­ние которых заключается в организации перебора различных вари­антов данных.

 

Задача 3. «4 точки».

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

 

 

х у
   
   
   
   

 

Составление алгоритмов и программы для решения этой задачи также полезно начать с составления сценария диалога.

Сценарий

координаты точек:

           
     
 


< х1> < у1>

… … …

< х4> < у4>

максимальный маршрут:

< ml> < m2> < m3> < m4>

длина = < mх>

минимальный маршрут:

< n1> < n2> < n3> < n4>

длина = < mn>

 

Простейший способ решения этой задачи заключается в орга­низации перебора всех замкнутых маршрутов, проходящих через заданные точки и выбора среди минимального и максимального по длине маршрутов.

 

Программа Алгоритм

¢ мин. и макс. маршруты алг «мин. и макс. маршруты»

cls нач

n = 4 п = 4

dim x(n), y(n), r(n, n) dim x(n), y(n), r(n, n)

? «координаты точек» вывод («координаты точек»)

gosub vvdan 'ввод данных ввод-координат-точек

restore mrshrt 'маршруты загрузка-маршрутов

? «маршруты:» вывод («маршруты:»)

mr = 1*2*3 mr =1*2*3

mx = 0 тх = 0

for l = 1 to mr от l = 1 до mr

read k1, k2, k3, k4 ввод k1, k2, k3, k4

dl = r(kl, k2) + r(k2, k3) dl = r(kl, k2) + r(k2, k3)

d3 = r(k3, k4) + r(k4, kl) d3 = r(k3, k4) + r(k4, k1)

d = dl + d3 d = d1 + d3

? kl; k2; k3; k4, d вывод (k1; k2; k3; k4, d)

if mx = 0 then если тх = 0 то

mx = d: mn = d mx = d: mn = d

ml = kl: m2 = k2 ml = k1: m2 = k2

m3 = k3: m4 = k4 m3 = k3: m4 = k4

nl = kl: n2 = k2 n1 = k1: n2 = k2

n3 = k3: n4 = k4 n3 = k3: n4 = k4

elseif d > mx then инеc d > mx то

mx = d mx = d

ml = kl: m2 = k2 m1 = k1: m2 = k2

m3 = k3: m4 = k4 m3= k3: m4 = k4

elseif d < mn then инеc d < mn то

mn = d mn = d

nl = kl: n2 = k2 n1 = k1: n2 = k2

n3 = k3: n4 = k4 n3 = k3: n4 = k4

end if кесли

next 1 кцикл

? «максимальный маршрут:» вывод («максимальный маршрут:»)

? ml; m2; m3; m4 вывод (m1; m2; m3; m4)

? «длина =»; mx вывод («длина =»; mx)

? «минимальный маршрут:» вывод («минимальный маршрут:»)

? nl; n2; n3; n4 вывод (n1; n2; n3; n4)

? «длина =»; mn вывод («длина =»; mn)

end кон

vvdan: 'ввод данных алг «ввод данных»

restore tchks загрузка-точек

for k = 1 to n от k = 1 до п

read x(k), y(k) ввод x(k), y(k)

? x(k), y(k) вывод x(k), y(k)

next k кцикл

for k = 1 to n от k = 1 до п

for l = 1 to n от l = 1 до п

dx = x(k) - x(l) dx = x(k) - x(l)

dy = y(k) - y(l) dy = y(k) - y(l)

rs = dx*dx + dy*dy rs = dx*dx + dy*dy

r(k, l) = sqr(rs) r(k, l) = sqr(rs)

next 1 кцикл

next k кцикл

return кон

 

mrshrt: 'маршруты:







Дата добавления: 2014-11-12; просмотров: 616. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

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

Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия