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

Разделы: Информатика

Класс: 10


Раздел программы: Программирование обработки информации (по модели 2ч. в неделю

Методическая информация

Тип урока: комбинированный.


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

  • личностные: алгоритмическое мышление, необходимое для профессиональной деятельности в современном обществе;
  • метапредметные: умение выделять циклические алгоритмы и подпрограммы в различных задачах;
  • предметные: представления об алгоритмической конструкции «цикл», о цикле с заданным условием продолжения (окончания) работы, о цикле с заданным числом повторений; о конструировании программ с процедурами.

Время реализации урока: 2х45мин

Оборудование: ПК учителя, мультимедийный проектор, экран, ПК учащихся.

Особенности изложения содержания урока: Данная методическая разработка актуальна для учителей информатики, работающих в 10-х классах по УМК И.Г.Семакина в соответствии с ФГОС.

ХОД УРОКА

1. Организационный момент

Приветствие и проверка готовности учащихся к уроку.

2. Постановка цели урока

Презентация http://prezi.com/kfmla23 ptpf_/?utm_campaign=share&utm_medium=copy (слайд 1-2).

3. Актуализация знаний и проверка усвоения изученного материала

В начале занятия повторим устно пройденный материал по вопросам

  1. Что такое цикл?
  2. Сравните цикл с переменной и цикл с условием. Какие преимущества и недостатки есть у каждого из них?
  3. Что означает выражение «цикл с предусловием»?
  4. В каком случае цикл с предусловием не выполняется ни разу?
  5. В каком случае программа, содержащая цикл с условием, может зациклиться?
  6. В каком случае цикл с переменной не выполняется ни разу?
  7. Верно ли, что любой цикл с переменной можно заменить циклом с условием? Верно ли обратное утверждение?

4. Проверяем домашнее задание

Написать программу, которая реализует алгоритм Евклида (вычисление наибольшего общего делителя (НОД) двух натуральных чисел).

Рисунок 1

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

Если вопросов по решению этого номера нет, то можно заполнить таблицу, используя авторский ресурс Приложение1.

5. Выполняем задание на оптимизацию имеющегося алгоритма Евклида

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

Рисунок 3

Программа решает задачу за меньшее число шагов

6. Добавьте в решение двух предыдущих задач вычисление шагов цикла

Используя полученные программы, вычислите количество шагов цикла и заполните таблицу.

a

64168

358853

6365133

17905514

549868978

b

82678

691042

11494962

23108855

298294835

НОД(a,b)

1234

1111

171

3421

17

шаги-1

12

22

29

56

265

шаги-2

4

6

13

8

14

7. Изучение нового материала. Процедуры

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

Описание процедуры имеет следующий формат:

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

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

Результат выполнения процедуры – это одно или несколько значений. Оно (или они) передается в основную программу как значение ее параметра. При вызове процедуры ее формальные параметры заменяются фактическими в порядке их следования.

Формальные параметры делятся на два вида:

– параметры-переменные (они передаются тогда, когда необходимо передать новые значения в точку вызова процедуры из программы, т.е. это результирующие параметры, записываются следующим образом: var <список переменных>:<тип>);

– параметры-значения (указываются так:  <список переменных>:<тип>; здесь идет передача по значению, т.е. передается только копия значения этих параметров).

Рассмотрим следующую задачу: даны два натуральных числа a и b. Требуется определить наибольший общий делитель трех величин: a + b, a2 + b2, a·b.
Идея решения очевидна. Нужно найти НОД двух величин, а потом НОД полученного значения и третьего числа.

Рисунок 4

В представленной задаче обмен аргументами и результатами между основной программой и процедурой производится через параметры. Здесь M и N являются параметрами-значениями (это аргументы процедуры),  а K – параметр-переменная (в ней получается результат работы процедуры). В обоих обращениях к процедуре соответствующим фактическим параметром является переменная С. Через эту переменную основная программа получает результат.
Но можно предложить и другой вариант программы, решающий эту задачу с использованием процедуры без параметров.

Рисунок 5

Здесь все переменные являются глобальными. Переменные M и N, используемые в процедуре, получают свои значения через оператор присваивания в основной программе и изменяют значения в подпрограмме. Результат получается в глобальной переменной K и выводится на экран.

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

8. Практическая работа

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

Пример:

Введите два натуральных числа:

10 15

НОД(10,15)=5

НОК(10,15)=30

2. Дана дробь  (-100 ≤ а ≤ 100, 0 < b ≤ 100). Требуется ее сократить, т.е. записать это же число в виде , где с – целое число, d – натуральное и минимально возможное [5].

Пример:

a и b

c и d

3   6

1   2

-2   5

-2   5

Подсказка. Чтобы сократить дробь, нужно разделить ее числитель и знаменатель на их наибольший общий делитель. НОД (a,b) – это натуральное число, не превосходящее a и b, т.е. по условию не превосходящее 100. Его можно найти, перебирая все натуральные числа от 100 до 1 до тех пор, пока не встретится число, на которое делится и a, и b.

9. Подведение итогов урока. Рефлексия

Учитель отмечает учеников, активно работающих на уроке. В качестве результата формирует таблицу следующего вида (авторский ресурс Приложение2).

Домашнее задание: §23 №6,7 с.163.