Problemas 2 Fortran90
Problemas 2 Fortran90
Problemas 2 Fortran90
1|Página
Ing. William Chauca Nolasco
program informacion
character(len=100),dimension(100)::nomb
real,dimension(100)::prom
integer::i,n,m
integer::max,aux1
character(len=100)::aux2
print*,"Ingrese cantidad de alumnos"
read*,n
print*,"Ingrese nombres de los alumnos"
read*,(nomb(i),i=1,n)
print*,"Ingrese promedio de general de los alumnos"
read*,(prom(i),i=1,n)
m=i-1
!Proceso repetitivo
2|Página
Ing. William Chauca Nolasco
do i=1,m-1
max=prom(i)
index=i
!Busqueda del mayor valor e indice respectivo
do j=i+1,m
if(prom(j)>max) then
max=prom(j)
index=j
end if
end do
aux1=prom(i)
aux2=nomb(i)
prom(i)=prom(index)
nomb(i)=nomb(index)
prom(index)=aux1
nomb(index)=aux2
end program informacion
3|Página
Ing. William Chauca Nolasco
CODIGO
program problema3
integer::i
integer,dimension(10)::a,b,c
do i=1,10
print*,"ingrese cantidad del producto ",i," en stock"
read*,a(i)
print*,"ingrese cantidad de productos pedidos por el cliente"
read*,b(i)
end do
do i=1,10
if (a(i)==b(i))then
c(i)=a(i)
else
if (b(i)>a(i))then
c(i)=(b(i)-a(i))*2
else
c(i)=b(i)
end if
end if
4|Página
Ing. William Chauca Nolasco
end do
do i=1,10
print*,c(i)
end do
end program problema3
5|Página
Ing. William Chauca Nolasco
PROGRAM PROB_4
REAL,DIMENSION(1:6)::A
INTEGER::I
PRINT*,"VALORES DEL VECTOR "
READ*,(A(I),I=1,6)
6|Página
Ing. William Chauca Nolasco
PRINT*,"VECTOR A"
DO I=1,6
PRINT*,A(I)
CALL POSICION(A)
END DO
SUBROUTINE POSICION(X)
REAL,DIMENSION(1:6)::X
REAL::B
INTEGER::I
PRINT*,"UNA POSICION A LA DERECHA DEL VECTOR"
DO I=1,6
B=X(I)
X(I)=X(6)
X(6)=B
END DO
DO I=1,6
PRINT*,X(I)
END DO
END SUBROUTINE POSICION
Codigo
program problema_5
implicit none
integer::i,j,m,n
7|Página
Ing. William Chauca Nolasco
real,dimension(100,100)::A,B,TA,TB
print*,"Ingrese filas para A y B"
read*,m
print*,"Ingrese columnas para A y B"
read*,n
print*,"Ingrese datos a la matriz A"
read*,((A(i,j),j=1,n),i=1,n)
print*
print*,"Ingrese datos a la matriz B"
read*,((B(i,j),j=1,n),i=1,n)
print*
do i=1,n
do j=1,m
TA(i,j)=A(j,i)
end do
end do
do i=1,n
do j=1,m
TB(i,j)=B(j,i)
end do
end do
print*,"La transpuesta de la matriz A es"
do i=1,n
print*,(TA(i,j),j=1,m)
end do
print*,"La transpuesta de la matriz B es"
do i=1,n
print*,(TB(i,j),j=1,m)
end do
end program problema_5
8|Página
Ing. William Chauca Nolasco
9|Página
Ing. William Chauca Nolasco
PROGRAM MATMUL
IMPLICIT NONE
INTEGER,DIMENSION(100,100)::MxN,PxQ,PD
INTEGER::I,J,K
INTEGER::M,N,P,Q
PRINT*,"INGRESAR FILAS Y COLUMNAS DE LA MATRIZ A"
READ*,M,N
PRINT*,"INGRESAR FILAS Y COLUMNAS DE LA MATRIZ A"
READ*,P,Q
IF(N==P)THEN
PRINT*,"INGRESAR DATOS DE LA MATRIZ",M,"x",N
READ*,((MxN(I,J),J=1,N),I=1,M)
PRINT*,"INGRESAR DATOS DE LA MATRIZ",P,"x",Q
READ*,((PxQ(I,J),J=1,Q),I=1,N)
PRINT*,"VECTOR MxN"
DO I=1,M
PRINT*,(MxN(I,J),J=1,N)
END DO
PRINT*,"VECTOR PxQ"
DO I=1,P
PRINT*,(PxQ(I,J),J=1,Q)
END DO
DO I=1,M
DO J=1,Q
PD(I,J)=0
DO K=1,N
PD(I,J)=PD(I,J)+(MxN(I,K)*PxQ(K,J))
END DO
END DO
END DO
PRINT*,"EL PRODUCTO DE MATRICES"
DO I=1,M
PRINT*,(PD(I,J),J=1,Q)
END DO
ELSE
PRINT*,"LAS MATRICES NO SE PUEDEN MULTIPLICAR PORQUE EL NUMERO
DE COLUMNAS DE A ES DIFERENTE AL NUMERO DE FILAS DE B="
10 | P á g i n a
Ing. William Chauca Nolasco
END IF
END PROGRAM MATMUL
PROGRAM DIAGONAL_PRINCIPAL
IMPLICIT NONE
INTEGER::M,N
INTEGER,DIMENSION(100,100)::MT
INTEGER::SU
INTEGER::I,J
PRINT*,"INGRESAR NUMERO DE FILAS Y COLUMNAS DE LA MATRIZ"
READ*,M,N
IF(M==N)THEN
PRINT*,"INGRESAR DATOS DE LA MATRIZ",M,"x",N
READ*,((MT(I,J),J=1,N),I=1,M)
PRINT*,"MATRIZ INGRESADA"
DO I=1,M
PRINT*,(MT(I,J),J=1,N)
END DO
SU=0
DO I=1,M
DO J=1,N
IF(I==J)THEN
SU=SU+MT(I,J)
END IF
END DO
END DO
PRINT*,"LA SUMA DE LOS ELEMENTOS DE LA DIAGONAL PRINCIPAL ES:",SU
ELSE
PRINT*,"NO SE PUEDE OPERAR PORQUE LA MATRIZ INGRESADA NO ES
CUADRADA"
END IF
END PROGRAM DIAGONAL_PRINCIPAL
10.- Realice un programa para obtener una matriz como el resultado de la
resta de dos matrices de orden M x N.
PROGRAM RESTA_DE_MATRICES
11 | P á g i n a
Ing. William Chauca Nolasco
INTEGER::I,J
INTEGER,ALLOCATABLE,DIMENSION(:,:)::MT1,MT2,RESTA
PRINT*,"INGRESAR FILAS Y COLUMNAS DE MATRICES A RESTAR"
READ*,M,N
ALLOCATE(MT1(M,N),MT2(M,N),RESTA(M,N))
PRINT*,"INGRESAR ELEMENTOS DE PRIMERA MATRIZ"
READ*,((MT1(I,J),J=1,N),I=1,M)
PRINT*,"INGRESAR ELEMENTOS DE SEGUNDA MATRIZ"
READ*,((MT2(I,J),J=1,N),I=1,M)
PRINT*,"MATRIZ 1"
DO I=1,M
PRINT*,(MT1(I,J),J=1,N)
END DO
PRINT*,"MATRIZ 2"
DO I=1,M
PRINT*,(MT2(I,J),J=1,N)
END DO
DO I=1,M
DO J=1,N
RESTA(I,J)=MT1(I,J)-MT2(I,J)
END DO
END DO
PRINT*,"LA RESTA DE MATRICES ES="
DO I=1,M
PRINT*,(RESTA(I,J),J=1,N)
END DO
END PROGRAM RESTA_DE_MATRICES
12 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM MATRIZ_CUADRADA
IMPLICIT NONE
INTEGER::N,I,J,C
INTEGER,ALLOCATABLE,DIMENSION(:,:)::MATRIZ
PRINT*,"INGRESAR ORDEN DE LA MATRIZ"
READ*,N
ALLOCATE(MATRIZ(N,N))
PRINT*,"INGRESAR ELEMENTOS DE LA MATRIZ"
READ*,((MATRIZ(I,J),J=1,N),I=1,N)
PRINT*,"MATRIZ"
DO I=1,N
PRINT*,(MATRIZ(I,J),J=1,N)
END DO
C=0
DO I=1,N
DO J=1,N
IF(I/=J .AND. MATRIZ(I,J)==0 )THEN
C=C+1
IF(C==N*(N-1))THEN
PRINT*,"LA MATRIZ ES DE TIPO DIAGONAL"
END IF
END IF
END DO
END DO
END PROGRAM MATRIZ_CUADRADA
12.- Realice un programa que lea los nombres y las edades de diez alumnos,
y que los datos se almacenen en dos vectores, y con base en esto se
determine el nombre del alumno con la edad mayor del arreglo.
PROGRAM NOMBRES_Y_EDADES
IMPLICIT NONE
INTEGER::I,M
CHARACTER(LEN=15)::NOM_M
CHARACTER(LEN=15),DIMENSION(10)::NOM
INTEGER,DIMENSION(10)::E
PRINT*,"INGRESAR EL NOMBRE Y SU EDAD "
DO I=1,10
READ*, NOM(I),E(I)
END DO
13 | P á g i n a
Ing. William Chauca Nolasco
M=E(1)
DO I=1,10
IF (E(I)>M)THEN
M=E(I)
NOM_M=NOM(I)
END IF
END DO
PRINT*,"EL NOMBRE DEL ALUMNO DE MAYOR EDAD=",NOM_M
PRINT*,"SU EDAD ES=",M
END PROGRAM NOMBRES_Y_EDADES
PROGRAM VECTORES
INTEGER::N,I
INTEGER,ALLOCATABLE,DIMENSION(:)::V1,V2
PRINT*,"INGRESAR TAMANO DE LOS VECTORES"
READ*,N
ALLOCATE(V1(N),V2(N))
PRINT*,"INGRESAR ELEMENTOS DE VECTOR 1"
READ*,(V1(I),I=1,N)
PRINT*,"VECTOR 1"
!1,2,3,4,5
PRINT*,(V1(I),I=1,N)
DO I=1,N
V2(I+1)=V1(I)
END DO
PRINT*,"VECTOR 2"
PRINT*,(V2(I),I=1,N)
END PROGRAM VECTORES
14 | P á g i n a
Ing. William Chauca Nolasco
menor elemento del arreglo; la suma de los elementos de las cinco primeras
filas del arreglo; y el total de elementos negativos en las columnas de la
quinta a la nueve.
PROGRAM FILAS_Y_COLUMNAS
IMPLICIT NONE
INTEGER::I,J,C,MEN,SU
INTEGER,DIMENSION(15,12)::MT
PRINT*,"INGRESAR ELEMENTOS DEL ARREGLO"
READ*,((MT(I,J),J=1,12),I=1,15)
PRINT*,"MATRIZ"
DO I=1,15
PRINT*,(MT(I,J),J=1,12)
END DO
MEN=MT(1,1)
DO I=1,15
DO J=1,12
IF (MT(I,J)<MEN)THEN
MEN=MT(I,J)
END IF
END DO
END DO
PRINT*,"EL MENOR ELEMENTO DEL ARREGLO",MEN
!SUMA DE LOS ELEMENTOS DE LAS CINCO PRIMERAS FILAS
SU=0
DO I=1,5
DO J=1,12
SU=SU+MT(I,J)
END DO
END DO
PRINT*,"LA SUMA DE TODOS LOS ELEMENTOS DE LAS 5 PRIMERAS FILAS
ES:",SU
!TOTAL DE ELEMENTOS NEGATIVOS EN LAS COLUMNAS DE LA QUINTA A LA
NUEVE.
C=0
DO I=1,15
DO J=5,9
IF(MT(I,J)<0)THEN
C=C+1
END IF
15 | P á g i n a
Ing. William Chauca Nolasco
END DO
END DO
PRINT*,"CANTIDAD DE ELEMENTOS NEGATIVOS DE LA COLUMNA 5 A LA
9=",C
END PROGRAM FILAS_Y_COLUMNAS
15.- Realice un programa que lea dos vectores de cien elementos y que
calcule la suma de éstos guardando su resultado en otro vector, el cual se
debe presentar en forma impresa.
PROGRAM ELEMENTOS
IMPLICIT NONE
INTEGER::I
INTEGER,DIMENSION(100)::A,B,C
PRINT*,"ELEMENTOS DE VECTOR A"
READ*,(A(I),I=1,100)
PRINT*
PRINT*,"ELEMENTOS DE VECTOR B"
READ*,(B(I),I=1,100)
PRINT*
PRINT*,"VECTOR A"
PRINT*,(A(I),I=1,100)
PRINT*
PRINT*,"VECTOR B"
PRINT*,(B(I),I=1,100)
PRINT*
PRINT*,"SUMA DE VECTORES"
DO I=1,100
C(I)=A(I)+B(I)
END DO
PRINT*
PRINT*,(C(I),I=1,100)
END PROGRAM ELEMENTOS
16.- Se tienen dos matrices cuadradas (de 12 filas y 12 columnas cada una).
Realice un programa que lea los arreglos y que determine si la diagonal
principal de la primera es igual a la diagonal principal de la segunda.
(Diagonal principal es donde los subíndices I, J son iguales).
16 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM MATRICES_CUADRADAS
IMPLICIT NONE
INTEGER,DIMENSION(12,12)::MT1,MT2
INTEGER,DIMENSION(12)::V1,V2
INTEGER::I,J,C
PRINT*,"INGRESAR DATOS DE LA MATRIZ 1"
READ*,((MT1(I,J),J=1,12),I=1,12)
PRINT*,"INGRESAR DATOS DE LA MATRIZ 2"
READ*,((MT2(I,J),J=1,12),I=1,12)
PRINT*,"MATRIZ 1"
DO I=1,12
PRINT*,(MT1(I,J),J=1,12)
END DO
PRINT*,"MATRIZ 2"
DO I=1,12
PRINT*,(MT2(I,J),J=1,12)
END DO
!DIAGONAL PRINCIPAL PARA MATRIZ 1
DO I=1,12
DO J=1,12
IF (I==J)THEN
V1(I)=MT1(I,J)
END IF
END DO
END DO
PRINT*,"VECTOR GUARDA ELEMENTOS DE LA DIAGONAL DEL VECTOR 1"
PRINT*,(V1(I),I=1,12)
!DIAGONAL PRINCIPAL PARA MATRIZ 2
DO I=1,12
DO J=1,12
IF(I==J)THEN
V2(I)=MT2(I,J)
END IF
END DO
END DO
PRINT*,"VECTOR GUARDA ELEMENTOS DE LA DIAGONAL DEL VECTOR 1"
PRINT*,(V2(I),I=1,12)
C=0
DO I=1,12
17 | P á g i n a
Ing. William Chauca Nolasco
IF (V1(I)==V2(I))THEN
C=C+1
IF (C==12)THEN
PRINT*,"LAS DIAGONALES DE LAS MATRICES SON IGUALES"
END IF
END IF
END DO
END PROGRAM MATRICES_CUADRADAS
18 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM CAMBIO_DE_NEGATIVO_A_CERO
IMPLICIT NONE
INTEGER::I,J
INTEGER,DIMENSION(12,19)::MATRIZ
PRINT*,"INGRESAR ELEMENTOS DE LA MATRIZ 12X19"
READ*,((MATRIZ(I,J),J=1,19),I=1,12)
PRINT*,"MATRIZ"
DO I=1,12
PRINT*,(MATRIZ(I,J),J=1,19)
END DO
DO I=1,12
DO J=1,19
IF(MATRIZ(I,J)<0)THEN
MATRIZ(I,J)=0
END IF
END DO
END DO
PRINT*,"MATRIZ CON ELEMENTOS NEGATIVOS CONVERTIDOS A CERO"
DO I=1,12
PRINT*,(MATRIZ(I,J),J=1,19)
END DO
END PROGRAM CAMBIO_DE_NEGATIVO_A_CERO
19 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM CALIFICACION_PROMEDIO
IMPLICIT NONE
INTEGER,DIMENSION(100)::CL
REAL::PROM,SU
INTEGER::I,C
PRINT*,"INGRESAR CALIFICACIONES DE LOS ESTUDIANTES"
READ*,(CL(I),I=1,100)
PRINT*,"VECTOR CALIFICACIONES"
PRINT*,(CL(I),I=1,100)
SU=0
DO I=1,100
SU=SU+CL(I)
END DO
PROM=SU/100.
PRINT*
PRINT*,"CALIFICACION PROMEDIO",PROM
PRINT*
C=0
DO I=1,100
IF (CL(I)>PROM)THEN
C=C+1
END IF
END DO
PRINT*,"ESTUDIANTES QUE OBTUVIERON CALIFICACIONES ARRIBA DEL
PROMEDIO=",C
END PROGRAM CALIFICACION_PROMEDIO
19.- Realice un programa que lea un vector de cien elementos y que calcule
su magnitud.
PROGRAM MAGNITUD
INTEGER::I
REAL::M,SUR2
REAL,DIMENSION(100)::V
PRINT*,"INGRESAR ELEMENTOS DEL VECTOR"
READ*,(V(I),I=1,100)
PRINT*,"VECTOR "
PRINT*,(V(I),I=1,100)
SUR2=0
DO I=1,100
20 | P á g i n a
Ing. William Chauca Nolasco
SUR2=SUR2+V(I)**2
END DO
M=SQRT(SUR2)
PRINT*,"LA MAGNITUD DEL VECTOR ES=",M
END PROGRAM MAGNITUD
20.- Realice un programa que lea una matriz de cinco filas y seis columnas y
que cuente los elementos negativos que contiene, así como también
cuántos elementos de la diagonal principal son igual a cero.
PROGRAM DIAGONAL_PRINCIPAL
IMPLICIT NONE
INTEGER::I,J,C,N
INTEGER,DIMENSION(5,6)::MT
PRINT*,"INGRESAR ELEMENTOS DE LA MATRIZ 5x6"
READ*,((MT(I,J),J=1,6),I=1,5)
PRINT*,"MATRIZ"
DO I=1,5
PRINT*,(MT(I,J),J=1,6)
END DO
N=0
C=0
DO I=1,5
DO J=1,6
IF(MT(I,J)<0)THEN
C=C+1
END IF
IF(I==J .AND. MT(I,J)==0)THEN
N=N+1
END IF
END DO
END DO
PRINT*,"CANTIDAD DE NEGATIVOS=",C
PRINT*,"ELEMENTOS DIAGONAL PRINCIPAL IGUALES A CERO=",N
END PROGRAM DIAGONAL_PRINCIPAL
21 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM PRODUCTO_DE_DOS_VECTORES
IMPLICIT NONE
INTEGER::I,PD
INTEGER,DIMENSION(10)::V1,V2
PRINT*,"INGRESAR ELEMENTOS DEL PRIMER VECTOR"
READ*,(V1(I),I=1,10)
PRINT*,"INGRESAR ELEMENTOS DEL SEGUNDO VECTOR"
READ*,(V2(I),I=1,10)
PRINT*,"VECTOR 1"
PRINT*,(V1(I),I=1,10)
PRINT*,"VECTOR 2"
PRINT*,(V2(I),I=1,10)
PD=DOT_PRODUCT(V1,V2)
PRINT*,"EL PRODUCTO DE LOS DOS VECTORES ES=",PD
END PROGRAM PRODUCTO_DE_DOS_VECTORES
23.- Se tiene un arreglo de seis filas y ocho columnas y se sabe que se tiene
un elemento negativo. Realice un programa que indique la posición que ese
elemento ocupa en el arreglo (en la fila y la columna en la que se encuentra
ese elemento).
PROGRAM POSICION_DE_ELEMENTOS
IMPLICIT NONE
INTEGER::I,J,FILA,COLUMNA,NG
22 | P á g i n a
Ing. William Chauca Nolasco
INTEGER,DIMENSION(6,8)::MT
PRINT*,"INGRESAR ELEMENTOS DE LA MATRIZ 6x8"
READ*,((MT(I,J),J=1,8),I=1,6)
PRINT*,"MATRIZ"
DO I=1,6
PRINT*,(MT(I,J),J=1,8)
END DO
NG=MT(1,1)
DO I=1,6
DO J=1,8
IF (MT(I,J)<=NG) THEN
NG=MT(I,J)
FILA=I
COLUMNA=J
END IF
END DO
END DO
PRINT*,"FILA QUE OCUPA EL NEGATIVO=",FILA
PRINT*," COLUMNA QUE OCUPA EL NEGATIVO=",COLUMNA
END PROGRAM POSICION_DE_ELEMENTOS
PROGRAM SUMA_DE_REGLONES_Y_COLUMNAS
IMPLICIT NONE
INTEGER::I,J,SU_FIL,SU_COL,F,C
INTEGER,DIMENSION(100)::FIL,COL
INTEGER,ALLOCATABLE,DIMENSION(:,:)::MT
PRINT*,"INGRESAR NUMERO DE FILAS Y COLUMNAS DE LA MATRIZ"
READ*,F,C
ALLOCATE(MT(F,C))
PRINT*,"INGRESAR ELEMENTOS DE LA MATRIZ"
READ*,((MT(I,J),J=1,C),I=1,F)
PRINT*,"MATRIZ"
DO I=1,F
PRINT*,(MT(I,J),J=1,C)
END DO
!PARA SUMA DE FILAS
23 | P á g i n a
Ing. William Chauca Nolasco
DO I=1,F
SU_FIL=0
DO J=1,C
SU_FIL=SU_FIL+MT(I,J)
END DO
FIL(I)=SU_FIL
END DO
PRINT*,"VECTOR QUE SUMA FILAS DE MATRIZ"
PRINT*,(FIL(I),I=1,F)
!PARA COLUMNAS
DO I=1,C
SU_COL=0
DO J=1,F
SU_COL=SU_COL+MT(J,I)
END DO
COL(I)=SU_COL
END DO
PRINT*,"VECTOR QUE SUMA COLUMNAS DE MATRIZ"
PRINT*,(COL(I),I=1,C)
END PROGRAM SUMA_DE_REGLONES_Y_COLUMNAS
24 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM PROBLEMA_25
IMPLICIT NONE
INTEGER,DIMENSION(5,5)::MATRIZ
INTEGER::PRODUCTO
INTEGER::I,J
PRINT*,"INGRESE ELEMENTOS DE LA MATRIZ DE ORDEN 5"
READ*,((MATRIZ(I,J),J=1,5),I=1,5)
PRINT*,"MATRIZ INGRESADA"
DO I=1,5
PRINT*,(MATRIZ(I,J),J=1,5)
END DO
!CALCULANDO DIAGONAL PRINCIPAL
!1,2,3,4
PRODUCTO=1
DO I=1,5
DO J=1,5
IF(I==J)THEN
PRODUCTO=PRODUCTO*MATRIZ(I,J)
END IF
END DO
END DO
PRINT*,"EL PRODUCTO DE LOS ELEMENTOS DE LA DIAGONAL PRINCIPAL
ES:",PRODUCTO
END PROGRAM PROBLEMA_25
25 | P á g i n a
Ing. William Chauca Nolasco
END DO
SUMAPAR=0
SUMAIMPAR=0
DO I=1,5
DO J=1,5
IF (MOD(MATRIZ(I,J),2)==0) THEN
SUMAPAR=SUMAPAR+MATRIZ(I,J)
ELSE IF (MOD(MATRIZ(I,J),2)/=0) THEN
SUMAIMPAR=SUMAIMPAR+MATRIZ(I,J)
END IF
END DO
END DO
PRINT*
PRINT*,"LA SUMA DE LOS NUMEROS PARES
",SUMAPAR
PRINT*
PRINT*,"LA SUMA DE LOS NUMEROS
IMPARES ",SUMAIMPAR
END PROGRAM PROBLEMA_26
PROGRAM PROBLEMA_27
CHARACTER(LEN=15),DIMENSION(12)::MES
INTEGER,DIMENSION(12,1)::DIAS
MES=(/"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","A
GOSTO","SETIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"/)
DIAS=RESHAPE((/31,28,31,30,31,30,31,31,30,31,30,31/),(/12,1/))
PRINT 200
200 FORMAT(3X,"MES",18X,"DIAS")
DO I=1,12
26 | P á g i n a
Ing. William Chauca Nolasco
PRINT*,MES(I),(DIAS(I,J),J=1,1)
END DO
END PROGRAM PROBLEMA_27
PROGRAM PROBLEMA_28
!22 33 44
!33 44 55
!11 22 33
!11 33 55
!22 44 55
INTEGER,DIMENSION(5)::V=(/11,22,33,44,55/)
INTEGER,DIMENSION(3)::FILA1,FILA2,FILA3,FILA4,FILA5=(/2,4,5/)!FILA5
ESPESCIFICA LOS INDICES DE V
FILA1=V(2:4)
FILA2=V(3:5)
FILA3=V(1:3)
FILA4=V(1:5:2)
FILA5=V(FILA5)
PRINT*,FILA1
PRINT*,FILA2
PRINT*,FILA3
PRINT*,FILA4
PRINT*,FILA5
END PROGRAM PROBLEMA_28
29.- Elaborar un programa que inicialice una matriz A (3x4) con los siguientes
valores que se muestran y se obtenga la transpuesta de dicha matriz.
27 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM PROBLEMA_29
IMPLICIT NONE
INTEGER,DIMENSION(2,4)::MAT_A=RESHAPE((/1,5,2,6,3,7,4,8/),(/2,4/))
INTEGER,DIMENSION(4,2)::MATRIZ_T
INTEGER::I,J
PRINT*,"MATRIZ A"
DO I=1,2
PRINT*,(MAT_A(I,J),J=1,4)
END DO
DO I=1,2
DO J=1,4
MATRIZ_T(J,I)=MAT_A(I,J)
END DO
END DO
PRINT*, "LA TRANSPUESTA DE A ES"
DO I=1,4
PRINT*,(MATRIZ_T(I,J),J=1,2)
END DO
END PROGRAM PROBLEMA_23
PROGRAM PROBLEMA_30
IMPLICIT NONE
INTEGER::I
INTEGER,DIMENSION(3)::A
REAL::MAG
PRINT*,"INGRESAR VALORES 3, 4 Y 5"
DO I=1,3
READ*,A(I)
END DO
PRINT*,"VECTOR A"
PRINT*,(A(I),I=1,3)
MAG=0
DO I=1,3
MAG=MAG+A(I)**2
END DO
MAG=SQRT(MAG)
28 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM PROBLEMA_31
INTEGER,DIMENSION(100,100)::MXN,PXQ,PROD
INTEGER::I,J
INTEGER::M,N,P,Q
PRINT*,"INGRESE FILAS Y COLUMNAS DE LA MATRIZ A"
READ*,M,N
PRINT*,"INGRESE FILAS Y COLUMNAS DE LA MATRIZ B"
READ*,P,Q
IF(N==P)THEN
PRINT*,"INGRESE DATOS DE LA MATRIZ ",M,"X",N
READ*,((MXN(I,J),J=1,N),I=1,M)
PRINT*,"INGRESE DATOS DE LA MATRIZ ",P,"X",Q
READ*,((PXQ(I,J),J=1,Q),I=1,N)
PRINT*,"VECTOR MXN"
DO I=1,M
PRINT*,(MXN(I,J),J=1,N)
END DO
PRINT*,"VECTOR PXQ"
DO I=1,P
PRINT*,(PXQ(I,J),J=1,Q)
END DO
!PRODUCTO DE 2 MATRICES
PROD=MATMUL(MXN,PXQ)
PRINT*,"EL PRODUCTO DE MATRICES ES:"
DO I=1,M
PRINT*,(PROD(I,J),J=1,Q)
END DO
ELSE
PRINT*,"ESTAS MATRICES NO SE PUEDEN MULTIPLICAR "
PRINT*,"DEBIDO A QUE EL NUMERO DE COLUMNAS DE LA"
PRINT*,"MATRIZ A ES DIFERENTE AL NUMERO DE FILAS"
PRINT*,"DE LA MATRIZ B, !VUELVA A INTENTARLO! "
END IF
29 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM PROBLEMA_32
INTEGER::I,J,K,L,N
REAL,ALLOCATABLE,DIMENSION(:,:)::MATRIZ
real::DET
PRINT*,"INGRESAR ORDEN DE LA MATRIZ :"
READ*,N
M=N-1
ALLOCATE(MATRIZ(N,N))
IF(N>=3) THEN
PRINT*,"INGRESAR ELEMENTOS DE LA MATRIZ"
READ*,((MATRIZ(I,J),J=1,N),I=1,N) !1,2,3,4,5,3,4,5,6
DO I=1,N
PRINT*,(MATRIZ(I,J),J=1,N)
END DO
!HALLANDO DETERMINANTE
DET=MATRIZ(1,1)
DO K=1,M
L=K+1
DO I=L,N
DO J=L,N
MATRIZ(I,J)=(MATRIZ(K,K)*MATRIZ(I,J)-
MATRIZ(K,J)*MATRIZ(I,K))/MATRIZ(K,K)
END DO
END DO
DET=DET*MATRIZ(K+1,K+1)
END DO
PRINT*,"DETERMINANTE DE LA MATRIZ"
PRINT*,DET
ELSE
PRINT*,"NO SE PUEDE REALIZAR LA OPERACION PORQUE O NO ES MATRIZ
CUADRARA O NO ES DE ORDEN MAYOR A 3"
END IF
END PROGRAM PROBLEMA_32
30 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM PROBLEMA_33
IMPLICIT NONE
REAL::TEMPORAL
REAL,DIMENSION(50)::X
INTEGER::N,I,J
PRINT*,"NUMERO DE DATOS A LEER"
READ*,N
DO I=1,N
PRINT*,"ELEMENTO",I
READ*,X(I)
END DO
DO I=1,N
DO J=N,I,-1
IF(X(J-1)>X(J)) THEN
31 | P á g i n a
Ing. William Chauca Nolasco
TEMPORAL=X(J-1)
X(J-1)=X(J)
X(J)=TEMPORAL
END IF
END DO
END DO
PRINT*,"ELEMENTOS ORDENADOS"
DO I=1,N
PRINT*,"ELEMENTO",I,"=",X(I)
END DO
END PROGRAM PROBLEMA_33
PROGRAM PROBLEMA_34
INTEGER,DIMENSION(5)::V
!LECTURA EXPLICITA
PRINT*,"INGRESE VALORES DEL VECTOR"
DO I=1,5
READ*,V(I)
END DO
DO I=5,1,-1
PRINT*,V(I)
END DO
END PROGRAM PROBLEMA_34
PROGRAM PROBLEMA_35
REAL,DIMENSION(4)::NOTAS1,NOTAS2,NOTAS3
S1=0
S2=0
S3=0
!INGRESANDO VALORES PARA LAS NOTAS DE LOS 3 ALUMNOS
32 | P á g i n a
Ing. William Chauca Nolasco
DO I=1,4
READ*, NOTAS1(I)
END DO
PROGRAM SUMA_DE_MATRICES
INTEGER::I,J
INTEGER,ALLOCATABLE,DIMENSION(:,:)::MAT1,MAT2,SUMA
PRINT*,"INGRESAR FILAS Y COLUMNAS DE MATRICES A SUMAR"
READ*,M,N
ALLOCATE(MAT1(M,N),MAT2(M,N),SUMA(M,N))
IF(M==N)THEN
PRINT*,"INGRESAR ELEMENTOS DE PRIMERA MATRIZ"
READ*,((MAT1(I,J),J=1,N),I=1,N)
PRINT*,"INGRESAR ELEMENTOS DE SEGUNDA MATRIZ"
READ*,((MAT2(I,J),J=1,N),I=1,N)
33 | P á g i n a
Ing. William Chauca Nolasco
PRINT*,"MATRIZ 1"
DO I=1,N
PRINT*,(MAT1(I,J),J=1,N)
END DO
PRINT*,"MATRIZ 2"
DO I=1,N
PRINT*,(MAT2(I,J),J=1,N)
END DO
!CALCULANDO SUMA
DO I=1,N
DO J=1,N
SUMA(I,J)=MAT1(I,J)+MAT2(I,J)
END DO
END DO
PRINT*,"LA SUMA DE MATRICES ES:"
DO I=1,N
PRINT*,(SUMA(I,J),J=1,N)
END DO
ELSE
PRINT*,"NO SE PUEDE PROCEDER A REALIZAR LA OPERACION YA QUE LA
MATRIZ NO ES CUADRADA"
END IF
END PROGRAM SUMA_DE_MATRICES
PROGRAM PROBLEMA_38
IMPLICIT NONE
INTEGER::M,N
INTEGER,DIMENSION(100,100)::MATRIZ
INTEGER::SUMA
INTEGER::I,J
PRINT*,"INGRESE NUMERO DE FILAS Y COLUMNAS DE LA MATRIZ"
READ*,M,N
IF(M==N)THEN
PRINT*,"INGRESE DATOS DE LA MATRIZ",M,"X",N
READ*,((MATRIZ(I,J),J=1,N),I=1,M)
PRINT*,"MATRIZ INGRESADA"
DO I=1,M
34 | P á g i n a
Ing. William Chauca Nolasco
PRINT*,(MATRIZ(I,J),J=1,N)
END DO
!CALCULANDO DIAGONAL PRINCIPAL
!1,2,3,4
SUMA=0
DO I=1,M
DO J=1,N
IF(I==J)THEN
SUMA=SUMA+MATRIZ(I,J)**2
END IF
END DO
END DO
PRINT*,"LA SUMA DE LOS CUADRADOS DE LOS ELEMENTO DE LA
DIAGONAL PRINCIPAL ES :",SUMA
ELSE
PRINT*,"NO SE PUEDE PROCEDER A OPERAR YA QUE LA MATRIZ
INGRESADA NO ES CUADRADA"
END IF
END PROGRAM PROBLEMA_38
PROGRAM PROBLEMA_39
IMPLICIT NONE
INTEGER,DIMENSION(100,100)::MXN,PXQ,PROD
INTEGER::I,J,N ,M,P,Q
PRINT*,"INGRESE NUMERO DE FILAS Y COLUMNAS DE LA PRIMERA
MATRIZ"
READ*,M,N
PRINT*,"INGRESE NUMERO DE FILAS Y COLUMNAS DE LA SEGUNDA
MATRIZ"
READ*,P,Q
IF(M==P .AND. N==Q)THEN
PRINT*,"INGRESE DATOS DE LA MATRIZ 1"
READ*,((MXN(I,J),J=1,N),I=1,M)
PRINT*,"INGRESE DATOS DE LA MATRIZ 2"
READ*,((PXQ(I,J),J=1,Q),I=1,P)
35 | P á g i n a
Ing. William Chauca Nolasco
PRINT*,"VECTOR MXN"
DO I=1,M
PRINT*,(MXN(I,J),J=1,N)
END DO
PRINT*,"VECTOR PXQ"
DO I=1,P
PRINT*,(PXQ(I,J),J=1,Q)
END DO
!PRODUCTO DE 2 MATRICES
DO I=1,M
DO J=1,N
PROD(I,J)=MXN(I,J)*PXQ(I,J)
END DO
END DO
PRINT*,"EL PRODUCTO DE MATRICES ES:"
DO I=1,M
PRINT*,(PROD(I,J),J=1,N)
END DO
ELSE
PRINT*,"LAS MATRICES NO SE PUEDEN MULTIPLICAR PORQUE LAS
MATRICES NO TIENEN LA MISMA ORDEN"
END IF
END PROGRAM PROBLEMA_39
PROGRAM ELEMENTO_MAYOR
REAL,ALLOCATABLE,DIMENSION(:,:)::MATRIZ
INTEGER::I,J,M,N
REAL::MAYOR
PRINT*,"INGRESAR NUMERO DE FILAS Y COLUMNAS DE LA MATRIZ:"
READ*,M,N
ALLOCATE(MATRIZ(M,N))
PRINT*,"INGRESAR ELEMENTOS DE LA MATRIZ"
READ*,((MATRIZ(I,J),J=1,N),I=1,M)
MAYOR=MATRIZ(1,1)
DO I=1,M
DO J=1,N
IF (MATRIZ(I,J)>MAYOR) THEN
MAYOR=MATRIZ(I,J)
36 | P á g i n a
Ing. William Chauca Nolasco
END IF
END DO
END DO
PRINT*,"EL MAYOR VALOR ES",MAYOR
END PROGRAM ELEMENTO_MAYOR
PROGRAM PROBLEMA_41
INTEGER::I
REAL::MAG,SUM_R2
REAL,ALLOCATABLE,DIMENSION(:)::VECTOR
PRINT*,"INGRESAR CANTIDAD DE ELEMENTOS DEL VECTOR"
READ*,N
ALLOCATE(VECTOR(N))
PRINT*,"INGRESAR ELEMENTOS DEL VECTOR"
READ*,(VECTOR(I),I=1,N)
SUM_R2=0
DO I=1,N
SUM_R2=SUM_R2+VECTOR(I)**2
END DO
37 | P á g i n a
Ing. William Chauca Nolasco
MAG=SQRT(SUM_R2)
PRINT*,"LA MAGNITUD DEL VECTOR ES:",MAG
END PROGRAM PROBLEMA_41
42.- Elaborar un programa que inicialice una matriz cuadrada como matriz
identidad.
PROGRAM MATRIZ_CUADRADA
INTEGER::I,J,N
INTEGER,ALLOCATABLE,DIMENSION(:,:)::MT
PRINT*,"INGRESAR ORDEN DE LA MATRIZ"
READ*,N
ALLOCATE(MT(N,N))
DO I=1,N
DO J=1,N
IF(I==J)THEN
MT(I,J)=1
ELSE
MT(I,J)=0
END IF
END DO
END DO
DO I=1,N
PRINT*,(MT(I,J),J=1,N)
END DO
END PROGRAM MATRIZ_CUADRADA
PROGRAM PROBLEMA_43
REAL,DIMENSION(3)::A,B
REAL::C
PRINT*, "INGRESE VALORES PARA EL VECTOR A"
DO I=1,3
READ*, A(I)
END DO
38 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM PROBLEMA_44
IMPLICIT NONE
REAL::TEMPORAL
REAL,DIMENSION(50)::VECTOR
INTEGER::N,I,J
PRINT*,"INGRESE TAMANIO DEL VECTOR"
READ*,N
DO I=1,N
PRINT*,"ELEMENTO",I
READ*,VECTOR(I)
END DO
DO I=1,N
DO J=N,I,-1
IF (VECTOR(J-1)>VECTOR(J)) THEN
TEMPORAL=VECTOR(J-1)
39 | P á g i n a
Ing. William Chauca Nolasco
VECTOR(J-1)=VECTOR(J)
VECTOR(J)=TEMPORAL
END IF
END DO
END DO
PRINT*,"ELEMENTOS ORDENADOS DE MENOR A MAYOR"
DO I=1,N
PRINT*,"ELEMENTO",I,"=",VECTOR(I)
END DO
END PROGRAM PROBLEMA_44
PROGRAM PROBLEMA_45
REAL::ESCALAR
INTEGER,ALLOCATABLE,DIMENSION(:,:)::MATRIZ,MULT
PRINT*,"INGRESAR NUMERO DE FILAS Y COLUMNAS DE LA MATRIZ:"
READ*,M,N
PRINT*,"INGRESAR ESCALAR A MULTIPLICAR"
READ*,ESCALAR
ALLOCATE(MATRIZ(M,N),MULT(M,N))
PRINT*,"INGRESAR ELEMENTOS DE LA MATRIZ"
READ*,((MATRIZ(I,J),J=1,N),I=1,M)
PRINT*,"MATRIZ "
DO I=1,M
PRINT*,(MATRIZ(I,J),J=1,N)
END DO
!OPERACION ESCALAR POR MATRIZ
DO I=1,M
DO J=1,N
MULT(I,J)=ESCALAR*MATRIZ(I,J)
END DO
END DO
PRINT*,"ESCALAR POR MATRIZ ES:"
DO I=1,M
PRINT*,(MULT(I,J),J= 1,N)
END DO
END PROGRAM PROBLEMA_45
40 | P á g i n a
Ing. William Chauca Nolasco
46.- Una cadena de almacenes de la Tienda Plaza Vea tiene seis almacenes y
cada almacén tiene diez departamentos iguales. Las ventas semanales de la
cadena están almacenadas en un arreglo de 6 x 10 llamados VENTAS,
(VENTAS(i,j) denota las ventas semanales en el almacén i del departamento
j.). Elabore un programa que muestre estas ventas.
PROGRAM PROBLEMA_46
INTEGER,DIMENSION(6,10)::VENTAS
INTEGER::I,J
PRINT*,"INGRESAR ELEMENTOS DEL ARREGLO VENTAS"
READ*,((VENTAS(I,J),J=1,10),I=1,6)
PRINT*,"VISUALIZACION DE VENTAS EN ARREGLO"
DO I=1,6
PRINT*,(VENTAS(I,J),J=1,10)
END DO
PRINT*,"VENTAS SEMANALES POR ALMACEN Y DEPARTAMENTO:"
DO I=1,6
DO J=1,10
PRINT*," ALMACEN ",I," DEPARTAMENTO ",J," : ",VENTAS(I,J)
END DO
END DO
END PROGRAM PROBLEMA_46
PROGRAM PROBLEMA_47
INTEGER::I
REAL::SUMA,PROM
REAL,DIMENSION(12)::PRECIP=(/10.5,15.2,13.25,12.5,11.5,5.40,5.65,8.80,1
4.5,13.12,20.2,20.25/)
SUMA=0
PRINT*,(PRECIP(I),I=1,12)
DO I=1,12
41 | P á g i n a
Ing. William Chauca Nolasco
SUMA=SUMA+PRECIP(I)
END DO
PROM=SUMA/12
PRINT*,"EL PROMEDIO DE LAS PRECIPITACIONES MEDIA MENSUAL
DURANTE EL ANIO 2005 ES:”, PROM
END PROGRAM PROBLEMA_47
PROGRAM PROBLEMA_48
IMPLICIT NONE
REAL,DIMENSION(12)::PRECIP=(/10.5,15.2,13.25,12.5,11.5,5.40,5.65,8.80,1
4.5,13.12,20.2,22.25/)
CHARACTER(LEN=12),DIMENSION(12)::MES
INTEGER::I
REAL::MAYOR,MENOR
CHARACTER(LEN=12)::MESMAY,MESMEN
MES=(/"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","A
GOSTO","SETIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"/)
MAYOR=PRECIP(1)
MENOR=PRECIP(1)
DO I=1,12
!PARA EL MAXIMO
IF ( PRECIP(I)>MAYOR) THEN
MAYOR=PRECIP(I)
MESMAY=MES(I)
END IF
!PARA EL MENOR
IF (PRECIP(I)<MENOR) THEN
MENOR=PRECIP(I)
MESMEN=MES(I)
END IF
END DO
PRINT*,"EL MAYOR VALOR ES",MAYOR," Y CORRESPONDE AL MES
",MESMAY
PRINT*,"EL MENOR VALOR ES",MENOR," Y CORRESPONDE AL MES
",MESMEN
42 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM PROBLEMA_49
REAL,DIMENSION(3)::V
REAL,DIMENSION(3)::U
REAL::SUMA
V=(/2.0,5.1,-1.1/)
U=(/1.2,3.5,4.1/)
SUMA=0
DO I=1,3
SUMA = SUMA + V(I)*U(I)
END DO
43 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM PROBLEMA_50
INTEGER,DIMENSION(4)::X=(/2,3,5,9/)
INTEGER::N,IZQ=1,DER=4,CEN,I
PRINT*,(X(I),I=1,4)
PRINT*,"INGRESE ELEMENTO A BUSCAR"
READ*,N
CEN=(IZQ+DER)/2
DO WHILE(N/=X(CEN) .AND. IZQ<DER)
IF(N>X(CEN))THEN
IZQ=CEN+1
ELSE
DER=CEN-1
END IF
CEN=(IZQ+DER)/2
END DO
IF(N==X(CEN))THEN
PRINT*,"EL VALOR SE ENCUENTRA EN LA POSICION",CEN
PRINT*,"VALOR ENCONTRADO",X(CEN)
ELSE
PRINT*,"VALOR NO ENCONTRADO"
END IF
END PROGRAM PROBLEMA_50
44 | P á g i n a
Ing. William Chauca Nolasco
PROGRAM MANIPULACION_DE_ARRAY
IMPLICIT NONE
INTEGER::I,M
INTEGER::MAX_A,MAX_B,MIN_A,MIN_B,SA,SB,PD_E,PD_A,PD_B
INTEGER,ALLOCATABLE,DIMENSION(:)::VA,VB
PRINT*,"INGRESAR TAMANO DEL VECTOR A Y B"
READ*,M
ALLOCATE(VA(M),VB(M))
PRINT*,"INGRESAR ELEMENTOS DEL VECTOR A"
READ*,(VA(I),I=1,M)
PRINT*,"INGRESAR ELEMENTOS DEL VECTOR B"
READ*,(VB(I),I=1,M)
PRINT*,"VA"
PRINT*,(VA(I),I=1,M)
PRINT*,"VB"
PRINT*,(VB(I),I=1,M)
SA=SUM(VA)
SB=SUM(VB)
PD_A=PRODUCT(VA)
PD_B=PRODUCT(VB)
MAX_A=MAXVAL(VA)
MAX_B=MAXVAL(VB)
MIN_A=MINVAL(VA)
MIN_B=MINVAL(VB)
PD_E=DOT_PRODUCT(VA,VB)Z
PRINT*,"SUMA DE ELEMENTOS DEL VECTOR A=",SA
PRINT*,"SUMA DE ELEMENTOS DEL VECTOR B=",SB
PRINT*,"PRODUCTO DE ELEMENTOS DEL VECTOR A=",PD_A
PRINT*,"PRODUCTO DE ELEMENTOS DEL VECTOR B=",PD_B
PRINT*,"MINIMO VALOR DE ELEMENTOS DEL VECTOR A=",MIN_A
PRINT*,"MINIMO VALOR DE ELEMENTOS DEL VECTOR B=",MIN_B
PRINT*,"MAXIMO VALOR DE ELEMENTOS DEL VECTOR A=",MAX_A
PRINT*,"MAXIMO VALOR DE ELEMENTOS DEL VECTOR B=",MAX_B
PRINT*,"PRODUCTO ESCALAR DE LOS VECTORES A Y B=",PD_E
PRINT*,"POSICION MINIMA DEL VECTOR A=",MINLOC(VA)
PRINT*,"POSICION MINIMA DEL VECTOR B=",MINLOC(VB)
END PROGRAM MANIPULACION_DE_ARRAY
45 | P á g i n a
Ing. William Chauca Nolasco
REAL,DIMENSION(3)::A=(/1,2,3/),B=(/10,9,8/),C
PRINT*,"VECTOR A"
PRINT*,(A(I),I=1,3)
PRINT*,"VECTOR B"
PRINT*,(B(I),I=1,3)
DO I=1,3
46 | P á g i n a
Ing. William Chauca Nolasco
C(I)=(A(I)+2*I)/B(I)
END DO
PRINT*,"VECTOR C"
PRINT*,(C(I),I=1,3)
END PROGRAM PROBLEMA_53
47 | P á g i n a
Ing. William Chauca Nolasco
program crear
integer,dimension(100,100)::A
integer::m,i,j
print*,"Matriz cuadrada"
print*,"Ingrese numero de filas y columnas"
read*,m !numero de filas y columnas
48 | P á g i n a
Ing. William Chauca Nolasco
end do
end program crear
program matriz
integer,dimension(7,7)::A
integer::i,j,k
k=0
!Creando matriz
do i=1,7
do j=1,7
49 | P á g i n a
Ing. William Chauca Nolasco
if (i==j) then
A(i,j)=-3+k
else
A(i,j)=0
end if
end do
k=k+1
end do
!Imprimiendo matriz
print*,"Matriz"
1 format(1x,1x,1x,1x,1x,1x,1x,i4.1,i4.1,i4.1,i4.1,i4.1,i4.1,i4.1)
do i=1,7
print 1,(A(i,j),j=1,7)
end do
end program matriz
2 5 6
[𝐴] = [−6 7 1]
3 4 2
CODIGO
program problema59
integer::i,j
real,dimension(3,3)::a !a=(/2,5,6/,/-6,7,1/,/3,4,2/)
print*,"Ingrese los valores asignados de la matriz"
do i=1,3
do j=1,3
print*,"Ingrese el valor de la posicion (",i,",",j,")"
read*,a(i,j)
end do
end do
det1=(a(1,1)*((a(2,2)*a(3,3))-(a(2,3)*a(3,2))))
det2=(a(1,2)*((a(2,1)*a(3,3))-(a(2,3)*a(3,1))))
det3=(a(1,3)*((a(2,1)*a(3,2))-(a(2,2)*a(3,1))))
50 | P á g i n a
Ing. William Chauca Nolasco
det=det1-det2+det3
print*,"La determinante es ",det
end program problema59
M=RESHAPE((/1,1,0,5,1,-3,2,7,4/),(/3,3/))
PRINT*,"MOSTRAR LA MATRIZ M"
DO I=1,3
PRINT*,(M(I,J),J=1,3)
END DO
51 | P á g i n a
Ing. William Chauca Nolasco
program visualizar
integer,dimension(5,6)::A=reshape((/(i,i=2,17,3),(i,i=3,18,3),(i,i=4,19,3),(i,i=
5,20,3),(i,i=6,21,3)/),(/5,6/)),A1
52 | P á g i n a
Ing. William Chauca Nolasco
integer,dimension(3,6)::B=reshape((/(i,i=5,30,5),(i,i=30,55,5),(i,i=55,80,5)/),
(/3,6/))
integer,dimension(9)::V=(/(i,i=99,91,-1)/)
print*,"Matriz A"
print*,((A(j,i),j=1,5),i=1,6)
print*,""
print*,"Matriz B"
print*,((B(j,i),j=1,3),i=1,6)
print*,""
print*,"Vector V"
print*,(V(i),i=1,9)
program vector_fila
integer,dimension(17)::A=(/(i,i=1,33,2)/)
print*,"Vector A"
1
format(i4.1,i4.1,i4.1,i4.1,i4.1,i4.1,i4.1,i4.1,i4.1,i4.1,i4.1,i4.1,i4.1,i4.1,i4.1,i4.
1,i4.1)
print 1,(A(i),i=1,17)
end program vector_fila
program columna
real,dimension(12)::A
real::s=-14./11
do i=1,12
A(i)=3./11+i*s
end do
53 | P á g i n a
Ing. William Chauca Nolasco
!Imprimiendo [A]
print*,"Vector columna A"
print*,""
do i=1,12
print*,A(i)
end do
end program columna
DIAGRAMA DE FLUJO
CODIGO
program problema67
integer::i,j=1
real,dimension(12,1)::a
print*,"El primer elemento es -1 y el ultimo es -15"
print*,"Ingrese los elementos restantes"
do i=2,11
do j=1,1
read*,a(i,j)
end do
end do
a(1,1)=-1
a(12,1)=-12
print*,"El vector se muestra a continuacion"
do i=1,12
do j=1,1
print*,a(i,j)
print*
end do
end do
end program problema67
54 | P á g i n a
Ing. William Chauca Nolasco
55 | P á g i n a
Ing. William Chauca Nolasco
INTEGER::I,J
M=RESHAPE((/6,12,34,43,6,18,2,34,7,11,0,41,87,5,9/),(/3,5/))
PRINT*,"MOSTRAR LA MATRIZ M"
DO I=1,3
PRINT*,(M(I,J),J=1,5)
END DO
CALL MATRIZ(M)
SUBROUTINE MATRIZ(Va)
INTEGER,DIMENSION(1:5)::Va
PRINT*,"EL VECTOR Va ES="
PRINT*,Va(2:14:3)
END SUBROUTINE MATRIZ
56 | P á g i n a
Ing. William Chauca Nolasco
Utilice C para:
program matriz_c
integer,dimension(3,5)::C
integer,dimension(3)::ua
integer::i
print*,"Ingrese matriz C"
do i=1,3
read*,(C(i,j),j=1,5)
end do
!Creando vector ua
do i=1,3
ua(i)=C(i,3)
end do
!Imprimiendo vector ua
print*,""
print*,"Vector ua"
do i=1,3
print*,ua(i)
end do
end program matriz_c
program matriz_c
integer,dimension(3,5)::C
57 | P á g i n a
Ing. William Chauca Nolasco
integer,dimension(5)::ub
integer::i
print*,"Ingrese matriz C"
do i=1,3
read*,(C(i,j),j=1,5)
end do
!Creando vector ub
do j=1,5
ub(j)=C(2,j)
end do
!Imprimiendo vector ub
print*,""
print*,"Vector ub"
do j=1,5
print*,ub(j)
end do
end program matriz_c
program matriz_c
integer,dimension(3,5)::C
integer,dimension(5)::uc
integer::i,k=1
print*,"Ingrese matriz C"
do i=1,3
read*,(C(i,j),j=1,5)
end do
!Creando vector uc
do j=1,5,2
do i=1,3
uc(k)=C(i,j)
k=k+1
end do
end do
!Imprimiendo vector uc
print*,""
58 | P á g i n a
Ing. William Chauca Nolasco
print*,"Vector uc"
do i=1,9
print*,uc(i)
end do
end program matriz_c
program matriz_c
integer,dimension(3,5)::C
integer,dimension(5)::ud
integer::i,k=1
print*,"Ingrese matriz C"
do i=1,3
read*,(C(i,j),j=1,5)
end do
!Creando vector ud
do i=1,3,2
do j=1,5
ud(k)=C(i,j)
k=k+1
end do
end do
!Imprimiendo vector ud
print*,""
print*,"Vector ud"
do i=1,10
print*,ud(i)
end do
end program matriz_c
59 | P á g i n a
Ing. William Chauca Nolasco
program coeficiente
real,dimension(6)::F=(/12.5,23.5,30.3,61.2,118.1,294.5/)
real,dimension(6)::u
integer,dimension(6)::masa=(/2,4,5,10,20,50/)
real,parameter::g=9.81
real::prom,suma=0
!Calculando u y utotal
do i=1,6
u(i)=F(i)/(masa(i)*g)
suma=suma+u(i)
end do
prom=suma/6
!Imprimiendo u
print*,""
print 2
2 format(8x,"masa(i)",6x,"F(i)",10x,"u(i)",i2.1,f2.2,f5.4)
do i=1,6
print*,masa(i),F(i),u(i)
end do
end program coeficiente
60 | P á g i n a
Ing. William Chauca Nolasco
CODIGO
program problema75
integer::i
real,dimension(12)::x=(/-2.5,-2.,-1.5,-1.,-0.5,0.,0.5,1.,1.5,2.,2.5,3./)
real,dimension(12)::y
do i=1,12
y(i)=(((x(i)**2)+1)**3)*(x(i)**3)
end do
print*,"X Y"
do i=1,12
print*,x(i)," ",y(i)
end do
end program problema75
program profundidad
integer,dimension(10)::t=(/(i,i=1,10)/)
real,dimension(10)::d
61 | P á g i n a
Ing. William Chauca Nolasco
real,parameter::g=9.81
!Calculando distancia
do i=1,10
d(i)=0.5*g*t(i)**2
end do
!Imprimiendo distancia
print 2
2 format(10x,"t(i)",7x,"d(i)",i2.1,f5.4)
do i=1,10
print*,t(i),d(i)
end do
end program profundidad
program funcion
integer,dimension(5)::x=(/(i,i=2,10,2)/),y=(/(i,i=3,15,3)/)
real,dimension(10)::z
do i=1,5
z(i)=(x(i)*y(i)+y(i)/real(x(i)))/real((x(i)+y(i)**(y(i)-
x(i))))+12**(x(i)/real(y(i)))
end do
!Imprimiendo z
print 2
2 format(10x,"X(i)",7x,"Y(i)",8x,"Z(i)",i2.1,i2.1,f5.4)
do i=1,5
print*,x(i),y(i),z(i)
end do
end program función
62 | P á g i n a
Ing. William Chauca Nolasco
63 | P á g i n a