Программирование на VBA в среде MS Excel

3







Федеральное агентство по образованию

Государственное образовательное учреждение

Высшего профессионального образования

Московский государственный индустриальный университет

(ГОУ МГИУ) 

Кафедра информационных технологий и систем в экономике и управлении















Реферат

по специальности "Информатика"

на тему "Программирование на VBA в среде MS Excel""









Группа 08Ф21

Студент Л.Н. Ибатуллина

Руководитель проекта, 

доцент, к.э.н. С.В. Суворов









Москва – 2009


Содержание



	Задание на курсовую работу

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

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

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

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




Задание на курсовую работу

	

	На складе мастерской индивидуального пошива имеются запасы 12-ти видов ткани. За каждый рабочий день (6 дней) расходилось некоторое кол-во ткани каждого вида.

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

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

		Расход каждого вида ткани за неделю.

		Стоимость всей израсходованной ткани за день.

		Общая стоимость всей израсходованной ткани за неделю.

		Наименование самой ходовой ткани.

	

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

	

	Исходные данные находятся на листе "исх_д." и содержат следующую информацию:

	Naz (12) - наименование ткани

	Dim naz (12) As String

	Cena (12) - стоимость ткани за м.

	Dim cena (12) As Double

	Ras (12,6) - расход каждого вида ткани каждый день в метрах

	Dim ras (12,6) As Double

	Traiti (12,8) - стоимость каждого вида ткани за день

	Dim trati (12,6) As Double

	o_stoim - общая стоимость всей израсходованной ткани за неделю

	Dim o_stoim As Double

	o_ras (12) - общий расход каждого вида ткани за неделю в м.

	Dim o_ras (12) As Double

	o_trati (6) - общая стоимость всей израсходованной ткани за день

	Dim o_trati (6) As Double

	I, j - вспомогательные переменные счетчики цикла являющимися целыми числами

	Max, k - вспомогательная переменная для нахождения самой "ходовой" ткани

	

	

Ввод данных (нулевых) данных вспомогательных величин

начало

Открытие листа с данными ("исх_д.")Блок - схема

	

	i = 0 То 11

j = 0 To 5

     o_ras (i)= o_ras(i) + ras(i,j)

i =0 To 11

	j = 0 To 5

      trati(i, j) = cena(i) * ras(i, j)



      	    l = l + doh(i, j)

	

	

	

	

	

	

	

	

	

	

	

	


	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

				

	i = 0 To 11

      o_trati(j) = o_trati(j) + trati(i, j)



	j = 0 To 5

o_stoim = o_stoim + o_trati(j)

k=0

max = o_ras(k)

	i = 1 To 11

o_ras(i) > max

max = o_ras(i)

k = i

j =0 To 5нет

	

	

							да

	

	

	

	




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

Ввод данных формы Cells (*,*)=...Описание алгоритма



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

	Чтение с листа "Исходные данные" значение в naz (12) и ras (12,6).

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

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

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

	Определение самой "Ходовой ткани". Для этого используется два массива одинаковой размерности: "ras (12)" - в котором лежат количественные значения и "naz (12)" - в котором лежат названия тканей, а также две переменных "max" - в которой лежит максимальное значение ткани и "k " - порядковый номер ячейки с максимальным значением израсходованной ткани. На первом шаге мы предполагаем, что в первой ячейке массива "o_ras (i) находиться максимальное значение ложем его в переменную "max" и записываем номер ячейки в "k". На втором шаге мы начинаем сравнивать значение, содержащееся в "max" со значениями остальных ячеек, начиная с первой. Если мы нашли, что в какой - то ячейке значение больше, чем "max", то тогда это значение ложем в переменную "max" и записываем номер ячейки в "k".После того как мы прошли весь массив "ras (12)" и нашли максимальное значение, помощи переменной "k " мы берем из массива naz (12) наименование самой расходуемой ткани.

	

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

	

	Private Sub CommandButton1_Click ()

	'объявление и обнуление

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

	Dim naz (12) As String

	Dim cena (12) As Double

	Dim ras (12,6) As Double

	Dim o_ras (12) As Double

	Dim o_trati (6) As Double

	Dim trati (12,6) As Double

	Dim o_stoim As Double

	Dim k As Integer

	Dim max As Double

	'Далее всем переменным присваивается нулевое значение.

	For i = 0 To 11

	o_ras (i) = 0

	Next i

	For j = 0 To 5

	o_trati (j) = 0

	Next j

	o_stoim = 0

	'ввод данных

	For i = 0 To 11

	naz (i) = Worksheets ("исходные данные").Cells (4 + i, 1)

	cena (i) = Worksheets ("исходные данные").Cells (4 + i,

	2)

	Next i

	For i = 0 To 11

	For j = 0 To 5

	ras (i, j) = Worksheets ("исходные данные").Cells (4 + i, 3 + j)

	Next j

	Next i

	'решение

	'Находим "общий расход" каждого вида ткани за неделю

	For i = 0 To 11

	For j = 0 To 5

	o_ras (i) = o_ras (i) + ras (i, j)

	Next j

	Next i

	'находим стоимость каждого вида ткани за день

	For i = 0 To 11

	For j = 0 To 5

	trati (i, j) = cena (i) * ras (i, j)

	Next j

	Next i

	'находим общую стоимость всей израсходованной ткани за день

	For j = 0 To 5

	For i = 0 To 11

	o_trati (j) = o_trati (j) + trati (i, j)

	Next i

	Next j

	'находим общую стоимость всей израсходованной ткани за неделю

	For j = 0 To 5

	o_stoim = o_stoim + o_trati (j)

	Next j

	k = 0

	'максимуму присваиваем o_ras (k)

	max = o_ras (k)

	For i = 1 To 11

	If o_ras (i) > max Then

	max = o_ras (i)

	k = i

	End If

	Next i

	'вывод

	'На листе "результат" в ячейку с определенным номером вводится ее название

	Worksheets ("результат").Cells (2, 1) = "Название изделия"

	Worksheets ("результат").Cells (2,2) = "Цена 1м."

	Worksheets ("результат").Cells (2,6) = "Расход"

	Worksheets ("результат").Cells (3,3) = "1-ый день"

	Worksheets ("результат").Cells (3,4) = "2-ой день"

	Worksheets ("результат").Cells (3,5) = "3-ий день"

	Worksheets ("результат").Cells (3,6) = "4-ый день"

	Worksheets ("результат").Cells (3,7) = "5-ый день"

	Worksheets ("результат").Cells (3,8) = "6-ой день"

	Worksheets ("результат").Cells (3,11) = "общий расход"

	Worksheets ("результат").Cells (20,5) = "траты"

	Worksheets ("результат").Cells (34, 1) = "общие траты"

	Worksheets ("результат").Cells (35, 1) = " общая стоимость"

	Worksheets ("результат").Cells (36,2) = naz (k)

	Worksheets ("результат").Cells (36, 1) = "самая ходовая ткань"

	'В этом фрагменте происходит вывод на рабочий лист общего расхода

	For i = 0 To 11

	Worksheets ("результат").Cells (4 + i, 1) = naz (i)

	Worksheets ("результат").Cells (4 + i,

	2) = cena (i)

	Next i

	For i = 0 To 11

	For j = 0 To 5

	Worksheets ("результат").Cells (4 + i, 3 + j) = ras (i, j)

	Worksheets ("результат").Cells (35,2) = o_stoim

	Worksheets ("результат").Cells (34,2) = o_trati

	Next j

	Next i

	For i = 0 To 11

	For j = 0 To 5

	Worksheets ("результат").Cells (22 + i, 2 + j) = trati (i, j)

	Next j

	Next i

	End Sub

	Private Sub CommandButton2_Click ()

	Worksheets ("результат").Cells.Clear

	End Sub

	
Таблица 1.

Название изделия

 Цена 1м.

 Расход 





1-ый день

2-ой день

3-ий день

4-ый день

5-ый день

6-ой день

Хлопок

95

2

6

3

4

2

3

Шелк

110

4

7

4

5

6

3

Атлас

70

6

3

2

4

3

5

Кашемир

120

1

6

5

3

4

4

Лён

100

3

4

4

2

3

3

Вельвет

65

8

5

2

1

3

5

Драп

55

7

3

3

2

4

2

Шерсть

75

3

2

4

4

2

1

Лаке

90

6

5

3

5

3

2

Мохер

80

4

2

1

3

4

3

Органза

85

9

7

3

2

6

4

Деним

60

4

2

3

1

4

3

















Решить



Очистить



























































	

	Таблица 2.

Название изделия

Цена 1м

Расход







1-ый день

2-ой день

3-ий день

4-ый день

5-ый день

6-ой день

общий расход

Хлопок

95

2

6

3

4

2

3

20

Шелк

110

4

7

4

5

6

3

29

Атлас

70

6

3

2

4

3

5

23

Кашемир

120

1

6

5

3

4

4

23

Лён

100

3

4

4

2

3

3

19

Вельвет

65

8

5

2

1

3

5

24

Драп

55

7

3

3

2

4

2

21

Шерсть

75

3

2

4

4

2

1

16

Лаке

90

6

5

3

5

3

2

24

Мохер

80

4

2

1

3

4

3

17

Органза

85

9

7

3

2

6

4

31

Деним

60

4

2

3

1

4

3

17

	

	Таблица 3.



Цена 1м

траты







1-ый день

2-ой день

3-ий день

4-ый день

5-ый день

6-ой день

общий расход

Хлопок

190

570

285

380

190

285

475

2185

Шелк

440

770

440

550

660

330

440

3190

Атлас

420

210

140

280

210

350

140

1330

Кашемир

120

720

600

360

480

480

600

3240

Лён

300

400

400

200

300

300

300

1900

Вельвет

520

325

130

65

195

325

65

1105

Драп

385

165

165

110

220

110

220

990

Шерсть

225

150

300

300

150

75

150

1125

Лаке

540

450

270

450

270

180

270

1890

Мохер

320

160

80

240

320

240

80

1120

Органза

765

595

255

170

510

340

255

2125

Деним

240

120

180

60

240

180

120

900

общие траты

4465

4635

3245

3165

3745

3195

3115

21100

 общая стоимость

28155

28155

28155

28155

28155

28155

28155

168930

самая ходовая ткань

Органза















	


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



	Иванов М. И, Суворов С.В. Информатика. Часть2. Программирование. - Москва 2004.

	Конспект курса лекционных и практических занятий в МГИУ.