- •Содержание
- •Введение
- •1 Рабочая программа по дисциплине «информатика»
- •Раздел 2. Алгоритмизация и программирование
- •2 Основы алгоритмизации
- •2.1 Основные этапы подготовки и решения задачи на компьютере
- •2.2 Постановка задачи. Разработка математической модели
- •2.3 Алгоритм и его свойства
- •2.4 Форма записи алгоритма на естественном языке
- •2.5 Графическая форма записи алгоритма
- •2.6 Типовые вычислительные процессы и структуры алгоритмов
- •2.6.1 Линейный вычислительный процесс
- •2.6.2 Разветвляющийся вычислительный процесс
- •2.6.3 Циклический вычислительный процесс
- •2.6.4 Алгоритмы обработки одномерных информационных массивов
- •2.6.5 Алгоритмы обработки двумерных информационных массивов
- •3 Язык программирования vba
- •3.1 Элементы языка
- •3.2 Программирование алгоритмов линейной структуры
- •3.3 Программирование алгоритмов разветвленной структуры
- •3.4 Программирование алгоритмов циклической структуры
- •3.5 Организация программ обработки одномерных массивов
- •3.6 Организация программ обработки двумерных массивов
- •4 Контрольная работа и методические указания по её выполнению
- •4.1 Выбор варианта
- •4.2 Задание 1. Варианты задач
- •4.3 Задание 2. Варианты задач
- •4.4 Задание 3. Теоретический вопрос
- •4.5 Методические указания по выполнению контрольной работы
- •4.5.1 Пример выполнения задания 1
- •4.5.2 Пример выполнения задания 2
- •4.5.3 Пример выполнения задания 3
- •Вопросы для подготовки к экзамену
- •Программирование алгоритмов циклической структуры.
- •Литература
- •Указатель
- •650992, Г. Кемерово, пр. Кузнецкий, 39. Тел. 25-75-00.
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