Презентация - Анализ программы с подпрограммами
просмотров
Текст этой презентации
Слайд 1
![Анализ программы с подпрограммами, слайд 1](/files/618/268/1.jpg)
Анализ программы с подпрограммами.
Баяскаланов Алексей Баиртуевич, учитель информатики МБОУ г.Иркутска СОШ с углубленным изучением отдельных предметов №2
Готовчикова Софья Олеговна, , учитель информатики МБОУ г.Иркутска СОШ с углубленным изучением отдельных предметов №2
Слайд 2
![Анализ программы с подпрограммами, слайд 2](/files/618/268/2.jpg)
Найдите минимум функции f(x)=4*(x-1)*(x-3) на отрезке [-20;20]
Точка минимума совпадает с вершиной параболы
Слайд 3
![Анализ программы с подпрограммами, слайд 3](/files/618/268/3.jpg)
Что нужно знать:
функция – это вспомогательный алгоритм, который возвращает некоторое значение–результат
в Паскале функция располагается выше основной программы и оформляется следующим образом (вместо многоточия могут быть любые операторы):
function F(x: integer):integer;
begin ... F:= <результат функции>
end;
в заголовке функции записывают имя функции, в скобках – список параметров, далее через двоеточие – тип возвращаемого значения; в приведенном примере функция F принимает один целый параметр, к которому внутри функции нужно обращаться по имени x, и возвращает целое число
Слайд 4
![Анализ программы с подпрограммами, слайд 4](/files/618/268/4.jpg)
Что нужно знать:
если параметров несколько, для каждого из них указывают тип:
function F(x: integer; y: integer):integer;
если несколько соседних параметров имеют одинаковый тип, можно их объединить в список:
function F(x, y: integer):integer;
Слайд 5
![Анализ программы с подпрограммами, слайд 5](/files/618/268/5.jpg)
Что нужно знать:
следующая программа ищет НАИМЕНЬШЕЕ ЗНАЧЕНИЕ функции F(x) на интервале [a,b], просматривая значения от a до b с шагом 1:
M:=a; R:=F(a);
for t:=a to b do if F(t) < R then begin R:=F(t); M:=t; end;
цикл для поиска НАИБОЛЬШЕГО ЗНАЧЕНИЯ выглядит точно так же, только знак < нужно заменить на знак >
Докажем
Слайд 6
![Анализ программы с подпрограммами, слайд 6](/files/618/268/6.jpg)
Построим трассировочную таблицу для фрагмента программы (F=x*x):
а:=-2; b:=2
M:=a; R:=F(a);
for t:=a to b do if F(t) < R then begin R:=F(t); M:=t; end;
M R t F(t) F(t) < R ?
-2 4 -2 4 нет
-1 1 да
-1 1
0 0 да
0 0
1 1 нет
2 4 нет
Ответ
Слайд 7
![Анализ программы с подпрограммами, слайд 7](/files/618/268/7.jpg)
Что нужно знать:
если функция представляет собой квадратный трехчлен вида , то абсцисса, соответствующая точке минимума, вычисляется по формуле если квадратный трехчлен задан в виде то абсцисса, соответствующая точке минимума, вычисляется по формуле
Слайд 8
![Анализ программы с подпрограммами, слайд 8](/files/618/268/8.jpg)
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Var a,b,t,M,R :integer;
Function F(x:integer):integer;
begin F:=4*(x-1)*(x-3);
end;
BEGIN a:=-20; b:=20; M:=a; R:=F(a); for t:=a to b do begin if (F(t)
Ищем минимум
Выводим абсциссу
Корни 1, 3
Слайд 9
![Анализ программы с подпрограммами, слайд 9](/files/618/268/9.jpg)
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Var a,b,t,M,R :integer;
Function F(x:integer):integer;
begin
F:=x*x + 4*x + 8;
end;
BEGIN a:=-10; b:=10; M:=a; R:=F(a); for t:=a to b do begin if (F(t)> R) then begin M:=t; R:=F(t); end; end; write(R);
END.
Функция
Ищем максимум
Выводим ординату
Слайд 10
![Анализ программы с подпрограммами, слайд 10](/files/618/268/10.jpg)
Решение:
Var a,b,t,M,R :integer;
Function F(x:integer):integer;
begin
F:=x*x + 4*x + 8;
end;
BEGIN a:=-10; b:=10; M:=a; R:=F(a); for t:=a to b do begin if (F(t)> R) then begin M:=t; R:=F(t); end; end; write(R);
END.
График – парабола, ветви вверх
Функция максимума не имеет
Ответ: 148
Проверить значения функции на концах отрезка и выбрать из них наибольшее
при t=-10 получаем F(t)=68 (F(a))
при t=10 получаем F(t)=148 (F(b))
Слайд 11
![Анализ программы с подпрограммами, слайд 11](/files/618/268/11.jpg)
Program A14; Var d,a,b,t,M,R :real;
Function F(x : real):real; begin F:=(x+4)*(2-x); end; BEGIN a:=-2; b:=4; d:=0.1; t:=a; M:=a; R:=F(a);
while t<=b do begin if (F(t)>R) then begin M:=t; R:=F(t); end; t:=t+d; end;
write(M);
END.
График – парабола, ветви вниз
Цикл от a до b с шагом d
Задание из тренировочного варианта МИОО
Корни -4, 2
Слайд 12
![Анализ программы с подпрограммами, слайд 12](/files/618/268/12.jpg)
Определите, какое число будет напечатано в результате выполнения следующего алгоритма: var a,b,t,M,R :integer; Function F(x:integer):integer; begin F := (x*x-25)*(x*x-25)+15 end;
begin a := -15; b := 15; M := a; R := F (a) ; for t := a to b do if (F(t) <= R) then begin M := t; R := F(t) end;
write(M+15) end.
Слайд 13
![Анализ программы с подпрограммами, слайд 13](/files/618/268/13.jpg)
программа ищет значение t, при котором функция F(t) принимает минимальное значение на интервале от a до b.
Слайд 14
![Анализ программы с подпрограммами, слайд 14](/files/618/268/14.jpg)
запишем функцию в виде квадратного трёхчлена:
F(x)=(x*x-25)*(x*x-25)+15 = x4-50x2+640
F’(x)=4x3-100x
Нули производной: x = 0, x = 5, x = −5
-
+
-
+
Поскольку алгоритм осуществляет поиск наименьшего t, при котором функция F(t) имеет наименьшее значение, переменной M будет присвоено значение −5. Выполнив последнее действие «write(M+15)», программа выведет на экран число 10.
Слайд 15
![Анализ программы с подпрограммами, слайд 15](/files/618/268/15.jpg)
Определите, какое число будет напечатано в результате выполнения следующего алгоритма: var a,b,t,M,R :integer; Function F(x:integer):integer; begin F := (x*x-9)*(x*x-9)+5 end;
begin a := -13; b := 13; M := a; R := F (a) ; for t := a to b do if (F(t) < R) then begin M := t; R := F(t) end;
write(M+7) end.
Слайд 16
![Анализ программы с подпрограммами, слайд 16](/files/618/268/16.jpg)
Алгоритм предназначен для поиска наименьшего t, при котором функция F(t) имеет наименьшее значение на отрезке от a до b. Преобразуем функцию:
F(x)=(x*x-9)*(x*x-9)+5 = x4-18x2+86
Вычислим производную функции:
F’(x)=4x3-36x
Нули производной: x = 0, x = 3, x = −3. Воспользуемся методом интервалов:
Поскольку алгоритм осуществляет поиск наименьшего t, при котором функция F(t) имеет наименьшее значение, переменной M будет присвоено значение −3. Выполнив последнее действие «write(M+7)», программа выведет на экран число 4.
Ответ: 4.
Похожие презентации
![Презентация Решение задач по теме «Цикл с параметром» на языке программирования Паскаль](/files/613/268/1.jpg)
![Презентация Двумерные массивы - Язык программирования Паскаль](/files/623/268/1.jpg)
![Презентация Концепция типов данных языка программирования Паскаль](/files/1428/268/1.jpg)
![Презентация Операции, функции, выражения на языке программирования Паскаль](/files/1449/268/1.jpg)
![Презентация Структура языка программирования Паскаль](/files/1451/268/1.jpg)
Поделиться ссылкой на презентацию через:
Код для вставки видеоплеера презентации на свой сайт: