Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 18:43   #1
Venzel
Пользователь
 
Регистрация: 11.12.2011
Сообщений: 14
По умолчанию Basic ---> Pascal

Итак, нашел код нужной программы на бейсике, теперь нужно перевести его на паскаль. Проблема в следующем: не совсем понятен оператор GOTO, точнее не понимаю чем можно его заменить на паскале(уж очень часто он используется).
Вот код на бейсике:
Код:
READY.
20 PRINT-РЕШЕНИЕ ЗАДАЧИ О НАЗНАЧЕНИИ МЕТОДОМ Мака
30 READ N:REM N-РАЗМЕРНОСТЬ МАТРИЦЫ
40 REАD MZ: REM ЕСЛИ MZ=+1,TO В ЗАДАЧЕ ИЩЕТСЯ МАКСИМУМ;
45 REM ЕСЛИ MZ=-1.TO В ЗАДАЧЕ ИЩЕТСЯ МИНИМУМ
50 REM ЗАДАТЬ МАССИВЫ.ПОДРОБНОСТИ ОПИСАНЫ В ТЕКСТЕ КНИГИ
70 DIM R(N,N),P(N,N),IC(N,N)
80 DIM MA(N), IP(N),MB(N),JV(N),LR(N)
90 DIMJR(N),JU(N),IU(N),JK(N),NM(N)
95 REM ВВЕСТИ МАТРИЦУ В МАССИВ R
100 FOR I=1 ТО N:FOR М TO N
110 READ R(I,J)
120 NEXT J:NEXT I
190 REM В ПРОГРАММЕ МИНИМИЗИРУЕТСЯ РАБОЧАЯ МАТРИЦА Р
200 FOR I=1 ТО N:NM(I)
210 FOR J=1 TO N:P(I,J)=-MZ+R(I,J)
220 NEXT J:NEXT I
230 M=1E10:REM ЗНАЧЕНИЕ М БОЛЬШЕ ЛЮБОГО ЭЛЕМЕНТА МАТРИЦЫ R
250 FOR I=1 ТО N:IM=M
270 FOR J=1 ТО N
280 IZ=P(l.J)
290 IF IZ>IM THEN GOTO 310
300 IM=IZ:L=J
310 NEXT J
320 NM(L)=NM(L)+1:K=NM(L)
330 IC(L,K)=I
340 MA(I)-IM
350 JR(I)=L
360 NEXT I
400 J=0
410 J=J+1
420 IF J>N THEN GOTO 1500
430 IF NM(J)<2 THEN GOTO 410
440 JU=NM(J)
450 FOR K=1 TO JU
460 IP(K)=IC(J,K)
470 NEXT К
480 NC=1
490 LR(1)=J
500 JK(J)=1
510 MB(J)=0
520 IV=М
530 FOR K=1 TO JU
540 I=IP(K)
550 FOR JO=1 TO N
560 IF JK(JO)=1 THEN GOTO 630
570 IZ=P(I,JD)-MA(I)
580 IF IZ>IV THEN GOTO 630
590 IV=IZ
600 JC=JD
610 IR=I
630 NEXT JD
640 NEXT К
650 FOR JX=1l TO NC
660 MB(LR(JX))=MB(LR(JX))+IV
670 NEXT JX
680 FOR K=1 TO JW
690 MA(IP(K))=MA(IP(K))+IV
700 NEXT К
710 МВ(JC)=0
720 JK(JC)=1
730 NC=NC+1
740 LR(NC)=JC
750 IM(JC)=IR
760 JM(JR)=JC
770 JY=NM(JC)
780 IF JY=0 THEN GOTO 848
790 FOR JX=1 TO JY
800 JU=JU+1
810 IP(JU)=IC(JC,JX)
820 NEXT JX
830 GOTO 520
840 FOR JX=1 TO NC
850 LS=LR(JX)
860 JK(LS)=0
870 FOR I=1 TO N
880 P(I,LS)=P(I,LS)+MB(LS)
890 NEXT I
900 NEXT JX
910 NM(JC)=1
920 IC(JC,1)=IR
930 JP=JR(lR)
940 JR(IR)=JC
950 IW=0
960 JQ=NM(JP)
970 FOR IL=1TO 30
980 IZ=IC(JP,IL)
990 IF IZ=IR THEN GOTO 1020
1000 IW=IW+1
1010 IC(JP,IW)=IC(JP,IL)
1020 NEXT IL
1030 IF JQ>1 THEN GOTO 1080
1040 IR=IM(JP)
1050 JC=JP
1060 IC(JP,JQ)=IR
1070 GOTO 930
1080 NM(JP)=JQ-1
1090 GOTO 400
1500 T=0:PRINT " I J R(I,J)"
1510 FOR J=1 TO N
1520 JV(IC(J,1))=J
1530 NEXT J
1540 FOR I=1 TO N
1550 J=JV(I)
1560 T=T+R(I,J)
1570 PRINT I;,R(I,J)
1580 NEXT I
1600 IF MZ=1 THEN PRINT "Максимум равен";Т
1610 IF MZ=-1 THEN РRINT "Минимум равен";Т
1700 END 2000 DATA 8,-1
2010 DATA 93,93,91 94,99 99,90,92
2020 DATA 96,93,90 94,98 96,97,91
2030 DATA 96,90,91 90,92 90,93,96
2040 DATA 93,94,95 96,97 10,92,93
2050 DATA 94,93,95 91,90 97,96,92
2060 DATA 94,93,96 90,93 89,88,91
2070 DATA 94,96,91 90,95 93.92,94
2080 DATA 93,94,6,95,91,99,91,96
READY.
Venzel вне форума Ответить с цитированием
Старый 11.12.2011, 18:48   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
не совсем понятен оператор GOTO, точнее не понимаю чем можно его заменить на паскале
им же goto
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 11.12.2011, 18:48   #3
Leo08
Delphi master
Пользователь
 
Аватар для Leo08
 
Регистрация: 28.05.2011
Сообщений: 96
По умолчанию

)) В паскале идёт тоже оператор goto.
Код:
label go;
...
go:
...
goto go;
Это переход на метку
БЯЯЯГГАААААА
Leo08 вне форума Ответить с цитированием
Старый 11.12.2011, 19:01   #4
Venzel
Пользователь
 
Регистрация: 11.12.2011
Сообщений: 14
По умолчанию

Черт, я нуб и не знал этого Спасибо вам!

Последний раз редактировалось Venzel; 11.12.2011 в 19:36.
Venzel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Теория Basic/Pascal speka Паскаль, Turbo Pascal, PascalABC.NET 3 18.11.2011 14:59
Basic, Pascal Рося Помощь студентам 0 05.10.2010 16:04
Егэ: выбор между c/pascal/basic SPKe Свободное общение 8 09.08.2010 10:43