Конспект урока Запись вспомогательных алгоритмов на языке Паскаль (9 класс, урок 48, учебник Босова Л.Л.). На уроке происходит знакомство с процедурами и функциями.
Планируемые образовательные результаты:
— предметные – представления о способах записи вспомогательных алгоритмов в языке Паскаль;
— метапредметные – умение самостоятельно планировать пути достижения целей; умение соотносить свои действия с планируемыми результатами, осуществлять контроль своей деятельности, определять способы действий в рамках предложенных условий, корректировать свои действия в соответствии с изменяющейся ситуацией; умение оценивать правильность выполнения учебной задачи;
— личностные – алгоритмическое мышление, необходимое для профессиональной деятельности в современном обществе; представление о программировании как сфере возможной профессиональной деятельности.
Решаемые учебные задачи:
1) напомнить сущность понятия вспомогательного алгоритма, ввести понятие подпрограммы;
Написать программу для нахождения НОК двух заданных натуральных чисел. Алгоритм
2) познакомить с правилами оформления подпрограммы в виде процедуры;
3) познакомить с правилами оформления подпрограммы в виде функции;
4) познакомить с примером рекурсивной функции.
Основные понятия, изучаемые на уроке:
— подпрограмма;
— процедура;
— функция;
— рекурсивная функция.
Используемые на уроке средства ИКТ:
— персональный компьютер (ПК) учителя, мультимедийный проектор, экран;
— ПК учащихся.
Электронные образовательные ресурсы
— презентация «Запись вспомогательных алгоритмов на языке Паскаль».
Особенности изложения содержания темы урока
1. Организационный момент (1 минута)
Приветствие учащихся, сообщение темы и целей урока.
2. Повторение (3 минуты)
1) проверка изученного материала по вопросу 10 к §4.7;
2) визуальная проверка выполнения домашнего задания в РТ № 206, 207, 208.
3) рассмотрение заданий, вызвавших затруднения при выполнении домашнего задания.
3. Изучение нового материала (18 минут)
Новый материал излагается в сопровождении презентации «Запись вспомогательных алгоритмов на языке Паскаль».
1 слайд — название презентации;
2 слайд — ключевые слова;
— подпрограмма
— процедура
— функция
— рекурсивная функция
3 слайд — подпрограммы;
Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм.
Структура описания подпрограммы аналогична структуре главной программы. Описание подпрограммы начинается с заголовка и заканчивается оператором end.
4 слайд — процедуры;
Процедура — подпрограмма, имеющая произвольное количество входных и выходных данных.
Описание процедуры имеет вид:
procedure ( ;
var: );
begin
end;
Для вызова процедуры достаточно указать её имя со списком фактических параметров.
5 слайд — алгоритм Евклида;
Процедура для нахождения НОД
Решение простых задач на python | Площадь и периметр прямоугольного треугольника
procedure nod (a, b: integer; var c: integer);
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
c:=a
end;
6 слайд — варианты вызова процедуры;
nod (36, 15, z) — в качестве параметров-значений использованы константы;
(x, y, z) — в качестве параметров-значений использованы имена переменных;
(x+y, 15, z) -в качестве параметров-значений использованы выражение и константа;
В любом случае между фактическими и формальными параметрами должно быть полное соответствие по количеству, порядку следования и типу.
7 слайд — программа с процедурой;
Напишем процедуру для нахождения наибольшего общего делителя
двух чисел с помощью алгоритма Евклида. Используем её для нахождения наибольшего общего делителя следующих шести чисел: 16, 32, 40, 64, 80 и 128. В программе найден первый из элементов, удовлетворяющих условию.
program n_20;
const m: array [1..6] of integer = (16, 32,40, 64, 80, 128);
var i, x, y, z: integer;
procedure nod (a, b: integer;
var c:integer);
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
c:=a
end;
begin
x:=m[1];
for i:=2 to 6 do
begin
y:=m[i];
nod (x, y, z);
x:=z
end;
writeln (‘НОД=’, x)
end.
8 слайд — функции;
Функция — подпрограмма, имеющая единственный результат, записываемый в ячейку памяти, имя которой совпадает с именем функции.
function ( ): ;
begin
;
:=
end;
В блоке функции обязательно должен присутствовать оператор := .
Для вызова функции её имя со списком параметров можно в любом выражении, в условиях, в операторе write главной программы.
9 слайд — Функция поиска максимального из 2-х;
Напишем программу нахождения максимального из четырёх целых чисел, использующую функцию поиска максимального из двух чисел:
program n_20;
var a, b, c, d, f: integer;
function max (x, y: integer): integer;
begin
if x>y then max:=x else max:=y;
end;
begin
readln (a, b, c, d);
f:= max(max(a, b), max(c, d));
writeln (‘f=’, f);
end.
10 слайд – Последовательность Фибоначчи;
В январе Саше подарили пару новорождённых кроликов. Через два месяца они дали первый приплод — новую пару кроликов, а затем давали приплод по паре кроликов каждый месяц.
Каждая новая пара также даёт первый приплод (пару кроликов) через два месяца, а затем — по паре кроликов каждый месяц. Сколько пар кроликов будет у Саши в декабре?
Числа 1, 1, 2, 3, 5, 8, … образуют так называемую последовательность Фибоначчи, названную в честь итальянского математика, впервые решившего соответствующую задачу ещё в начале XIII века.
11 слайд – математическая модель;
Пусть f(n) количество пар кроликов в месяце с номером n.
По условию задачи:
f(1) = 1,
f(2) = 1,
f(3) = 2.
Из двух пар, имеющихся в марте, дать приплод в апреле сможет только одна: f(4) = 3.
Из пар, имеющихся в апреле, дать приплод в мае смогут только пары, родившиеся в марте и ранее:
f(5) = f(4) + f(3) = 3 + 2 = 5.
В общем случае:
f(n)= f(n –1)+ f(n – 2), n >= 3.
12 слайд – функция;
function f (n: integer): integer;
begin
if (n=1) or (n=2) then f:=1
else f:=f(n-1)+f(n-2)
end;
Полученная функция рекурсивная — в ней реализован способ вычисления очередного значения функции через вычисление её предшествующих значений.
13 слайд — самое главное.
Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм. В Паскале различают два вида подпрограмм: процедуры и функции.
Процедура — подпрограмма, имеющая произвольное количество входных и выходных данных.
Функция — подпрограмма, имеющая единственный результат, записываемый в ячейку памяти, имя которой совпадает с именем функции.
Вопросы и задания
14 слайд – вопросы и задания;
Вопросы 1-10 к параграфу 4.7.
4. Практическая часть (20 минут)
Выполнить, рассмотренные на уроке задачи № 3, 4, 10 из учебника на компьютере в среде программирования PascalABC.NET. Скачать ее можно по ссылке на сайте (https://pascalabc.net/).
Все задания, которые не успели выполнить на уроке, задаются на дом.
5. Подведение итогов урока. Сообщение домашнего задания. Выставление оценок (3 минуты)
15 слайд — опорный конспект;
16 слайд — Д/з.
Домашнее задание.
§4.8, вопросы № 1-10 к параграфу.
Архив включает в себя:
— конспект,
— ответы и решения на задания в учебнике,
— презентация «Запись вспомогательных алгоритмов на языке Паскаль».
Источник: infedu.ru
Рекурсивный метод нахождения чисел Фибоначчи
Программа принимает на вход число членов последовательности Фибоначчи и при помощи рекурсии вычисляет все числа, входящие в эту последовательность.
Решение задачи
- Принимаем на вход число членов последовательности и записываем его в отдельную переменную.
- Это число передается в качестве аргумента в рекурсивную функцию, которая будет вычислять n -й член последовательности.
- В качестве базового условия принимаем то обстоятельство, что число членов последовательности Фибоначчи не может быть меньше единицы либо равно ей. При наступление этого условия рекурсия останавливается.
- В противном случае функция вызывается вновь следующим образом: в качестве аргумента нашей рекурсивной функции передается введенное число, уменьшенное на единицу, и к этому прибавляется эта же функция с аргументом, уменьшенным уже на 2.
- Каждый вызов функции возвращает одно число, которое мы потом выводим на экран.
Исходный код
Ниже дан исходный код, который осуществляет вывод всех членов последовательности Фибоначчи заданного размера. Результаты работы программы также даны ниже.
def fibonacci(n): if (n
Объяснение работы программы
- Пользователь вводит число и оно записывается в переменную n .
- Передаем число n в качестве аргумента в рекурсивную функцию, которая вычисляет n-ый член последовательности.
- Так как первый член последовательности Фибоначчи по определению не может быть меньше 1, в качестве базового условия принимаем n
- В противном случае функция вызывается вновь следующим образом: fibonacci(n-1) + fibonacci(n-2) .
- Результаты выводятся на экран при помощи цикла for .
Результаты работы программы
Пример 1: Введите число членов последовательности:5 Последовательность Фибоначчи: 0 1 1 2 3 Пример 2: Введите число членов последовательности:7 Последовательность Фибоначчи: 0 1 1 2 3 5 8
Примечания переводчика
Как найти функцию зная только точки?
Судя по всему, то, о чем Вы говорите — аппроксимация функции. В Википедии более подробна статья про интерполяцию.
По сути, Ваша задача сводится к 2м шагам:
1. По точкам и общим зависимостям выбирается форма функции (например, полиномиальная, экспоненциальная и.т.п).
2. Строится модель, в которой задаётся функция с неизвестными параметрами. Задача — найти такие параметры, чтобы минимизировать функцию невязки(часто это квадрат разности между реальными значениями в заданых точках и значениями модельной функции, см. МНК).
Ответ написан более трёх лет назад
Нравится 4 2 комментария
Вы описываете задачу аппроксимации, это не то. Аппроксимация дает функцию, которая проходит РЯДОМ с точками, но не обязана пройти через все. Интерполяция же — как раз то, что и ищет ТС.
Дело в том, что из самого вопроса не совсем понятно, что именно нужно. Мне интерполяция многочленом понадобилась один раз на лабораторной работе, в то время как аппроксимация частенько пригождалась на практике. Но вполне вероятно, что я зря поленился уточнить вопрос.
Источник: qna.habr.com