Инфоурок Информатика Другие методич. материалыНаучная статья "Подпрограммы в ЕГЭ"

Научная статья в журнале Информатика в школе "Подпрограммы в ЕГЭ"

Скачать материал

Н. В. Андрафанова

Кубанский государственный университет, г. Краснодар

ПОДПРОГРАММЫ В ЕГЭ

Аннотация

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

Ключевые слова: подпрограмма, язык программирования, подготовка к ЕГЭ.

В ЕГЭ 2012 года по информатике и ИКТ было включено новое задание В14 повышенного уровня сложности. Проверяемые элементы содержания, указанные в спецификации КИМ ЕГЭ 2012 г.: умение анализировать программу, использующую процедуры и функции.

Требование к уровню подготовки выпускников, достижение которого проверяется на ЕГЭ: читать и отлаживать программы на языке программирования (1.1.4).

В задании В14 демонстрационного варианта ЕГЭ 2012 г. представлен алгоритм на четырех языках: Бейсик, Паскаль, Си, алгоритмический язык. Необходимо определить, какое число будет напечатано в результате выполнения алгоритма.

Для разбора задания выберем один из языков программирования  − Паскаль:

Var a,b,t,M,R :integer;

Function F(x:integer):integer;

begin

  F:=4*(x-1)*(x-3);

end;

BEGIN

  a:=-20; b:=20;

  M:=a; R:=F(a);

  for t:=a to b do

  begin

    if (F(t)<R)then begin M:=t; R:=F(t); end;

  end;

  write(M);

END.

Теоретические сведения, необходимые для выполнения задания.

1.Понятие подпрограммы.

Подпрограмма (от англ. subroutine) − это повторяющаяся группа операторов, оформленная в виде самостоятельной программной единицы, имеющая собственное имя. Подпрограмма записывается один раз, но может использоваться многократно при упоминании ее имени в тексте программы.

2.Назначение подпрограммы.

Подпрограмма появилась как средство оптимизации программы по объёму занимаемой памяти: каждая подпрограмма описывается в программе один раз, а обращаться к ней можно многократно.

Главное назначение подпрограммы ─ структуризация программы с целью удобства её читаемости и отладки.

3.Виды подпрограмм.

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

Функция (Function) ─ это подпрограмма, результат выполнения которой есть единственное (скалярное) значение, присваиваемое имени этой функции.

Процедура (Procedure) ─ это подпрограмма, имеющая любое количество входных и выходных данных.

4.Описание подпрограммы.

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

Функция

Процедура

Function <имя> (<список формальных параметров>): <тип>;

<раздел описаний функции>

begin

<раздел операторов>;

<имя>:=<выражение>

end;

Procedure <имя> (<список формальных параметров>);

<раздел описаний процедуры>

begin

<раздел операторов>

end;

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

Раздел описаний подпрограммы − это описание промежуточных величин, которые имеют смысл только внутри подпрограммы и называются локальными переменными.

Раздел операторов подпрограммы − это вспомогательный алгоритм с использованием формальных параметров.

5.Обращение к подпрограмме.

Функция

Процедура

Имя (список фактических параметров)

Имя (список фактических параметров)

Обращение к функции включается в качестве операнда в выражение, стоящее в правой части оператора присваивания.

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

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

Количество, тип, последовательность фактических параметров в обращении к подпрограмме и формальных параметров в описании подпрограммы должны совпадать.

6.Механизм выполнения подпрограммы при упоминании ее имени в разделе операторов программы.

Функция

Процедура

Отыскивается описание функции с данным именем.

Отыскивается описание процедуры с данным именем.

В теле функции формальные параметры заменяются фактическими параметрами.

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

Выполняются операторы из раздела операторов функции.

Выполняются операторы из раздела операторов процедуры.

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

Выполняется оператор, следующий за оператором вызова процедуры.

Разбор задания В14.

Вспомогательный алгоритм в задании демонстрационного варианта − это подпрограмма-функция:

Function F(x:integer):integer;

begin

  F:=4*(x-1)*(x-3);

end;

Ее описание находится в декларативной части программы.

Результатом выполнения функции является целое значение (integer), присваиваемое имени функции − F. Формальный параметр функции x (аргумент функции) является целочисленным параметром.

Из основной программы происходит обращение к функции F в цикле с параметром t, принимающим последовательно целые значения аа+1, а+2,…, b:

for t:=a to b do

  begin

    if (F(t)<R)then begin M:=t; R:=F(t); end;

  end;

Следовательно, значение функции F(t) вычисляется в программе многократно:

t

20

19

18

19

20

F

1932

1760

1596

1152

1292

Примерное время выполнения задания − 6 мин. Однако, составление таблицы значений функции займет больше времени, так как придется вычислить 41 значение функции. Следовательно, необходимо проанализировать работу цикла с параметром.

Анализ тела цикла с параметром показывает, что в цикле расположен условный оператор:

if (F(t)<R)then begin M:=t; R:=F(t); end;

В условии оператора сравниваются два значения функции: текущее F(t) и R, первоначальное значение которого равно F(a). В случае истинности условия F(t)<R переменная R принимает новое значение − значение функции в текущей точке t: M:=t; R:=F(t). Очевидно, что в цикле с параметром t определяется наименьшее значение функции F(t) на отрезке [−20; 20].

Рассмотрим подробнее функцию F(x)=4*(x−1)*(x−3). Раскрыв скобки, получаем: F(x)=4·x2−16·x+12. Таким образом, необходимо найти наименьшее значение квадратичной функции F(x) на отрезке [−20; 20].

Графиком данной квадратичной функции является парабола, ветви которой направлены вверх, и, следовательно, наименьшее значение функция принимает в вершине параболы: , F(2)=4·(2−1)·(2−3)=−4. Результатом выполнения алгоритма является значение аргумента t=2, при котором функция принимает наименьшее значение F(2)=−4.

Ответ: 2.

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

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

Какие модификации данной задачи можно предложить школьникам для подготовки к ЕГЭ?

1. Определите, какое число будет напечатано в результате выполнения алгоритма:

Var a,b,t,M,R :integer;

Function F(x:integer):integer;

begin

  F:=4*(x-1)*(x-3);

end;

BEGIN

  a:=5; b:=35;

  M:=a; R:=F(a);

  for t:=a to b do

  begin

    if (F(t)<R)then begin M:=t; R:=F(t); end;

  end;

  write(R);

END.

Решение. Необходимо найти наименьшее значение функции F(x)=4*(x−1)*(x−3)=
=4·
x2−16·x+12 на отрезке [5; 35]. График функции − парабола, ветви которой направлены вверх, абсцисса вершины параболы  не принадлежит данному отрезку, поэтому необходимо найти значения функции на концах отрезка и выбрать из них наименьшее. Очевидно, что наименьшее значение функция принимает при t=5, F(5)=4*(5−1)*(5−3)=32.

Ответ: 32.

2. Определите, какое число будет напечатано в результате выполнения алгоритма:

Var a,b,t,M,R :integer;

Function F(x:integer):integer;

begin

  F:=4*(x-1)*(x-3);

end;

BEGIN

  a:=−20; b:=20;

  M:=a; R:=F(a);

  for t:=a to b do

  begin

    if (F(t)>R)then begin M:=t; R:=F(t); end;

  end;

  write(R);

END.

Решение. Необходимо найти наибольшее значение функции F(x)=4*(x−1)*(x−3)=
=4·
x2−16·x+12 на отрезке [−20; 20]. График функции − парабола, ветви которой направлены вверх, абсцисса вершины параболы  принадлежит данному отрезку, но в ней функция достигает наименьшего значения. Поэтому необходимо найти значения функции на концах отрезка и выбрать из них наибольшее.

При t=−20, F(−20)=4*(−20−1)*(−20−3)=1932.

При t=20, F(20)=4*(20−1)*(20−3)=1292.

Ответ: 1932.

3. Определите, какое число будет напечатано в результате выполнения алгоритма:

Var a,b,t,M,R :integer;

Function F(x:integer):integer;

begin

  F:=4*(x-1)*(x-3);

end;

BEGIN

  a:=−20; b:=3;

  M:=a; R:=F(a);

  for t:=a to b do

  begin

    if (F(t)>R)then begin M:=t; R:=F(t); end;

  end;

  write(R);

END.

Решение. Необходимо найти наибольшее значение функции F(x)=4*(x−1)*(x−3)=
=4·
x2−16·x+12 на отрезке [−20; 3]. График функции − парабола, ветви которой направлены вверх, абсцисса вершины параболы  принадлежит данному отрезку, но в ней функция принимает наименьшее значение. Очевидно, что функция принимает наибольшее значение при t=−20, так как при t=3 значение функции равно 0.

При t=−20, F(−20)=4*(−20−1)*(−20−3)=1932.

Ответ: 1932.

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

1. Оформить в виде подпрограммы-функции алгоритм вычисления тангенса tgx.

Решение.

Function tg (x:real):real;

Begin

     tg:=sin(x)/cos(x)

End;

tg − имя функции и ее результат;

x − формальный параметр (аргумент функции).

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

Решение.


Function sh (x:real):real;

Begin

     sh:=(exp(x)-exp(-x))/2

End;

sh − имя функции и ее результат;

x − формальный параметр (аргумент функции).

3. Составить программу вычисления значения Z по формуле Z=sh(xtg(x+1)−tg2(2+sh(x−1)), используя для вычисления приближенного значения тангенса  и гиперболического синуса подпрограммы-функции.

Решение.

Var x, z: real;

Function sh (x:real):real;

Begin

sh:=(exp(x)-exp(-x))/2

End;

Function tg (x: real):real;

Begin

     tg:=sin(x)/cos(x)

End;

BEGIN

Read (x);

z:=sh(x)*tg(x+1)−sqr(tg(2+sh(x−1)));

write(z)

END.

4.Оформить в виде подпрограммы-функции вычисление sign по формуле:

.

Function sign (x:real):shortint;

Begin

if x=0

then sign:=0

else if x>0

     then sign:=1

     else sign:=1

End;

5.Вычислить значение выражения z(x)=(sign(x)+sign(y))·sign(x+y), используя для вычисления sign подпрограмму-функцию.

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

Function fsin (n:integer; x:real):real;

Var i:integer; P:real;

Begin

P:=1;

For i:=1 to n do[*]

P:=P*(1-sqr(x)/sqr(i*pi));

fsin:=P*x

End;

7. Составить программу вычисления значения функции y=sin x, используя равенство , для любых x и n, вводимых с клавиатуры, и стандартную функцию sin (x). Вычисление y=sin x по формуле оформить в виде подпрограммы-функции. Оценить погрешность вычислений, сравнив результат обращения к подпрограмме-функции с результатом обращения к стандартной функции sin (x). Оба результата и модуль их разности вывести на печать.

8.Оформить в виде подпрограммы-функции вычисление расстояния между двумя точками на плоскости по формуле .

Function Dist (x1,y1,x2,y2:real):real;

Begin

Dist:=sqrt(sqr(x1-x2)+sqr(y1-y2))

End;

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

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

11.Оформить в виде подпрограммы-функции алгоритм вычисления факториала натурального числа k. (Факториалом натурального числа k называют произведение первых k натуральных чисел: 1·2·3·…·k).

Function Fact (k:byte):longint;

Var i:byte;

Begin

fact:=1;

For i:=2 to k do

Fact:=Fact*i;

End;

12.Оформить в виде подпрограммы-функции алгоритм вычисления экспоненты с погрешностью ε=10−4, используя для вычисления разложение экспоненты в степенной ряд: .

Function fexp (n:integer; x:real):real;

Var S, t, eps, fi:real;

Begin

S:=0; n:=0; t:=1; eps:=0.0001;

While abs(t)>eps do

Begin

S:=S+t;

n:=n+1;

fi:=x/n;

t:=t*fi

End;

fexp:=S

End;

13.Определить значение функции , используя для вычисления экспоненты:

-    разложение в степенной ряд, оформленное в виде подпрограммы-функции;

-    стандартную функцию exp(x).

Оценить погрешность вычислений, сравнив результат обращения к подпрограмме-функции с результатом обращения к стандартной функции exp (x). Оба результата и модуль их разности вывести на печать.

Литература

1.Андрафанова Н. В. Методика изучения итерационных циклических процессов // Информатика и образование. 2010. №9.

2.Демонстрационный вариант КИМ  ЕГЭ 2012 года по информатике и ИКТ. ФИПИ, http://www.fipi.ru.

3.Кодификатор элементов содержания и требований к уровню подготовки выпускников общеобразовательных учреждений для проведения в 2012 году единого государственного экзамена по информатике и ИКТ. ФИПИ, http://www.fipi.ru.

4.Новичков В. С., Панфилова Н. И., Пылькин А. Н. Алгоритмизация и программирование на Турбо Паскале: Учебное пособие. – М.: Горячая линия – Телеком, 2005.

5.Программирование на языке Паскаль: Задачник / Под ред. О. Ф. Усковой. СПб.: Питер, 2005.

6.Спецификация КИМ ЕГЭ 2012 года по информатике и ИКТ. ФИПИ, http://www.fipi.ru.

 

 

 

Андрафанова Наталия Владимировна, кандидат педагогических наук, доцент, доцент кафедры информационных образовательных технологий факультета математики и компьютерных наук Кубанского государственного университета

Адрес: 350040, г. Краснодар, ул. Ставропольская 149, тел. (861) 219-95-81, e-mail: nat_drofa@mail.ru

 

 

N. V. Andrafanova

Kuban State University, Krasnodar

Subroutines in the SFE (state final examination)

Abstract

This year a new task of higher level was included into the state final examination in informatics and ICT. This task focuses on proficiency test of graduators to analyze the program using procedures and functions. The article presents education material about subroutines-functions which is the main and necessary tool of any programming language.

Keywords: subroutine, programming language, preparing for the state final examination.  



[*] Запись i:=1(1)n в блоке модификации графической записи подпрограммы fsin означает: i изменяется от начального значения 1 до конечного значения n с шагом 1.

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Научная статья "Подпрограммы в ЕГЭ""

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Администратор баз данных

Получите профессию

Секретарь-администратор

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 664 068 материалов в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 16.09.2015 967
    • DOCX 169 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Андрафанова Наталия Владимировна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    • На сайте: 8 лет и 7 месяцев
    • Подписчики: 0
    • Всего просмотров: 5548
    • Всего материалов: 3

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Копирайтер

Копирайтер

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Информатика: теория и методика преподавания с применением дистанционных технологий

Учитель информатики

300 ч. — 1200 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Этот курс уже прошли 18 человек

Курс профессиональной переподготовки

Математика и информатика: теория и методика преподавания в образовательной организации

Учитель математики и информатики

500/1000 ч.

от 8900 руб. от 4150 руб.
Подать заявку О курсе
  • Сейчас обучается 685 человек из 79 регионов
  • Этот курс уже прошли 1 809 человек

Курс профессиональной переподготовки

Информационные системы и технологии: теория и методика преподавания в профессиональном образовании

Преподаватель информационных систем и технологий

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Этот курс уже прошли 13 человек

Мини-курс

Методология проектного менеджмента и стратегического планирования в инвестициях

3 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Цифровые валюты и правовое регулирование

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Родительство

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 20 человек из 12 регионов
  • Этот курс уже прошли 11 человек