Применение операторов цикла для численных методов решения задач
Цель урока: Формировать умение применять операторы цикла с предусловием постусловием и со счетчиком при решении задач численными методами на языке программирования Pascal.
Задачи урока:
Обучающие – закрепление знаний учащихся о базовых алгоритмических структурах, научить использовать операторы цикла при решении задач.
Развивающие – формирование алгоритмического мышления и навыков работы при создании программ, развитие познавательного интереса к предмету, развитие умения применять полученные знания к решению проблем из реальной жизни.
Воспитывающие – развитие самостоятельности мышления, развитие грамотной устой речи с использованием специальных терминов.
Тип урока: урок совершенствования знаний и умений.
Формы организации работы на уроке: фронтальная работа, индивидуальная работа по карточкам и за ПК.
Технические и программные средства: персональные компьютеры, мультимедиа проектор, среда программирования Pascal.
Методическое обеспечение урока: электронная презентация по теме урока, карточки с индивидуальными заданиями.
План урока
№ | Этапы урока | Время | Цель | Формы работы |
1 | Организационный момент | 2 мин. | Создание рабочей атмосферы |
|
2 | Контроль домашнего задания | 8мин. | Контроль полученных знаний о базовых алгоритмических структурах и операторах цикла |
|
3 | Применение знаний к решению задачи | 20 мин | Научить использовать циклы в решении задач, формирование интереса к предмету. |
|
4 | Самостоятельная работа | 10 мин. | Отработка на практике полученных знаний. | Выполнение учащимися обязательных заданий, заданий углубленного уровня. |
5 | Подведение итогов. | 3 мин. | Обобщение учебного материала | Беседа с элементами фронтального опроса. |
6 | Домашнее задание | 2 мин. |
|
Ход урока
1. Организационный момент.
Мы продолжаем изучать язык программирования Паскаль. Вспомним с какими операторами мы познакомились на прошлом уроке. (Операторы циклов с предусловием и постусловием и со счетчиком). Сегодня будем решать задачи с использованием этих операторов. Многие из вас любят решать уравнения и задачи на уроках математики. А нельзя ли нам применить наши знания по программированию для решения некоторых задач по математике? Это будет нашим проблемным вопросом на уроке. В ходе урока:
- проверяем домашнее задание и повторяем пройденный материал; отвечаем на проблемный вопрос; вы выполняете самостоятельную работу за ПК.
2. Контроль домашнего задания.
Сейчас мы повторим алгоритмические структуры цикла и операторы цикла языка программирования Pascal, а также возможности и особенности их использования.
а) Запись на доске решения домашней задачи. № 70 п.4.4 “Задачник-практикум”.
Составить программу вычисления значения функции F(x) на отрезке [a, b] с шагом h. F(x)=x-sinx.
б) Индивидуальная карточка (низкий уровень):
Определить значение переменной S. (s=13)
I:=1; S:=0; j:=5;
While i<j do
Begin
S:=S+i*j;
I:=I+1;
J:=J-1
End;
в) Индивидуальная карточка (углубленный уровень) для выполнения за компьютером (исходная программа уже набрана).
“Изменить программу так, чтоб вычислялась сумма целых чисел кратных 5, если последовательно вводятся 10 целых чисел”.
Program ex;
Var a, s,I:integer;
Begin
S:=0;
I:=1;
Repeat
Writeln(‘введите число’);
Readln(a);
S:=s+a;
I:=i+1
Until i>10;
Writeln(‘s=’,s);
Readln;
End.
г) Фронтальный опрос, задания сопровождаются слайдами презентации.
Вопросы:
- Что такое цикл? (ПО Многократное повторение последовательности действий по некоторому условию.) В каких ситуациях могут применяться циклы? Для разминки: Соотнесите блок-схему алгоритмической структуры и оператор. (Слайд 2). Рассказать об операторах по плану (связный рассказ). Слайд 3.
- Приведите примеры задач и ситуаций, в которых используется этот цикл.
- Определите значения переменных после выполнения операторов. Сколько раз выполняется цикл. Слайд 4
While a<=3 do a:=a+1;
B:=b+1;
s:=0; i:=1;
Repeat
s:=s+2*I;
i:=i+1
Until i>2
- Найдите ошибки в записи фрагмента программы и постарайтесь определить, что хотел программист. Слайды 5, 6, 7, 8. Поставить соотношение между задачей и фрагментом программы по её решению:
- Последовательно вводят 5 целых чисел. Найти количество отрицательных чисел. Последовательно вводят N целых чисел. Найти произведение чисел больших 8 и меньших 15. Вычислить сумму натурального ряда чисел от 1 до 10.
While i<=10 do
Begin
S:=S+i;
I:=I+1
End; I:=1;
Repeat
Writeln(‘введите число’);
Readln(a);
If a<0 then k:=k+1;
I:=I+1
Until I>5; I:=1; p:=1;
Repeat
Writeln(‘введите число’);
Readln(a);
If (a>8) and (a<15) then p:=p*a;
I:=I+1
Until I>N;
Решение задачи.
Решать уравнения учат на уроках алгебры. Для разных типов уравнений применяются разные методы. Все они дают точные решения и все относятся к так называемым аналитическим методам. Мы знаем аналитические решения для уравнений первой и второй степени. В тех случаях, когда удается выполнить разложение на множители, нам удается аналитически решить уравнения третьей и четвертой степеней, но что мы будем делать с уравнением пятой степени, если оно на множители не раскладывается?
Когда в задаче возникают такие уравнения (системы уравнений), их решают численными методами. Численные методы позволяют получить не точное, а приближенное решение уравнения, но с любой точностью, в зависимости от возможности ЭВМ.
Представьте себе, что корень уравнения – это мишень. Мы как бы «стреляем» в корень и в случае недолета переносим огонь вперед, а в случае перелета – назад, постепенно приближаясь к корню. Чтобы использовать эти рассуждения воспользуемся свойствами данной функции. Пусть на концах отрезка функция F(x) принимает значения разного знака. Вычислим значение функции в середине этого отрезка и посмотрим на его знак.
Знак будет отличаться от знака функции на одном из концов отрезка, но совпадать со знаком на другом конце. Из двух половин отрезка выберем ту, у которой знаки на концах противоположные и снова поделим отрезок пополам. Продолжая действовать тем же образом, мы получим сколь угодно малый отрезок, причем известно, что корень уравнения лежит на этом отрезке. Так определяют корень с любой нужной точностью.
Рассмотрим задачу в следующей постановке. Просмотр слайдов презентации с обсуждением.
Дано нелинейное уравнение: f(x)=0 (Слайд 11. Исходные данные )
Найти корень уравнения, принадлежащий интервалу [a, b], с заданной точностью
.
Для уточнения корня методом половинного деления последовательно осуществляем следующие операции:
Делим интервал пополам:![]()
– вычисление координаты средины отрезка [a, b].

Рис. 1.
Для этого:
a) Вычисляем значение функции f(x) в точках a и t.
b) Проверяем: если f(a)·f(t) < 0, то корень находится в левой половине интервала [a, b] (рис.1а). Тогда отбрасываем правую половину интервала и делаем переприсвоение b=t.
c) Если f(a)·f(t) < 0 не выполняется, то корень находится в правой половине интервала [a, b] (рис.1.б). Тогда отбрасываем левую половину и делаем переприсвоение a=t. В обоих случаях мы получим новый интервал [a, b] в 2 раза меньший предыдущего.
Процесс, начиная с пункта 1, циклически повторяем до тех пор, пока длина интервала [a, b] не станет равной либо меньшей заданной точности, т. е.![]()

Рис. 2. Схема алгоритма уточнения корней по методу половинного деления
Учитель: Какой алгоритм по структуре у нас получился?
ПО: циклический, причем использовать надо цикл с предусловием.
Учитель: Что необходимо вписать в блоки, ( f(a) и f(t) )?
ПО: Здесь необходимо записать команду вычисления конкретной функции в точке a и в точке t.
Учитель: Что необходимо предварительно сделать, прежде чем применять этот алгоритм для нахождения корня уравнения?
ПО: Необходимо, в первую очередь, проверить, удовлетворяет ли функция постановке задачи: является ли график функции непрерывной линией на отрезке [a, b], разные ли знаки имеет функция на концах отрезка [a, b].
IV. Этап закрепления, проверки полученных знаний
Учитель: Можно ли применять метод деления отрезка пополам для нахождения корней уравнений, на заданных отрезках (уравнения записаны на доске):
x2 – 5 = 0, [0, 3] (ПО: функция непрерывна на отрезке и f(0) * f(3) < 0, применять метод можно) sin(x) – 0,2 = 0 [0,V. Задания для самостоятельного выполнения
1. Записать для алгоритма на рисунке 2 программу на языке Pascal (заготовка):
Program MPD;
Var a, b,t, eps, fa, fb: real ;
begin
Writeln (‘vvedite levuy granicy’);
Readln(a);
Writeln (‘vvedite pravuy granicy’);
Readln(b);
Writeln (‘zadaite tochnoct rascheta’);
Readln(eps);
fa:= ;
while abs(b-a)<=eps do
t:=0.5*(a-b);
ft:= ;
if fa*ft<0 then
b:=t;
else begin
a:=t;
fa:=ft
end;
end;
Writeln (‘koren yr-niya – ‘,a);
end.
Гимнастика для снятия утомления ( можно включить лёгкую музыку).
Следующие упражнения позволят снять мышечное напряжение и усталость глаз, улучшить общее самочувствие организма.
- Зажмуриться на 3-5 секунд, открыть глаза на 1-2 секунды, снова зажмурится. Вытянуть руки вперёд, кисти рук на себя, сконцентрировать взгляд на кончиках пальцев, повернуть ладони, поднести к лицу и сконцентрировать внимание на ладонях, повторить 2-3 раза. Выполнить наклоны туловища в стороны, вперёд и назад, повторить 4-5 раз.
4. Самостоятельная работа.
Теперь закрепим и проверим ваши знания. Вы получите карточки с заданиями и будете работать за компьютером. Если задание вами выполнено, то можете получить следующее, более сложное. Не забудьте провести тестирование и выполнить вычисления, указанные в задании. Результаты запишите в тетрадь, программу сохраните в вашей папке для проверки. Я постаралась подобрать для вас задачи, которые вы могли встретиться в курсе алгебры и начала анализа. Желаю удачи!
5. Задания для самостоятельного выполнения
Записать для алгоритма на рисунке 2 программу на языке Pascal (заготовка):
Program MPD; Var a, b,t, eps, fa, fb: real ; begin Writeln (‘vvedite levuy granicy’); Readln(a); Writeln (‘vvedite pravuy granicy’); Readln(b); Writeln (‘zadaite tochnoct rascheta’); Readln(eps); fa:= ; while abs(b-a)<=eps do | t:=0.5*(a-b); ft:= ; if fa*ft<0 then b:=t; else begin a:=t; fa:=ft end; end; Writeln (‘koren yr-niya – ‘,a); end. |
1 вариант.
Используя программу, вычислить на компьютере приближенные корни уравнения с точностью до 0.001 следующих уравнений:
x3 + x2 + x + 1 = 0; [–2,1] x5 – 0,3 | x – 1 | = 0; [0,1]2 вариант.
Используя программу, вычислить на компьютере приближенные корни уравнения с точностью до 0.001 следующих уравнений:
x2cos(2x) + 1 = 0 [0, π/2] 2x – cos(x) = 0 [0, π/4]Углубленный вариант.
Используя программу, вычислить на компьютере приближенные корни уравнения с точностью до 0.0001 следующих уравнений:
tg(x) – (x + 1)/2 = 0 [0, π/4] Вычислить значенияПодведем итоги. Сегодня на уроке вы узнали, как находить решение уравнений методом деления отрезка пополам, как использовать для этого компьютер. Я проверил во время практической работы, как вы усвоили материал, вы хорошо справились с заданием и получили следующие отметки… На этом изучение применений компьютера для научно-технических расчетов не заканчивается, предлагаю проанализировать свои записи в тетради и выполнить домашнее задание: подумать над вопросом “Какие методы поиска площадей фигур вы знаете?”. Запишите его себе в тетрадь.
Домашнее задание. § 5.7.1 стр 264 упр.5.9

