Está en la página 1de 14

PROBLEMA 42.

- Escriba un programa que escriba un menú de opciones que


permita al usuario escoger entre calcular el área de un círculo, de un triángulo, o de
un rectángulo.
PROGRAM AREAS_GEOMETRICAS
INTEGER::OPCION
REAL::B,H,R !VARIABLES DE ENTRADA
REAL::AREA !VARIABLE DE ENTRADA
REAL,PARAMETER::PI=3.1416
PRINT*,"MENU DE OPCIONES PARA ESCOGER EL AREA"
PRINT*,"------------------------------------------------------------"
PRINT*
PRINT*,"1. AREA RECTANGULAR"
PRINT*,"2. AREA TRIANGULAR"
PRINT*,"3. AREA CIRCULAR"
PRINT*
PRINT*,"<<SELECCIONE UNA OPCION>>"
READ*,OPCION
SELECT CASE (OPCION)
CASE(1)
PRINT*,"DATOS PARA EL AREA RECTANGULAR"
PRINT*
PRINT*,"INGRESE LA BASE DEL RECTANGULO"
READ*,B
PRINT*,"INGRESE LA ALTURA DEL RECTANGULO"
READ*,H
AREA=B*H
PRINT*,"A =",AREA
IF (B>0 .AND. H>0) THEN
PRINT*,"A =",AREA
ELSEIF (B<=0 .AND. H<=0) THEN
PRINT*,"OPCION MAL INRESADA"
ENDIF
CASE(2)
PRINT*,"DATOS PARA EL AREA TRIANGULAR"
PRINT*
PRINT*,"INGRESE LA BASE DEL TRIANGULO"
READ*,B
PRINT*,"INGRESE LA ALTURA DEL TRIANGULO"
READ*,H
AREA=(B*H)/2
PRINT*,"A =",AREA
IF (B>0 .AND. H>0) THEN
PRINT*,"A =",AREA
ELSEIF (B<=0 .AND. H<=0) THEN
PRINT*,"OPCION MAL INRESADA"
ENDIF
CASE(3)
PRINT*,"DATOS PARA EL AREA CIRCULAR"
PRINT*
PRINT*,"INGRESE EL RADIO DEL CIRCULO"
READ*,R
AREA=PI*R**2
IF (R>0) THEN
PRINT*,"A =",AREA
ELSEIF(R<=0) THEN
PRINT*,"OPCION MAL INRESADA"
ENDIF
END SELECT
END PROGRAM AREAS_GEOMETRICAS

PROBLEMA 5.- Caso ciclo de repetición anidado, calcule el valor de la función


para: S = a2 + sen b
Para a = 1, 2, 3, 4, 5, 6;
y b = 0.0, 0.125, 0.250, 0.375, 0.500
Casos: a, b y c

CASO a) Sentencia Do
PROGRAM FORMULA_DO_5
REAL::I
REAL::J,S,X
DO I=1,6
DO J=0.0,0.5,0.125
X=J*3.141593/180
S=I**2+SIN(X)
PRINT 200,I,J,S
END DO
END DO
200 FORMAT(1X,"cuando a es",F8.2,2X,"y b es",F8.2,3X,"El S es",F8.2)
END PROGRAM FORMULA_DO_5

CASO b) Sentencia Do While


PROGRAM FORMULA_DO_WHILE_5
REAL::I
REAL::J,S,X
I=1
DO WHILE (I<=6)
DO J=0.0,0.5,0.125
X=J*3.141593/180
S=I**2+SIN(X)
PRINT 200,I,J,S
END DO
I=I+1
END DO
200 FORMAT(1X,"cuando a es",F8.2,2X,"y b es",F8.2,3X,"El S es",F8.2)
END PROGRAM FORMULA_DO_WHILE_5

CASO c) Sentencia Do Exit, End Do. Los dos casos


CASO DO….EXIT
PROGRAM FORMULA_DO_EXIT_5
REAL::I
REAL::J,S,X
I=1
DO
DO J=0.0,0.5,0.125
X=J*3.141593/180
S=I**2+SIN(X)
PRINT 200,I,J,S
END DO
I=I+1
IF(I>6) EXIT
END DO
200 FORMAT(1X,"cuando a es",F8.2,2X,"y b es",F8.2,3X,"El S es",F8.2)
END PROGRAM FORMULA_DO_EXIT_5

PROBLEMA 7.- Elabore un programa en fortran que calcule el promedio entre 8 y


18 ambos inclusive.
Casos: a, b y c

CASO a) Sentencia Do
PROGRAM PROMEDIO_DO_7 !HALLAR EL PROMEDIO ENTRE 8 Y 18
REAL::I
REAL::P
P=0
DO I=8,18
P=P+I/11
END DO
PRINT*,"EL PROMEDIO DE 8 A 18 ES ",P
END PROGRAM PROMEDIO_DO_7

CASO b) Sentencia Do While


PROGRAM PROMEDIO_DO_WHILE_7 !HALLAR EL PROMEDIO ENTRE 8 Y 18
REAL::I
REAL::P
P=0
I=8
DO WHILE(I<=18)
P=P+I/11
I=I+1
END DO
PRINT*,"EL PROMEDIO DE 8 A 18 ES ",P
END PROGRAM PROMEDIO_DO_WHILE_7

CASO c) Sentencia Do Exit, End Do. Los dos casos


PROGRAM PROMEDIO_DO_7 !HALLAR EL PROMEDIO ENTRE 8 Y 18
REAL::I
REAL::P
I=8
P=0
DO
P=P+I/11
I=I+1
IF(I>18) EXIT
END DO
PRINT*,"EL PROMEDIO DE 8 A 18 ES ",P
END PROGRAM

𝝅 𝝅
PROBLEMA 15.- Escriba un programa para evaluar la función: 𝒚 = 𝟐 𝒔𝒆𝒏𝟐 (𝟑𝜽 + 𝟒 )
𝝅 𝟐𝝅 𝟑𝝅 𝟒𝝅
Para valores de 𝜽 = 𝟎, 𝟖 , , , ,…,𝝅
𝟖 𝟖 𝟖
Donde π = 3.141593
Casos: a, b y c

CASO a) Sentencia Do
PROGRAM FORMULA_DO_15
REAL::I,Y
REAL,PARAMETER::pi=3.141593
DO I=0,pi,pi/8
Y=(pi/2)*(sin(3*I+pi/4))**2
PRINT 100,I,Y
END DO
100 FORMAT(1X,"CUANDO EL ANGULO ES",F8.2,3X,"Y ES",F8.2)
END PROGRAM FORMULA_DO_15

CASO b) Sentencia Do While


PROGRAM FORMULA_DO_WHILE_15
REAL::I,Y
REAL,PARAMETER::pi=3.141593
I=0
DO WHILE (I<=PI)
Y=(pi/2)*(sin(3*I+pi/4))**2
PRINT 100,I,Y
I=I+PI/8
END DO
100 FORMAT(1X,"CUANDO EL ANGULO ES",F8.2,3X,"Y ES",F8.2)
END PROGRAM FORMULA_DO_WHILE_15

CASO c) Sentencia Do Exit, End Do. Los dos casos


Caso Do Exit
PROGRAM FORMULA_DO_EXIT_15
REAL::I,Y
REAL,PARAMETER::pi=3.141593
I=0
DO
Y=(pi/2)*(sin(3*I+pi/4))**2
PRINT 100,I,Y
I=I+PI/8
IF(I>PI) EXIT
END DO
100 FORMAT(1X,"CUANDO EL ANGULO ES",F8.2,3X,"Y ES",F8.2)
END PROGRAM FORMULA_DO_EXIT_15

PROBLEMA 16.- Utilizando la sentencia Do while elaborar un programa que


visualice en la pantalla
1
3
5
7
9
Hasta Luego

PROGRAM IMPARES_HASTA_9
INTEGER::I=1
DO WHILE (I<=9)
PRINT*, I
I=I+2
END DO
PRINT*,"HASTA LUEGO"
END PROGRAM IMPARES_HASTA_9

PROBLEMA 13.- Elabore una tabla de senos, cosenos y tangentes para los
ángulos entre 0º y 30º a intervalos de 1º, verifique los resultados consultando libros
de trigonometria.
Casos: a, b y c

CASO a) Sentencia Do
PROGRAM FORMULA_DO_13
INTEGER::I
REAL::S,C,T,a
REAL,PARAMETER::PI=3.141593
DO I=1,30,1
a=I*PI/180
S=SIN(a)
C=COS(a)
T=SIN(a)/COS(a)
PRINT*,"a = ",a
PRINT*,"SENO = ",S
PRINT*,"COSENO = ",C
PRINT*,"TANGENTE = ",T
PRINT*
END DO
END PROGRAM FORMULA_DO_13

CASO b) Sentencia Do While


PROGRAM FORMULA_DO_WHILE_13
INTEGER::I
REAL::S,C,T,a
REAL,PARAMETER::PI=3.141593
I=1
DO WHILE(I<=30)
a=I*PI/180
S=SIN(a)
C=COS(a)
T=SIN(a)/COS(a)
PRINT*,"a = ",a
PRINT*,"SENO = ",S
PRINT*,"COSENO = ",C
PRINT*,"TANGENTE = ",T
PRINT*
I=I+1
END DO
END PROGRAM FORMULA_DO_WHILE_13

CASO c) Sentencia Do Exit, End Do. Los dos casos


Caso Do Exit
PROGRAM FORMULA_DO_EXIT_13
INTEGER::I
REAL::S,C,T,a
REAL,PARAMETER::PI=3.141593
I=1
DO
a=I*PI/180
S=SIN(a)
C=COS(a)
T=SIN(a)/COS(a)
PRINT*,"a = ",a
PRINT*,"SENO = ",S
PRINT*,"COSENO = ",C
PRINT*,"TANGENTE = ",T
PRINT*
I=I+1
IF(I>30) EXIT
END DO
END PROGRAM FORMULA_DO_EXIT_13

Caso End Do
PROGRAM FORMULA_DO_13
INTEGER::I
REAL::S,C,T,a
REAL,PARAMETER::PI=3.141593
I=1
DO
IF(I>30) EXIT
a=I*PI/180
S=SIN(a)
C=COS(a)
T=SIN(a)/COS(a)
PRINT*,"a = ",a
PRINT*,"SENO = ",S
PRINT*,"COSENO = ",C
PRINT*,"TANGENTE = ",T
PRINT*
I=I+1
END DO
END PROGRAM FORMULA_DO_13

PROBLEMA 9.- Considere los n términos de una progresión geométrica: a, ar, ar2,
ar3, …. arn-1
Compute estos n términos para a = 3, r = 4, n = 8
a.- Sentencia Do while
b.- Sentencia Do… Exit…End Do, los dos casos

a)Sentencia Do While
PROGRAM PROGRESION_GEOMETRICA_9
INTEGER::a,r,I
a=3
r=4
I=1
DO WHILE (I<=8)
T=a*(r**(I-1))
PRINT 200,T
I=I+1
END DO
200 FORMAT(1X,F8.2)
PRINT*
PRINT*,"ESTA ES LA SECUENCIA PARA a=3,r=4 y n=8"
END PROGRAM PROGRESION_GEOMETRICA_9
b) Sentencia Do…Exit End Do
PROGRAM PROGRESION_GEOMETRICA_9
INTEGER::a,r,I
a=3
r=4
I=1
DO
T=a*(r**(I-1))
PRINT 200,T
I=I+1
IF(I>8) EXIT
END DO
200 FORMAT(1X,F8.2)
PRINT*
PRINT*,"ESTA ES LA SECUENCIA PARA a=3,r=4 y n=8"
END PROGRAM PROGRESION_GEOMETRICA_9

PROBLEMA 11.- Elaborar un programa para tabular la función:


𝒙−𝟏
𝒚 = (−𝟏) 𝟐 . 𝒙−𝟑
Para x = 1, 3, 5, 7, 9, 11, 13, 15
Casos: a, b y c

Caso a) Sentencia Do
PROGRAM SECUENCIA_11
REAL::SIGNO=1,X
REAL::Y
DO X=1,15,2
Y=(SIGNO**((X-1)/2))*(X**(-3))
PRINT*,X,Y
SIGNO=-SIGNO
END DO
END PROGRAM SECUENCIA_11

Caso b) Sentencia Do While


PROGRAM SECUENCIA_11
REAL::SIGNO=1,X=1
REAL::Y
DO WHILE(X<=15)
Y=SIGNO**((X-1)/2.)*X**(-3)
PRINT*,X,Y
X=X+2
SIGNO=-SIGNO
END DO
END PROGRAM SECUENCIA_11

Caso c) Sentencia Do…Exit End Do


!CASO DO EXIT
PROGRAM SECUENCIA_11
REAL::SIGNO,X
REAL::Y
SIGNO=1
X=1
DO
Y=(SIGNO**((X-1)/2))*(X**(-3))
PRINT*,X,Y
SIGNO=-SIGNO
X=X+2
IF(X>15) EXIT
END DO
END PROGRAM SECUENCIA_11

!CASO END DO
PROGRAM SECUENCIA_11
REAL::SIGNO,X
REAL::Y
SIGNO=1
X=1
DO
IF(X>15) EXIT
Y=(SIGNO**((X-1)/2))*(X**(-3))
PRINT*,X,Y
SIGNO=-SIGNO
X=X+2
END DO
END PROGRAM SECUENCIA_11

PROBLEMA 22.- Para el problema 16, modifique el programa utilizando la sentencia


Do if(cond)

PROGRAM IMPARES_HASTA_9
INTEGER::I
I=1
DO
PRINT*, I
I=I+2
IF(I>9) EXIT
END DO
PRINT*,"HASTA LUEGO"
END PROGRAM IMPARES_HASTA_9

PROBLEMA 47.- Escriba un programa que calcule la suma de 1 + ½ + 1/3 + ¼ + 1/5


+…….+ 1/50.
PROGRAM SUMA_47
REAL::I,J
I=0
DO J=1,50
I=I+(1/J)
END DO
PRINT*,"EL VALOR DE LA SUMA ES ",I
END PROGRAM SUMA_47

PROBLEMA 28.- Calcular la siguiente función, para un valor de n dada:

PROGRAM SUMA_28
INTEGER::N
REAL::S,K,T
PRINT*,"INGRESE EL VALOR PARA N"
READ*,N
S=0
K=1
DO WHILE (K<=N)
T=(3+K**2)/(4+7*K)
S=S+T
K=K+1
END DO
PRINT*,"EL VALOR DE LA SUMA ES ",S
END PROGRAM SUMA_28

PROBLEMA 18.- Elaborar un programa que encuentre la suma para los numeros
ingresados por teclado 15 47 43 64 29 (el ingreso es línea por línea para cada
valor) usando un centinela cuyo valor es -1, es decir al ingresar cada valor debe
salir un mensaje “ingrese un numero o -1 para terminar”, una ves ingresado el
ultimo valor se digitará -1 y visualizara la suma total de los numeros ingresados el
valor -1 no forma parte de la suma. Utilizar la sentencia Do-While(condición).

PROGRAM SUMA_18
INTEGER::X,S
DO WHILE (X/=-1)
PRINT*,"INGRESE NUMERO O -1 PARA TERMINAR"
READ*,X
S=S+X
END DO
PRINT*,S+1
END PROGRAM SUMA_18
PROBLEMA 24.- Para el problema 18, modifique el programa utilizando la sentencia
Do if(cond)

PROGRAM SUMA_18
INTEGER::X,S
DO
PRINT*,"INGRESE NUMERO O -1 PARA TERMINAR"
READ*,X
S=S+X
IF(X==-1) EXIT
END DO
PRINT*,S+1
END PROGRAM SUMA_18

PROBLEMA 41.- Escriba un programa que reciba como entrada el largo de 3 lados
de un triángulo. La salida debe ser: EQUILATERO, ISOCELES O ESCALENO. No
suponga que las longitudes están en un orden particular. Corra su programa
utilizando como datos: a) 2 2 2, b) 2 3 2, c) 2 2 3, d) 2 3 3, e) 2 3 4, f) 4 2 3.

PROGRAM TIPO_DE_TRIANGULO
REAL::A,B,C
PRINT*,"INGRESE UN LADO DEL TRIANGULO"
READ*,A
PRINT*,"INGRESE OTRO LADO"
READ*,B
PRINT*,"INGRESE EL ULTIMO LADO DEL TRIANGULO"
READ*,C
IF(A==B .AND. B==C) THEN
PRINT*,"ES UN TRINANGULO EQUILATERO"
ELSEIF(A==B .OR. B==C .OR. A==C) THEN
PRINT*,"ES UN TRIANGULO ISCOSELES"
ELSEIF(A/=B .AND. B/=C .AND. A/=C) THEN
PRINT*,"ES UN TRIANGULO ESCALENO"
ENDIF
END PROGRAM TIPO_DE_TRIANGULO

PROBLEMA 38.- Una agencia de seguros para automóviles asigna costos basados
en el sexo y en la edad del conductor, los varones de menos de 25 años pagan la
prima más alta, 1000 dólares. Los hombres de 25 o más años pagan 700 dólares.
Las mujeres de menos de 21 años pagan 800, mientras que mujeres de 21 o más
años pagan 500. Elabore un programa que lea el sexo y la edad y visualice el costo
del auto.
PROGRAM COSTOS_DE_SEGUROS
INTEGER::OPCION,X,Y
PRINT*,"INDIQUE EL SEXO DEL CONDUCTOR"
PRINT*,"---------------"
PRINT*
PRINT*,"1. MASCULINO"
PRINT*,"2. FEMENINO"
PRINT*
READ*,OPCION
SELECT CASE (OPCION)
CASE(1)
PRINT*,"DIGA LA EDAD DEL CONDUCTOR"
READ*,X
IF(X<25) THEN
PRINT*,"PAGA LA PRIMA MAS ALTA, 1000 DOLARES"
ELSE IF (X>=25) THEN
PRINT*,"PAGA LA PRIMA DE 700 DOLARES"
END IF
CASE(2)
PRINT*,"DIGA LA EDAD DE LA CONDUCTORA"
READ*,Y
IF(Y<21) THEN
PRINT*,"PAGA LA PRIMA DE 800 DOLARES"
ELSE IF (Y>=21) THEN
PRINT*,"PAGA LA PRIMA DE 500 DOLARES"
END IF
END SELECT
END PROGRAM COSTOS_DE_SEGUROS

PROBLEMA 35.- Un trabajador recibe su sueldo normal por las primeras treinta
horas y se le paga 1.5 veces su sueldo normal por cada hora después de las
primera treinta. Escriba un programa que calcule y visualice el pago al empleado
basado en el sueldo normal y el número de horas trabajadas por el empleado, estos
datos deberán ser introducidos por el usuario. Por ejemplo si se le indica al
programa que las horas trabajadas son 42 y 6.00 dólares para el sueldo por hora, el
programa debe imprimir 288.00 dólares como monto a percibir.
PROGRAM SUELDO
REAL::A,B
PRINT*,"INDIQUE EL SUELDO POR HORA DEL TRABAJADOR"
READ*,A
PRINT*,"INDIQUE EL NUMERO DE HORAS TRABAJADAS"
READ*,B
IF(B<=30) THEN
S=A*B
ELSE IF (B>30) THEN
S=A*30+1.5*A*(B-30)
PRINT*,"EL MONTO A PERCIBIR ES DE ",S
END IF
END PROGRAM SUELDO
PROBLEMA 48.- Escriba un programa que imprima una tabla de cuadrado y cubos
del 1 al 15 y luego imprima:
· La suma de los cuadrados.
· La suma de los cubos.
· Cuantos son mayores de 500.
· Un mensaje que diga si la suma de los cuadrados fue o no mayor de 2000.

PROGRAM PROBLEMA_48
INTEGER::I,J,K
I=1
PRINT*," CUADRADOS "," CUBOS "
DO WHILE (I<=15)
J=I**2
K=I**3

I=I+1
PRINT*,J,K
END DO
END PROGRAM PROBLEMA_48

PROBLEMA 21.- Conjetura de Ulam, este nombre se da en honor al matemático S.


Ulam y dice así:
Empiece por cualquier entero positivo
Si es par, divídase entre 2; si es impar, multiplíquese por 3 y agréguese 1.
Obtenga enteros sucesivamente repitiendo el proceso hasta que el entero en curso
no sea 1. Al final se obtendrá el número 1, independientemente del entero inicial.
Por ejemplo, cuando el entero inicial es 26, la secuencia será:
26 13 40 20 10 5 16 8 4 2 1
Elabore un programa que visualice esta serie utilizando el ciclo Do While

PROGRAM CONJETURA_ULAM
INTEGER::X
PRINT*,"INGRESE UN NUMERO ENTERO"
READ*,X
PRINT*,X
DO WHILE(X/=1)
IF (MOD(X,2)==0) THEN
X=X/2
PRINT*,X
ELSE IF (MOD(X,2)/=0) THEN
X=X*3+1
PRINT*,X
END IF
END DO
END PROGRAM CONJETURA_ULAM
PROBLEMA 27.- Para el problema 21, modifique el programa utilizando la sentencia
Do if(cond).

PROGRAM CONJETURA_ULAM
INTEGER::X
PRINT*,"INGRESE UN NUMERO ENTERO"
READ*,X
PRINT*,X
DO
IF (MOD(X,2)==0) THEN
X=X/2
PRINT*,X
ELSE IF (MOD(X,2)/=0) THEN
X=X*3+1
PRINT*,X
END IF
IF (X==1) EXIT
END DO
END PROGRAM CONJETURA_ULAM

También podría gustarte