Member
Регистрация: 16.04.2014
Сообщений: 51
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите пожалуйста с задачкой, Fortran, Pascal
Нужна помощь с программой, в переводе ее С фортрана на паскаль!
Код:
external F
Dimension a(5,6),B(5)
Real a,B
Integer I,j
data A/5.3,-0.25,1.35,2.25,-0.5,2.1,7.1,-2.5,0.9,-1.7,-3.2,4.3,6.83,-4.3,3.7,-1.25,-0.7,0.35,5.25,-1.25,0.5,-1.1,1.8,-0.83,8.9,-3.05,0.15,-1.7,4.1,2.0/
!read(*,*)A
write(*,45)
45 format(6x,'Matrica A')
write(*,76)((A(i,j),j=1,6,1),i=1,5,1)
76 format(6(3x,f5.2))
Do j=1,6,1
Do i=1,5,1
B(i)=0
B(i)=A(I,j)
enddo
call RAZD(B,5,F,L)
do i=1,5,1
a(i,j)=b(i)
enddo
enddo
write(*,*)'in UPOR'
pause
write(*,*) 'out Upor'
! call Upor(a,5,6)
write(*,55)
55 format(6x, 'perestavlennaya Matrica A')
write(*,76)((a(i,j),j=1,6,1),i=1,5,1)
END
Real function F(x)
real x
F=x
return
end
Subroutine RAZD (A, m, F, K)
Dimension A(M)
Integer i, j, m, k
logical p
Real A,x
i=1
j=M
do while (i<j)
if (F(A(i)).GE.0) then
p=.true.
do while (j>i .and. P)
If (F(A(j))<0) then
x=a(i)
A(i)=A(j)
A(j)=x
p=.false.
endif
j=j-1
enddo
Endif
i=i+1
Enddo
if (j.eq.M) then
k=j+1
else
If (p) then
k=i-1
else
k=j
Endif
Endif
return
end
|