Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кадочикова Анастасия.doc
Скачиваний:
14
Добавлен:
19.04.2013
Размер:
185.86 Кб
Скачать

Программная реализация модели

Реализуем модель в программе на языке программирования Паскаль.

program Moim;

uses Crt;

var r,r2,r1,p,v,T, time, zatr, S, nkom: real;

i, j, k: integer;

Begin

clrscr;

writeln('Сводка затрат за последний квартал ');

writeln(' --------------------------------------');

writeln(' | Затраты | Количество бригад |');

writeln(' --------------------------------------');

For k:=1 to 60 do

begin

T:=0;

for j:=1 to 3 do begin

r1:=0; /*Разыгрываем значение веса прибывшего груза*/

for i:=1 to 20 do begin

r:=random(100)/100;

r1:=r1+r;

end;

p:=2*(r1-10)+12; /*Вычисляем значение прибывшего груза */

r2:=random(100)/100; /*Разыгрываем скорость разгрузки прибывшего груза */

if r2<=0.25 then v:=2

else if r2<=0.35 then v:=2.8

else if r2<1 then v:=3.2;

T:=T+(p/v); /*Время, необходимое для разгрузки всего груза, приб. за день*/

end;

if T>8 then nkom:=int(T/8) else nkom:=1;

if T>nkom*8 then time:=T-8*nkom else time:=0;

zatr:=72*nkom+13.5*time; /*Суточные затраты на разгрузку*/

writeln(zatr:10:2,' | ',nkom:2:0)

end;readln;

End.

Полученные результаты

В результате программной реализации получили сводку затрат за первые 20 дней работы разгрузочной станции:

Затраты

Количество бригад

1

129.95

1

2

117.26

1

3

154.11

2

4

148.53

1

5

120.40

1

6

143.04

1

7

109.21

1

8

138.37

1

9

127.43

1

10

144.24

2

11

172.96

1

12

87.14

1

13

122.03

1

14

144.39

2

15

154.13

1

16

101.28

1

17

108.70

1

18

141.22

1

19

113.01

1

20

127.50

1

Далее мы можем определить оптимальное количество бригад, которые будут разгружать прибывающие грузовики при наименьших затратах.

Реляционная алгебра и реляционное исчисление

Рассмотрим следующие схемы отношений. УЧЕТ = (дата, номер бригады, количество с/урочных часов), ПОСТАВКИ = (дата, номер поставки, вид груза, вес груза, номер разгр. бригады); ВЫПЛАТЫ = ( Ф.И.О., номер бригады, должность, выплата).

УЧЕТ СВЕРХУРОЧНЫХ РАБОТ

Дата

Номер бригады

Количество с/урочных часов

17.08.00

1

3

18.08.00

3

4

19.08.00

2

3

20.08.00

2

1

ПОСТАВКИ

Дата

Номер поставки

Вид груза

Вес груза

Номер разгр. бригады

17.08.00

1

А

13 т

2

18.08.00

2

А

11 т

3

19.08.00

3

В

11 т

1

20.08.00

4

С

12 т

1

ВЫПЛАТЫ 17.08.00

ФИО

Должность

Номер бригады

Выплата

Иванов И.И.

Водитель

1

50

Бородин А.С.

Рабочий

1

31,25

Вергунов Ю.В.

Рабочий

1

31,25

Федоров А.Б.

Водитель

2

32

Реализуем следующие запросы.

1) Перечислить бригады, которые 17 августа работали сверхурочно более чем 2 часа.

proj Номер бригады (sel дата = 17.08.00and сверхурочные>2 (УЧЕТ))

2) Перечислить виды груза, которые поступили 18.08.00.

proj Вид груза (sel дата = 18.08.00 (ПОСТАВКИ))

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

proj Номер поставки (sel дата = 18.08.00and ФИО = "Вергунов Ю." (Поставки) join Выплаты)

4) Найти водителей, у которых выплаты 17 августа превысили 40 ед.

{V(ФИО) | (V1Выплаты)(V1 (Выплата)>40}