Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

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

End.

Begin

<операторы модуля>

 

Описательная часть в программе на Паскале может отсутствовать, например:

 

begin Writeln('Всем привет!') end.

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

Если код качества равен 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




Поделиться с друзьями:


Дата добавления: 2015-01-03; Просмотров: 446; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.