Está en la página 1de 16

Universidad Autónoma del Carmen

Dependencia Académica de Ciencias Químicas y


Petroleras
Facultad de Química

NOMBRE DEL TRABAJO

EJERCICIOS QUIZ 3-1, QUIZ 3-2 Y EJERCICIOS DE FIN


DE CAPITULO

MATERIA
PROGRAMACIÓN

PRESENTA
Ian Gennaro Güitrón Sagaón

DOCENTE DE LA ASIGNATURA
Alberto Vázquez Martínez

CD. DEL CARMEN, CAMPECHE, MEXICO. 29 DE MAYO DEL 2020

ENTREGA: 19.00 HRS


INDICE

ANTECEDENTES ……………………………………………………………………..… 3
Sentencia IF …………………………………….………………………………… 3
Else IF…………………………..…………………………………………………. 4
Loop ……………………………………………………….…………………….... 4
Sentencia Do ………………………………………………………………...…… 4
Mapa Mental: Elementos de un Diagrama de Flujo ……….………………… 5
CONTENIDO ……………………………………………………………………………... 6
Quiz 1.1 …………………………………………………………………………… 6
Quiz 3.2 …………………………………………………………………………… 8
Ejercicios de Fin de Capítulo ………………………………………………….. 11
CONCLUSION ………………………………………………………………………….. 15
BIBLIOGRAFIA …………………………………………………………………………. 16
ANTECEDENTES
Mientras mas avanzamos en la elaboración de códigos de programación, más
complejo se tiende a volver el problema que buscamos resolver por medio de los
códigos, se comienzan a presentar varias posibilidades o condiciones de operación
de los problemas, o simplemente, se necesita repetir ciertas operaciones complejas
pero cambiando únicamente uno o dos valores dentro de una formula ya
establecida.
Para eso, existen las declaraciones lógicas, los ciclos o loops y las construcciones
de control; para poder facilitar la programación y tener códigos más prácticos pero
que requieran un nivel de lógica mayor.

SENTENCIA IF
Esta declaración o herramienta permite ejecutar una instrucción solo cuando una
condición se cumple; su estructura básica es la siguiente:
Si, condición verdadera
Instrucción ejecutable
Fin Si
Para lo cual se maneja la sintaxis siguiente:
IF (expresión lógica) instrucción
Sin embargo, esa es la forma simple de la sentencia if, cuando lo expresamos en
un programa de Fortran esta se divide en bloques, los cuales permiten ejecutar una
serie de instrucciones si una condición se cumple; su estructura es:
Si condición verdadera
Instrucción 1
Instrucción 2

Fin si
Y la sintaxis sería la siguiente:
IF (expresión lógica) THEN
Instrucción 1
Instrucción 2

END IF
Con respecto a la sintaxis mostrada, las instrucciones ejecutables 1 y 2 solo se
ejecutarán en Fortran si la expresión lógica es cierta. En caso de que la instrucción
sea falsa, Fortran omitirá las instrucciones y reanudará en el fin del ciclo if.

ELSE IF
Como se menciono anteriormente, la sentencia if y el bloque if solo sirven para
determinar cuándo una instrucción lógica es correcta, por lo tanto cuando se desea
especificar un procedimiento cuando una expresión lógica tiene dos o mas posibles
resultados se utiliza la declaración else if; la cual tiene una sintaxis como la
siguiente:
IF (expresión lógica) THEN
Instrucción 1
Instrucción 2

ELSE
Instrucción 1
Instrucción 2

END IF
Esto permite que en caso de no cumplirse con la declaración inicial del if, se busque
otro posible resultado con la declaración else.

LOOP
Los loops o ciclos en fortran permiten ejecutar una secuencia de declaraciones más
de una vez. Las dos formas básicas de ciclos son los WHILE y los ITERATIVO. La
mayor diferencia entre estos dos tipos de ciclos es el como se controla la repetición
de declaraciones. El código en un ciclo WHILE es repetido un cantidad indefinida
de veces mientras no se cumpla una condición especificada por el usuario; de la
forma contraria, un ciclo iterativo se repite la cantidad de veces que el usuario
decida.

CICLO DO
Una de las utilidades más importantes de un ordenador es su capacidad de hacer
cálculos a alta velocidad. Esto es especialmente importante si se han de ejecutar
las mismas operaciónes un gran número de veces. En Fortran esta tarea se realiza
con los ciclos Do iterativos en los que se cuentan el número de iteraciones que han
de realizarse. La sintaxis para la instrucción es el siguiente:
DO índice = valor_inicial, valor_final, incremento
Instrucción 1
Instrucción 2
END DO
En este ejemplo, el indice es el nombre de una variable de tipo entero, y valor_inical,
valor_final e incremento son constantes, nombres de variables o expresiones
aritméticas enteras.

MAPA MENTAL: ELEMENTOS DE UN DIAGRAMA DE FLUJO

Indica inicio y final Proceso o Realización en la computadora

Entrada y Salida de Datos Análisis y toma de decisión

Indica la dirección del flujo del programa


Referencia a un documento externo

Funciona como auxiliar para el flujo del


programa Indica una sentencia o declaración de tipo
ciclo o iteración

Indica un
CONTENIDO
QUIZ 3.1
ESCRIBA LAS DECALRACIONES FORTRAN QUE REALICEN LAS SIGUIENTES
FUNCIONES:
1. SI X ES MAYOR O IGUAL A CERO, ENTONCES ASIGNE LA RAIZ
CUADRADA DE X A LA VARIABLE SQRT_X E IMPRIMA EL RESULTADO.
DE LO CONTRARIO, IMPRIMA UN MENSAJE DE ERROR ACERCA DEL
ARGUMENTO DE LA FUNCION DE RAIZ CUADRADA Y ESTABLES QUE
SQRT_X ES CERO.
If (x >= 0.) then
Sqrt_x = sqrt (x)
Write(*,*) ‘la raíz cuadrada de x es’, sqrt_x
Else
Write(*,*) ‘error — x < 0!’
Sqrt_x = 0
End if

2. UNA VARIABLE FUN ES CALCULADA COMO


NUMERADOR/DENOMINADOR. SI EL VALOR ABSOLUTO DEL
DENOMINADOR ES MENOS QUE 1.0E-10, ESCRIBA ERROR DIVIDA
ENTRE 0. DE LO CONTRARIO, CALCULE E IMPRIMA FUN.
If (abs(denominador) < 1.0E-10) then
Write (*,*) ‘Error divisible entre cero’
Else
Fun = numerador / denominador
Write(*,*) ‘fun=’, fun
End if

3. EL COSTO POR MILLA POR UN VEHICULO RENTADO ES DE 50


CENTAVOS LAS PRIMERAS 100 MILLAS, 30 CENTAVOS POR LAS
SIGUIENTES 200 MILLAS, Y 20 CENTAVOS POR LAS TODAS LAS
MILLAS DESPUES DE LAS 300 MILLAS. ESCRIBA LAS DECLARACIONES
FORTRAN QUE DETERMINEN EL COSTO TOTAL Y EL COSTO
PROMEDIO POR MILLA PARA EL NUMERO DE MILLAS DADAS
(GUARDADO EN LA VARIABLE DISTANCIA).
If (distancia > 300.0) then
Costo = 110.0 + 0.20 * (distancia - 300.0)
Else if (distanica > 100.0) then
Costo = 50.0 + 0.30 * (distancia – 100.0)
Else
Cost = 0.50 * distancia
End if
Promedio = costo / distancia
EXAMINE LAS SIGUIENTES DECLARACIONES DE FORTRAN. ¿SON ESTAS
CORRECTAS O INCORRECTAS? SI SON CORRECTAS, ¿CUÁL SERÍA LA
IMPRESIÓN DE PANTALLA O EL RESULTADO SALIENTE? SI SON
INCORRECTAS, ¿QUÉ ES LO QUE TIENEN MAL?
4. DECLARACIÓN DE FORTRAN 1

La declaración es incorrecta, falta un else en la segunda declaración de if.


5. DECLARACIÓN DE FORTRAN 2

Las declaraciones fortran son correctas, el resultado impreso será “Warning:


distance exceed limit.”
6. DECLARACION DE FORTRAN 3

La declaración es invalida, esto es debido a que no se puede emplear una


variable de tipo entero para la operación de la declaración case.
7. DECLARACIÓN DE FORTRAN 4

La declaración es correcta, el mensaje que se imprimiría es “Prepare to stop.” Ya


que el color seleccionado es amarillo (yellow).
8. DECLARACIÓN DE FORTRAN 5

La declaración es incorrecta, faltan los limites de temperatura para evitar


ambigüedad, usar los símbolos de mayor igual que (>=) o dos delimitaciones, como
por ejemplo temperature >= 37 <= 99 para así evitar ambigüedades en la impresión
de resultados.

QUIZ 3.2
EXAMINE LOS SIGUIENTES CICLOS DO Y DETERMINE CUANTAS VECES
CADA CICLO SERA EJECUTADO. ASUMA QUE TODOS LAS VARIABLES INDEX
MOSTRADRAS SON DE TIPO ENTERO.
1. DO index = 7, 10
El ciclo se repetirá un total de 4 veces.
2. DO j=7, 10, -1
El ciclo do no se repetirá.
3. DO index = 1, 10, 10
Solo habrá una repetición del ciclo do.
4. DO loop_counter = -2, 10, 2
El ciclo do se repetirá 7 veces.
5. DO time = -2, -10, -1
Se repetirá un total de 9 veces el ciclo do.
6. DO i = -10, -7, -3
El ciclo no se repetirá.
EXAMINE LOS SIGUIENTES CICLOS Y DETERMINE LOS VALORES EN ires AL
FINAL DE CADA UNO DE LOS CICLOS. ASUMA QUE irec, incr Y TODOS LOS
INDEX SON VARIALES DE TIPO ENTERO.
7. PRIMER CICLO

La variable ires tendrá un valor de 10.


8. SEGUNDO CICLO

En este caso ires será de 55.


9. TERCER CICLO

Nuevamente la variable ires tendrá un valor de 10.


10. CUARTO CICLO

El valor de ires será de 100.


11. QUINTO CICLO

En este último caso, la variable de ires será de 21.


EXAMINE LAS SIGUIENTES DECLARACIONES FORTRAN Y MENCIONE SI
ESTAS SON VALIDAS O NO. SI SON INVALIDAS, INDIQUE LA RAZON POR LA
CUAL SON VALIDAS.
12. PRIMERA DECLARACION

Declaración invalida, las declaración do dejan en un bucle a i con el ciclo.


13. SEGUNDA DECLARACION

Declaración válida.
14. TERCERA DECLARACION

La declaración es inválida, debido a que los ciclos se sobreponen el uno de


otro.
EJERCICIO DE FIN DE CAPITULO
3.17 MODIFIQUE EL PROGRAMA ball DEL EJEMPLO 3-8 PARA QUE LEA LA
VELOCIDAD INICIAL A LA QUE SE ARROJA LA PELOTA. DESPUES DE
MODIFICAR EL PROGRMA, CORRALO CON LA VELOCIDAD INICIAL DE 10 M/S,
20 M/S Y 30 M/S. ¿QUE EFECTO TIENE EL MODIFICAR LA VELOCIDAD INICIAL
Vo EN LA DISTANCIA DE LA PELOTA? ¿QUE EFECTO SE TIENE EN EL MEJOR
ANGULO TETA AL QUE FUE ARROJADA LA PELOTA?
Ejemplo 3 – 8 – Física – El Vuelo de una Pelota
Si asumimos que la fricción del aire es nula e ignoramos la curvatura de la Tierra,
un apelota que es lanzada al aire desde cualquier punto de la superficie de la Tierra

seguirá una ruta de vuelo parabólica. La altura de la pelota a cualquier tiempo (t)
después de que fue lanzada es dada por la siguiente ecuación:
Donde yo es la altura inicial del objeto por encima del suelo, v yo es la velocidad
vertical inicial del objeto, y g es la aceleración causada por la gravedad de la Tierra.
La distancia horizontal (rango) recorrido por la pelota como función del tiempo
después de ser arrojada es dada por la siguiente ecuación:
Donde xo es la posición horizontal inicial de la pelota en el suelo y vxo es la velocidad
horizontal inicial de la pelota.

Si la pelota es arrojada con una velocidad inicial vo a un ángulo de teta grados con
respecto a la superficie de la tierra, entonces la componente horizontal inicial y
vertical de velocidad serían las siguientes:
Asuma que la pelota es inicialmente arrojada desde la posición (x oyo) = (0,0) con
una velocidad inicial v de 20 metros por segundo y a un ángulo inicial de teta grados.
Diseñe, escriba y pruebe un programa que determine la distancia horizontal
recorrida desde el momento que fue lanzada hasta el momento que volvió al suelo.
El programa deberá calcular la distancia a todos los ángulos teta desde 0 hasta 90°
en 1° paso.
Determine el ángulo teta que maximice el mayor rango de la pelota.
CODIGO DEL PROGRAMA “BALL” MODIFICADO
program ball
implicit none
!Declaracion de variables
real :: g =-9.81
integer :: maxg
real :: maxr
real :: rango
real :: radianes
integer :: teta
real :: v0
real, parameter :: grados = 0.01745329
!Variables iniciales
maxr = 0.0
maxg = 0
!Ciclo para las velocidades
!Ciclo para todos los angulos especificados
write (*,*) ' '
write (*,*) '**************************************************************'
write (*,*) " CORRIDA UNO, VELOCIDAD INICIAL DE 10 M/S"
write (*,*) '**************************************************************'
write (*,*) ' '
do teta=0,90
v0=10
!Calcular angulo en radianes
radianes=real (teta)*grados
!Calcular el rango en metros
rango = (-2.0*v0**2/g) * sin(radianes) * cos(radianes)
!Escriba el rango por cada angulo
write (*,*) 'Teta =', teta, 'Grados; Rango =', rango, &
'metros'
!compare los rangos con el previo rango maximo. si este
!rango es mayor, guardelo al igual que el angulo en que ocurrio.
if ( rango> maxr ) then
maxr= rango
maxg= teta
end if
end do
!salte una linea, y entonces escriba el rango maximo y el angulo
!en que ocurrio.
write (*,*) ' '
write (*,*) 'Rango Maximo 1 =', maxr, ' a ',maxg,' grados'
!*************************************************************************
!*************************************************************************
!Ciclo para todos los angulos especificados
write (*,*) ' '
write (*,*) '**************************************************************'
write (*,*) " CORRIDA DOS, VELOCIDAD INICIAL DE 20 M/S"
write (*,*) '**************************************************************'
write (*,*) ' '
do teta=0,90
v0=20
!Calcular angulo en radianes
radianes=real (teta)*grados
!Calcular el rango en metros
rango = (-2.0*v0**2/g) * sin(radianes) * cos(radianes)
!Escriba el rango por cada angulo
write (*,*) 'Teta =', teta, 'Grados; Rango =', rango, &
'metros'
!compare los rangos con el previo rango maximo. si este
!rango es mayor, guardelo al igual que el angulo en que ocurrio.
if ( rango> maxr ) then
maxr= rango
maxg= teta
end if
end do
!salte una linea, y entonces escriba el rango maximo y el angulo
!en que ocurrio.
write (*,*) ' '
write (*,*) 'Rango Maximo 2 =', maxr, ' a ',maxg,' grados'
!*************************************************************************
!*************************************************************************
!Ciclo para todos los angulos especificados
write (*,*) ' '
write (*,*) '**************************************************************'
write (*,*) " CORRIDA TRES, VELOCIDAD INICIAL DE 30 M/S"
write (*,*) '**************************************************************'
write (*,*) ' '
do teta=0,90
v0=30
!Calcular angulo en radianes
radianes=real (teta)*grados
!Calcular el rango en metros
rango = (-2.0*v0**2/g) * sin(radianes) * cos(radianes)
!Escriba el rango por cada angulo
write (*,*) 'Teta =', teta, 'Grados; Rango =', rango, &
'metros'
!compare los rangos con el previo rango maximo. si este
!rango es mayor, guardelo al igual que el angulo en que ocurrio.
if ( rango> maxr ) then
maxr= rango
maxg= teta
end if
end do
!salte una linea, y entonces escriba el rango maximo y el angulo
!en que ocurrio.
write (*,*) ' '
write (*,*) 'Rango Maximo 3 =', maxr, ' a ',maxg,' grados'
stop 'Ya compilo...'
end program ball

Con base en los resultados mostrados y calculados, se puede apreciar que sin
importar la velocidad de lanzamiento de la pelota el ángulo al que la pelota alcanza
la distancia máxima es y siempre será 45 grados; sin embargo, la distancia recorrida
si se verá afectada según la velocidad con la que se arroje la pelota al aire.
CONCLUSION

Los códigos de programas tienden a ser cada vez más complejos y para ello es
importante que nosotros como programadores entendamos cual es el proceso para
poder realizar códigos complejos que contengas las funciones que mencionamos
anteriormente, sentencias lógicas y ciclos de iteraciones donde el numero de
repeticiones que se debe de establecer en base a los criterios para resolver el
problema. Nosotros como ingenieros debemos de estar listos y tener los
conocimientos necesarios para poder llevar a cabo todas estas formas de
operaciones debido a que los problemas a nivel industrial requieren de todo ese tipo
de operaciones, tanto iterativas como lógicas y haciendo uso de los compiladores y
el lenguaje Fortran estos problemas y retos en la industria serán posibles de
superar.
BIBLIOGRAFIA

Fortran 95 / 2003 for Scientist and Engineers, Tercera Edición, Stephen J.


Chapman, Editorial McGraw – Hill, año 2007, 982 páginas.

Introducción a la Programación en Fortran 90 para Químicos, Prácticas. Primera


Edición. Pedro Alberto Enríquez Palma, María Pilar Puyuelo García – Universidad
de la Rioja, año 2007. 276 páginas.

También podría gustarte