|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ПРИЛОЖЕНИЕ 7. КОМПЬЮТЕРНАЯ ПРОГРАММА ОТЫСКАНИЯ КРАТЧАЙШИХ РАССТОЯНИЙ МЕЖДУ ПУНКТАМИ ТРАНСПОРТНОЙ СЕТИ2 COLOR 7,7,15:CLS:LOCATE 10:PRINT:COLOR 0,7,15 3 PRINT TAB(21)"З А Д А Ч А K R T R S T":PRINT TAB(20)" "; 4 COLOR 15,0,15:PRINT"КАФЕДРА";:COLOR 23,0,15:PRINT" *БНТУ*"; 5 COLOR 15,0,15:PRINT" О А П Д Д":PRINT 6 PRINT"ПРОГРАММА РАСЧЕТА КРАТЧАЙШИХ РАССТОЯНИЙ" 8 PRINT"МЕЖДУ ПУНКТАМИ ТРАНСПОРТНОЙ СЕТИ":COLOR 7,7,15 19 PRINT:COLOR 7,0,7:DEFINT I-N 30 DIM C(50,50),IP(50,50),AG$(50) 40 H0$=" ИСХОДНЫЕ ДАННЫЕ":H1$=" ДА - 1, НЕТ - 0" 50 H2$="КОРРЕКТИРОВАТЬ ЛИ ":H3$="ВЫ ДОПУСТИЛИ ОШИБКУ" 60 PRINT "ВВЕДЕНЫ ЛИ "H0$;H1$:INPUT M0:IF M0=0 THEN 160 70 OPEN"I",#1,"KRTRST.DAT" 80 INPUT #1,N,MM 90 FOR I=1 TO N:INPUT #1,AG$(I) 100 FOR J=1 TO N:IF MM=0 AND J>I-1 THEN 130 110 IF I=J THEN 130 120 INPUT #1,C(I,J) 130 NEXT J:NEXT I 140 CLOSE #1 150 CLS: PRINT TAB(5)H0$:GOSUB 460:GOTO 280 160 CLS:PRINT"ВВЕДИТЕ ";H0$:INPUT "ЧИСЛО ПУНКТОВ(ВЕРШИН)";N 170 PRINT"ПОСЛЕДОВАТЕЛЬНО СОКРАЩЕННЫЕ НАИМЕН.(КОДЫ) ПУНКТОВ" 180 FOR I=1 TO N:PRINT I"-ГО":INPUT AG$(I):NEXT I 190 INPUT"ИМЕЮТСЯ ЛИ ДОРОГИ С ОДНОСТОРОННИМ ДВИЖЕНИЕМ. ДА- 1,НЕТ-0";MM 200 PRINT"ВВЕДИТЕ ДЛИНЫ ЗВЕНЬЕВ ТРАНСПОРТНОЙ СЕТИ. ЕСЛИ ЗВЕНО " 210 PRINT"ОТСУСТВУЕТ, ТО ВВОДИТЕ(0)" 220 FOR I=1 TO N:FOR J=1 TO N:IF MM=0 AND J>I-1 THEN 260 230 IF I=J THEN 260 240 PRINT "C("AG$(I)"."AG$(J)")":INPUT C(I,J) 250 IF C(I,J)=0 THEN C(I,J)=1E+20 ELSE P(I,J)=0 260 NEXT J:NEXT I 270 CLS:GOSUB 460 280 PRINT H2$;H0$:PRINT H1$;:INPUT M1:IF M1=0 THEN 350 290 PRINT"ЧЕРЕЗ ЗАПЯТУЮ ПОРЯДКОВЫЕ НОМЕРА(ИНДЕКСЫ) ПУНКТОВ," 300 MR=1:PRINT "МЕЖДУ КОТОРЫМИ ТРЕБУЕТСЯ СКОРРЕКТИРОВАТЬ РАССТОЯНИЕ" 310 INPUT IS,JS 320 IF IS<1 OR JS>N OR JS<1 OR JS>N THEN PRINT H3$:GOTO 290 330 IF MM=0 AND JS>IS-1 THEN PRINT H3$:GOTO 290 340 PRINT"НОВОЕ ЗНАЧЕНИЕ РАССТОЯНИЯ":INPUT C(IS,JS):GOTO 280 350 IF M0=1 AND MR=0 THEN 560 360 OPEN "O",#1,"KRTRST.DAT" 370 WRITE #1,N,MM 380 FOR I=1 TO N:WRITE #1,AG$(I) 390 FOR J=1 TO N:IF MM=0 AND J>I-1 THEN 410 400 WRITE #1,C(I,J) 410 NEXT J:NEXT I 420 CLOSE #1 430 IF MR=0 THEN 560 440 PRINT "СКОРРЕКТИРОВАННЫЕ";H0$ 450 GOSUB 460:GOTO 560 460 PRINT H0$:PRINT:PRINT" ДЛИНА ЗВЕНЬЕВ ТРАНСПОРТНОЙ СЕТИ" 470 PRINT " J";:FOR J=1 TO N:PRINT TAB(6*J+6)AG$(J);:NEXT J:PRINT 480 FOR J=1 TO N:PRINT TAB(6*J+4)"*"J;:NEXT J:PRINT 490 PRINT " I" 500 FOR I=1 TO N:PRINT AG$(I);"*";I; 510 FOR J=1 TO N 520 IF C(I,J)>1E+19 THEN PRINT TAB(6*J+6)" - ";:GOTO 540 525 IF MM=0 AND J>I-1 THEN 540 530 PRINT TAB(6*J+6) C(I,J); 540 NEXT J:PRINT 550 NEXT I:PRINT:PRINT:RETURN 560 IF MM=1 THEN 580 570 FOR I=1 TO N:FOR J=I+1 TO N:C(I,J)=C(J,I):NEXT J:NEXT I 580 FOR I=1 TO N:PRINT"ИДЕТ "I"-Я ИТЕРАЦИЯ" 585 FOR J=1 TO N:IF C(I,J)>1E+19 THEN 640 590 FOR K=1 TO N 600 IF C(I,K)>1E+19 THEN 630 610 S=C(J,I)+C(I,K) 620 IF S<C(J,K) THEN C(J,K)=S:IP(J,K)=I 630 NEXT K 640 NEXT J:NEXT I 750 OPEN "O",#1,"KRTRST.REZ" 755 WRITE #1,N,MM 760 FOR I=1 TO N 765 WRITE #1,AG$(I) 770 FOR J=1 TO N 775 WRITE #1,C(I,J),IP(I,J) 780 NEXT J 785 NEXT I 790 CLOSE #1 795 OPEN "O",#1,"KRTRSTP.REZ" 800 PRINT #1," КРАТЧАЙШИЕ РАССТОЯНИЯ МЕЖДУ ПУНКТАМИ" 805 FOR I=1 TO N 810 PRINT #1,"От "AG$(I)" до" 815 FOR J=1 TO N 820 PRINT #1,AG$(J),USING"######.###";C(I,J), 825 IF IP(I,J)=0 THEN PRINT #1, "" else PRINT #1," через "AG$(IP(I,J)) 830 NEXT J 835 NEXT I 840 CLOSE #1 850 COLOR 25,5,15:PRINT " РЕЗУЛЬТАТЫ РАСЧЕТА ДЛЯ ИСПОЛЬЗОВАНИЯ В ДРУГИХ ПРОГРАММАХ В ФАЙЛЕ KRTRST.REZ" 860 PRINT " РЕЗУЛЬТАТЫ РАСЧЕТА ДЛЯ ВЫВОДА НА ПЕЧАТЬ В ФАЙЛЕ KRTRST.PRN" 865 PRINT " ДАННЫЕ ДЛЯ ПОВТОРНОГО РАСЧЕТА В ФАЙЛЕ KRTRST.DAT" 870 BBB$=INKEY$ 880 IF LEN(BBB$)=0 THEN 870 910 END
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.) |