Технология нисходящего программирования. Решение экспериментальных задач

Разделы: Информатика, Конкурс «Презентация к уроку»


Презентация к уроку

Загрузить презентацию (605 кБ)


Цели урока:

  • углубление, обобщение, систематизация знаний учащихся по данной теме;
  • отработка навыков и выработка умений разработки процедур и функций.

Задачи урока:

образовательные:

  • закрепление умений и навыков разработки программ с использованием подпрограмм;
  • отработка навыков и выработка умений решения сложных задач с использованием подпрограмм;

развивающие:

  • развитие логического мышления;
  • формирование умения анализировать, обобщать, сравнивать задачи;

воспитательные:

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

План урока.

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

2. Актуализация знаний и умений учащихся – 5 мин.

  • Фронтальный опрос – 2 мин.
  • Проверка домашнего задания на компьютерах – 3 мин.

3. Самостоятельная работа – 2 мин.

4. Отработка навыков и выработка умений решения экспериментальных задач с использованием технологии нисходящего программирования – 16 мин.

5. Выполнение экспериментальных задач на компьютере – 10 мин.

6. Гимнастика для глаз – 1 мин.

7. Подведение итогов урока – 3 мин.

8. Рефлексия.

9. Домашнее задание – 1 мин.

Ход урока

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

Учитель. Ребята! На сегодняшнем занятии мы с вами рассмотрим решения некоторых экспериментальных задач с использованием технологии нисходящего программирования. Начинается показ презентации “Технология нисходящего программирования. Решение экспериментальных задач”. На первом слайде тема урока.

Учитель. Мы с вами начинающие программисты. Вы знаете, что программирование – дело сложное, но очень увлекательное, творческое.

Из записной книжки программиста:

  • Прежде чем написать программу, проверьте, существует ли компьютер, способный ее переварить.
  • Если, по-твоему, программа составлена правильно, это еще не значит, что с этим согласится машина.
  • Если программа заработала, не расстраивайся, долго это продолжаться не будет.
  • Каждому программисту компьютер выдает то, что он заслуживает.
  • Запрещается пользоваться аспирином, малиновым вареньем и горчичниками для понижения температуры перегревшегося компьютера.
  • Вкладывая в программу всю свою душу, не забывай, что ее еще будут эксплуатировать.

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

II. Актуализация знаний и умений учащихся.

1. Фронтальный опрос.

Вопросы для повторения:

Вопросы для повторения:

  1. Что такое подпрограмма? Какие виды подпрограмм вы знаете?
  2. Запишите структуру процедуры.
  3. Что такое формальные и фактические параметры?
  4. Как записывается вызов процедуры?
  5. Запишите структуру функции.
  6. Как записывается вызов функции?

2. Проверка домашнего задания на компьютерах.

III. Самостоятельная работа.

Учащиеся выполняют самостоятельную работу в тетрадях.

Определите, какие числа (число) будут напечатаны в результате выполнения следующего алгоритма. (Приложение 1)

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

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

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

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

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

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

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

Процедура не может выступать как операнд (величина или выражение, над которым производится операция) в выражении. Упоминание имени процедуры в тексте программы приводит к активизации процедуры и называется ее вызовом.

Функция аналогична процедуре, но имеет два отличия:

  • функция передает в точку вызова скалярное значение;
  • имя функции может входить в выражение как операнд.

Например, функция Sqr(x) – возведет в квадрат значение целого числа или вещественного Х и возвратит в точку вызова вычисленное значение квадрата числа Х.

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

По завершении выполнения подпрограмма-функция возвращает главной программе результат (подпрограмма-процедура не возвращает явно результирующего значения).

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

Рассмотрим две задачи.

Задача 1. Даны три натуральных числа x, y, z. Вычислить

P = x! + 2y! – (x + z)!

Использовать процедуру (или функцию), вычисляющую факториал заданного натурального числа.

n! = 1*2*3* … *(n-1)*n.

Учитель. Ребята! Мы с вами умеем разрабатывать программу вычисления факториала числа?

Ученик. Да. Когда мы изучали тему “Оператор цикла с параметром”, составляли программу для вычисления факториала числа. И мы можем использовать ее как подпрограмму для решения нашей задачи?

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

Приложение 2

Задача 2. В одном научно-исследовательской лаборатории была получена в результате исследований расчетная формула:

.

Нам, ребята, надо помочь исследователям найти значение величины z, если известно, что n, m - натуральные числа, x – действительное число.

Учитель. Я думаю, мы с вами сможем помочь, ведь мы умеем применять технологию нисходящего программирования для решения сложных задач.

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

Учитель. Если мы внимательно посмотрим на первое и второе слагаемое суммы, то можно заметить, что они похожи между собой. Тогда мы можем их представить в общем виде.

Решение:

- обобщенная формула для суммы, где

k, a, b, c, d – входные данные,

i – промежуточная (локальная переменная);

z – результат.

Представим в общем виде каждое слагаемое этой заданной суммы:

- i-е слагаемое.

Программа с использованием подпрограммы-функции будет выглядеть следующим образом:

Приложение 3

V. Выполнение экспериментальных задач на компьютере.

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

Тест для проверки:

На входе: На выходе:
x = 1, y = 2, z = 3 p = -19
x = 2, y = 4, z = 3 p = -70
x = 1, y = 5, z = 2 p = 235

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

Тест для проверки:

На входе: На выходе:
2 3 1 z = 4.4
2 2 1 z = 3.9
3 2 2 z = 5.7

VI. Гимнастика для глаз.

Проводится физкультминутка для снятия зрительной усталости.

VII. Подведение итогов урока.

Учитель. Ребята! Сегодня мы с вами рассмотрели решение сложных экспериментальных задач с применением технологии нисходящего программирования.

VIII. Рефлексия.

Учащиеся делятся впечатлениями от урока, рассказывают, что им понравилось, какие испытали трудности, что узнали нового, интересного.

Учитель. Итак, ребята, давайте вместе сделаем выводы по нашей сегодняшней теме.

Выводы:

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

Учитель объявляет оценки учащимся за работу на уроке.

IX. Домашнее задание.

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

при следующих значениях х = -5, -4.5, -4, …, 1, 1.5, 2.

Программу разработать с использованием подпрограммы-процедуры.