LOGICA COMPUTACIONAL Mapa inicial: una estructura lógica de relación con 1 o más elementos por medio de ideas, definición y conceptos Reglas de elaboración de un mapa mental Contar con elemento central Llegar desde cualquier rama del mapa al elemento Ideas relacionadas con el elemento central Algoritmo: Serie de pasos para llegar a un problema Este surge en el año de 1626 de un árabe llamado Knowoski (que quiere decir algoritmo), aplicando a las estructuras matemáticas a través de signo Numero Romano I. V, X, L, M, C. Realizando estadísticas para aplicar una serie de pasos para la solución de un problema Método: Forma o técnica ordenada para cualquier tipo de cosa (algoritmo) previo a la programación SOLUCIÓN DEL PROBLEMA 1. Análisis del problema Descomposición de los elementos que forman un todo 2. Diseño del algoritmo Pasos a seguir a un pseudocódigo 3. Implementación de la solución Estructura PASOS PARA LA SOLUCION DE UN PROBLEMA 1) Análisis del problema ¿Qué quiero obtener? (Producto) salida A partir de que lo voy a obtener “entradas” Como lo voy a obtener “proceso” (datos) UAL – Unidad Aritmética Lógica UC – Unidad de Control UES – Unidad de Entrada y Salida E/ S/ PROCESO UES UAL UC 2) Diseño del algoritmo Pasos a seguir “Divide y vencerás” Módulos y submodulos Elemento de mayor peso dentro de la estructura del algoritmo Parte del modulo con la característica de que no destruye el objetivo original del algoritmo 3) Implementación del algoritmo Ponerlo a funcionar la solución del problema dado 1. Codificación y transcribir el algoritmo a un lenguaje de programación Entendible para la computadora Clasificación de Leguajes de Programación Nivel Bajo 40’s Maquina o ensamblador 0/1 Mnemónicos abreviación de palabra completa MS-DOS Nivel Medio 60’s COBOL- matemáticos FORTRAN – admón. PASCAL – cálculos recursivo repetitivo Nivel Alto 80’s VISUAL BASIC HTML JAVA C++ Ambiente gráfico amigable al usuario Encaminados al proceso de la maquina rendimiento de equipo Nivel de proceso tiempo 2. Compilación Revisión de la sintaxis y la estructura de la codificación realizada de acuerdo al lenguaje de programación usada, comillas, llaves, corchetes y comas etc. 3. Errores y depuración Errores de compilación Sintaxis de estructuras – puntuación Declaración de variables – asignación de variables a valores Errores de ejecución – divisiones entre 0 Errores de lógica – errores de diseño del algoritmo que dan una salida errónea cuando acomodamos mal un código. 4. Ejecutar Correr el programa implementación procesar el algoritmo codificado, verificando sin errores ***TIPO DE DATOS La clasificación de datos en función de su naturaleza Numéricos: Enteros 10, 20, 100 Carácter: Flotantes 2.3, 53.8 Texto A, B, C... Lógico: 0, 1 AND, OR, NOT Comparadores Exponenciales 10E+8, 23, 200E-20 String Cadena “HOLA” Alfanuméricos correo electrónico Caracteres 4 # Identificador: el nombre asociado a una dirección de memoria que alude a un objeto de la estructura de un programa. Constante Que tiene un valor fijo asignado durante todo el proceso del programa EJEMPLO una regla, IVA. Variable Valor que se da durante el proceso del programa y que cambia durante el mismo EJEMPLO el descuento flotante, el sueldo de un empleado TIPO DE ASIGNACION: El dar valores a las variables y constantes definidas en el programa Constante Variable IVA SUELDO Valor 0.15 2000 Expresión Conjunto de datos vendidos por operadores aritméticos y/o lógicos Aritméticos: +, -, /, *, exp. Lógicos: AND, OR, NOT. TIPOS DE ALAMACENAMIENTO: Asignación de variables Escritura s/ (variables o constantes “texto”) Constantes: Escritura E/ Lectura: Leer E/ Lectura (variables o constantes) EJEMPLO DE: Algoritmo “HOLA MUNDO” Escribir (“hola_mundo”) FIN ALGORITMOS DE INTERACCION: Solicitar datos de entrada para realizar un proceso. Ej.: Dame (variable, constante, “cadena de texto”) Algoritmo de suma de dos variables: definir variables Variables: valor1, valor2, total. Solicitar valor DAME (valor1, “el primer numero a sumar”) DAME (valor2, “el segundo numero a sumar”) TOTAL valor1 + valor2 ESCRIBIR (mi total con “resultado de la suma”) FIN Prueba de escritorio sobre el algoritmo: comprobación de que se realizo bien el algoritmo valor1 (numérico), valor2 (numérico), total (numérico) valor1 = 10 valor2 = 20 total = 10 + 20 resultado de la suma 30 Algoritmo de calculo de la hipotenusa de un triangulo rectángulo Variable: lado_a (numérico), lado_b (numérico), lado_c (numérico) Dame (lado_a “el valor del lado a del triangulo”) Dame (lado_b “el valor del lado b del triangulo”) Lado_c (lado_a**2 + lado_b**2) Escribir (lado_c, “la hipotenusa del triangulo del trabajo es”) FIN Prueba de escritorio Lado a 7 Lado b 10 Hipotenusa 7** + 10** Hipotenusa 49 + 100 Lado_c 149 La hipotenusa del triangulo es: 149 Algoritmo del calculo de pago de artículos escolares contemplando descuento del 10% fijo en reglas y el pago de IVA (al menos 2 artículos) Variables: regla (txt), goma (txt), sacapuntas (txt), total, subtotal, subtotal_regla Constantes: precio_regla (float), precio_pluma (float), precio_goma (float), precio_regla (float) Dame (regla”10%_de_descento”) Dame (regla “el primer numero a sumar”) Dame (goma “el segundo numero a sumar”) Dame (pluma “el tercer numero a sumar”) Subtotal_regla (regla * precio_regla)-((regla * precio_regla)*.10) Subtotal subtotal_regla + goma * precio_goma + pluma * precio_pluma) Total subtotal + (subtotal*.15) Escribir (“total:” total”) FIN EXPRESIONES LOGICAS Conjunto de datos unido por operadores lógicos: Menor que >, mayor que <, menor igual <=, mayor igual =>, diferente <> Orden de prioridad de operadores lógicos/aritméticos 1. 2. 3. 4. () *, /, ** +, Operadores Lógicos Ej.: A=1 B=2 C=3 Suma = 6 IF SUMA <= (( a2 + b2 * c ) – ( (b **2 * c ) / 2 ) ) (1 + 4 * 3) – (4 * 3) / 2 1 + 12 - 12 / 2 13 6 7 6<=7 DIAGRAMA DE FLUJO Representación gráfica de un algoritmo con la solución de un problema dado. PSEUDOCODIGO: Solución Inicial a un problema usando algoritmos con las ordenes, pasos a seguir por la computadora, en un lenguaje a nivel usuario; y posteriormente certificado de codificado de un lenguaje de programación. SIMBOLOGIA 1. Inicio o fin 2. Impresión 3. Decisión 4. Conector 5. Proceso 6. Flujo 7. Conector Interno 8. Entrada de datos 9. Salida de datos a pantalla Ej.: INICIO Variables: Regla, goma, sacapuntas, total Constantes: precio_regla, precio_pluma, precio_goma, IVA, descuento Precio_regla Precio_pluma Precio_goma Descuento 1 10 4 5 10 1 Regla, Goma, Pluma Subtotal (regla * precio_regla)-((regla * precio_regla) * .10) Total : total Total : total FIN VENTAJAS Nos permite con facilidad seguir el flujo de información La comunicación con el usuario se favorece El análisis de mi problema se vuelve sencillo DESVENTAJAS El uso encadenado de decisiones que hace compleja la interpretación PSEUDOCODIGO: Sueldo de un empleado días trabajados * salario diario 40 días bono de 1000 INICIO Variables: dias_trabajados, salario_diario, sueldo Constantes: Bono 1 1 días trabajados salario diario Sueldo = (días_trabajados * salario_diario) Días trabajados >40 Sueldo = sueldo + bono Sueldo: sueldo FIN PSEUDOCODIGO DIAGRAMAS DE NAISSEN SCHEIDERMAN Herramientas de representación gráfica de programación estructurada que contienen la representación gráfica de los diagramas de flujo y la lingüística del pseudocódigo. Se representan por cajas ACCION 1 ACCION 2 ACCION 3 ………… ACCION N donde internamente se manejan diferentes estructuras. Estructura Secuencial: Acciones secuénciales sin ningún tipo de decisión o salto. Ej.: Variable: Nombre (txt), promedio (float), matemáticas (float), español (float), ed.física (float), historia (float), geografía (float), civismo (float), artística (float), total (float) Constante: Total_materias (num.) Solicitar variables: español, ed.fisica, historia, geografía, civismo, artística, nombre Total_materias Total 7 español + ed.fisica + historia + geografía + civismo + artística + matemáticas Promedio total / total_materias Imprimir: alumno, promedio SI CONDICION Estructura selectiva simple: IF (si) --- THEN (entonces) ACCION Problema: Debo Facturar productos comestyibles aplicando IVA y un descuento del 8%, siempre que el total sea mayor a $ 1,000 Variables: producto1 (float), producto2 (float), producto3 (float), total (float), subtotal (float) Constantes: IVA (float), descuento (float) Dame (producto1, “dame el primer precio a sumar”) Dame (producto2, “dame el segundo precio a sumar”) Dame (producto3, “dame el tercer precio a sumar”) Subtotal producto1 * precio_producto1 + producto2 * precio_producto2 + producto3 * precio_producto3 Dame (total,”precio total de los articulos”) Total si_<1000_total Dame (descuento,”descuento de .08%”) Total total-(total-.08%) Subtotal subtotal+ (subtotal * .15) Escribir (total:”total”) DIAGRAMA DE NAISSEN – SCHEIDERMAN CON ESTRUCTURA COMPUESTA IF TH E N CONDICION SI NO ACCION “A” ACCION “B” ELSE END I F IF condición THEN Acción “A” ELSE Acción “B” END IF DIAGRAMA DE FLUJO IF TOTAL > 1000 THEN TOTAL = TOTAL – (TOTAL* .08) ELSE TOTAL = TOTAL – (TOTAL * .06) END IF Total > 1000 Total PSEUDOCODIGO 1. Constantes 2. Variables 3. Solicitud de valores 4. Cálculos 5. Si total > 1000 entonces: total con descuento 8% en caso contrario total con descuento del 6% 6. Calculo total global con IVA NAISSEN SCHEIDERMAN TOTAL > 1000 SI NO Total total +total total + (total * .08) (total * .06) total-(total * .06) Total total-(total * .0