Тема: Построение математических моделей как предварительный этап алгоритмизации. Цель

Вид материалаРешение

Содержание


Стоимость покупки
Стоимость покупки
Подобный материал:
Тема: Построение математических моделей

как предварительный этап алгоритмизации.


Цель: продемонстрировать учащимся, что решение многих задач требует построения последовательности моделей (уточняющих друг друга или более общих).


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


Задача:

Товар в магазин поступает партиями в контейнерах, которые после разгрузки возвращаются поставщику. Известна цена контейнера с товаром (А рублей) и цена пустого контейнера (В рублей). Сколько товара можно купить на S рублей, если средства, полученные за возвращенные контейнеры, вновь используются для покупки новой партии товара? Считать А, В, S целыми числами.


Решение.

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

Пусть S = 22, А = 4, В = 1. Определяем К – общее количество купленных партий товара.

Заполним следующую таблицу:

Шаг

Денег у покупателя

Куплено контей-неров с товаром

Стоимость покупки

«Сдача»

Выручено за контейнеры

Осталось денег у покупателя

1

22

5

20

2

5

7

2

7

1

4

3

1

4

3

4

1

4

0

1

1

4

0



















Итого:

7















Анализ таблицы позволяет предположить, что математическая модель решения задачи такова (гипотеза 1):

К = [S / ( А – В )].

Квадратные скобки означают целую часть частного.

Проверим гипотезу на других исходных данных: S = 22, А = 4, В = 2.

Если формула верна, то ответ будет равен 11.



Шаг

Денег у покупателя

Куплено контей-неров с товаром

Стоимость покупки

«Сдача»

Выручено за контейнеры

Осталось денег у покупателя

1

22

5

20

2

10

12

2

12

3

12

0

6

6

3

6

1

4

2

2

4

4

4

1

4

0

2

2

5

2

0
















Итого:

10















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

Тогда математическая модель может быть такой (гипотеза 2):

К = [(S – В) / ( А – В )].

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


Пример решения в Excel.

В числовом виде:





A

B

C

D

E

1

Начальная сумма денег

100










2

Цена контейнера с товаром

10










3

Цена пустого контейнера

7










4
















5

S

K1=[S/F]

R=S остаток A

V=K1*B

S=R+V

6

100

10

0

70

70

7

70

7

0

49

49

8

49

4

9

28

37

9

37

3

7

21

28

10

28

2

8

14

22

11

22

2

2

14

16

12

16

1

6

7

13

13

13

1

3

7

10

14

10

1

0

7

7

15

7

0

7

0

7

16
















17

К=

31

По формуле:

31




В формульном виде:





A

B

C

D

E

1

Начальная сумма денег

100










2

Цена контейнера с товаром

10










3

Цена пустого контейнера

7










4
















5

S

K1=[S/F]

R=S остаток A

V=K1*B

S=R+V

6

=В1

=целое(А6/b$2)

=остаток(А6;b$2)

=В6*В$3

=С6+D6

7

=Е6

=целое(А7/b$2)

=остаток(А7;b$2)

=В7*В$3

=С7+D7

8

=Е7

=целое(А8/b$2)

=остаток(А8;b$2)

=В8*В$3

=С8+D8

9

=Е8

=целое(А9/b$2)

=остаток(А9;b$2)

=В9*В$3

=С9+D9

10

=Е9

=целое(А10/b$2)

=остаток(А10;b$2)

=В10*В$3

=С10+D10

11

=Е10

=целое(А11/b$2)

=остаток(А11;b$2)

=В11*В$3

=С11+D11

12

=Е11

=целое(А12/b$2)

=остаток(А12;b$2)

=В12*В$3

=С12+D12

13

=Е12

=целое(А13/b$2)

=остаток(А13;b$2)

=В13*В$3

=С13+D13

14

=Е13

=целое(А14/b$2)

=остаток(А14;b$2)

=В14*В$3

=С14+D14

15

=Е14

=целое(А15/b$2)

=остаток(А15;b$2)

=В15*В$3

=С15+D15

16
















17

К=

=СУММ(В6:В15)

По формуле:

=ЦЕЛОЕ((В1-В3)/(В2-В3))





Примечание. Формулы вводятся в ячейки А6:Е6, А7, В17, D17. Формулы для строк с 7-й по 15-ю копируются из 6-й строки.


Программа на Паскале:


var

S, S1, A, B, K, K1, KP, R, V: integer;

begin

write(‘Введите начальную сумму, цену контейнера с товаром, цену контейнера:’);

readln (S,A,B);

S1:=S;

K:=0;

while S>=A do

begin

K1:=S div A; K:=K+K1; {куплено контейнеров с товаром}

R:=S mod A; {“сдача”}

V:=K1*B; {стоимость сданных контейнеров}

S:=R+V; {осталось денег у покупателя}

writeln;(‘K1=’ , K1, ‘ R=’ , R, ‘ V=’ , V, ‘ S=’ , S)

end;

writeln;

writeln(‘Всего куплено –‘ , K, ‘ По формуле –‘ , (S1-B) div (A-B));

readln

end.