Ejercicios Progra

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

Escriba el código fuente en Fortran para los siguientes ejercicios, traducir desde

el algoritmo (pseudocódigo o diagrama de flujo) previo.

1.-Obtener la suma de dos constantes de tipo numérico.


PROGRAM serie1
IMPLICIT NONE
REAL:: a,b,c
WRITE (*,*) 'Programa que suma dos constantes'
a=20
b=10
c=a+b
WRITE (*,*) 'EL RESULTADO DE LA SUMA ES: ', C
END PROGRAM

2.-Obtener la suma de dos variables.


PROGRAM EJERCICIO2
IMPLICIT NONE
REAL::x,w,Z
WRITE(*,*) 'Ingrese el valor de X: '
READ*, x
WRITE(*,*) 'ingrese el valor de W: '
READ*, w
Z = x+w
WRITE(*,*) x, "+",w, "=", Z
END PROGRAM

3.-Obtener el cuadrado y el cubo de una variable x.


PROGRAM Ejercicio3
IMPLICIT NONE
REAL::x,w,z
WRITE(*,*)'Ingrese el valor de X: '
READ*, X
w = X**2
Z = X**3
WRITE(*,*) x,'^2','=',w
WRITE(*,*) x,'^3','=',Z
END PROGRAM

4.-Obtener un valor de la función z=x2 +y3.


PROGRAM Ejercicio4
IMPLICIT NONE
REAL::x,w,z
WRITE(*,*) 'Ingrese el valor de X: '
READ*, x
WRITE(*,*) 'ingrese el valor de W: '
READ*, w
z = X**2+w**3
WRITE(*,*) X,'^2','+',w,'^3','=',z
END PROGRAM

5.Obtener la división de dos variables.


PROGRAM Ejercicio5
IMPLICIT NONE
REAL::A,B,C
WRITE(*,*) 'Ingrese A y B:'
READ*, A,B
IF (B/=0) THEN
C = A/B
WRITE(*,*) A,'/',B,'=',C
ELSE
WRITE(*,*) 'Error!!!'
ENDIF
END PROGRAM

6.Leer dos valores numéricos a y b, e imprimir solamente el menor.


PROGRAM Ejercicio6
IMPLICIT NONE
REAL::A,B
WRITE(*,*) 'Ingresa el valor de A y B:'
READ*, A,B
IF (A==B) THEN
WRITE(*,*) 'Los numeros son iguales:'
ELSE
IF (A>B) THEN
WRITE(*,*) B,'Es menor que ',A
ELSE
WRITE(*,*) A,'Es menor que:',B
ENDIF
ENDIF
ENDPROGRAM

7.Hacer un algoritmo, usando un elemento de selección múltiple, indique al


usuario que deberá elegir solo una opción a realizar.
Opción 1 – EJERCICIO 5
Opción 2 – EJERCICIO 6
Opción default –Mostrar “verifique su selección”
PROGRAM Ejercicio7
IMPLICIT NONE
REAL::A,B,C
INTEGER:: menu,respuesta
DO
WRITE(*,*) 'Seleccione una opcion'
WRITE(*,*) '1 Obtener la división de dos variables.'
WRITE(*,*) '2 Leer dos valores numéricos a y b, e imprimir solamente el menor.'
READ*, menu
SELECT CASE (menu)
CASE (1)
WRITE(*,*) 'Ingrese A y B:'
READ*, A,B
IF (B/=0) THEN
C = A/B
WRITE(*,*) A,'/',B,'=',C
ELSE
WRITE(*,*) 'Error!!!'
ENDIF
CASE (2)
WRITE(*,*) 'Ingresa el valor de A y B:'
READ*, A,B
IF (A==B) THEN
WRITE(*,*) 'Los numeros son iguales:'
ELSE
IF (A>B) THEN
WRITE(*,*) B,'Es menor que ',A
ELSE
WRITE(*,*) A,'Es menor que:',B
ENDIF
ENDIF
CASE DEFAULT
WRITE (*,*) 'Gracias por participar'
END SELECT
WRITE (*,*) 'INGRESA 3 PARA SALIR O CUALQUIER OTRO NUMERO PARA REPETIR'
READ *, respuesta
IF(respuesta==3)EXIT
END DO
STOP 'Fin de Programa'
END PROGRAM

8.Hacer un algoritmo, usando un elemento de selección múltiple, indique al


usuario que deberá elegir solo una opción a realizar.
Opción 1 -- Perímetro de un círculo.
Opción 2 -- Perímetro de un triángulo.
Opción 3 -- Perímetro de un cuadrado.
Opción 4 -- Perímetro de un paralelogramo.
Opción default –Mostrar “verifique su selección”
Agregar un ciclo de repetición para tener la opción de ver el menú nuevamente.
PROGRAM Ejercicio8
IMPLICIT NONE
REAL::radio,L1,L2,L3,L4,perimetro
INTEGER::menu,respuesta
DO
WRITE (*,*) 'Seleccione una opcion'
WRITE (*,*) '1 perimetro de un circulo'
WRITE (*,*) '2 perimetro de un triangulo'
WRITE (*,*) '3 perimetro de un cuadrado'
WRITE (*,*) '4 perimetro de un paralelogramo '
READ*, menu
SELECT CASE (menu)
CASE (1)
WRITE (*,*) 'Ingrese el radio:'
READ *, radio
IF (0<radio) THEN
Perimetro = 2*3.1416*radio
WRITE (*,*) 'El perimetro es:',Perimetro
ELSE
WRITE (*,*) 'ERROR, verifique que el valor sea positivo'
ENDIF
CASE (2)
WRITE (*,*) 'Ingrese la medida de los lados:'
READ *, L1,L2,L3
IF (0<L1 .AND. 0<L2 .AND. 0<L3) THEN
Perimetro = L1+L2+L3
WRITE (*,*) 'El perimetro del triangulo es:',Perimetro
ELSE
WRITE (*,*) 'ERROR, verifique que los valores sean
positivos'
ENDIF
CASE (3)
WRITE (*,*) 'Ingrese el lado:'
READ *, L1
IF (0<L1) THEN
Perimetro = L1*4
WRITE (*,*) 'El perimetro es:',Perimetro
ELSE
WRITE (*,*) 'error!!!, verifique que los valores sean
positivos'
ENDIF
CASE (4)
WRITE (*,*) 'Ingrese la medida de los lados:'
READ *, L1,L2,L3,L4
IF (0<L1 .AND. 0<L2 .AND. 0<L3 .AND. 0<L4) THEN
Perimetro = L1+L2+L3+L4
WRITE (*,*) 'El perímetro del paralelogramo es:',Perimetro
ELSE
WRITE (*,*) 'ERROR!! verifique que los valores sean
positivos'
ENDIF
CASE DEFAULT
WRITE (*,*) 'opción no valida'
END SELECT
WRITE (*,*) 'Escribe 1 para ver la calculadora nuevamente'
READ *, respuesta
IF(respuesta/=1)EXIT
END DO
STOP 'Fin de Programa'
END PROGRAM

9.Generar e imprimir los números del 1, 2, 3, hasta el 10.


PROGRAM Ejercicio9
IMPLICIT NONE
INTEGER::x
x=1
DO WHILE (x<=10)
WRITE (*,*) x
x = x+1
END DO
WRITE (*,*) x
ENDPROGRAM

10.Generar e imprimir los primeros 40 números pares.


PROGRAM Ejercicio10
IMPLICIT NONE
INTEGER::x
x=2
DO WHILE (x<=80)
WRITE (*,*) x
x = x+2
END DO
ENDPROGRAM
11.Generar e imprimir los primeros 30 números impares.
PROGRAM Ejercicio11
IMPLICIT NONE
INTEGER::x
x=1
DO WHILE (x<=60)
WRITE(*,*) x
x = x+2
END DO
WRITE(*,*) x
END PROGRAM

12.Hallar e imprimir los cuadrados de la numeración del 100, 99, 98 hasta el 1.


100, 10000
99, 9801
PROGRAM ejercicio12
IMPLICIT NONE
INTEGER::x
x = 100
DO WHILE (x>=1)
WRITE(*,*) x,',',x**2
x = x-1
END DO
END PROGRAM

13.Obtener la suma de los primeros 100 números de manera inversa, es decir,


100+99+98+…+2+1=5050. Muestre la numeración y la suma total.
PROGRAM ejercicio13
IMPLICIT NONE
INTEGER::x,z
x = 100
Z=X
DO WHILE (x>=1)
WRITE(*,*) x, "+", Z, "=", Z
x = x-1
Z = Z+X
END DO
WRITE(*,*)Z
END PROGRAM

14.Obtener la suma de los 100 primeros números impares. Mostrar la serie y la


suma total.
PROGRAM ejercicio14
IMPLICIT NONE
INTEGER::x,z,q
x=1
Z=X
Q =X+Z
DO WHILE (x<=200)
WRITE(*,*) x, "+", Z, "=", Q
x = x+2
Z = Z+X
Q = X+Z
END DO
WRITE(*,*)Z
END PROGRAM

15.Solicite al usuario su nombre, indique cuantas letras “a”, tiene su nombre.


Leer letra por letra.
PROGRAM EJERCICIO15
INTEGER::C,ca,nl
CHARACTER::nom
C=1
ca = 0
WRITE(*,*) 'Ingrese el numero de letras de tu nombre'
READ*, nl
IF (nl>=2)THEN
DO WHILE (C<=nl)
WRITE(*,*) 'Ingrese la letra num. ',C,'de tu nombre'
READ*, nom
IF (nom=='a' .OR. nom=='A') THEN
ca = ca+1
END IF
C = C+1
END DO
WRITE(*,*) 'Tienes',ca,'letras a/A en tu nombre'
ELSE
WRITE(*,*) 'Error'
END IF
END PROGRAM

16.Escriba un menú recursivo de los ejercicios 13, 14 y 15.


PROGRAM EJERCICIO16
IMPLICIT NONE
INTEGER::X,Z,Q,C,ca,nl,MENU,RESPUESTA
CHARACTER::nom
DO
WRITE (*,*) 'Seleccione una opcion'
WRITE (*,*) '1 la suma de los numeros de la serie del 100 al 1 con decremento de
una unidad'
WRITE (*,*) '2 la suma de los primeros 100 numeros pares'
WRITE (*,*) '3 perimetro de un cuadrado'
READ*, menu
SELECT CASE (menu)
CASE(1)
x = 100
Z=X
DO WHILE (x>=1)
WRITE(*,*) x, "+", Z, "=", Z
x = x-1
Z = Z+X
END DO
WRITE(*,*)Z
CASE(2)
x=2
Z=X
Q =X+Z
DO WHILE (x<=200)
WRITE(*,*) x, "+", Z, "=", Q
x = x+2
Z = Z+X
Q = X+Z
END DO
WRITE(*,*)Z
CASE(3)
C=1
ca = 0
WRITE(*,*) 'Ingrese el numero de letras de tu nombre'
READ*, nl
IF (nl>=2)THEN
DO WHILE (C<=nl)
WRITE(*,*) 'Ingrese la letra num. ',C,'de tu nombre'
READ*, nom
IF (nom=='a' .OR. nom=='A') THEN
ca = ca+1
END IF
C = C+1
END DO
WRITE(*,*) 'Tienes',ca,'letras a/A en tu nombre'
ELSE
WRITE(*,*) 'Error'
END IF
CASE DEFAULT
WRITE (*,*) 'opción no valida'
END SELECT
WRITE (*,*) 'Escribe 1 para ver la calculadora nuevamente'
READ *, respuesta
IF(respuesta/=1)EXIT
END DO
STOP 'Fin de Programa'
END PROGRAM

17. Almacenar en un arreglo de 100 elementos de tipo entero los números del 1 al 100, mostrar
cada dato del arreglo al finalizar.
PROGRAM serie_e17
IMPLICIT NONE
INTEGER:: indice, arreglo(100), temporal=1
DO indice=1, 100 ,1
ARREGLO(indice)=temporal
temporal=temporal+1
END DO !asignar el arreglo
DO indice=1, 100 ,1
WRITE(*,*)"posicion=" ,indice," contenido=" ,arreglo(indice)
END DO !mostrarel arreglo
WRITE(*,*)
ENDPROGRAM

18. Almacenar en un arreglo de 100 elementos de tipo entero los números del 100 al 1, mostrar
cada dato del arreglo al finalizar.
PROGRAM Serie_E18
IMPLICIT NONE
INTEGER:: indice, arreglo(100), temporal=100
DO indice=1, 100 ,1
arreglo(indice)=temporal
temporal=temporal-1
END DO !asignar el arreglo
DO indice=1, 100 ,1
WRITE(*,*)"Posicion=" ,INDICE," Contenido=" ,ARREGLO(INDICE)
END DO !mostrarel arreglo
WRITE(*,*)
WRITE(*,*) ARREGLO (26)
WRITE(*,*) ARREGLO(59)
END PROGRAM
19. Guardar en un arreglo los primeros 50 números pares, mostrar cada dato del arreglo al
finalizar.
PROGRAM Serie_E19
IMPLICIT NONE
INTEGER::I, ARREGLO(50)
DO I= 1,50,1
ARREGLO(I)=I*2
END DO !asignar el arreglo
DO I=1,50
WRITE (*,*) "Posicion=",I," CONTENIDO=" ,ARREGLO(I)
END DO !mostrar arreglo
WRITE(*,*)
END PROGRAM

20. Guardar en un arreglo los primeros 80 números impares, mostrar cada dato del arreglo al
finalizar.
PROGRAM Ejercicio_N20
!Guardar en un arreglo los primeros 80 números impares, mostrar cada dato del arreglo al
finalizar.
IMPLICIT NONE
INTEGER::I,ARREGLO(80),TEMPORAL
TEMPORAL=1
DO I=1,80,1
ARREGLO(I)=TEMPORAL
TEMPORAL=TEMPORAL+2
END DO
DO I=1,80,1
WRITE(*,*) "POSICION=" ,I,"CONTENIDO=" ,ARREGLO(I)
END DO
WRITE(*,*)
ENDPROGRAM

21. Almacenar 5 datos de tipo real que de él usuario, en un arreglo llamado datos, mostrar cada
dato del arreglo al finalizar.
PROGRAM Ejercicio_N21
!Almacenar 5 datos de tipo real que de él usuario, en un arreglo llamado datos, mostrar
cada dato del arreglo al finalizar.
IMPLICIT NONE
INTEGER::I,ARREGLO(5)
REAL::X
DO I=1,5,1
WRITE(*,*) "INGRESE 5 VALORES"
WRITE(*,*) "INGRESE EL VALOR NUMERO" ,I
READ*,X
ARREGLO(I)=X
END DO
DO I=1,5,1
WRITE(*,*) "POSICION=",I,"CONTENIDO=",ARREGLO(I)
END DO
END PROGRAM

También podría gustarte