Algoritmo if Then

1. Hacer un algoritmo que lea los nombres y edades de dos personas e imprima cual de ellas tiene más edad. 1. Inicio 2.

Views 408 Downloads 4 File size 140KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

1. Hacer un algoritmo que lea los nombres y edades de dos personas e imprima cual de ellas tiene más edad. 1. Inicio 2. leer nombre1 y edad1 3. leer nombre2 y edad2 4. comparar edad1 con edad2: 5. Si edad1 > edad2 imprimir ( nombre1, ” es mayor “) 6. si edad2 > edad1 imprimir ( nombre2, ” es mayor”) 7. Si edad1 = edad2 imprimir (”Edades iguales”) 8. Fin 2. En una Granja existen N conejos, N1 blancos y N2 negros. Se venden X negros y Y blancos. Hacer un algoritmo que: a) Imprima la cantidad de conejos vendida b) Si P1 es el precio de venta de los conejos blancos y P2 es el precio de venta de los conejos negros, imprima el monto total de la venta. c) Imprima el color de los conejos que se vendieron mas. Solución: 1. Inicio 2. Leer datos: N, N1,N2,X,Y,P1,P2 3. Calcular la cantidad de conejos vendida: CCV = X + Y 4. Imprimir la cantidad de conejos vendida: Imprimir CCV 5. Calcular el monto de la venta: MVenta = X * P2 + Y * P1 6. Imprimir monto de la venta: Imprimir MVenta 7. Si X > Y entonces Imprimir “Se vendieron mas conejos negros” en otro caso Imprimir “Se vendieron mas conejos blancos” 8. Fin 3. Elaborar un algoritmo que lea el importe bruto de una factura y determine el importe neto según los siguientes criterios: · Importe bruto menor de 20.000 -> sin descuento · Importe bruto mayor de 20.000 -> 15% de descuento

1. Inicio 2. Leer importeb 3. Calcular descuento: Si importeb >= 20000 entonces descuento =importeb * 0.15; en otro caso descuento = 0 finsi 4. Calcular monto total de la factura: total:=importe – descuento 5. Escribir total 6. fin 4. Un decreto presidencial permite el aumento del 10& a aquellos trabajadores que ganen el sueldo mínimo oficial (Sueldomo). Hacer un algoritmo que lea el sueldo de un trabajador e imprima el sueldo a devengar, después del decreto. Inicio Leer sueldot Si sueldot = sueldomo entonces sueldot = sueldot + (sueldomo*0,10) Imprimir sueldo Fin

Sentencias de control en Fortran Además de las sentencias simples, que son ejecutadas en secuencia, existen sentencias de control que permiten modificar el flujo del programa introduciendo ciclos y condicionales. Una secuencia de control incluye otra sentencia dentro de sí. Por ejemplo, una sentencia condicional incluye la sentencia que puede o no ejecutarse dependiendo de una condición. Al escribir las sentencias que van dentro de una sentencia de control, se acostumbra a comenzar el renglón varias columnas más adelante. Esto se llama indentación, y es crucial para entender programas complejos. Para indentar, lo típico es usar cuatro espacios. Todos los ejemplos en esta sección están debidamente indentados.

Condicional if-then

La sentencia if-then (en español: «si-entonces») ejecuta instrucciones sólo si se cumple una condición. Si la condición es falsa, no se hace nada. La sintaxis es la siguiente: if (condición) then ! qué hacer cuando la condición es verdadera end if

Por ejemplo, el siguente programa felicita a alguien que aprobó la asignatura: program aprobado implicit none integer :: nota print *, 'Que nota obtuvo: ' read *, nota if (nota >= 55) then print *, 'Felicitaciones' end if end program aprobado

Condicional if-then-else La sentencia if-then-else («si-entonces-o-si-no») decide entre dos secuencias de instrucciones a ejecutar dependiendo si una condición es verdadera o falsa. La sintaxis es la siguiente: if (condición) then ! qué hacer cuando la condición es verdadera else ! qué hacer cuando la condición es falsa end if

Por ejemplo, el siguiente programa recibe como entrada un año e indica si es bisiesto o no: program bisiesto implicit none integer :: year print *, 'Ingrese el año: ' read *, year if (mod(year, 4) == 0 .and. (mod(year, 100) /= 0) .or. &

(mod(year, 400) == 0)) then print *, 'El año ', year, ' es bisiesto' else print *, 'El año ', year, ' no es bisiesto' end if end program bisiesto

Condicional select-case La sentencia select-case («seleccionar-caso») decide qué instrucciones ejecutar dependiendo del valor de una expresión. Es una manera abreviada de escribir variosifs uno después del otro. La sintaxis es la siguiente: select case (expresión) case (valor1) ! qué hacer cuando expresión == valor1 case (valor2) ! qué hacer cuando expresión == valor2 ... case default ! qué hacer cuando no se cumplió ! ninguno de los caso anteriores end select

Por ejemplo, el siguiente programa recibe un número entero como entrada e indica si es par o impar: program par implicit none integer :: n print *, 'Ingrese un numero' read *, n select case (mod(n, 2)) case (0) print *, 'El numero es par' case (1) print *, 'El numero es impar' end select end program par

En un mismo caso es posible poner varios valores separados por comas. Por ejemplo, el siguiente programa recibe como entrada un caracter, y lo clasifica como vocal, consonante, dígito o símbolo: program clasifica_letras implicit none character :: c print *, 'Ingrese un caracter' read *, c select case (c) case ('a', 'e', 'i', 'o', 'u') print *, c, ' es una vocal minuscula' case ('A', 'E', 'I', 'O', 'U') print *, c, ' es una vocal mayuscula' case ('b', 'c', 'd', 'f', 'g', 'h', 'j', & 'k', 'l', 'm', 'n', 'p', 'q', 'r', & 's', 't', 'v', 'w', 'x', 'y', 'z') print *, c, ' es una consonante minuscula' case ('B', 'C', 'D', 'F', 'G', 'H', 'J', & 'K', 'L', 'M', 'N', 'P', 'Q', 'R', & 'S', 'T', 'V', 'W', 'X', 'Y', 'Z') print *, c, ' es una consonante mayuscula' case ('0', '1', '2', '3', '4', & '5', '6', '7', '8', '9') print *, c, ' es un digito' case default print *, c, ' es un simbolo' end select end program clasifica_letras

Ciclo do-while El ciclo do-while («hacer mientras») ejecuta una secuencia de instrucciones mientras una condición sea verdadera. La sintaxis es: do while (condición) ! qué hacer mientras la condición se cumple end do

Por ejemplo, el siguiente código toma un número, y lo eleva al cuadrado hasta pasar de mil:

do while (n < 1000) n = n ** 2 end do

En general, el ciclo do while se utiliza cuando no se puede saber de antemano cuántas veces se ejecutará un ciclo, pero sí qué es lo que tiene que ocurrir para que se termine. La condición es evaluada al comienzo de cada iteración. Si la condición deja de ser verdadera en medio de la iteración, el ciclo no termina, sino que continúa hasta el final. Por ejemplo, el siguiente ciclo se ejecuta tres veces, a pesar de que la condición siempre deja de cumplirse después de la primera asignación: n=2 do while (n < 10) n=n*6 n=n-9 end do

Ciclo do El ciclo do («hacer») ejecuta una secuencia de instrucciones un número determinado de veces. Para llevar la cuenta, utiliza una variable de control que toma distintos valores en cada iteración. La sintaxis es: do variable = inicio, final ! qué hacer para cada valor de la variable de control end do

En la primera iteración, la variable de control toma el valor inicio. Al final de cada iteración, el valor de la variable de control aumenta automáticamente. Cuando se pasa de largo del valor final, el ciclo termina. Por ejemplo, el siguiente programa muestra los cubos de los números del 1 al 20: do i = 1, 20 print *, i, i ** 3 end do

Si el valor final es menor al inicial, el ciclo nunca es ejecutado. Además, el ciclo do puede recibir un tercer valor que representa el incremento de la variable de control, es decir, en cuánto cambiará su valor después de cada iteración. Por ejemplo, el siguiente programa muestra los cuadrados de los números imparesmenores que 100:

do i = 1, 100, 2 print *, i, sqrt(real(i)) end do

También es posible hacer ciclos que van hacia atrás: do i = 10, 1, -1 print *, i end do print *, 'Feliz an~o nuevo!'

Tanto la variable de control como los valores inicial, final y de incremento deben ser de tipo entero. La variable de control es una variable como cualquier otra, y debe ser declarada apropiadamente al comienzo del programa. Un ciclo do es una manera abreviada de escribir un tipo especial de ciclo do while. Los siguientes dos ciclos son equivalentes (cuando inc es positivo): do i = inicio, fin, inc print *, i end do i = inicio do while (i