Слайд 2
Аксиома – препод может ошибаться, книга может ошибаться, но чаще
всего ошибаешься ты сам.
Слайд 3Вложенные циклы
Перемножение матриц
Слайд 4
Заданы два вектора и числа ALF и BET .
Построить вектор , компоненты которого вычисляются по правилу
PROGRAM PR1
INTEGER, PARAMETER :: NMax=100
DIMENSION X(0:NMax),Y(0:NMax),Z(0:NMax)
REAL ALF, BET
PRINT *,'INPUT N'
READ*,N
PRINT *,'INPUT ALFA BETTA'
READ*,ALF, BET
PRINT *,'INPUT MASSIV X'
READ*,(X(I),I=0,N)
PRINT *,'INPUT MASSIV Y'
READ*,(Y(I),I=0,N)
DO I=0,N
Z(I)=ALF*X(I)-BET*Y(I)
END DO
PRINT *,'MASSIV Z'
PRINT *,(Z(I),I=0,N)
END
Слайд 9Подпрограммы-функции, вычисляющей n-факториал (n!)
! основная программа
write(*,*)' n='
read(*,*) n !считываем вводимое
пользователем значение n
write(*,*) n,'!=',fu(n) !пишем возвращаемое функцией fu(n) значение n-факториала
end
!конец основной программы
function fu(n) !подпрограмма- функция fu
f=1
do i=1, n
f=f*i !в цикле вычисляем факториал, f
end do
fu=f !функция возвращает значение факториала
return !передача управления в основную программу
end !конец подпрограммы-функции fu
Слайд 10Подпрограмма subroutine, вычисляющая n-факториал (n!)
write(*,*)' n='
read(*,*) n
call fu(n,fuctorial) !!!обращение к
подпрограмме fu
оператором call
write(*,*) n, '!=',fuctorial
end
subroutine fu(n, f) !заголовок подпрограммы fu
f=1
do i=1, n
f=f*i
end do
return
end !конец подпрограммы fu
Слайд 11
Решение нелинейного уравнения методом Ньютона
PROGRAM NEWTON
IMPLICIT NONE
REAL (8)
:: X, DX, F, DF
X = 3.3
! НАЧАЛЬНОЕ ПРИБЛИЖЕНИЕ
DO ! НЬЮТОНОВСКИЕ ИТЕРАЦИИ
DX = F(X) / DF(X) ! ВЫЧИСЛЕНИЕ ШАГА
X = X - DX ! ВЫЧИСЛЕНИЕ ОЧЕРЕДНОГО ПРИБЛИЖЕНИЯ
IF(DX <= SPACING(X)) EXIT ! ЦИКЛ ЗАВЕРШАЕТСЯ, КОГДА
! ШАГ МЕНЬШЕ РАССТОЯНИЯ МЕЖДУ ДВУМЯ
!ПОСЛЕДОВАТЕЛЬНЫМИ ВЕЩЕСТВЕННЫМИ ЗНАЧЕНИЯМИ
END DO
PRINT *, X ! ВЫВОД ЗНАЧЕНИЯ КОРНЯ
PRINT *, F(X) ! ВЫВОД ЗНАЧЕНИЯ ФУНКЦИИ В ТОЧКЕ X
PRINT *, DF(X) ! ВЫВОД ЗНАЧЕНИЯ ПРОИЗВОДНОЙ ! ФУНКЦИИ В ТОЧКЕ X
END PROGRAM NEWTON
REAL(8) FUNCTION F(X)
IMPLICIT NONE
REAL(8) :: X
F = SIN(X)
RETURN
END
Слайд 12Являются ли два вектора перпендикулярными
PROGRAM VECTORS
REAL(8), PARAMETER ::
EPS=0.1E-5
REAL(8) U1, U2, U3, W1, W2, W3, D
PRINT
*, 'INPUT U1,U2,U3'
READ *, U1, U2, U3
PRINT *, 'INPUT W1,W2,W3'
READ *, W1, W2, W3
D=U1*W1+U2*W2+U3*W3
IF (ABS(D)< EPS) THEN
PRINT *, 'VECTORS U AND W ARE PERPENDICULAR'
ELSE
PRINT *, 'VECTORS U AND W ARE OUT OF THE PERPENDICULAR'
END IF
END