Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Пример решения задач с модульным подходом.




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

Если код качества равен 001, устанавливается надбавка в 50%, а с кодом 002- надбавка 25%. Имеется таблица соответствующих кодов изделий и их стоимостей (таблица расценок).

Контрольный пример:

Исходные данные:

Таблица заявок

Табельный код количество код

номер рабочего изделия изделий качества

777 005 10 1

101 005 5 3

777 004 5 1

111 003 15 2

101 003 10 3

Таблица расценок

Код изделия стоимость

001 7,5

003 10

004 15

005 10

 

Результат:

Ведомость по зарплате

Табельный номер зарплата

777 262,5

101 150

111 187,5

 

В самом общем виде алгоритм решения задачи можно описать следующим образом:

1)Подсчитать стоимость каждой заявки.

2)Суммировть стоимости заявок по одинаковым табельным номерам.

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

 

Описание исходных и выходных данных:

 

Исходные данные.

 

n- количество заявок

TABN(n)- табельные номера

KODI(n)- код изделия

KOLI(n)- количество изделий

KODk(n)- код качества работы

m-количество изделий в таблице расценок

KODIz(m)- код изделия

STI(m)- стоимость изделия

 

Выходные данные.

 

K- количество рабочих в ведомости по зарплате

TABNZ(k)-табличный номер рабочего в ведомости

Zarp(k)- зарплата рабочего

 

Программа на языке Бейсик

REM ведомость по зарплате

REM ввод исходных данных

INPUT "введите количество заявок и расценок";n,m

DIM TABN(n), KOD I(n), KOLI(n), KODK(n), STZ(n)

REM STZ(n) – промежуточный массив, стоимость заявки

DIM KODIZ(m), STI(m), TABNZ(n), ZARP(n)

FOR i=1 to n

PRINT "введите";i; "-ю заявку"

INPUT TABN(i), KOD I(i), KOL I(i), KOD K(i)

Next i

FOR i=1 to m

PRINT "введите";i; "-ю расценку"

INPUT KODIZ(i), STI(i)

Next i

REM Часть 1. Вычисление стоимости заявки

FOR i=1 to n

REM Поиск изделий в таблице расценок, p-признак поиска

p=0

FOR j=1 to m

IF KOD I(i)= KOD I Z(j) THEN p=j

NEXT j

IF p>0 THEN

REM вычисление стоимости заявки

ST Z(i)=ST I(p)*KOL I(i)

IF KOD K(i)=1 THEN ST Z(i)=0.5*ST Z(i)

IF KOD K(i)=2 THEN ST Z(i)=0.25*ST Z(i)

ELSE

PRINT «нет изделия с кодом»;KOD I(i)

STOP

END IF

NEXT i

REM Часть2. Подсчёт зарплаты

Рассмотрим подробнее алгоритм формирования ведомости по зарплате.

1) Табельный номер из заявок мы ищем в массиве табельных номеров из ведомости (даже если точно знаем, что их там ещё нет!)

2) Если мы не находим табельный номер в массиве TABNZ, то мы помещаем его в этот массив, а в соответствующий элемент ZARP помещаем стоимость заявки.

3) Если табельный номер найден в массиве TABNZ, то к соответствующему элементу в массиве ZARP прибавляем стоимость заявки.

 

REM подсчёт зарплаты

K=0 'Количество элементов

FOR i=1 to n

P=0 'признак поиска - не найден

FOR j=1 to k

IF TAB NZ(j)=TAB N(i) THEN p=j

NEXT j

IF p=0 THEN не найден

k=k+1

TAB NZ(k)= TAB N(i)

ZARP(k)=ST Z(i)

ELSE

ZARP(p)=ZARP(p)+STZ(i)

END IF

NEXT i

PRINT " Ведомость по зарплате"

PRINT "Табельный номер", "Зарплата"

FOR i=1 to k

PRINT TAB NZ(i), ZARP(i)

NEXT i

END






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных