Тема: створення і опрацювання моделей на прикладах задач з економіки.
Мета:
Обладнання: комп'ютери з встановленими ОС і LibreOffice,Free Pascal (дана) інструкція.
Структура уроку
Хід уроку
1. Організаційний момент
Вітання з класом. Перевірка присутності і готовності учнів до уроку. Перевірка виконання домашнього завдання.
2. Актуалізація опорних знань
Приклад 1. У банк вклали суму P під r відсотків річних на n років. Розрахувати кінцеву суму вкладу S при нарахуванні:
Об'єкти моделі:
P — сума вкладу;
r — ставка процента за рік;
n — період нарахувань (кількість років);
S — кінцева сума вкладу.
(1) S = P · (1 + rn/100) — кінцева сума вкладу при нарахуванні простих процентів;
(2) S = P · (1 + r/100)n — кінцева сума вкладу при нарахуванні складних процентів.
Розрахунки можна провести у середовищі LibreOffice Calc, створивши таблицю такого вигляду.
Формули записано у комірки D9 (прості проценти) і D14 (складні проценти). При внесенні у комірки D4:D6 у комірках D9 і D14 буде відображено результати обчислень.
Приклад 2. У банк вклали суму Р за ставкою r процентів річних. Розрахувати кінцеву суму вкладу для таких періодів часу: 0, 1/2, 1, 2, 3, і 4 роки при нарахуванні складних і простих відсотків. Побудувати відповідні графіки.
Запишемо у таблиці такі дані:
На основі табличних даних побудуємо графіки.
Зауваження. За час до року, не включаючи рік, кінцева сума вкладу при нарахуванні згідно з формулою (2) для складних відсотків є меншою ніж при нарахуванні згідно з формулою (1) для простих відсотків. Для періоду понад 1 рік все навпаки: кінцева сума вкладу при нарахуванні складних відсотків буде більшою ніж при нарахуванні простих відсотків.
Приклад 3 — задача «Банкiвська справа», яку пропонували учасникам олімпіади з інформатики, задача про оптимальне розташування фондів на фондовому ринку з метою отримання максимального зиску.
Сюжет. Молодий ломбардець Гуччо Бальйонi (герой серiї творiв французького письменника Морiса Дрюона) часто виконував таємнi доручення сучасних йому можновладцiв Францiї, Анґлiї та Італiї. Не маючи можливостi протягом трьох рокiв безпосередньо самому займатися справами, вiн вирiшив отримати зиск, вклавши грошi у справи паризьких банкiрiв. Виявилося, що розмiр винагороди (% зиску) рiзний у рiзних банкiрiв. Звичайно, чим бiльшу суму вiн дасть банкiру, тим бiльше отримає через 3 роки. І не менше, нiж дав банкiру. Але в кожного банкiра % зиску рiзний для рiзних сум. Нажаль, за розрахунками Гуччо, йому нiколи не отримати бiльше ніж 1000 лiврiв (середньовiчних французьких монет).
Завдання
Створити програму profit.*, яка домоможе молодому ломбардцю отримати якнайбiльшi статки.
Вхідні дані
Перший рядок файлу profit.in у вказаному порядку мiстить 2 натуральних числа:
m — кiлькiсть лiврiв, яку молодий Гуччо може використати для збагачення;
n — кiлькiсть паризьких банкiрiв.
Тут m і n не перевищують 100.
Для j в межах вiд 1 до m (j + 1)-ий рядок цього файлу мiстить послiдовнiсть n натуральних чисел. k-ий член цiєї послiдовностi — це кiлькiсть монет, яку отримає Гуччо через три роки вiд k-го банкiра, вiддавши йому j монет перед вiд'їздом.
Вихідні дані
Перший рядок вихiдного файлу profit.out має мiстити найбiльшу кiлькiсть лiврiв, яку може мати молодий ломбардець через 3 роки, використавши m лiврiв належним чином.
Другий рядок цього файлу має мiстити послiдовнiсть n невiд'ємних цiлих чисел. k-ий член цiєї послiдовностi — це кiлькiсть лiврiв, яку
має дати Гуччо k-му банкiру, щоб отримати максимальний зиск вiд своїх
капiталовкладень (потрiбно подати хоча б один з варiантiв розподiлу).
Приклад
profit.in | profit.out |
---|---|
3 10 1 1 6 2 2 5 2 1 3 3 2 4 7 8 3 7 8 4 8 5 7 10 12 10 4 9 11 6 13 7 |
14 0 0 1 2 0 0 0 0 0 0 |
Опис моделі
Запровадимо такі позначення:
bjk — кількість монет, які герой отримає за j монет від банкіра k (вхідні дані);
fjk — найбільша кількість монет, які герой отримає при найоптимальнішому розподілі j монет серед банкірів 1, 2, …, k.
Покладемо: b0k = f0k = 0.
Маємо:
fj1 = bj1 при j = 1, 2, …, m;
fj (k + 1) = max {
f(j – l) k + bl (k + 1)
}l = 0, 1, 2, …, j при k = 1, 2, …, n – 1.
Те l, при якому досягається максимум, потрібно запам'ятати як елемент таблиці сj (k + 1), щоб потім скористатися при знаходженні оптимального розподілу монет на основі таких тверджень:
якщо fjk < fj (k + 1), то при оптимальному розподілі j монет серед банкірів 1, 2, …, (k + 1) потрібно обов'язково скористатися послугами банкіра (k + 1);
якщо fjk = fj (k + 1), то при оптимальному розподілі j монет серед банкірів 1, 2, …, (k + 1) можна обійтися без послуг банкіра (k + 1).
Розв'язання задачі мовою Pascal
(подавати з синхронним літературним перекладом розмовною мовою)
const n_max=101; m_max=101; var b, {Кількість повернутих монет кожним банкіром} f, {Максимальний зиск якщо використано перші банки} q: {Капіталовкладення у перші n банків} array[1..n_max,0..m_max] of word; x: array[1..n_max] of word; {У кожен банк} o: text; i,j,k,l,m,n,p: word; BEGIN assign(o,'PROFIT.IN'); reset(o); readln(o,m,n); for i:=1 to n do begin b[i,0]:=0; x[i]:=0 end; for j:=1 to m do for i:=1 to n do read(o,b[i,j]); close(o); for j:=0 to m do begin f[1,j]:=b[1,j]; q[1,j]:=j end; for i:=2 to n do for j:=0 to m do begin p:=0; for k:=0 to j do if (f[i-1,j-k]+b[i,k])>p then begin p:=f[i-1,j-k]+b[i,k]; l:=k; end; f[i,j]:=p; q[i,j]:=l; end; p:=f[n,m]; i:=n; repeat x[i]:=q[i,m]; m:=m-x[i]; dec(i) until m=0; assign(o,'PROFIT.OUT'); rewrite(o); writeln(o,p); for i:=1 to n-1 do write(o,x[i],' '); writeln(o,x[n]); close(o) END.
4.Інструктаж з ТБ
5. Закріплення вивченого матеріалу
Створити комп'ютерну модель такої: 100 000 гривень поклали на місячний депозит під 20% річних. Якою буде кінцева сума через 3 місяці, якщо таку операцію здійснювали тричі щомісяця? Результат записати з назвою Ваше прізвище теку, вказану вчителем.
6. Підбиття підсумків уроку
Виставлення оцінок.
7. Домашнє завдання
Текст упорядкувала Бицюра Надія Михайлівна, вчитель СШ № 31 Дніпровського району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 06.10.2014 до 25.10.2014.