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


Линейный вычислительный алгоритм.
К моменту данного урока учащиеся знакомы со следующими понятиями: алгоритм, виды алгоритмических конструкций, исполнитель, система команд, оператор ввода, оператор вывода; имеют навыки составления несложных алгоритмов разных типов и представления их на языке блок-схем.
Учебник: И.Семакин и др. “Информатика. 9 (ФГОС)”, БИНОМ. Лаборатория знаний 2014 г.
Цели урока.
Закрепить введенные ранее понятия “величина”, “переменная”, “операция присваивания”, “команда присваивания”, «оператор ввода», «оператор вывода», «трассировка».Отработать навыки работы с переменными, командой присваивания, операторами ввода/вывода.
Отработать навыки работы с трассировочной таблицей.
Рассмотреть возможности оптимизации алгоритма за счет уменьшения количества переменных на вычислительных задачах.
Отработать навыки составления линейных алгоритмов на словесном языке, на АЯ, в виде блок-схем.
Оборудование и материалы к уроку.
Демонстрационное оборудование (мультимедийный проектор, экран), программное обеспечение: средства просмотра презентаций, раздаточный материал.
Подготовка к уроку.
Презентация (демонстрационные слайды) для повторения материала (файл – приложение 1. pps ).
Раздаточный материал – трассировочные таблицы (файл – приложение 3.doc), карточки с тестами (файл – приложение 2. dos)
Текст задачи для проекции на доске (файл – приложение 4.doc).
Текстовый файл с программным кодом (файл – приложение 5.txt).
План урока.
Орг. момент.
Актуализация знаний – обсуждение домашнего задания, тренировочные упражнения.
Составление словесных алгоритм, на АЯ, блок-схем
Решение задачи с использованием трассировочной таблицы.
Модификация задачи, устный анализ задачи.
Итог урока.
Домашнее задание.
1. Орг. момент.
2. Актуализация знаний.
(5 – 7 минут) На прошлых уроках мы приступили к изучению основ программирования, вспомнили некоторые понятия из темы “Алгоритмизация”, познакомились с новыми.
Вспомним основные понятия, с которыми мы работали на прошлом уроке.
Что такое величина?
Чем отличаются переменные и постоянные величины?
Как записывается команда присваивания?
Давайте рассмотрим конкретные примеры – открыть файл презентации  (демонстрационные слайды).
4.Сегодня мы подробнее познакомимся с “Линейными вычислительными алгоритмами”.
Процесс решения вычислительной задачи – процесс последовательного изменения значений переменных. В итоге – в определенных переменных получается искомый результат. Переменная величина получает значение в результате выполнения команды присваивания или команды ввода.
Присваивание является важнейшей операцией в алгоритмах, работающих с величинами, поэтому остановимся на ней подробнее.
В основе линейных алгоритмов лежит структура «последовательность». Покажем это на примерах.
Пример № 1
В своей книге «Арифметика» Леонтий Филиппович Магницкий привел следующий способ отгадывания задуманного двузначного числа: «Если кто задумает двузначное число, то ты скажи ему, чтобы он увеличил число десятков задуманного числа в 2 раза, к произведению прибавил бы 5 единиц, полученную сумму увеличил в 5 раз и к новому произведению прибавил сумму 10 единиц и числа единиц задуманного числа, а результат произведенных действий сообщил бы тебе. Если ты из указанного тебе результата вычтешь 35, то узнаешь задуманное число».
Представим предлагаемые JI. Ф. Магницким действия в виде алгоритма в словесной форме. В предлагаемом процессе должны участвовать два человека: загадывающий число и отгадывающий его. Поэтому алгоритмов тоже будет два.
Алгоритм для загадывающего число

1. Задумайте двузначное число. 2. Умножьте число десятков на 2. 3. К полученному произведению прибавьте 5. 4. Полученную сумму умножьте на 5. 5. К полученному произведению прибавьте 10. 6. К полученной сумме добавьте количество единиц задуманного числа. 7. Сообщите полученное число отгадывающему. Конец алгоритма
Алгоритм для отгадывающего число.1. Отнимите от сообщенного числа 35. 2. Сообщите результат. Конец алгоритма
В этих двух алгоритмах действия выполняются в том порядке, в котором записаны.
Пример № 2.
Давайте решим задачу. У вас на партах лежат листы, где сформулирована задача №1.
Задача 1.
Написать алгоритм вычисления у по формуле: y=1-x2+5x4, где х – данное целое число. Учесть следующие ограничения:
можно использовать только операции сложения, умножения, вычитания;
в каждом выражении можно использовать только 1 операцию.
В таблице запишите результат каждого действия (выполните трассировку) при х = 1; 2; 3.
Что дано? (значение х)
Что требуется найти? (значение у)
Каков тип этих величин?
Сколько переменных нам потребуется для решения задачи (как минимум 2)?
Запишите алгоритм на АЯ и составьте блок-схему.
Давайте для наглядности воспользуемся дополнительными (промежуточными) переменными, в которых будем хранить результат каждого действия. Необходимые действия запишем в таблицу:
действие
Ввод х
A:=x*x
B:=1-A
C:=A*A
D:=5*C
Y:=B-D
Вывод y
Выполним трассировку нашего алгоритма, то есть подставим некоторые значения х и выполним действия. Например, для х=1.
Обратите внимание: пока переменной не присвоено конкретное значение, она остается неопределенной!
Самостоятельно выполните трассировку для х=2 и х=3 (самостоятельно на листочках).
5. Усовершенствуем нашу задачу таким образом, чтобы использовались лишь 2 переменные – х и у. Как это сделать?
действие
Ввод х
X:=X*X
Y:=1-X
X:=X*X
X:=5*X
Y:=Y+X
Вывод y
Новое присвоенное значение переменной заменяет ее предыдущее значение!
Сделайте трассировку для х=1 и х=2, проверьте, что результаты совпадают.
Запишем алгоритм на АЯ
алг1 Вычисление функции
цел x, y, a, b, c, d
нач
ввод x
a:=x*x
b:=1-a
c:=a*a
d:=5*c
y:=b+d
вывод y
кон алг2 Вычисление функции
цел x, y
нач
ввод x
x:=x*x
y:=1-x
x:=x*x
x:=5*x
y:=y+x
вывод y
кон
Нарисуем блок-схему для данной задачи
1310640199390начало
0начало
10725151231900
17678401333500
125349018161000
149161534290a:=x*x
00a:=x*x

1767840182245
12534901066800
14820906985b:=1-x
00b:=1-x

1767840173990
1358265155575c:=a*a
00c:=a*a
1253490317500
1767840118110
1358265180340d:=5*c
d:=5*c
11868151397000
1767840152400
1310005290830y:=b+d
0y:=b+d
1253490191770
176784012065
135826583820конец
конец
1072515-190500
7. Сегодня на уроке мы познакомились с линейным вычислительным алгоритмом. На следующем уроке мы продолжим изучать линейный вычислительный алгоритм. А так же научимся программировать задачи на языке Паскаль.
8. Домашнее задание: в вашем учебнике §34 – линейный вычислительный алгоритм. После §34 № 8 (аналогично № 1).
Линейный вычислительный алгоритм на языке Pascal.
К моменту данного урока учащиеся знакомы со следующими понятиями: алгоритм, виды алгоритмических конструкций, исполнитель, система команд, оператор ввода, оператор вывода; имеют навыки составления несложных алгоритмов разных типов и представления их на языке блок-схем, структура программы на Pascale, ввод данных с клавиатуры, вывод данных на экран.
Учебник: И. Семакин и др. “Информатика. 9 (ФГОС)”, БИНОМ. Лаборатория знаний 2014 г.
Цели урока.
1.Закрепить команду присваивания, оператор ввод на Pascale , оператор вывода на Pascale, построение трассировочной таблицы.
2.Отработать навыки работы с переменными, командой присваивания, операторами ввода/вывода.
3.Отработать навыки работы с трассировочной таблицей.
4.Отработать навыки составления линейных алгоритмов в виде блок-схем.
5. Отработать навыки составления программ на языке Pascal.
Оборудование и материалы к уроку.
Демонстрационное оборудование (мультимедийный проектор, экран), программное обеспечение: средства просмотра презентаций, раздаточный материал, программа ABC Pascal.
План урока.
1.Орг. момент.
2.Актуализация знаний – обсуждение домашнего задания, тренировочные упражнения.
3.Решение задачи с использованием трассировочной таблицы.
4.Составление программы на языке Pascal.
5.Тестирование программы.
8.Домашнее задание
1. Орг. момент.
2. Актуализация знаний.
(5 – 7 минут) На прошлых уроках мы приступили к изучению основ программирования, вспомнили некоторые понятия из темы “Алгоритмизация”, познакомились с новыми.
Вспомним основные понятия, с которыми мы работали на прошлом уроке.
Что такое линейный алгоритм?
Что такое ввод? Как записывается команда ввода?
Что такое вывод? Как записывается команда вывода?
Сегодня на уроке мы вспомним, что такое линейный алгоритм и разберем, как записать задачу на языке Pascal.
Разберем задачу (демонстрационные слайды): Скорость первого автомобиля υ1 км/ч, второго – υ2 км/ч, расстояние между ними s км. Какое расстояние будет между ними через t ч, если автомобили движутся в разные стороны? Требуется построить математическую модель, нарисовать блок-схему, составить трассировочную таблицу и написать программу.
Дано:
υ1 км/ч
υ2 км/ч
s км
t ч Решение:
Согласно условию задачи искомое расстояние
s1 = s + (υ1 + υ2)t (если автомобили изначально двигались в противоположные стороны) или s2= υ1+υ2t-s (если автомобили изначально двигались навстречу друг другу).
Найти:
s1, s2 Построим блок-схему для этой задачи:
1310640199390начало
0начало
10725151231900
176784013017500
107251535560Ввод υ1, υ2, s, t
00Ввод υ1, υ2, s, t
42481569850
1767840182245
4248151079500
5295908255s1 = s + (υ1 + υ2)t
00s1 = s + (υ1 + υ2)t

1767840173990
42481510414000
52959033020s2= υ1+υ2t-s00s2= υ1+υ2t-s
18249901193800
34861517208500
119634081915Вывод s1, s200Вывод s1, s2
1815465349250
113919011557000
135826515875конец
конец

Построим трассировочную таблицу:
υ1 υ2 s t s1 s2
Ввод υ1, υ2, s, t 1 2 3 4 - -
s1 = s + (υ1 + υ2)t
1 2 3 4 13 -
s2= υ1+υ2t-s1 2 3 4 13 5
Вывод s1, s213 5
Напишем программу на языке Pascal.
program Car;
var υ1, υ2, s, t, s1, s2: real;
begin
writeln (‘введите скорости автомобилей, время и расстояние’);
read (υ1, υ2, s, t);
s1 = s + (υ1 + υ2)*t;
s2= abs((υ1+υ2 )*t-s);
writeln (‘расстояние, если автомобили изначально двигались в противоположные стороны = ’, s1);
writeln (‘расстояние, если автомобили изначально двигались навстречу друг другу = ’, s2);
end.
Результат:
введите скорости автомобилей, время и расстояние
1
2
3
4
расстояние, если автомобили изначально двигались в противоположные стороны = 5
расстояние, если автомобили изначально двигались навстречу друг другу = 13
Сегодня на уроке мы закрепили понятие о линейном вычислительном алгоритме. Научились программировать задачи на языке Pascal.
Домашнее задание: Задача. Найти произведение цифр заданного четырехзначного числа. Записать математическую модель, нарисовать блок-схему, составить трассировочную таблицу и написать программу. Подготовить к самостоятельной работе на тему: «Линейный вычислительный алгоритм».
Самостоятельная работа на тему: «Линейный вычислительный алгоритм».
Вариант 1.
На «3»: Определите значение переменной с после выполнения следующего фрагмента программы, составьте трассировочную таблицу:
а:= 7;
а:= а - 4;
b:= - а;
c:= - а + 2 * b;
На «4»: Написать программу для вычисления функции z:
z=x+yx+1-xy-1234+xНа «5»: Составить программу для вычисления периметра прямоугольного треугольника по заданным длинам двух катетов a, b.
Вариант № 2.
На «3»: Определите значение переменной с после выполнения следующего фрагмента программы:
а:= 2;
b:= а + 4;
b:= 1 - b;
c:= - b + 3 * a;
На «4»: Написать программу для вычисления функции z:
z=x2-7x+10x2-8x+12На «5»: Треугольник задан координатами своих вершин (x1, y1), (x2, y2) и (x3, y3). Вычислить периметр треугольника.
Вариант № 3.
На «3»: Определите значение переменной с после выполнения следующего фрагмента программы:
а:= 5;
а:= а + 6;
b:= - а;
c:= а - 2 * b;
На «4»: Написать программу для вычисления функции z:
z=x-x23+x215На «5»: Даны два действительных числа x и y. Найти средне арифметическое кубов этих кубов этих чисел.
Вариант № 4.
На «3»: Определите значение переменной с после выполнения следующего фрагмента программы:
а:= - 5;
а:= а - 4;
b:= - а;
c:= - а + 2 * b;
На «4»: Написать программу для вычисления функции z:
z=x2-4x+(x+y)2На «5»: Многоугольник задан координатами своих вершин (x1, y1), (x2, y2) (x3, y3) и (x4, y4). Вычислить периметр многоугольника.
Вариант № 5.
На «3»: Определите значение переменной с после выполнения следующего фрагмента программы:
а:= - 3;
b:= а + 3;
b:= 1 - b;
c:= - b + 3 * a;
На «4»: Написать программу для вычисления функции z:
y=y212xy-3x218y-1На «5»: Дано количество суток. Посчитать число часов, минут и секунд в данном количестве суток. Использовать только одно переменную.
Вариант № 6.
На «3»: Определите значение переменной с после выполнения следующего фрагмента программы:
а:= 5;
b:= 5 – 5 * a;
b:= -b/2 * a;
c:=d*2 + a;
На «4»: Написать программу для вычисления функции z:
z=x-10y+1+xНа «5»: В классе n учеников. По результатам контрольной работы получено a двоек, b троек, c четверок, остальные – пятерки. Вычислить процент оценок каждого типа
Вариант № 7.
На «3»: Определите значение переменной с после выполнения следующего фрагмента программы:
b:= 16;
а:= 12 – a/4;
а:= а + b * 3;
c:=(a - b)*2;
На «4»: Написать программу для вычисления функции z:
z=x2-7xx2-15xНа «5»: От двух пристаней одновременно навстречу друг другу отошли два катера и встретились через t часов. Скорость одного из них равна v1, скорость другого – v1 км/ч. Найти расстояние между пристанями.