La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Brazos Bloque IF Permite que se ejecuten una serie de tareas si y sólo si una expresión lógica es verdadera. IF(logical_exp) then sentencia1 sentencia2.

Presentaciones similares


Presentación del tema: "Brazos Bloque IF Permite que se ejecuten una serie de tareas si y sólo si una expresión lógica es verdadera. IF(logical_exp) then sentencia1 sentencia2."— Transcripción de la presentación:

1 Brazos Bloque IF Permite que se ejecuten una serie de tareas si y sólo si una expresión lógica es verdadera. IF(logical_exp) then sentencia1 sentencia2 Bloque1 … END IF Si la expresión lógica es verdad entonces se ejecuta el Bloque1. Si la expresión lógica es falsa se saltea todo el Bloque1 y ejecuta la sentencia posterior al END IF Exp. logica Sentencia 1 Sentencia 2 ….. falso verdad

2 EJ: Dado un numero A calcular su raíz cuadrada e imprimirlo Leo A A> 0 Imprimo: ‘No tiene solución’ B=sqrt(A) fin comienzo Imprimo : ‘ la raíz es ‘ B Diagrama de flujo no si

3 Las clausulas ELSE y ELSE IF Permiten sumar otros Bloques de tareas Exp. Lógica 2 Bloque 2 falso verdad Exp. Lógica 1 Bloque 1 verdad Bloque 3 falso

4 Ej: PROGRAM raices_de_la_ecuacion_cuadratica ! Proposito: calcular las raíces de la ecuación cuadrática y clasificar el !resultado según sea con 2 soluciones reales distintas, 2 soluciones reales !iguales o 2 soluciones complejas. ! IMPLICIT NONE IF(logical_exp 1) THEN sentencia1 sentencia2 Bloque1 … ELSE IF(logical_exp2) THEN sentencia3 sentencia4 Bloque2 … ELSE sentencia5 sentencia6 Bloque3 … END IF

5 REAL :: a !coef de x 2 REAL :: b !coef de x REAL :: c !coef indep REAL :: discrim !discriminante REAL :: part_real !parte real de la solucion REAL :: part_ima !parte imaginaria de la solucion REAL :: x1!sol. Real 1 REAL :: x2!sol. Real 2 ! WRITE(*,*) “Este programa resuelve la ec. a x 2 +b x +c =0” WRITE(*,*) “Entre los coeficientes a, b y c” READ(*,*) a, b, c WRITE(*,*) “ los coeficientes a, b y c son:”, a, b, c ! Calculo el discriminante Discrim=b**2 – 4.*a*c !clasifico la raiz según el discriminante IF(discrim>0) then x1=(-b+sqrt(discrim))/(2.*a) x2=(-b-sqrt(discrim))/(2.*a) WRITE(*,*) “ esta ecuación tiene 2 raíces reales” WRITE(*,*) “x1=“, x1 WRITE(*,*) “x2=“, x2

6 ELSE IF(discrim<0) then part_real=(-b)/(2.*a) part_ima=sqrt(abs(discrim))/(2.*a) WRITE(*,*) “ esta ecuación tiene 2 raíces complejas” WRITE(*,*) “x1=“,part_real,”+i”,part_ima WRITE(*,*) “x2=“, part_real,”-i”,part_ima ELSE IF(discrim==0) then x1=(-b)/(2.*a) WRITE(*,*) “ esta ecuación tiene 2 raíces reales iguales” WRITE(*,*) “x1=x2=“, x1 END IF END PROGRAM raices_de_la_ecuacion_cuadratica Verificación (prueba de escritorio) x 2 + 5x + 6 = 0 x1 = -2 y x2 = -3 x 2 + 4x + 4 = 0 x=2 x 2 + 2x + 5 =0 x= -1 ∓ i2 Realizar 3 ejecuciones para verificar los 3 casos

7 Es posible poner un nombre al bloque IF [nombre:] IF(logical_exp 1) THEN sentencia1 sentencia2 Bloque1 … ELSE IF(logical_exp2) THEN [nombre] sentencia3 sentencia4 Bloque2 … ELSE [nombre] sentencia5 sentencia6 Bloque3 … END IF [nombre] El nombre puede tener 31 caracteres de longitud y debe empezar con una letra. Si un nombre se le asigna al IF en el END IF también debe figurar ese nombre. En los ELSE el nombre es opcional. Este nombre es de utilidad en programas muy largos.

8 Los IF pueden ser anidados externo: IF (x > 0.) then …… interno: IF(y>0.) then …… ……. END IF interno ……… END IF externo Para solo una linea IF(exp_logica) sentencia La sentencia debe de ser ejecutable. Se usa cuando el el bloque tiene una sola sentencia.

9 [nombre:] SELECT CASE(exp_caso) case (caso seleccionado1) [ nombre] sentencia1 sentencia2 Bloque1 … case (caso seleccionado2) [ nombre] sentencia3 sentencia4 Bloque2 … case default [ nombre] sentencian sentencian+1 Bloquen … END select [nombre]

10 Caso n Bloque n falso verdad Caso 2 Bloque 2 verdad Bloque falso Caso 1 Bloque 1 verdad Ej: INTEGER :: temp_c Temp: SELECT CASE (temp_c) CASE(:-1) WRITE(*,*) “Bajo cero ” CASE(0) WRITE(*,*) “congelación” CASE(1:20) WRITE(*,*) “frio a fresco” CASE(21:33) WRITE(*,*) “cálido” CASE(34:) WRITE(*,*) “bochornoso” END SELECT temp

11


Descargar ppt "Brazos Bloque IF Permite que se ejecuten una serie de tareas si y sólo si una expresión lógica es verdadera. IF(logical_exp) then sentencia1 sentencia2."

Presentaciones similares


Anuncios Google