Тема урока: "Линейный вычислительный алгоритм"

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


Введение.

К моменту данного урока учащиеся знакомы со следующими понятиями: алгоритм, виды алгоритмических конструкций, исполнитель, система команд; имеют навыки составления несложных алгоритмов разных типов и представления их на языке блок-схем.

Учебник: И.Семакин и др. “Информатика. Базовый курс 7 – 9”, БИНОМ. Лаборатория знаний 2004 г.

Цели урока.

  1. Закрепить введенные ранее понятия “величина”, “переменная”, “операция присваивания”, “команда присваивания”.
  2. Отработать навыки работы с переменными, командой присваивания.
  3. Познакомиться с понятием “трассировка”.
  4. Рассмотреть возможности оптимизации алгоритма за счет уменьшения количества переменных на вычислительных задачах.
  5. Получить начальные сведения о языке программирования Pascal.

Оборудование и материалы к уроку.

Демонстрационное оборудование (мультимедийный или оверхед проектор, экран), функционирующая локальная сеть; программное обеспечение: электронные тестирующие программы (или другие средства организации тестирования), среда программирования Borland Pascal, средства просмотра презентаций.

Подготовка к уроку.

  1. Презентация (демонстрационные слайды) для повторения материала (файл – приложение 1. pps ).
  2. Электронный тест “Алгоритм. Величина. Переменная” подготовлены (ярлыки на рабочем столе) (файл – приложение 2. xls).
  3. Раздаточный материал – трассировочные таблицы (файл – приложение 3.doc).
  4. Текст задачи для проекции на доске (файл – приложение 4.doc).
  5. Текстовый файл с программным кодом (файл – приложение 5.txt).

План урока.

  1. Орг. момент.
  2. Актуализация знаний – обсуждение домашнего задания, тренировочные упражнения.
  3. Тест.
  4. Решение задачи с использованием трассировочной таблицы.
  5. Модификация задачи, устный анализ задачи.
  6. Анализ задачи, записанной на Паскале, выявление закономерностей, запуск.
  7. Итог урока.
  8. Домашнее задание.

1. Орг. момент.

2. Актуализация знаний.

(5 – 7 минут) На прошлом уроке мы приступили к изучению основ программирования, вспомнили некоторые понятия из темы “Алгоритмизация”, познакомились с новыми.

Проверяем домашнее задание (№ 8, 9 к п. 12.1 учебника, № 8 – устно, № 9 – у доски).

Вспомним основные понятия, с которыми мы работали на прошлом уроке.

  1. Как называется отдельный информационный объект, обрабатываемый ПК?
  2. Назовите основные характеристики величины?
  3. На какие 2 класса подразделяются величины?
  4. Любое ли словосочетание может быть именем переменной?
  5. Как переменная получает свое значение?

Давайте рассмотрим конкретные примеры – открыть файл презентации приложение1.pps (демонстрационные слайды).

//Удобно, если есть возможность демонстрировать слайды на доску – тогда в заготовленных таблицах можно сразу писать варианты ответов.//

3. Тест (8 вопросов 6 минут, см. файл приложение2.xls).

4.Сегодня мы подробнее познакомимся с “Линейными вычислительными алгоритмами”.

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

Присваивание является важнейшей операцией в алгоритмах, работающих с величинами, поэтому остановимся на ней подробнее.

Давайте решим задачу. У вас на партах лежат листы (файл – приложение3.doc), где сформулирована задача №1.

//На доску проецируется содержимое файла приложение4.doc//.

ЗАДАЧА 1.

Написать алгоритм вычисления у по формуле: y=1-x2+5x4, где х – данное целое число. Учесть следующие ограничения:

  1. можно использовать только операции сложения, умножения, вычитания;
  2. в каждом выражении можно использовать только 1 операцию.

В таблице запишите результат каждого действия (выполните трассировку) при х = 1; 2; 3.

  1. Что дано? (значение х)
  2. Что требуется найти? (значение у)
  3. Каков тип этих величин?
  4. Сколько переменных нам потребуется для решения задачи (как минимум 2)?

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

действие
Ввод х
A:=x*x
B:=1-A
C:=A*A
D:=5*C
Y:=B-D
Вывод y

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

Обратите внимание: пока переменной не присвоено конкретное значение, она остается неопределенной!

Самостоятельно выполните трассировку для х=2 (1 человек у доски) и х=3 (самостоятельно на листочках).

5. Усовершенствуем нашу задачу таким образом, чтобы использовались лишь 2 переменные – х и у. Как это сделать?

//Скорее всего, будут предложены разные варианты//.

действие
Ввод х
X:=X*X
Y:=1-X
X:=X*X
X:=5*X
Y:=Y+X
Вывод y

Новое присвоенное значение переменной заменяет ее предыдущее значение!

Все эти ключевые факты сформулированы на ваших листочках.

Сделайте трассировку для х=1 и х=2, проверьте, что результаты совпадают.

6. Очевидно, что при вычислении значения у уже при х=3, мы испытываем некоторые трудности при вычислении. Возникает закономерное желание перепоручить эту задачу компьютеру. Для этого необходимо написать соответствующую программу на языке программирования.

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

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

Program Zadacha – заголовок программы

Var X,Y:integer – раздел описаний переменных

Begin

Readln(x);
X:=X*X;
Y:=1-X;
X:=X*X;
X:=5*X;
Y:=Y+X;
Writeln(Y);

End.

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

Будем переписывать построчно программу в соответствующий столбец таблицы и комментировать каждую строчку.

Оператор Readln (от англ. “читать”) позволяет ПК считать значение переменной с клавиатуры. А оператор Writeln (от англ. “писать”) выводит, пишет значение переменной на экран монитора.

Попробуем выполнить эту программу. Для этого откроем файл в программе Паскаль.

- Как это сделать? (пр. кнопкой мыши…)

Перед нами – окно среды программирования Borland Pascal. Сразу оговорюсь, что последняя версия этого языка вышла в 1992 году, то есть это программа под DOS – поэтому при работе вы непременно столкнетесь с определенным поведением этой программы под Windows. Но будем бороться с трудностями по мере поступления. А сейчас запустите программу на исполнение (команда Run) .

  1. Что необходимо сделать?
  2. Какая первая команда в программе?
  3. Где результат?

Программа выполнила свою работу и тут же вернулась в режим редактирования, результат был на экране, но посмотреть его мы не успели.

Давайте запустим программу еще раз. Что мы видим – вот он, прошлый напечатанный результат.

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

Заметьте, что полученные результаты полностью соответствуют трассировочной таблице.

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

Самое главное, что вы должны усвоить из сегодняшнего урока:

  1. Одной из фундаментальных операций в программировании является присваивание.
    Какими двумя способами можно присвоить переменной новое значение?
    С помощью каких операторов эти способы реализованы на языке Паскаль?
  2. Что можно сказать о переменной, если ее значение еще не задано?
  3. Что необходимо сделать в среде Паскаль, чтобы иметь возможность задать значение какой-либо переменной?

8. Домашнее задание: в вашем учебнике §12.2 – линейный вычислительный алгоритм. После §12.2 № 8 (аналогично № 1), № 9.