Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

пр6-8

.pdf
Скачиваний:
111
Добавлен:
14.03.2016
Размер:
1.45 Mб
Скачать

4.1.2.Линейный вычислительный процесс

сформульной постановкой задачи

Постановка задачи.

Вычислить значение функции:

y =

 

B sin 2 x

 

 

 

+

0 .7 A 2 x 2

 

 

 

 

 

 

 

 

tg (1 .6 A π x 3 )

 

 

 

12000

 

если

A = 42 .88 ,

B

 

 

= − 2348 .5 , x = 0 .773 .

Математическая модель задачи.

Формульная постановка задачи позволяет сформировать математическую модель ее с требуемой степенью детализации вычислительных зависимостей. Чем выше степень детализации формулы, тем проще в дальнейшем проверить достоверность полученных результатов. Для рассматриваемого примера в соответствии с фрагментами числителя и знаменателя зададимся стандартной детализацией на формулы с 3 - 5 элементарными операциями.

 

Исходные данные:

(основные)

(вспомогательные)

А= 42,88

π= 3,1416

В= -2348,5

 

х= 0,773

Расчетные зависимости: y1 = B sin 2 x;

у2 = tg(1.6 Aπ x3 );

у3 = 0.7 A2 x 2 ;

у4 = у1/ у2 ;

у = у4 + у3 12000

Выбор метода решения.

Анализ математической модели задачи показывает, что после ввода исходных данных требуется однократное последовательное выполнение запланированных расчетных зависимостей (у1, у2, у3, у4, у). Следовательно в качестве метода решения необходим линейный вычислительный процесс.

103

Создание алгоритма решения.

Полученная математическую модель и выбранный метод решения предписывают следующий алгоритм:

1

Начало

- начало решения

2

А, В, х, π

3

A, B, x, π

4

у1sin2 x ; y2=tg(1.6Apx3)

5

y3=0.7 A2 x 2; y4=y1/Ö|y2| у=у4+y3/12000

6

y1, y2, y3, у4, y

7

Конец

-ввод исходных данных

-индикация значений

-расчет искомых величин

-расчет искомых величин

-индикация искомых значений

-конец решения

Программирование задачи.

Реализация полученного алгоритма в принципе расчитана на использование любого конкретного языка программирования.

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

Методика реализации решения в MS Excel:

∙ активизировать нужный «Лист» табличного процессора;

104

оформить математическую модель задачи в соответствующих ячейках (по стандартной методике ввода данных) дополнив поясняющими надписями. Например, для данной задачи столбцы В, F):

ввести значения исходных данных (по стандартной методике ввода данных). Для данной задачи, например см. значения в ячейках С5:С7, G5):

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

-обозначение 1-ой промежуточной расчетной зависимости и ее математическое представление – текстовую константу (ячейки В11 и С11 соответсвенно);

-обозначение 2-ой промежуточной расчетной зависимости и ее математическое представление – текстовую константу (ячейки В12 и С12 соответсвенно);

-обозначение 3-ей промежуточной расчетной зависимости и ее математическое представление – текстовую константу (ячейки В13 и С13 соответсвенно);

-обозначение 4-ой промежуточной расчетной зависимости и ее математическое представление – текстовую константу (ячейки В14 и С14 соответсвенно);

-обозначение результирующей расчетной зависимости и ее математическое представление – текстовую константу (ячейки В15 и С15 соответственно);

105

реализовать математические зависимости средствами MS Excel (по стандартной методике ввода формул).

Для данной задачи, например: - в ячейке F11 зависимость:

=C6*СТЕПЕНЬ(SIN(C7);2);

-в ячейке F12 зависимость: =TAN((1,6*C5*G5*СТЕПЕНЬ(C7;3)));

-в ячейке F13 зависимость:

=0,7*СТЕПЕНЬ(C5;2)*СТЕПЕНЬ(C7;2)

-в ячейке F14 зависимость: =F11/КОРЕНЬ(ABS(F12));

-в ячейке F15 зависимость: =F14/F12+F13/12000.

По окончании ввода формул в ячейках F11, F12, F13, F14, F15 автоматически будут получены результаты вычислений. Контроль расчетных зависимостей в ячейках с результатом можно осуществить по методике (см. п.2.3.1.2.);

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

Для реализации данной задачи с другими исходными данными достаточно перезаполнить их численные значения в соответствующих ячейках (для данного примера: С5, С6, С7). В ячейках F11, F12, F13, F14, F15 будут автоматически произведены пересчеты результатов.

106

Задание 4.1.2

1Реализовать решение простого линейного вычислительного процесса с формульной постановкой задачи в соответствии с номером варианта (Приложение 3).

Контрольные вопросы 4.1.2

1.Как реализуется вычислительная часть алгоритма линейного процесса с формульной постановкой задачи?

2.Почему при реализации задач в Excel разные по типу данные (числовые, текстовые и т.д.) нельзя вводить в

одну ячейку?

3.Как после реализации задачи пользователя в Excel пересчитать ее с другими исходными данными?

4.2.Разветвляющиеся вычислительные процессы

Ветвящийся (разветвляющийся) - вычислительный процесс в котором расчеты в соответствии с проверкой заданных условий производятся по различным математическим зависимостям (ветвям).

Разветвляющийся вычислительный процесс математически выражается зависимостью:

f

1(x)

 

 

y =

 

 

(x)

f n

, если условие 1

×× ×

,если условие n

Количество условий (их структура) и число получаемых ветвей обуславливают деление разветвляющихся процессов на:

простые;

сложные.

Простой – разветвляющийся процесс с проверкой одного условия.

Сложный – разветвляющийся процесс с проверкой нескольких условий.

Простые условия в свою очередь делят по сложности на:

простейшие;

составные.

107

4.2.1.Разветвляющийся вычислительный процесс

спростейшим условием

Простейшее - условие сравнения двух операндов одной логической операцией.

Например: х > у или z < 6 или (x – 3) ≤ y.

Результат проверки простого условия – две вычислительные ветви.

Рассмотрим программирование простейших разветвляю-

щихся процессов на конкретном примере.

Постановка задачи. Получена партия кондитерской продукции (12 коробок) одного наименования и сорта. Цена кг продукции известна (56 рублей). Оплата за партию равна общей стоимости продукта, если его общая масса меньше 200 кг, в противном случае дается скидка в 5% от общей стоимости. Тре-

буется определить размер оплаты полученной партии.

Математическая модель задачи.

Исходные данные:

(основные)

(вспомогательные)

Кк= 12 шт.

с= 5%

Мк= _ _ ,_ _ кг/шт

Мкр= 200 кг

Цкг= 56,00 р/кг

Кn= 100%

Расчетные зависимости: Моб= Мк к (кг/шт * шт = кг) Стоб= Моб * Цкг (кг* р/кг =р)

 

Ст

об ,

 

n = 1,

если Моб < Мкр

(р)

Оn

 

 

 

 

с× Стоб

 

 

 

=

 

 

-

, n = 2,

если Моб ³ Мкр

(р)

 

Ст

об

 

 

 

 

 

 

 

 

Кn

 

 

 

 

 

 

 

 

 

 

 

Зависимости n=1 и n=2 определяют номера ветвей, формируемых в задаче.

Выбор метода решения.

Математическая модель показывает, что после определения общей стоимости партии, оплата ее может выполняться

108

двумя вариантами (Оn = Cтоб, если Mоб < Mкр или Оn = Стоб – с * Стобn, если Mоб Mкр).

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

Исходя из изложенного - методом решения является простой ветвящийся вычислительный процесс.

Создание алгоритма решения.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

1

 

 

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Да

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нет

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мобк

 

 

 

 

Кк, Мк, Цкг, с,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мкр, Кn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

n=1

 

 

 

 

 

 

 

 

 

 

 

 

n=2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

Оnоб

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с*Соб

 

 

Кк, Мк, Цкг,

 

 

 

 

 

 

 

 

 

 

 

 

 

Оn = Стоб -

Кn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с, Мкр, Кn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мо , Стоб,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мокк

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оn, n

 

 

Стобобкг

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Развернутая схема наглядна, но для машинной реализации в варианте классического программирования на алгоритмиче-

109

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

Впринципе, возможны два варианта реализации:

блок 6, ниже блок 7;

блок 7, ниже блок 6.

Естественно, что в любом из них непрерывность стрелок в передаче управления от блока проверки условия (5) и к блоку печати результатов (8) обязательна.

Выберем последовательность 6-7.

Тогда условно - линейная схема алгоритма принимает

вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мобк

 

 

 

 

 

 

 

 

 

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

р

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Да

 

 

 

 

Мк, Цкг, с,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кк,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n=1

 

 

 

 

 

 

 

 

 

Мкр, Кn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оnоб

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кк, Мк, Цкг,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с, Мкр, Кn

 

 

 

 

 

 

 

 

n=2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оn =

Стоб -

с*Соб

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кn

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

окк

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

М

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Стобобкг

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мо , Стоб,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оn, n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

110

Использование условно – линейных схем при реализации задачи в Excel не обязательно, но позволяет получить некоторые навыки для будущего классического программирования.

Программирование задачи.

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

Excel.

Методика реализации решения.

активизировать нужный «Лист» Книги табличного процессора;

оформить математическую модель исходных данных задачи поясняющими надписями в соответствующих ячейках - по стандартной методике ввода данных (см. значения в столбцах В, D, F, H);

ввести значения исходных данных - по стандартной методике ввода данных (см. значения в ячейках С5:С7, G5:G7). Для данной задачи, например:

;

Внимание! Значение в ячейку С6 не введено, т.к. согласно постановке задачи оно заранее неизвестно

иопределяет ветвь вычислений.

создать блок расчетных зависимостей, определив ячейки их записей и оформить их поясняющими надписями (Например: расчет промежуточных данных Моб и Стоб (ячейки В11 и В12 соответственно), проверка размерности (ячейки F11, F12), диапазон ячеек А14:F17 содержит вид математической зависимости – текстовую константу определения размера оплаты за партию Оn, (создание нестандартной, достаточно - сложной по записи математической зависимости см. с. 32), в ячейках G15 и I15 обо-

111

значение запланированных результатных данных - размера оплаты и номера ветви соответственно:

;

реализовать математические зависимости средствами MS Excel в запланированные для этого ячейки D11, D12, H15, J15 (по стандартной методике ввода формул).

Ячейка D11 будет содержать формулу: =С6*С5;

Ячейка D12 – =D11*C7;

Ячейка H15 – = ЕСЛИ(D11<G6;D12;D12-G5*D12/G7); Ячейка J15 – = ЕСЛИ(D11<G6;1;2).

Формулы можно проконтролировать любым способом определения наличия формул в ячейках (см. п. 2.3.1.2);

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

ввести массу одной коробки (ячейка С6) и проконтролировать результат вычислений. Например для Мк=20 кг/шт результат:

112