Программирование на языке VBA

МИНИСТЕРСТВО  ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

РОССИЙСКОЙ  ФЕДЕРАЦИИ

МОСКОВСКИЙ  ГОСУДАРСТВЕННЫЙ ИНДУСТРИАЛЬНЫЙ

УНИВЕРСИТЕТ

ИНСТИТУТ  ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ 
 
 
 
 
 
 
 

Курсовая  работа

по дисциплине “Информатика” 
 
 
 
 
 
 
 
 
 
 
 

Задание: 3.3

Группа: 01Э31п

Студент: Петров Сергей Викторович 
 
 
 
 

Москва 2004

СОДЕРЖАНИЕ 

1.Задание………………………………………………………….……………………..  3

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

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

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

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

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

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

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

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

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

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"

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

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

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

Cells(32, 1) = "Итого" 
 

For i = 1 To 12

    For p = 1 To 3

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

    Next p

     

For j = 1 To 3

    Cells(19 + i, 4 + j) = koll(i, j) * cena(i, p)

    doh(j) = doh(j) + koll(i, j) * cena(i, p)

    doh(4) = doh(4) + koll(i, j) * cena(i, p)

    Next j

    Cells(19 + i, 8) = cena(i, p) * kol_n(i)

Next i 

Cells(18, 8) = "Всего"

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

Cells(32,8)=doh(4)

Cells(33,1)=”Общий доход”

Cells(33,5)=doh(4)

Cells(22,9)=nam

End Sub 
 

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

      Для начала создаём документ Microsoft Excel и записываем на рабочий лист начальные данные. Затем запускаем редактор Visual Basic, чтобы в нём написать код программы. Далее сохраняем изменения в созданном модуле и запускаем программу. Исправляем допущенные ошибки. После чего результат работы программы будет помещён на лист «Результат». 

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

   Начальные  данные      
Наименование   Стоимость           Количество 
  1 мес 2 мес 3 мес  1 мес 2 мес в 3  мес
Биология (пособие) 145 150 140 7 10 3
Вилла Белый конь 58 60 55 11 9 7
Властелин колец ч.1 130 135 140 25 30 35
Властелин колец ч.2 130 135 140 25 30 30
Властелин колец ч.3 115 120 125 25 30 30
Гаргантюа и Пантагрюэль 90 87 84 11 9 10
Деловые люди (сборник) 125 130 110 15 15 20
Основы  политологии и социологии 70 68 65 6 8 6
Программирование  на языке VBA 125 130 145 7 8 5
Угрюм-река 80 85 90 10 15 10
Учебник английского языка ч.1,2 120 110 115 10 20 15
Хоббит  или туда и обратно 90 95 100 20 30 35
 
 
   Количество  проданных книг    
Наименование   Стоимость           Доход   
  1 мес 2 мес 3 мес  1 мес 2 мес в 3  мес
Биология (пособие) 145 150 140 1015 1500 420
Вилла Белый конь 58 60 55 638 540 385
Властелин колец ч.1 130 135 140 3250 4050 4900
Властелин колец ч.2 130 135 140 3250 4050 4200
Властелин колец ч.3 115 120 125 2875 3600 3750
Гаргантюа и Пантагрюэль 90 87 84 990 783 840
Деловые люди (сборник) 125 130 110 1875 1950 2200
Основы  политологии и социологии 70 68 65 420 544 390
Программирование  на языке VBA 125 130 145 875 1040 725
Угрюм-река 80 85 90 800 1275 900
Учебник английского языка ч.1,2 120 110 115 1200 2200 1725
Хоббит  или туда и обратно 90 95 100 1800 2850 3500
 
 
   Результат  в денежном эквиваленте  
Наименование   Стоимость           Доход    Всего Книга
  1 м 2 м 3 м  1 м  2 м 3  м    
Биология (пособие) 145 150 140 1015 1500 420 2935  
Вилла Белый конь 58 60 55 638 540 385 1563  
Властелин колец ч.1 130 135 140 3250 4050 4900 12200 12200
Властелин колец ч.2 130 135 140 3250 4050 4200 11500  
Властелин колец ч.3 115 120 125 2875 3600 3750 10225  
Гаргантюа и Пантагрюэль 90 87 84 990 783 840 2613  
Деловые люди (сборник) 125 130 110 1875 1950 2200 6025  
Основы  политологии и социологии 70 68 65 420 544 390 1354  
Программирование  на языке VBA 125 130 145 875 1040 725 2640  
Угрюм-река 80 85 90 800 1275 900 2975  
Учебник английского языка ч.1,2 120 110 115 1200 2200 1725 5125  
Хоббит  или туда и обратно 90 95 100 1800 2850 3500 8150  
ИТОГО             67305  
Общий доход за 3 месяца                              
 Книга  с наибольшим доходом  3                
 
 
 

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

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

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

    1. Иванов  М.Н., Суворов С.В. Информатика Часть 2. Программирование. Учебно-методическое пособие – М.; МГИУ, 2004
    2. Слепцова Л.Д. Программирование на языке VBA. Самоучитель,: -М.: Издательский дом «Вильямс», 2004
    3. Браун С. Visual Basic 5 c самого начала – СПб : Питер, 1998
Программирование на языке VBA