Смекни!
smekni.com

Лекции по информатики 2 (стр. 36 из 43)

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

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

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

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

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

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

Тест 1:

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

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

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

отличники:

Петрова Катя

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

Иванов Саша

Петрова Катя

Тест 2:

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

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

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

отличники:

отсутствуют

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

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

Тест 3:

Сидоров Алеша 5 3 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 точки».

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

х у
0 0
0 3
4 0
5 10

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

Сценарий

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


<х1> <у1>