|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ПРИЛОЖЕНИЕ 9. КОМПЬЮТЕРНАЯ ПРОГРАММА РАЗРАБОТКИ СБОРОЧНО-РАЗВОЗОЧНЫХ МАРШРУТОВ НА ОСНОВЕ МЕТОДА КЛАРКА-РАЙТАDEFINT I-N COLOR 7,0:CLS:LOCATE 2,60,0:COLOR 25,5,15:PRINT" "'ВКЛЮЧИТЕ ПРИНТЕР" COLOR 7,7,15:LOCATE 4:COLOR 0,7,15 PRINT TAB(27)"ЗАДАЧА K R T R T";:PRINT SPC(37):PRINT TAB(26)" "; COLOR 15,0,15:PRINT"КАФЕДРА";:COLOR 23,5,15:PRINT"*БНТУ*"; COLOR 15,0,15:PRINT" ОАПДД ";:COLOR 7,7,15:PRINT SPC(35):COLOR 1,14 PRINT TAB(22)"РАЗРАБОТКА СБОРОЧНО-РАЗВОЗОЧНЫХ МАРШРУТОВ"; PRINT TAB(80)" ";:PRINT TAB(25)"НА ОСНОВЕ МЕТОДА КЛАРКА-РАЙТА"; PRINT TAB(80)" ": TT=TIMER REM 2 BZ$=INKEY$: IF LEN(BZ$)<>0 OR TIMER-TT>8 THEN 5 REM GOTO 2 5 PRINT:COLOR 7,0,7 GOTO 7 6 DIM P$(N),Q(N),DL(N,N),DL1(N,N),IB(N,N),IB1(N),DLP(N):RETURN 7 OPEN"O",#2,"KLRRAIT.REZ" F1$="###.#" PRINT #2, TAB(5)"РАЗРАБОТКА РАЗВОЗОЧНЫХ(СБОРОЧНЫХ) МАРШРУТОВ ПО МЕТОДУ КЛАРКА-РАЙТА":PRINT #2, PRINT"ВВЕДИТЕ ИСХОДНЫЕ ДАННЫЕ":PRINT PRINT"ВВЕДЕНЫ ЛИ КРАТЧАЙШИЕ РАССТОЯНИЯ. ДА -1, НЕТ -0":INPUT AAP IF AAP=0 THEN 20 rem PRINT"ВВЕДИТЕ СПЕЦИФИКАЦИЮ ФАЙЛА С КРАТЧАЙШИМИ РАССТОЯНИМИ"; rem INPUT FAAA$ CLS:COLOR 7,4:LOCATE 20,5,0:PRINT"* Ж Д И Т Е *":COLOR 7,0 OPEN"I",#1,"KRTRST.REZ":INPUT #1,N1,AAA:N=N1-1 GOSUB 6 FOR I=0 TO N INPUT #1,P$(I) FOR J=0 TO N INPUT #1,DL(I,J),AAA NEXT J NEXT I CLOSE #1 LOCATE 20,5,0:PRINT" " INPUT"НАИМЕНОВАНИЕ (КОД) ИСХОДНОГО (БАЗОВОГО) ПУНКТА";PP$ FOR I=0 TO N:IF P$(I)=PP$ THEN II=I NEXT I FOR J=0 TO N:DLP(J)=DL(0,J):DL(0,J)=DL(II,J):DL(II,J)=DLP(J):NEXT J FOR I=0 TO N:DLP(I)=DL(I,0):DL(I,0)=DL(I,II):DL(I,II)=DLP(I):NEXT I PPP$=P$(0):P$(0)=P$(II):P$(II)=PPP$:GOTO 30 P$(0)=PP$ 20 INPUT"ЧИСЛО ПУНКТОВ ЗАВОЗА(ВЫВОЗА) ГРУЗА N ";N: GOSUB 6 INPUT"НАИМЕНОВАНИЕ (КОД) ИСХОДНОГО (БАЗОВОГО) ПУНКТА";P$(0) PRINT"НАИМЕНОВАНИЕ (КОД) ПРОМЕЖУТОЧНОГО ПУНКТА" FOR I=1 TO N:PRINT I"-ГО":INPUT P$(I):NEXT I 30 INPUT"ЧИСЛО ТИПОВ АВТОМОБИЛЕЙ K ";K:K0=K DIM Q1(K),IA1(K) INPUT"ПРЕДЕЛЬНО ДОПУСТИМОЕ ЧИСЛО ПУНКТОВ ЗАЕЗДА NP ";NP INPUT"ДОПУСКАЕМЫЙ ПЕРЕГРУЗ АВТОМОБИЛЯ E1,% ";E1 PRINT" ОБЬЕМЫ ПЕРЕВОЗОК ПО ПУНКТАМ" K8=1 FOR I=1 TO N:PRINT"Q("P$(I)")":INPUT Q(I) IB(I,K8)=I IB1(I)=1 'IF Q(I)=0 THEN IB(I,K8)=I:IB1(I)=0 NEXT I IF AAP=1 THEN 170 PRINT"РАССТОЯНИЯ(СТОИМОСТИ) ПЕРЕВОЗОК МЕЖДУ ПУНКТАМИ" FOR I=1 TO N:FOR J=0 TO I-1 PRINT"DL("P$(I)","P$(J)")":INPUT DL(I,J):NEXT J:NEXT I FOR I=1 TO N:FOR J=0 TO I-1:DL(J,I)=DL(I,J):NEXT J:NEXT I 170 PRINT"РЯД ИМЕЮЩИХСЯ АВТОМОБИЛЕЙ ПО МЕРЕ УВЕЛИЧЕНИЯ" PRINT"ИХ ГРУЗОПОДЬЕМНОСТИ" FOR K3=1 TO K:PRINT"Q1("K3")":INPUT Q1(K3):NEXT K3 CLS:COLOR 7,4:LOCATE 20,5,0:PRINT"* Ж Д И Т Е *":COLOR 7,0 PRINT #2, TAB(10)"ИСХОДНЫЕ ДАННЫЕ" PRINT #2, TAB(5)"ОБЬЕМЫ ЗАВОЗА(ВЫВОЗА) ГРУЗА ПО ПУНКТАМ":PRINT #2, NN=0:N7=1 45 IF N<=NN+40 THEN N9=N-NN:GOSUB 50:GOTO 55 N9=40:GOSUB 50:NN=NN+40:N7=N7+40:GOTO 45 REM 50 PRINT #2,"КОД";:FOR I=1 TO N9:PRINT #2, TAB(5*I+6) P$(I+NN);:NEXT I PRINT #2,:PRINT #2,"ПУНКТА" PRINT #2,"ОБЬЕМ ";:FOR I=1 TO N9 PRINT #2, TAB(5*I+4)USING F1$;Q(I+NN);:NEXT I PRINT #2,:PRINT #2,"ГРУЗА":PRINT #2,:RETURN REM 55 PRINT #2, TAB(5)"РАССТОЯНИЯ(СТОИМОСТИ) ПЕРЕВОЗОК МЕЖДУ" PRINT #2, TAB(12)"ПУНКТАМИ I И J" NN=0:N7=1 145 IF N<=NN+40 THEN N9=N-NN:GOSUB 150:GOTO 155 N9=40:GOSUB 150:NN=NN+40:N7=N7+40:GOTO 145 150 PRINT #2," J ";P$(II); FOR J=1 TO N9-1:PRINT #2, TAB(5*J+8) P$(J+NN);:NEXT J PRINT #2, PRINT #2," I" FOR I=N7 TO N:PRINT #2, P$(I); FOR J=0 TO N9 IF NN+J>I-1 THEN 152 PRINT #2, TAB(5*J+6)USING F1$;DL(I,J+NN);:NEXT J 152 PRINT #2, NEXT I RETURN REM 155 PRINT #2, TAB(5)"ПРЕДЕЛЬНО ДОПУСКАЕМОЕ ЧИСЛО ПУНКТОВ ЗАЕЗДА-"NP PRINT #2, TAB(5)"ДОПУСКАЕМЫЙ ПЕРЕГРУЗ АВТОМОБИЛЯ- "USING F1$;E1; PRINT #2,"%" PRINT #2,:PRINT #2, TAB(5)"ЗАДАННЫЙ РЯД ГРУЗОПОДЬЕМНОСТЕЙ АВТОМОБИЛЕЙ" FOR K3=1 TO K:PRINT #2, TAB(K3*5+5)USING F1$; Q1(K3);:NEXT K3 PRINT #2,:PRINT #2,:PRINT #2, TAB(10)"РЕЗУЛЬТАТЫ РАСЧЕТОВ" PRINT #2,:PRINT #2, FOR I=2 TO N:FOR J=1 TO I-1 DL1(I,J)=DL(I,0)+DL(J,0)-DL(I,J) NEXT J:NEXT I PRINT #2, TAB(5)"ВЫИГРЫШИ ПРИ ОБЬЕДИНЕНИИ МАЯТНИКОВЫХ МАРШРУТОВ" PRINT #2, TAB(5)P$(0) "- I- "P$(0)" И "P$(0)"- J- "P$(0):PRINT #2, REM NN=0:N7=2 245 IF N<=NN+40 THEN N9=N-NN:GOSUB 250:GOTO 255 N9=40:GOSUB 250:NN=NN+40:N7=N7+40:GOTO 245 250 PRINT #2," J"; FOR J=1 TO N9-1:PRINT #2, TAB(5*J+6) P$(J+NN);:NEXT J PRINT #2, PRINT #2," I" FOR I=N7 TO N:PRINT #2, P$(I); FOR J=1 TO N9-1 IF NN+J>I-1 THEN 252 PRINT #2, TAB(5*J+4)USING F1$; DL1(I,J+NN);:NEXT J 252 PRINT #2, NEXT I:PRINT #2, RETURN REM 255 FOR I=1 TO N IF Q(I)>0.00001 THEN 256 FOR J=1 TO N: DL1(I,J)=-1: DL1(J,I)=-1: NEXT J 256 NEXT I E1=1+E1/100 480 DL3=0 FOR I=2 TO N FOR J=1 TO I-1 IF DL3<DL1(I,J) THEN DL3=DL1(I,J):J6=J:J7=I 540 NEXT J 550 NEXT I IF DL3=<0.0001 THEN 680 DL1(J7,J6)=-1:DL1(J6,J7)=-1:IB2=IB1(J6)+IB1(J7) IF IB2>NP THEN 480 QP=Q(J6)+Q(J7):IF QP>Q1(K0)*E1 THEN 480 Q(J6)=0:Q(J7)=0: IB4=IB1(J6):IB3=IB(J6,IB4):IB5=IB(J7,IB1(J7)) FOR I=1 TO IB4:IB(IB3,I)=IB(J6,IB4+1-I):NEXT I FOR I=IB4+1 TO IB2:IB(IB3,I)=IB(J7,I-IB4):NEXT I FOR I=1 TO IB2:IB(IB5,I)=IB(IB3,IB2+1-I):NEXT I IF IB1(J6)<2 THEN 551 FOR I=1 TO N:DL1(J6,I)=-1:DL1(I,J6)=-1:NEXT I 551 IF IB1(J7)<2 THEN 552 FOR I=1 TO N:DL1(J7,I)=-1:DL1(I,J7)=-1:NEXT I 552 IB1(IB3)=IB2:IB1(IB5)=IB2:Q(IB3)=QP:Q(IB5)=QP DL1(IB3,IB5)=-1:DL1(IB5,IB3)=-1 GOTO 480 680 PRINT #2, TAB(5)"МАРШРУТЫ ПЕРЕВОЗОК ГРУЗОВ":PRINT #2,:I2=0 FOR I=1 TO N:IF Q(I)=0 THEN 860 I2=I2+1: SLL=0 IB6=IB1(I):IB7=IB(I,IB6) PRINT #2, TAB(5)"МАРШРУТ N"I2" "P$(0); IB6=IB1(I):IB7=IB(I,IB6) FOR I1=1 TO IB6:PRINT #2,"-"P$(IB(I,I1));:NEXT I1 SLL=SLL+DL(0,IB(I,1)):SLL=SLL+DL(0,IB(I,IB6)) FOR I1=1 TO IB6-1:SLL=SLL+DL(IB(I,I1),IB(I,I1+1)):NEXT I1 PRINT #2,"- "P$(0):IF IB6=1 THEN 790 PRINT #2, TAB(17)" ИЛИ "P$(0); FOR I1=1 TO IB6:PRINT #2,"-"P$(IB(IB7,I1));:NEXT I1 PRINT #2,"- "P$(0) 790 PRINT #2, TAB(5)"ОБЪЕМ ПЕРЕВОЗОК"USING F1$;Q(I) PRINT #2, TAB(5)"ТРЕБУЕТСЯ АВТОМОБИЛЬ ГРУЗОПОДЪЕМНОСТЬЮ -"; K3=0 820 K3=K3+1 IF E1*Q1(K3)<Q(I) THEN 820 PRINT #2, USING F1$;Q1(K3) Q(I)=0:Q(IB7)=0:IA1(K3)=IA1(K3)+1 PRINT #2, TAB(5)"ДЛИНА МАРШРУТА - "USING F1$;SLL:PRINT #2, 860 NEXT I PRINT #2,"ТРЕБУЕМОЕ ОБЩЕЕ ЧИСЛО АВТОМОБИЛЕЙ ПО ГРУЗОПОДЬЕМНОСТЯМ" PRINT #2, TAB(5)"ГРУЗОПОДЪЕМН. ЧИСЛО":PRINT #2, FOR K3=1 TO K:PRINT #2, TAB(10) USING F1$;Q1(K3);TAB(20) IA1(K3):NEXT K3 PRINT #2,:PRINT #2, TAB(5)".....***....." CLOSE #2 COLOR 25,5,15:PRINT "РЕЗУЛЬТАТЫ РАСЧЕТА В ФАЙЛЕ KLRRAIT.REZ" 870 BBB$=INKEY$ IF LEN(BBB$)=0 THEN 870 END
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.01 сек.) |