Программирование на Visual Basic
Рефераты >> Программирование и компьютеры >> Программирование на Visual Basic

СОДЕРЖАНИЕ

1.Задание

2.Описание переменных

3.Блок-схема

4.Описание алгоритма

5.Листинг программы

6.Описание входных данных и результат вычисления

6.1Проверка программы на произвольных данных

6.2Проверка программы на всех НУЛЯХ

6.3Проверка программы на всех ЕДИНИЦАХ

7.Список литературы

1.Задание

Книжный магазин продал за 3 месяца различное количество книг 12 наименований по цене, устанавливаемым в начале каждого месяца (т.е. каждый месяц цены на книги менялись).

Написать программу на языке VBA, которая вводит исходные данные, выполняет расчёты и выводит на экран:

- исходные данные в виде таблицы, где указаны наименования книг, цена книги в каждом месяце, кол-во проданных книг за каждый месяц;

- доход по каждой книге за 3 месяца

- доход за каждый месяц по всем книгам;

- общий доход по всем книгам за 3 месяца;

- наименование книги, принёсший наибольший доход

2.Описание переменных

В программе переменные описаны следующим образом:

1) cena(12,3) – стоимость одной книги каждого наименования в каждом месяце, представляет двумерный массив целых чисел

Dim cena(12,3) As Double

2) koll(12,3) – количество книг каждого наименования, проданных в каждый из трёх месяцев, представляет двумерный массив целых чисел

Dim koll(12,3) As Integer

3) doh(4) – доход за каждый месяц (от1 до3) и общий доход за весь период, представляет массив дробных чисел

Dim doh (4) As Double

4) koll_n(12) – количество проданных книг каждого наименования за истёкший период, представляет массив целых чисел

Dim kol_n(12) As Integer

5) nam – порядковый номер наименования книги , принёсший наибольший доход, представляет массив дробных чисел

Dim name As Integer

В программе также были использованы вспомогательные переменные, счётчики циклов, i, p и j, являющиеся целыми числами.

Dim i As Integer, j As Integer, p As Integer

Переменные cena(12,3), doh(4), dohod могут быть и не целыми числами, поэтому они объявлены как действительные. Переменные koll(12,3), koll_n(12), nam – целые числа, так как в книжном магазине продаются только целые книги, а не как половинки.

3. Блок-схема.

В данной работе использованы следующие виды блоков:

- квадрат – блок решения;

- эллипс – данный блок используется для обозначения начала и конца алгоритма;

- пятиугольник – данный блок используется для обозначения оператора цикла;

- стрелками обозначен переход от одного действия в другому.

4. Описание алгоритма

Начало программы.

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

Открытие листа с начальными данными («Нач_д») и получение этих данных в рабочие переменные (двумерные массивы cena (12,3) и koll (12,3)).

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

Расчёт количества дохода по каждому наименованию книг за каждый месяц, количество проданных книг и вывод результатов. Организуется два вложенных цикла: внешний по наименованиям книг, внутренний по месяцам. Для оптимизации процесса расчётная часть совмещена с выводом: во внутреннем цикле происходит вычисление дохода по i-му наименованию в j-ый месяц с выводом результата, во внешнем цикле (после получения результатов внутреннего цикла) – вывод дохода по каждому наименованию и общий доход.

Конец программы.

5. Листинг программы

Sub Funct()

'Сначала объявляем переменные, используемые в программе.

Dim cena(12, 3) As Double 'Стоимость книги

Dim koll(12, 3) As Integer 'Количество (по месяцам)

Dim kol_n(12) As Integer 'Количество книг в месяц

Dim doh(4) As Double 'Доход в месяц

Dim nam As Integer 'Книга с наибольшим доходом

Dim i As Byte, j As Integer, p As Integer 'Счётчики циклов

For i = 1 To 12

kol_n(i) = 0

Next

For j = 1 To 3

doh(j) = 0

Next

For p = 1 To 3

Next

doh = 0

nam = 0

Sheets("Нач_д").Select

For i = 1 To 12

For p = 1 To 3

cena(i, p) = Cells(3 + i, 1 + p)

Next p

Next i

For i = 1 To 12

For j = 1 To 3

koll(i, j) = Cells(3 + i, 4 + j)

Next j

Next i

Sheets("Результат").Select

Cells(1, 1) = "Количество проданных книг"

Cells(2, 1) = "Наименование"

Cells(2, 2) = "Стоимость"

Cells(2, 5) = "Количество"

Cells(3, 2) = "1 мес"

Cells(3, 3) = "2 мес"

Cells(3, 4) = "3 мес"

Cells(3, 5) = "1 мес "

Cells(3, 6) = "2 мес"

Cells(3, 7) = "3мес"

Cells(4, 1) = "Биология (пособие)"

Cells(5, 1) = "Вилла Белый конь"

Cells(6, 1) = "Властелин колец ч.1"

Cells(7, 1) = "Властелин колец ч.2"

Cells(8, 1) = "Властелин колец ч.3"

Cells(9, 1) = "Гаргантюа и Пантагрюэль"

Cells(10, 1) = "Деловые люди (сборник)"

Cells(11, 1) = "Основы политологии и социологии"

Cells(12, 1) = "Программирование на языке VBA"

Cells(13, 1) = "Угрюм-река"

Cells(14, 1) = "Учебник английского языка ч.1,2"

Cells(15, 1) = "Хоббит или туда и обратно"

For i = 1 To 12

For p = 1 To 3

Cells(3 + i, 1 + p) = cena(i, p)

Next p

For j = 1 To 3

Cells(3 + i, 4 + j) = kol_n(i)

kol_n(i) = kol_n + koll(i, j)

Next j

Next i

'Ниже происходит ввод названий соответствующих

'столбцов и строк

Cells(17, 1) = "Результат в денежном эквиваленте"

Cells(18, 1) = "Наименование"

Cells(18, 2) = "Стоимость"

Cells(18, 5) = "Доход"

Cells(18, 8) = "Всего" 'Общий доход за 3 месяца

Cells(18, 9) = "Книга"

Cells(19, 2) = "1 мес"

Cells(19, 3) = "2 мес"

Cells(19, 4) = "3 мес"

Cells(19, 5) = "1 мес"

Cells(19, 6) = "2 мес"

Cells(19, 7) = "3 мес"

Cells(20, 1) = "Биология (сборник)"

Cells(21, 1) = "Вилла Белый конь"

Cells(22, 1) = "Властелин колец ч.1"

Cells(23, 1) = "Властелин колец ч.2"

Cells(24, 1) = "Властелин колец ч.3"

Cells(25, 1) = "Гаргантюа и Пантагрюэль"

Cells(26, 1) = "Деловые люди (сборник)"

Cells(27, 1) = "Основы политологии и социологии"

Cells(28, 1) = "Программирование на языке VBA"


Страница: