Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмизация и программирование.doc
Скачиваний:
70
Добавлен:
24.11.2018
Размер:
1.15 Mб
Скачать

4.5.2 Пример выполнения задания 2

Задание 2. Имеются данные об ежедневной выручке каждого магазина торговой фирмы в течение недели. Определить выручку указанного магазина в течение недели; определить выручку всех магазинов фирмы в указанный день недели.

Таблица 9 – Исходные данные для задания 2

Название магазина

День недели

Выручка магазина, тыс. руб.

Чибис

1

950

Чибис

2

990

Кора

1

1100

Кора

2

1500

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

а) Обозначение переменных:

N – количество записей в таблице = число_магазинов*7 (число дней в неделе);

M(N) – массив названий магазинов;

D(N) – массив номеров дней;

V(N) массив ежедневной выручки каждого магазина;

i номер текущей записи (i =1,2,3,...N);

Mag – название нужного магазина;

Nd – номер нужного дня недели;

VM - выручка указанного магазина в течение недели;

VD – выручка всех магазинов фирмы в указанный день недели.

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

N, i, Nd – простые переменные целого типа;

M(i) – символьная переменная с индексом (элемент массива М);

D(i) – целочисленная переменная с индексом (элемент массива D);

V(i) – вещественная переменная с индексом (элемент массива V);

Mag – простая переменная символьного типа;

VM, VD – простые переменные вещественного типа.

в). Классификация по группам:

исходные данные: M(N), D(N), V(N), Mag, Nd;

результаты: VM; VD;

промежуточный результат: i.

г). Система расчетных формул:

VM = 0

обнуление VM

VD = 0

обнуление VD

i = 1

начальный номер элемента

Если М(i)=Mag, то VM = VM+V(i)

накопление суммы выручки

Если D(i)=Nd, то VD = VD+V(i)

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

i = i + 1

формирование номера следующего элемента

Если i≤N, то повторять действия, иначе выход из цикла

Представим алгоритм определения выручки магазина в виде блок-схемы (рис.20):

Рис. 20 Блок-схема обработки массива к заданию 2

Программа на VBA имеет вид:

Sub Задание2()

Dim D(), V() As Single

Dim M() As String

Dim VM, VD As Single

Dim Mag As String

Dim i, N, Nd As Integer

N = InputBox("Введите количество элементов массива")

ReDim D(N), V(N) As Single

ReDim M(N) As String

Debug.Print "Магазин", "День недели", "Выручка"

For i = 1 To N

M(i) = InputBox("Введите название магазина")

D(i) = InputBox("Введите день недели")

V(i) = InputBox("Введите выручку")

Debug.Print M(i), D(i), V(i)

Next i

Mag = InputBox("Выручку какого магазина вычислить?")

VM = 0

For i = 1 To N

If Mag = M$(i) Then VM = VM + V(i)

Next i

Nd = InputBox("За какой день?")

VD = 0

For i = 1 To N

If Nd = D(i) Then VD = VD + V(i)

Next i

Debug.Print "Выручка магазина "; Mag; " за неделю составляет: "; VM

Debug.Print "Выручка магазина за день "; Nd; " составляет: "; VD

End Sub