Заочные электронные конференции
 
     
Использование блок-схем при решении заданий части “С” ЕГЭ по информатике
Воронков Ю.В.


Для чтения PDF необходима программа Adobe Reader
GET ADOBE READER

Использование блок-схем при решении заданий части “С” ЕГЭ по информатике

Воронков Ю.В.

Нижегородский государственный лингвистический университет, Н.Новгород, Россия

Наибольшие трудности среди учащихся при решении заданий Единого государственного экзамена по дисциплине “Информатика и информационно-коммуникационные технологии” вызывает часть “С”. Во всех билетах этой части содержится четыре задания, первое из которых повышенного уровня сложности, а остальные три — высокого уровня сложности. Большинство этих заданий требуют самостоятельного написания программы (в некоторых случаях содержащих до пятидесяти строк программного кода). В литературе, касающейся подготовки к ЕГЭ, составление программ приводится весьма лаконично и, часто, школьникам достаточно трудно разобраться в приводимых программных конструкциях. В заданиях части “С” для пояснения и выработки у учащихся навыков самостоятельного написания программ очень эффективно использовать блок-схемы. В этой статье рассматривается технология решения одного типичного задания Единого государственного экзамена высокого уровня сложности, при этом пояснение дается с помощью блок-схемы.

Итак, приведем формулировку одного из заданий ЕГЭ по информатике 2009 года. На вход программе подаются сведения об учениках некоторой средней школы. В первой строке сообщается количество учеников N, каждая из следующих вводимых строк имеет следующий формат: ,

где — строка, содержащую не более 20 символов; — строка содержащая не более 15 символов; — год обучения (от 1 до 11) и заглавная буква (от “А” до “Я”) без пробела. При этом и , а также и разделены одним пробелом. Пример входной строки выглядит так: Иванов Петр 10Б.

Требуется написать как можно более эффективную программу, которая будет выводить на экран информацию о параллелях (годе обучения) с наименьшим числом учеников. Программа должна выводить на экран в первой строке количество учеников в искомых параллелях, а во второй строке — в порядке возрастания номера этих параллелей через пробел. Например,

30

1 7 11

В рассматриваемой задаче информация о фамилиях и именах учащихся для анализа и вывода нам не требуется, и, следовательно, выделять память для хранения этой информации мы не будем. Основная трудность связана с тем, что из названия класса необходимо выделить только числовую часть (отбросить букву), которую далее следует перевести в числовой формат. Блок-схему алгоритма мы приведем в трех частях (начало, основная вычислительная составляющая и, завершающая часть, которая касается вывода данных). Соединение частей поясняется соответствующими пометками “Вход…” и “Выход”. На рис. 1 представлено начало алгоритма.

Рис. 1.

Для подсчета учеников в каждой параллели мы создали масcив с именем Mass, в элементы которого изначально занесли нули. После основной части алгоритма в элементах этого массива будут сформированы необходимые данные (число учащихся в параллелях). Так, в элементе Mass[1] будет размещаться число учеников в первой параллели, в элементе Mass[2] будет размещаться число учеников во второй параллели и т.д. Блок-схема этой основной составляющая алгоритма приведена на рис. 2.

Рис. 2.

В соответствие с рис. 2 последовательно считываются и анализируются N строк. Учитывая, что фамилия и имя для данной задачи интереса не представляет, то мы просто считываем символы до обнаружения двух пробелов, которые завершают фамилию и имя учащегося. Далее в оставшейся части строки нас интересуют одна или две цифры (в зависимости от номера параллели). При этом учитывается, что если цифр две, то вес первой цифры равен 10, а второй 1. В результате при выполнении каждого прохода цикла по J в определенный элемент массива Mass добавляется единица, и после завершения фрагмента на рис. 2 мы получим заполненный необходимыми данными массив. Теперь осталось найти минимальное значение в массиве Mass и вывести номера соответствующих параллелей на экран. Это уже несложная техническая часть алгоритма, которая реализуется с помощью завершающего фрагмента, представленного на рис. 3.

Рис. 3.

На листинге 1 приведена программная реализация задачи на языке Паскаль. Этот язык программирования наиболее распространен в школах, поэтому в примере мы и выбрали его. Рассмотрению подобных заданий много внимания уделяется в книге [1], которую могу порекомендовать как педагогам, так и учащимся, собирающимся готовиться к ЕГЭ по информатике самостоятельно.

Листинг 1. Извлечение информации о параллелях

program primer;

var

Mass: array[1..11] of integer;

N,J,I,Dl,Min,Paral,Ves:integer;

S:string[3];

C:char;

begin

readln(N);

for J:=1 to 11 do

Mass[J]:=0;

for J:=1 to N do

begin

repeat

read(C);

until C=' ';

{ Считана фамилия }

repeat

read(C);

until C=' ';

{ Считано имя }

read(S);

{ Извлечена оставшаяся часть строки }

Dl:=Length(S);

Paral:=0;

Ves:=1;

for I:=Dl-1 downto 1 do

begin

Paral:=Paral+ (Ord(S[I])-Ord('0'))*Ves;

Ves:=Ves*10;

end;

Mass[Paral]:= Mass[Paral]+1;

end;

Min:=Mass[1];

for J:=2 to 11 do

if Mass[J] < Min then

Min:= Mass[J];

writeln(Min);

for J:=1 to 11 do

if Mass[J]=Min then

write(J,' ');

end.

В программе на листинге 1 мы воспользовались типовыми операторами и стандартными функциями. Основная трудность программы заключается в преобразовании текстовой информации в числовую. Это необходимо для того, чтобы выбрать соответствующий элемент массива Mass. Для решения данной проблемы мы воспользовались функцией Ord, которая выдает в качестве своего значения код символа задаваемого в качестве параметра. Учитывая, что коды цифр располагаются последовательно и плотно, то программная конструкция

Ord(S[I])-Ord('0')

приводит к формированию одной цифры в номере параллели. Если номер параллели состоит из двух цифр, то первая цифра умножается на 10 (вес цифры разряда десятков в десятичной системе счисления).

В целом по итогам статьи, можно предложить две рекомендации. Во-первых, следует посоветовать педагогам активнее использовать блок-схемы для задач части “С” ЕГЭ по информатике. А, во-вторых, порекомендовать книгу [1], где с использованием блок-схем приводится большое количество подобных программных разработок.

Литература

  1. Кашаев С.М. Шерстнева Л.В. Самостоятельная подготовка к ЕГЭ по информатике. Необходимая теория и достаточная практика. — СПб.: БХВ-Петербург, 2009.

  2. Сафронов И.К. Готовимся к ЕГЭ. Информатика. — 2-е изд. перераб. и доп. — СПб.: БХВ-Петербург, 2009.

  3. Ушаков Д.М., Юркова Т.А. Паскаль для школьников. – СПб.:Питер, 2008.

Библиографическая ссылка

Воронков Ю.В. Использование блок-схем при решении заданий части “С” ЕГЭ по информатике // III Международная научная конференция «Современные проблемы информатизации в системах моделирования, программирования и телекоммуникациях».
URL: http://econf.rae.ru/article/4639 (дата обращения: 29.03.2024).



Сертификат Получить сертификат