C ПАВЕДАМЛЕННЕ НА ЭКРАН ДЫСПЛЕЯ АБ ЗАКАНЧЭННI РАБОТЫ
WRITE(5,353) Z2
353 FORMAT(1X,'ПРАГРАМА ''ITER'' РАБОТУ ЗАКОНЧЫЛА. РЭЗУЛЬТАТЫ РАЗЛIКУ
* ЗАПIСАНЫ НА ДЫСК У ФАЙЛ '/1X,A8)
STOP
END
Дадатак 5
C ФАЙЛ 'ZEID.FOR'
C ПРАГРАМА 'ZEID' РАШ. СIСТЭМЫ ЛIНЕЙНЫХ АЛГЕБРАIЧНЫХ РАУНАННЯУ AX=B
C МЕТАДАМ ПАЛЕПШАНАЙ IТЭРАЦЫI (МЕТАДАМ ЗЭЙДЭЛЯ).
C М-ПАРАДАК СIСТЭМЫ РАУНАННЯУ. А-КВАДРАТНАЯ МАТРЫЦА КАЭФIЦЫЕНТАУ
C (ВА УВАХОДНЫМ ФАЙЛЕ ПАВIННА БЫЦЬ РАЗМЕШЧАНА ПА РАДКАХ)
C В-МАТР. ПРАВЫХ ЧАСТАК. С,D-РАБОЧЫЯ МАСIВЫ. XN,XN1-МАТРЫЦЫ РАШЭННЯУ
C СIСТЭМЫ, АТРЫМАНЫХ АДПАВЕДНА НА КРОКУ n I НА КРОКУ n-1 IТЭРАЦЫЙНАГА
C ПРАЦЭСУ. EPS-ЗАДАВ. АДНОСНАЯ ПАГРЭШНАСЦЬ IТЭРАЦЫЙНАГА ПРАЦЭСУ.
C К-ПРЫЗНАК ВЫВАДУ НА ЭКРАН ПРАМЕЖК. ЗНАЧ. ИТЭРУЕМЫХ РАШЭННЯУ (ПРЫC ЗНАК ЗАДЕЦЦА ВА УВАХ. ДАДЗЕНЫХ: К=1-ВЫВАД ПРАМЕЖКАВЫХ ЗНАЧЭННЯУ
C РАШЭННЯУ ВЫКОНВ.; К=0-ВЫВАД НЕ ВЫКОНВАЕЦЦА). N-ЛIЧЫЛЬНIК НУМАРУ
C IТЭРАЦЫI)
C ПЕРЕД ВЫКАНАННЕМ РАЗЛIКАУ ПА ПРАГРАМЕ 'ITE' КАРЫСТАЛЬНIК СТВАРАЕ НА
C ДЫСКУ ФАЙЛ УВАХ. ДАДЗЕНЫХ З IМЕМ У ВЫГЛЯДЗЕ 'AAAA.DAT', ДЗЕ ЗАМЕСТ
C СIМВАЛАУ 'AAAA.' КАРЫСТ. УСТАУЛЯЕ ЧАТЫРЫ ЛIТАРЫ IМЯ СВАЙГО ФАЙЛА
C УВАХ. ДАДЗ.. ПАСЛЯ ПУСКУ ПРАГРАМЫ ГЭТАЕ IМЯ ЗАПЫТВАЕЦЦА ПРАГРАМАЙ
C З ЭКРАНА ДЫСПЛЕЯ,I ЯНО ПАВIННА БЫЦЬ УВЕДЗЕНА КАРЫСТАЛЬНIКАМ .
C ПОСЛЯ ЗАКАНЧ. РАЗЛIКУ ПРАГРАМА ЗАПIСВАЕ РЭЗУЛЬТАТЫ РАЗЛIКУ НА ДЫСК
C У ФАЙЛ З IМЕМ 'AAAA.REZ'.
C Z1,Z2 - СIМВАЛЬНЫЯ ПЕРАМЕННЫЯ (АДПАВЕДНА IМЕНЫ ФАЙЛАУ УВАХОДНЫХ
C I ВЫХОДНЫХ ДАДЗЕНЫХ)
CHARACTER Z1*8,Z2*8
C COMPLEX A,B,C,D,XN,XN1,W1
DIMENSION A(20,20),B(20),C(20),D(20,20),XN(20),XN1(20)
C ЧЫТАННЕ IМЯ ФАЙЛА УВАХОДНЫХ ДАДЗЕНЫХ З ЭКРАНА ДЫСПЛЕЯ
WRITE(5,350)
350 FORMAT(1X,'УВЯДЗIЦЕ IМЯ I ПАШЫР. ВАШАГА ФАЙЛА УВАХОДНЫХ ДАДЗЕН
*ЫХ У ВЫГЛЯДЗЕ:'/1X,'"AAAA.DAT"( ДЛЯ ГЭТАГА ЗАМЯНIЦЕ СIМВАЛЫ "AAAA"
* НА IМЯ)')
READ(5,351)Z1
351 FORMAT(A8)
C АДКРЫЦЦЕ ФАЙЛА УВАХ. ДАДЗЕНЫХ, ЧЫТАННЕ УВАХОДНЫХ ДАДЗЕНЫХ З ДЫСКА
C У АПЕРАТЫУНАЕ ЗАПАМIНЛЬНАЕ УСТРОЙСТВА I ЗАКРЫЦЦЕ ФАЙЛА
OPEN(UNIT=1,FILE=Z1,STATUS='OLD')
READ(1,*)M,K,EPS,((A(I,J),J=1,M),I=1,M),(B(I),I=1,M)
CLOSE(UNIT=1)
C АДКРЫЦЦЕ ФАЙЛА ДЛЯ ВЫХАДНЫХ ДАДЗЕНЫХ, ЗАПIС УВАХОДНЫХ ДАДЗЕНЫХ У
C ВЫХАДНЫ ФАЙЛ
Z2(1:4)=Z1(1:4)
Z2(5:8)='.REZ'
OPEN(UNIT=3,FILE=Z2,STATUS='NEW')
WRITE(3,360)M,K,EPS,((A(I,J),J=1,M),I=1,M)
360 FORMAT(10X,'В Ы Х А Д Н Ы Ф А Й Л П Р А Г Р А М Ы ZEID'//
*10X,'УВАХОДНЫЯ ДАДЗЕНЫЯ:'/'Парадак сiстэмы раунанняу: М=',I2/
*'Прызнак вываду прамежкавых рэзультатау на экран: К=',I2/
*'Зададзеная адносная хiбнасць: EPS=',F10.8/
*'Матрыца каэфiцыентау A(M,M) сiстэмы:'/(10F8.4))
WRITE(3,370)(B(I),I=1,M)
370 FORMAT('Матрыца правых частак В(M):'/(10F8.4))
C УТВАРЭННЕ МАСIВАУ C(M),D(M,M)
DO 5 I=1,M
DO 4 J=1,M
IF(I.EQ.J)GO TO 3
D(I,J)=-A(I,J)/A(I,I)
GO TO 4
3 D(I,J)=0.
4 CONTINUE
5 C(I)=B(I)/A(I,I)
C ЗАСЫЛКА ПАЧАТКОВАГА НАБЛIЖЭННЯ У МАСIУ XN1(M)
DO 6 I=1,M
6 XN1(I)=C(I)
C ЗАСЫЛКА ПАЧАТКОВАГА ЗНАЧЭННЯ ЛIЧЫЛЬНIКА IТЭРАЦЫЙ N
N=0
N1=0
C РАЗЛIК ЧАРГОВАГА n-АГА НАБЛIЖЭННЯ У МАСIВЕ XN(M)
9 DO 7 I=1,M
W=C(I)
DO 10 J=1,M
10 W=W+D(I,J)*XN(J)
7 XN(I)=W
C ВЫЛIЧЭННЕ НАЙБОЛЬШАЙ АДНОСНАЙ РАЗЛIЧАНАЙ РОЗНАСЦI EPSRAZ
EPSRAZ=0.
DO 8 I=1,M
W=ABS(XN(I)-XN1(I))
IF(EPSRAZ.GT.W)GO TO 8
EPSRAZ=W
EPSZAD=EPS*XN(I)
8 CONTINUE
C ПАВЯЛIЧЭННЕ ЛIЧЫЛЬНIКА IТЭРАЦЫЙ n НА АДЗIНКУ
N=N+1
C ВЫВАД ПРАМЕЖКАВЫХ ЗНАЧЭННЯУ РАШЭННЯ НА ЭКРАН
IF(K.EQ.0)GO TO 14
WRITE(5,20)N
20 FORMAT(1X,' IТЭРАЦЫЯ НУМАР ',I3)
WRITE(5,*)(XN(I),I=1,M)
C ПЕРАСЫЛКА ЗНАЧЭННЯУ АПОШНЯЙ IТЭРАЦЫI З МАСIВА XN(M) У МАСIУ XN1(M)
14 DO 11 I=1,M
11 XN1(I)=XN(I)
C БЛОК КАНТРОЛЮ ЗАКАНЧЭННЯ ВЫЛIЧЭННЯУ У ВЫПАДКУ ДРЭННАЙ ЗБЕЖНАСЦI
C IТЭРАЦЫЙНАГА ПРАЦЭСУ
IF((N-N1).LT.50)GO TO 12
N1=N
WRITE(5,354)N,EPSZAD,EPSRAZ
354 FORMAT(1X,'ПРАГРАМА ''ZEID'' ВЫКАНАЛА ',I4,' IТЭРАЦЫЙ'/1X,
*'EPSZAD=',2F10.8,' EPSRAZ=',2F10.8/1X,'ДЛЯ ПРАЦЯГУ РАЗЛIКАУ УВ
*ЯДЗIЦЕ 1, У АДВАРОТНЫМ ВЫПАДКУ - ЛЮБЫ ЗНАК, АКРАМЯ 1')
READ(5,*)N2
IF(N2.NE.1)GO TO 30
C ЦI ТРЭБА ПРАЦЯГВАЦЬ IТЭРАЦЫI ПА УМОВЕ ДАКЛАДНАСЦI
12 IF(EPSRAZ.GT.EPSZAD)GO TO 9
C ЗАПIС РЭЗУЛЬТАТАУ РАЗЛIКУ У ВЫХАДНЫ ФАЙЛ I ЗАКРЫЦЦЕ ФАЙЛА
30 WRITE(3,352)(XN(I),I=1,M)
352 FORMAT(/10X,'РЭЗУЛЬТАТЫ РАЗЛIКУ:'/6(G13.6))
CLOSE(UNIT=3)
C ПАВЕДАМЛЕННЕ НА ЭКРАН ДЫСПЛЕЯ АБ ЗАКАНЧЭННI РАБОТЫ
WRITE(5,353) Z2
353 FORMAT(1X,'ПРАГРАМА ''ZEID'' РАБОТУ ЗАКОНЧЫЛА. РЭЗУЛЬТАТЫ РАЗЛIКУ
* ЗАПIСАНЫ НА ДЫСК У ФАЙЛ '/1X,A8)
STOP
END
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.