Diseño de diagramación Diagrama: es una representación gráfica del flujo información de y el proceso de ejecución del programa. comienzo A Plateo del problema en forma clara y precisa Traducción a lenguaje fuente Identificar las variables de entrada y salida Verificación (prueba de escritorio) fin Tareas para resolver el problema (Algoritmo) A Diagrama de Bloque Diagrama de flujo: se utiliza para describir gráficamente un algoritmo Indica comienzo o fin del algoritmo Indican el flujo Asignación de l resultado a una variable Indican continuación Operaciones de entrada y salida Indican un proceso iterativo o un proceso reiterativo Indica elección entre 2 opciones Hace referencia a una “subrutina” EJ: Dado un numero A calcular su raíz cuadrada e imprimirlo Diagrama de flujo comienzo Leo A no A> 0 Imprimo: ‘No tiene solución’ si B=sqrt(A) Imprimo : ‘ la raíz es ‘ B fin Constantes y variables lógicas Sólo tienen 2 opciones: verdadero o falso Las contantes tienen la siguiente forma: .true. .false. Las variables lógicas deben ser declaradas se escriben antes de las sentencias ejecutables: Logical : : var1, var2, var3 Un operador lógico opera sobre datos numéricos, alfabéticos o lógicos Operadores F90 Operadores F anteriores significado == .EQ. Igual a /= .NE. distinto > .GT. Mayor que >= .GE. Mayor o igual < .LT. Menor que <= .LE. Menor o igual Ej Operación Resultado 3<4 .true. 3<=4 .true. 3==4 .false. 3>4 .false. 4<=4 .true. ‘A’ <‘B’ .true. En los caracteres alfabéticos se considera orden alfabético Si comparo entero con real, el entero es convertido a real automáticamente. 4.==4 .true. Combinaciones lógicas operación Función Resultado y definición l1.AND.l2 Logical AND Verdadero si l1 y l2 verdaderos l1.OR. L2 Logica OR Verdad si l1 o l2 verdad o l1 y l2 son verdad l1.EQV. l2 Logical EQV Verdad si l1 y l2 verdad o l1 y l2 son falsos l1.NEQV. L2 Logical NEQV Verdad si l1 verdad y l2 falso o lo contrario .NOT. L1 Logical NOT Verdad si l1 es falso y falso si es verdad l1 l2 l1.AND.l2 .FALSE. .FALSE. .FALSE. .FALSE. .TRUE. .FALSE. .FALSE. .TRUE. .FALSE. .TRUE. .FALSE. .TRUE. .TRUE. .FALSE. .FALSE. .TRUE. .FALSE. .TRUE. .TRUE. .TRUE. .TRUE. .TRUE. .TRUE. .FALSE. L1.OR.l2 L1.EQV.l2 l1 .NOT. l1 .FALSE. .TRUE. .TRUE. .FALSE. L1.NEQV.l2 Ej: Diseñar y escribir un programa para resolver las raíces de una ecuación cuadrática distinguiendo a que tipo pertenecen. 1 Problema: Resolver la ec. Y ver si el resultado tiene 2 raíces reales distintas, 2 raíces reales igual es o raíces complejas 2 Definir entradas y salidas ax2+bx+c=0 los datos de entrada son los coeficientes a, b y c La salida son las raíces del la ecuación distinguiendo su tipo. 3 El algoritmo: comienzo Lectura de a,b y c b**2-4*a*c > 0 si Imprimir: La ec tiene 2 raíces Distintas reales b**2-4*a*c > 0 si Imprimir: La ec tiene 2 raíces Distintas complejas Imprimir: La ec tiene 2 raíces iguales fin