Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.111.24] |
|
Сообщ.
#1
,
|
|
|
Всем доброе время суток.
Пытаюсь написать простую программку, да компилятор (FPS 4.0) не дает. Ругается: --------------------Configuration: zadacha2 - Win32 Debug-------------------- Linking... zadacha2.obj : error LNK2001: unresolved external symbol _SIMQ@16 zadacha2.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. zadacha2.exe - 2 error(s), 0 warning(s) ----------------------------------------------------------------------------- Подпрограмма SIMQ по идее стандартная. Кто-нибудь, наставьте на путь истинный! Текст программы: ----------------------------------------------------------------------------- program ZADACHA2 integer, parameter :: n = 4 ! Число уравнений в системе dimension A(n,n) ! Массив коэффициентов при X dimension B(n) ! Массив свободных членов integer i ! Параметр цикла integer IER ! Код ошибки для SIMQ print *, "ZADANIE 2" ! -- Ввод элементов массивов print *, "Vvedite koefficzienty pri X po strokam:" read (*,*) ((a(i,j), j=1,n), i = 1, n) print *, "Vvedite massiv svobodnyh chlenov:" read (*,*) (B(i), i = 1, n) ! -- Вызов подпрограммы SIMQ для решения ! системы линейных алгебраических уравнений call SIMQ(A, B, n, IER) if (IER.EQ.0) then print *, "Reshenie najdeno: " do i = 1, n write (*, 20) i, B(i) 20 format(2x, "B(", i2, ") = ", f6.3) end do end if if (IER.EQ.1) then write (*, *) "Reshenie ne najdeno: " end if if (IER.EQ.2) then write (*, *) "Nevernoe kolichestvo uravnenj." end if pause "Pause. Press ENTER to continue . . ." end program ZADACHA2 ------------------------------------------------------------------------------ А может быть SIMQ вовсе и не стандартная подпрограмма? |
Сообщ.
#2
,
|
|
|
на винграде тебе уже ответили, что это не стандартная процедура. Смотри либо в IMSL, либо вот на 77 код
SUBROUTINE SIMQ(A,B,N,KS) DIMENSION A(N),B(N) TOL=0.0 KS=0 JJ=-N DO 65 J=1,N JY=J+1 JJ=JJ+N+1 BIGA=0 IT=JJ-J DO 30 I=J,N IJ=IT+I IF(ABS(BIGA)-ABS(A(IJ))) 20,30,30 20 BIGA=A(IJ) IMAX=I 30 CONTINUE IF(ABS(BIGA)-TOL) 35,35,40 35 KS=1 RETURN 40 I1=J+N*(J-2) IT=IMAX-J DO 50 K=J,N I1=I1+N I2=I1+IT SAVE=A(I1) A(I1)=A(I2) A(I2)=SAVE 50 A(I1)=A(I1)/BIGA SAVE=B(IMAX) B(IMAX)=B(J) B(J)=SAVE/BIGA IF(J-N) 55,70,55 55 IQS=N*(J-1) DO 65 IX=JY,N IXJ=IQS+IX IT=J-IX DO 60 JX=JY,N IXJX=N*(JX-1)+IX JJX=IXJX+IT 60 A(IXJX)=A(IXJX)-(A(IXJ)*A(JJX)) 65 B(IX)=B(IX)-(B(J)*A(IXJ)) 70 NY=N-1 IT=N*N DO 80 J=1,NY IA=IT-J IB=N-J IC=N DO 80 K=1,J B(IB)=B(IB)-A(IA)*B(IC) IA=IA-N 80 IC=IC-1 RETURN END |