Реклама

Разработки уроков по теме «Программирование» с исполь-зованием финансовых задач

0
0
Материал опубликован 16 March


Решение финансовых задач с помощью программирования


Класс: 8 или 10 класс (базовый уровень в классах социально-экономического профиля)

Раздел программы: Начала программирования (язык Python)

Темы уроков:

Организация ввода и вывода (работа с целыми числами)

Программирование линейных алгоритмов (работа с вещественными числами)

Программирование разветвляющихся алгоритмов

Программирование циклических алгоритмов (цикл WHILE)

Программирование циклических алгоритмов (цикл FOR)

Планируемые результаты:

Метапредметные результаты:

целеполагание как постановка учебной задачи на основе соотнесения того, что уже известно и усвоено учащимся, и того, что еще неизвестно;

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

прогнозирование – предвосхищение результата и уровня усвоения, его временных характеристик;

контроль в форме сличения способа действия и его результата с заданным эталоном с целью обнаружения отклонений и отличий от эталона;

коррекция – внесение необходимых дополнений и корректив в план и способ действия в случае расхождения эталона, реального действия и его продукта;

Формирование алгоритмического мышления - умение планировать последовательность действий для достижения какой-либо цели (личной, коллективной, учебной, игровой и др.);

умение решать задачи, ответом для которых является описание последовательности действий на естественных и формальных языках;

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

Метепредметные результаты (финансовая грамотность):

достижение личных финансовых целей, путём анализа финансовых альтернатив и планирования;

умение находить эффективные способы решения финансовых задач;

получение первичных навыков самоанализа и самоменеджмента;

умение создавать и использовать в работе модели и схемы для решения финансовых задач


Личностные результаты:

формирование понятия связи различных явлений, процессов, объектов с информационной деятельностью человека;

личностное, профессиональное, жизненное самоопределение и построение жизненных планов во временной перспективе

эффективное и рациональное использование таких жизненных ролей как потребитель, налогоплательщик, инвестор

Предметные результаты:

умение использовать термины «алгоритм», «программа»; понимание различий между употреблением этих терминов в обыденной речи и в информатике;

умение формально выполнять алгоритмы, описанные с использованием алгоритмических конструкций;

умение создавать и выполнять программы для решения несложных алгоритмических задач в выбранной среде программирования;

навыки выбора способа представления данных в зависимости от постановленной задачи.


Тип урока (уроков): комбинированный (лекция + учебный практикум)

Оборудование: компьютерный класс, среда программирования



Урок 1. Организация ввода и вывода (работа с целыми числами)


Действия учителя

Время

Действия ученика

Обеспечение

Оргмомент. Приветствие. Проверка отсутствующих.


1 мин.


Электронный журнал

Постановка проблемы

Программисту пришло задание - автоматизация финансовой отчётности. Вычисления, которые нужно реализовать в программе: сумму дохода первых двух кварталов поделить на сумму последних двух кварталов, чтобы понять динамику роста или падения дохода


2 мин.

Помогают составить псевдокод, который необходимо превратить в код на языке программирования

запросить ввод 4 значений

найти сумму дохода за 2 первых квартала

найти сумму дохода за 2 последних квартала

вывести результат деления сумм


доска, электронная доска

Объяснение нового материала

Для написания программного кода нам необходимо познакомиться с операторами ввода, вывода и основными арифметическими операциями


Оператор вывода

Для вывода в Питоне есть функция print(). Внутри круглых скобок через запятую мы пишем то, что хотим вывести. 

Это может быть текст:

print(‘Hello’) # текст записываем в кавыках или апострофах

print(3 + 5) # результат вычислений

print(a) # значение переменной


Для вывода текста, значений переменных можно использовать следующие варианты:

перечисление через запятую

print(a, "+", b, "=", c)

объединение (конкатенация)

print('Здравствуйте, ' + name + '!')

f-строки

print( f "{a}+{b}={c}" )

метод format

print(“{a} + {b} = {c}”.format(a = a, b = b, c = a+b)

Переменная – величина, которая имеет имя, тип и значение. Значение переменной может изменяться во время выполнения программы


В имени переменной допускается использование:

- латинские буквы (прописные и строчные различаются)

- цифры (нельзя начинать имя с цифры)

- знак _ (нижнее подчеркивание)


Типы переменных:

int – целое число

float – вещественное число

str – строка

bool – логическое значение


Записать значение в переменную можно:

- с помощью оператора присваивания

а = 5

- ввести значение с клавиатуры с помощью оператора ввода input


Оператор ввода input()

Для ввода данных в программу мы используем функцию input(). Она считывает одну строку.

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

a = input()

>>> 5

print(a)

>>> ‘5’


Для того, чтобы с данными можно было работать как с числом, добавим функцию int, она преобразует введенную строку к целочисленному значению


a = int(input())


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


a = int(input(“Введите первое число”))


Арифметические операции

print(5 + 10)

print(3 * 7, (17 - 2) * 8)

print(2 ** 16) # две звёздочки означают возведение в степень

print(37 / 3) # один слэш — это деление с ответом-дробью

print(37 // 3) # два слэша считают частное от деления нацело

print(37 % 3) # процент считает остаток от деления нацело


15 мин

ведут конспект


доска, электронная доска

А теперь запишем наш псевдокод для задачи с помощью оператор языка Python


2 мин

period1 = int(input(“Введите сумму дохода за первый квартал”)

period2 = int(input(“Введите сумму дохода за второй квартал”)

period3 = int(input(“Введите сумму дохода за третий квартал”)

period4 = int(input(“Введите сумму дохода за четвертый квартал”)

sum1 = period1 + period2

sum2 = period3 + period3

print(“Динамика: {d}”.format(d = sum1 / sum2))


Закрепление материала.

Практическая работа.

20 мин

Пишут программы, используя среду Python

Задачи

(см. файл Линейный алгоритмы. Целые числа)


Примеры решений:

1.1 – 1.4

компьютерный класс, среда программирования

Домашнее задание

Выполнить задания урока «Ввод и вывод данных» на сайте Питонтьютор



1 мин


электронный журнал



Урок 2. Программирование линейных алгоритмов (работа с вещественными числами)


Действия учителя

Время

Действия ученика

Обеспечение

Оргмомент. Приветствие. Проверка отсутствующих.


1 мин.


Электронный журнал

Повторение.

Тестирование по материалам прошлого урока

7 мин.

Отвечают на вопросы

https://onlinetestpad.com/tsjiqn4xast46

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

Постановка проблемы

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

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

Пример работы программы

Стоимость покупки в евро: 150.00

Курс евро к доллару: 1.20

Курс доллара к рублю: 90.25

Стоимость покупки в рублях: 16245.00



3 мин.

Помогают составить псевдокод, который необходимо превратить в код на языке программирования


доска, электронная доска

Изучение нового материала

Дробная часть числа от целой в программировании отделена точкой

Для целых чисел определены операции +, -, * и **. Операция деления / для целых чисел возвращает вещественное число (значение типа float). Также функция возведения в степень возвращает значение типа float, если показатель степени — отрицательное число.


Обратите внимание, что если вы хотите считать с клавиатуры действительное число, то результат, возвращаемый функцией input() необходимо преобразовывать к типу float:


a = float(input())


Для работы с вещественными числами будут полезны такие функции:

int(x) - округляет число до целого в сторону нуля

round(x) – округляет число до ближайшего целого

round(x, n) - Округляет число x до n знаков после точки


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


Подключить модуль математика


import math


Некоторые функции модуля math

math.sqrt(x) – извлечение квадратного корня

math.pi() - число

math.ceil(x) – округление вверх

math.floor(x) – округление вниз


10 мин.

ведут конспект

доска, электронная доска

А теперь запишем наш псевдокод для задачи с помощью оператор языка Python

cost1 = float(input('Стоимость покупки в евро: '))

evro_dol = float(input('Курс евро к доллару: '))

dol_rub = float(input('Курс доллара к рублю: '))

cost2 = cost1 * evro_dol

cost3 = cost2 * dol_rub

print('Стоимость покупки в рублях: ', round(cost3,2))



3 мин

Записывают пример кода в тетрадь

доска, электронная доска

Закрепление материала.

Практическая работа.

15 мин

Пишут программы, используя среду Python

Задачи

(см. файл Вычисления. Вещественные числа)

Примеры решений:

2.1 – 2.6

компьютерный класс, среда программирования

Домашнее задание

Выполнить задания урока «Вычисления» на сайте Питонтьютор



1 мин


электронный журнал



Урок 3. Программирование разветвляющихся алгоритмов


Действия учителя

Время

Действия ученика

Обеспечение

Оргмомент. Приветствие. Проверка отсутствующих.


1 мин.


Электронный журнал

Повторение.

Тестирование по материалам прошлых уроков

7 мин.

Отвечают на вопросы теста

https://onlinetestpad.com/ts2khrbwtb5ko

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

Постановка проблемы

Необходимо написать программу, которая получает сумму покупки и выводит сумму чека со скидкой 10%, если сумма чека превышает 10000 руб., и без скидки, если сумма не превышает 10000 руб.


2 мин.

Помогают составить псевдокод, который необходимо превратить в код на языке программирования


доска, электронная доска

Изучение нового материала

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

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

t1773654967aa.png

Условная инструкция (полное ветвление) в Питоне имеет следующий синтаксис:

if Условие:

Блок инструкций 1

else:

Блок инструкций 2


Блок инструкций 1 будет выполнен, если Условие истинно. Если Условие ложно, будет выполнен Блок инструкций 2.

Неполная форма условного оператора

if Условие:

Блок инструкций

Операторы сравнения:

< > - меньше, больше

>= <= - больше или равно, меньше или равно

== - равно

!= - не равно

Задача: найти минимум из двух чисел

Решение 1 (полная форма условного оператора)

a = int(input(“Первое число: ”))

b = int(input(“Второе число: ”))

if a < b:

print(“Минимальное число: ”, a)

else:

print(“Минимальное число: ”, b)


Решение 2 (неполная форма условного оператора)

a = int(input(“Первое число: ”))

b = int(input(“Второе число: ”))

m = a

if b < m:

m = b

print(“Минимальное число: ”, m)

Использование логических операций в условиях (сложные условия)

Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций:

and – одновременное выполнение условий

а >= 25 and а <= 40

or – выполнение хотя бы одного из условий

а <= 25 or а >= 40

not – отрицание, обратное условие

not (а > 25)

Каскадное ветвление

Пример программы, определяющий четверть координатной плоскости, можно переписать используя “каскадную“ последовательность операцией if... elif... else:

x = int(input())

y = int(input())

if x > 0 and y > 0:

print("Первая четверть")

elif x > 0 and y < 0:

print("Четвертая четверть")

elif y > 0:

print("Вторая четверть")

else:

print("Третья четверть")


В такой конструкции условия if, ..., elif проверяются по очереди, выполняется блок, соответствующий первому из истинных условий. Если все проверяемые условия ложны, то выполняется блок else, если он присутствует.


10 мин.

ведут конспект

доска, электронная доска

А теперь запишем наш псевдокод для задачи с помощью оператор языка Python

summa = float(input('Стоимость товаров в корзине: '))

if summa > 10000:

s1 = summa * 0.9

else:

s1 = summa

print('Сумма в чеке:', round(s1,2),'руб.')


3 мин

Записывают пример кода в тетрадь

доска, электронная доска

Закрепление материала.

Практическая работа.

16 мин

Пишут программы, используя среду Python

Задачи

(см. файл Условные вычисления. Ветвление)

Примеры решений:

3.1 -3.3

компьютерный класс, среда программирования

Домашнее задание

Выполнить задания урока «Условия» на сайте Питонтьютор

1 мин


электронный журнал



Урок 4. Программирование циклических алгоритмов (цикл WHILE)


Действия учителя

Время

Действия ученика

Обеспечение

Оргмомент. Приветствие. Проверка отсутствующих.


1 мин.


Электронный журнал

Повторение

Тестирование по материалам прошлых уроков

7 мин.

Отвечают на вопросы теста https://onlinetestpad.com/hufxqgcn3l7gs


Постановка проблемы

Необходимо вычислить, сколько лет нужно выплачивать фирме кредит, если известна ежегодная ставка по кредиту и ежегодная выплата.

1. Определим исходные данные.

Исходные данные: S - сумма кредита, p - процентная ставка, V - выплата по кредиту.
Результат: r - количество лет необходимые для выплаты кредита.

2. Логика задачи достаточно проста. Нужно определять, как будет уменьшаться сумма кредита каждый год, пока не станет равной 0. И подсчитывать при этом количество лет.

Определим, что S0 - это начальная сумма. Тогда S1 - это сумма на конец первого года. 

S1 = (S0+S0×p/100)−V

Для второго года сумма кредита равна

S2=(S1+S1×p/100)−V

Sn=(Sn−1+Sn−1×p/100)−V для n>0

То есть, необходимо изменять по формуле значение суммы кредита каждый год. Данное действие нужно производить пока сумма кредита больше 0.


5 мин.

Помогают составить псевдокод, который необходимо превратить в код на языке программирования


доска, электронная доска

Изучение нового материала

Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла. 

Синтаксис цикла while в простейшем случае выглядит так:

while условие:

блок инструкций


Пока выполняется условие, прописанное после while, блок кода внутри цикла будет повторяться.

Чтобы Python понял, какую часть кода повторять в цикле, а какую выполнять после цикла, используйте отступы:

while x < 10:
x += 1 — этот код будет повторяться
в цикле;

x -= 1 — этот код будет выполнен после цикла.

При необходимости код можно прервать без выполнения условия:

while x < 10: if x == 5:

break — эта команда прервёт выполнение цикла. x += 1

x -= 1 — после прерывания будет выполнен код после цикла.


7 мин.

ведут конспект


доска, электронная доска

А теперь запишем наш псевдокод для задачи с помощью оператор языка Python

S = float(input('Введите сумму кредита: '))

p = float(input('Введите процентную ставку: '))

V = float(input('Какова будет ежегодная выплата: '))

r = 0

while S > 0:

S += S * p/100

S -= V

r += 1

print(S,r)

print(f'Для выплаты кредита необходимо {r} лет')


2 мин

Записывают пример кода в тетрадь

доска, электронная доска

Закрепление материала.

Практическая работа.

17 мин

Пишут программы, используя среду Python

Задачи

(см. файл Цикл WHILE)

Примеры решений:

2.1 – 2.6

компьютерный класс, среда программирования

Домашнее задание

Выполнить задания урока «Цикл While» на сайте Питонтьютор



1 мин


электронный журнал




Урок 5. Программирование циклических алгоритмов (цикл FOR)


Действия учителя

Время

Действия ученика

Обеспечение

Оргмомент. Приветствие. Проверка отсутствующих.


1 мин.


Электронный журнал

Повторение.

Тестирование по материалам прошлых уроков

7 мин.

Отвечают на вопросы теста https://onlinetestpad.com/5hdspg4soyagq


Постановка проблемы

Необходимо написать программу, которая подсчитывает чистый доход предпринимателя в течение календарного года (12 месяцев). Программа получает доход в каждый из месяцев года, из этого дохода нужно вычесть 35% налогов, остальное нужно учесть в чистом доходе


5 мин.

Помогают составить псевдокод, который необходимо превратить в код на языке программирования


доска, электронная доска

Изучение нового материала


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


i = 1

for color in 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet':

print('#', i, ' color of rainbow is ', color, sep = '')

i += 1


В этом примере переменная color последовательно принимает значения 'red', 'orange' и т.д. В теле цикла выводится сообщение, которое содержит название цвета, то есть значение переменной color, а также номер итерации цикла  число, которое сначала равно 1, а потом увеличивается на один (инструкцией i += 1 с каждым проходом цикла.


Функция range в цикле for

# одно значение

for n in range(10):

print(n)

n принимает значения 0 1 2 3 4 5 6 7 8 9

# два значения

for n in range(1,10):

print(n)

n принимает значения 1 2 3 4 5 6 7 8 9


# три значения +

for n in range (1,10,2):

print(n)

n принимает значения 1 3 5 7 9


# три значения -

for n in range(10,1,-1):

print(n)

n принимает значения 10 8 6 4 2


Задача

Найти сумму чисел от 1 до 1000

# решение

s=0

for n in range(1,1000+1):

s=s+n # s+=n

print(s)


7 мин.

ведут конспект

доска, электронная доска

А теперь запишем наш псевдокод для задачи с помощью оператор языка Python

summa = 0

for month in range(1,12+1):

d = float(input(f'Введите доход за {month} месяц: '))

summa += d*0.65

print('Чистый доход предпринимателя за год {s}'.format(s = round(summa,2)))


3 мин

Записывают пример кода в тетрадь

доска, электронная доска

Закрепление материала.

Практическая работа.

16 мин

Пишут программы, используя среду Python

Задачи

(см. файл Цикл FOR)

Примеры решений:

2.1 – 2.6

компьютерный класс, среда программирования

Домашнее задание

Выполнить задания урока «Цикл for» на сайте Питонтьютор



1 мин


электронный журнал


Итоговый тест на следующий урок https://onlinetestpad.com/k63qj34dtktrg



Список источников

Питонтьютор. Интерактивный учебник языка программирования Python. http://pythontutor.ru/

Авторская мастерская Л.Л.Босовой https://lbz.ru/metodist/authors/informatika/3/

Сайт К.Ю. Полякова https://kpolyakov.spb.ru/

Н.Прохоренок, В.Дронов. Python 3. Самое необходимое. – Спб.: «БХВ –Петербург», 2016

Сборник математических задач «Основы финансовой грамотности» - М.,2019

в формате Microsoft Word (.doc / .docx)
Комментарии
Комментариев пока нет.