Смекни!
smekni.com

работа По дисциплине «Информатика» (стр. 1 из 2)

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

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

ИДО ГОУ МГИУ

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

По дисциплине «Информатика»

Задание:№

Группа: №

Студент: Ф.И.О.

Руководитель: Ф.И.О.

Москва 2009


Содержание

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

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

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

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

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

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

7. Список использованной литературы.. 16

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

В течение пяти дней (рабочая неделя) рабочий изготавливает детали семи различных типов. Известно количество изготовленных им деталей за каж­дый день и стоимость изготовления одной детали каждого типа (стоимость изготовления детали не меняется).

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

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

· количество деталей каждого типа, изготовленных за неделю;

· заработок за каждый день;

· день с наибольшим заработком.

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

Исходные данные находятся на листе «Нач_д» (рис. 1) и содержат сле­дующую информацию:

1) Количество деталей каждого из 7 типов, изготовленных за пять ра­бочих дней.

2) Стоимость изготовления одной детали каждого типа.

Результаты работы программы оформляются на листе «Результат» (рис. 2).

Рис.1. Лист с начальными данными

Рис.2. Полученные результаты

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

1) cena(7) — стоимость изготовления одной единицы каждого изделия
представляет массив дробных чисел

Dim cena(7) As Double

2) koll(7,5) — количество деталей каждого вида, изготовленных в каж­
дый из рабочих дней, представляет двумерный массив целых чисел

Dim koll(7,5) As Integer

3) zar(6) — заработок за каждый день (от 1 до 5) и общий заработок за
весь период представляет массив дробных чисел

Dim zar(6) As Double

4) koll_n(7) — количество деталей каджого вида за истекший период
представляет массив целых чисел

Dim kol_n(7) As Integer

5) den — порядковый номер дня с наибольшим заработком представляет
целое число

Dim den As Integer

6) zarpl — сумма наибольшего заработка за период представляет дроб­
ное число

Dim zarpl As Double

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

Dim i As Integer, j As Integer

Переменные cena(7), zar(6), zarpl могут быть и не целыми числами, поэто­му они объявлены как действительные. Переменные koll(7,5) koll_n(7), den целые числа, так как мы считаем, что смена рабочего составляет полный день, и он не может изготовить за смену половину детали.


3. Блок схема


Рис.3. Блок-схема (продолжение)

Рис.3. Блок-схема (окончание)

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

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

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

Открытие листа с начальными данными («Нач_д») и получение этих данных в рабочие переменные (массивы сеnа(7) и kоll(7, 5)).

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

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

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

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

Sub Function()

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

'стоимость детали

Dim cena(7) Аs Double

'количество (по дням)

Dim koll(7,5) As Integer

'зарплата в день

Dim zar(6) As Double

'количество деталей за неделю

Dim koll_n(7) As Integer

'день с наибольшей з/пл.

Dim den As Integer

'сумма наибольшей з/пл.

Dim zarpl As Double

'счетчики циклов

Dim i As Integer, j As Integer

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

For i = 1 То 7

kol_n(i) = 0

Next

For j=1 То 6 zar(j) = 0

Nехt

zarpl = 0 den = 0

'В этом фрагменте кода происходит считывание начальных данных с листа «Нач_д», и в каждую ячейку массива cena(7) записывается стоимость каждой детали, а в ячейках двумерного массива koll(7,5) теперь находится количество деталей каждого вида, изготовленных в каждый из рабочих дней.

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

For i = 1 То 7

сеnа(i) = Cells(3 + i, 2)

Next

For i = 1 Тo 7

For j = 1 Тo 5

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

Next j

Next i

'Далее на листе «Результат» в ячейку с определенным номером вводится ее название.

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

Sheets("Результат").Cells(1, 1) = "Количество изготовленных деталей"

Sheets("Результат").Cells(2, 1) = "Наименование изделия"

Sheets("Результат").Cells(2, 2) = "Стоимость 1 шт."

Sheets("Результат").Cells(2, 3) = "Изготовлено"

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

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

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

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

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

Sheets("Результат").Cells(3, 8) = "Всего"

Sheets("Результат").Cells(4, 1) = "болт"

Sheets("Результат").Cells(5, 1) = "винт"

Sheets("Результат").Cells(6, 1) = "гайка"

Sheets("Результат").Cells(7, 1) = "шайба"

Sheets("Результат").Cells(8, 1) = "шуруп"

Sheets("Результат").Cells(9, 1) = "гвоздь"

Sheets("Результат").Cells(10, 1) = "скрепка"

'В этом фрагменте происходит вывод на рабочий лист сумм заработков по изделиям в каждый день и количество изготовленных деталей за неделю.

For i = 1 То 7

Sheets("Результат").Сеlls(3 + i, 2) = cena(i)

For j = 1 То 5

Sheets("Результат").Сеlls(3 + i, 2 + j) = koll(i, j)

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

Next j

Sheets("Результат").Сеlls(3 + i, 8) = koll_n(i)

Next i

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

Sheets("Результат").Сеlls(12,1) = «Результат в денежном эквиваленте»

Sheets("Результат").Сеlls(13,1) = «Наименование изделия»

Sheets("Результат").Сеlls(13,2) = «Стоимость 1 шт.»

Sheets("Результат").Сеlls(13,3) = «Заработано»

Sheets("Результат").Сеlls(14,3) = «1-й день»

Sheets("Результат").Сеlls(14,4) = «2-й день»

Sheets("Результат").Сеlls(14,5) = «3-й день»

Sheets("Результат").Сеlls(14,6) = «4-й день»

Sheets("Результат").Сеlls(14,7) = «5-й день»

Sheets("Результат").Сеlls(14,8) = «Всего»

Sheets("Результат").Сеlls(15,1) = «болт»

Sheets("Результат").Сеlls(16,1) = «винт»

Sheets("Результат").Сеlls(17,1) = «гайка»

Sheets("Результат").Сеlls(18,1) = «шайба»

Sheets("Результат").Сеlls(19,1) = «шуруп»

Sheets("Результат").Сеlls(20,1) = «гвоздь»

Sheets("Результат").Сеlls(21,1) = «скрепка»

Sheets("Результат").Сеlls(22,1) = «ИТОГО»

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

For i = 1 То 7 For j = 1 То 5

Sheets("Результат").Сеlls(14 + i, 2 + j) = koll(i, j) * сеna(i)

zar(j) = zar(j) + koll(i, j) * сеna(i)

zar(6) = zar(6) + koll(i, j) * сеnа(i)

Next j

Sheets("Результат").Сеlls(14 + i, 2) = сеnа(i)

Sheets("Результат").Сеlls(14 + i, 8) = сеnа(i) * koll_n (i)

Next i

'Здесь описан алгоритм сравнения некоторой заработной платы с заработной платой, полученной в один из пяти рабочих дней. Если рассматриваемая больше другой, то сумме наибольшего заработка присваивается текущее значение, а днем с максимальным заработком становится день под номером j.