LOGICA COMPUTACIONAL CONCEPTOS BASICOS CONCEPTOS 1. 2. 3. 4. 5. 6. 7. Informática Computador Hardware Software ¿Cómo funciona un PC? Programa Pasos para solucionar un problema 7.1. Definición del problema 7.2. Análisis 7.3. Selección de la mejor alternativa 7.4. Identificación de variables y constantes 7.5. Planificación del programa 7.6. Algoritmo 7.7. Diagrama de flujo 7.8. Codificación 7.9. Ejecución y verificación de errores 7.10. Pruebas 7.11. Documentación 8. Variables 9. Constantes 9.1 Constantes literales 9.2 Constantes simbólicas 10. Operadores 11. Enunciados 11.1 Enunciados de asignación 11.2 Enunciados literales 12. Comentarios del programa 13. Llaves 14. Primitivas básicas 15. Funciones y operaciones básicas 1. Informática Conjunto de conocimientos científicos y de técnicas que hacen posible el tratamiento automático de la información por medio de computadoras. La informática combina los aspectos teóricos y prácticos de la ingeniería, electrónica, teoría de la información, matemática, lógica y comportamiento humano. Los aspectos de la informática cubren desde la programación y la arquitectura informática hasta la inteligencia artificial y la robótica. 2. Computador Dispositivo electrónico capaz de recibir un conjunto de instrucciones y ejecutarlas realizando cálculos sobre los datos numéricos, o bien compilando y correlacionando otros tipos de información. 3. Hardware Todo aquel componente de la computadora que es duro o también el soporte físico del cual se compone una computadora, por ejemplo: CPU.-Es aquella parte de la computadora que lleva a cabo todas las funciones de la computadora de forma lógica y cronológica. Dispositivos de entrada.-Son todos aquellos dispositivos que introducen datos a la computadora como: teclado, mouse, lápiz óptico, scanner, etc. Dispositivos de salida.-Son aquellos componentes de la computadora que sirven para mostrar los resultados del proceso de los datos tales como: monitor, impresora, plotter. 4. Software Son todos aquellos que hacen que la computadora funcione, son intangibles y normalmente los encontramos almacenados en discos, por ejemplo los programas de aplicación, lenguajes de programación, sistemas operativos, etc. 5. ¿Cómo funciona un PC? Un sistema es un conjunto de componentes que interaccionan entre sí para lograr un objetivo común, tal es el caso de una computadora. ENTRADAS Materiales Recursos Humans. Información PROCESO Máquina Individuo Computadora Producto Químico SALIDA Productos Servicios Información Entradas: Las entradas son los ingresos del sistema que pueden ser recursos materiales, recursos humanos o información. Las entradas constituyen la fuerza de arranque que suministra al sistema sus necesidades operativas. Proceso: El proceso es lo que transforma una entrada en salida, como tal puede ser una máquina, un individuo, una computadora, un producto químico, una tarea realizada por un miembro de la organización, etc. En la transformación de entradas en salidas debemos saber siempre como se efectúa esa transformación. Salidas: Las salidas de los sistemas son los resultados que se obtienen de procesar las entradas. Al igual que las entradas estas pueden adoptar la forma de productos, servicios e información. Las mismas son el resultado del funcionamiento del sistema. Las salidas de un sistema se convierte en entrada de otro, que la procesará para convertirla en otra salida, repitiéndose este ciclo indefinidamente. 6. Programa Conjunto estructurado de órdenes o instrucciones de trabajo que guían, paso a paso, el funcionamiento de la máquina. Los programas son parte del software del sistema de información que hará que los datos de entrada introducidos sean procesados correctamente y generen los resultados que se esperan. Pasos para la solución de un problema Para realizar un programa hay que proponer primeramente una solución a un problema, es decir, pensar en una estrategia para solucionarlo. Posteriormente se pasa al análisis en donde se averigua que tipo de problema es y como le vamos a dar solución, así como seleccionar el lenguaje en el que se va a programar. 7. Pasos para solucionar un problema a. Definición del problema: Aquí se identifica el tipo de problema y el área a la que pertenece b. Análisis: Se piensa también en posibles soluciones, con sus tiempos establecidos. c. Selección de la mejor alternativa d. Identificación de variables y constantes: se identifican, ya que son las tres cosas que nos pueden cambiar al problema o alterar su curso. e. Planificación del programa: se elige el lenguaje de programación a trabajar dependiendo de la solución y se crea el plan de trabajo el cual contiene la búsqueda bibliografía del problema y el cronograma de cada una de las etapas de los que consta la solución al problema. f. Algoritmo: desarrollo de la secuencia lógica de pasos para la solución del problema. Esto significa que si, por ejemplo, nos asignan una tarea desconocida pero con un manual de procedimientos en cual se entregan detallados los pasos a seguir en un orden específico y las alternativas existentes, podremos garantizar la entrega de la tarea asignada a satisfacción. (en este paso también involucra a los diagramas de flujo). g. Diagrama de flujo: seguir los pasos del Algoritmo chequeando que el problema se resuelva correctamente. h. Codificación: conversión del Algoritmo en un programa escribiéndolo en un lenguaje de programación lo más eficientemente posible. (NOTA: nadie programa igual, ya que cada uno de nosotros no razona igual y el proceso de llegar a una solución depende de este proceso de razonar). i. Ejecución y verificación de errores: introducir el programa en la memoria, ejecutarlo y probar sus resultados, corrigiendo los errores hasta su punto final de tal forma que se obtenga la solución a su problema j. Pruebas: Se tiene la plena seguridad de que el problema quedo resuelto ya que se agotaron todas las pruebas posibles de que el programa no falle al introducir ciertos valores o rangos de valores. k. Documentación: mantenimiento y creación de los documentos descriptivos como el manual del programador y manual del usuario. Memoria, variables y constantes (ver más en pág. 36 a 47) 8. Variables Una variable es una posición de almacenamiento de datos en la memoria de la computadora que tiene un nombre. Al usar un nombre de variable en el programa de hecho se está haciendo referencia al dato que se encuentra guardado ahí. Permite almacenar resultados de cálculos intermedios, valores necesarios para elaborar procesos cíclicos y resultados finales o de salida 9. Constantes De manera similar a las variables, una constante es una posición de almacenamiento de datos usada por el programa. A diferencia de la variable, el valor guardado en una constante no puede ser cambiado durante la ejecución del programa. Comúnmente se usan dos tipos de constantes: 9.2 Constantes literales: Es un valor que es tecleado directamente en el código fuente cada vez que se necesita. Ej: int contador=20; flota tasa_impuesto=0.28; 9.3 Constantes Simbólicas: Es una constante que está representada por un nombre (símbolo) en el programa. De manera similar a la constante literal no puede cambiar. Cada vez que se necesite el valor de la constante en el programa se usa su nombre, como si se usara un nombre de variable. Ej: Circunferencia = 3.14 * (2*radio) area = 3.14 (radio) * (radio) Toda variable está definida por su nombre, tipo y valor. NOMBRE: El nombre esta dado por una secuencia de caracteres, normalmente letras y números que permiten identificar la variable. Es recomendable utilizar como nombre de una variable un término nemotécnico que nos permita recordar rápidamente su significado. Si deseamos leer dos números podríamos nombrarlos num1 y num2 ó n1 y n2 TIPO: El tipo permite definir lo que es correcto almacenar en la variable. Su clasificación depende del lenguaje a utilizar. Pero generalmente se presentan dos grandes tipos: - Numéricos: Una variable numérica solo almacenará números (enteros, con decimales (reales ó float), positivos y negativos). - Alfanuméricos: Una variable alfanumérica almacena cualquier secuencia de caracteres (nombres de personas, direcciones, números telefónicos, etc). Si el número 1234 se almacena en una variable alfanumérica queda inhabilitado para efectuar operaciones aritméticas. VALOR: Hace referencia a lo que se desea almacenar en la variable. Ej: Si N1 y N2 son dos variables de tipo numérico y asignamos los valores de -2 y 45 respectivamente, tendremos: * Nombre de la variable: N1 * Nombre de la variable: N2 Tipo: Tipo: Numérica Numérica Valor: -2 Valor: 45 Ej: Si NOMB y EDAD son dos variables para almacenar el nombre y edad de una persona (LOPEZ GABRIEL y 24), tendremos: * Nombre de la variable: NOMB * Nombre de la variable: EDAD 10. Operadores Tipo: Tipo: AlfaNumérica Numérica Valor: LOPEZ GABRIEL Valor: 24 Un operador es un símbolo que le da instrucciones al PC para que ejecute alguna operación o acción, en uno o más operandos. Pág.58, 59. Operador Suma Resta Multiplicación División Módulo Operadores Matemáticos Acción Suma sus dos operados Resta el segundo operando del primero Multiplica sus dos operandos Divide el primer operando entre el segundo Da el residuo cuando el primer operando es dividido entre el segundo Precedencia de los operadores matemáticos. OPERADORES PRECEDENCIA RELATIVA ++ -- () 1 */% 2 +3 Símbolo + * / % OPERADOR Igual Mayor que Menor que Mayor que o igual a Menor que o igual a Diferente Operadores relacionales SIMBOLO == > < >= <= != Ejemplo x+y x–y x*y x/y x%y EJEMPLO X == Y X > Y X < Y X >= Y X <= Y X != Y NOTA: NO SE DEBE CONFUNDIR EL OPERADOR RELACIONAL == CON EL OPERADOR DE ASIGNACIÓN = Los operadores tienen un orden de cálculo denominado “prioridad jerárquica”, esto hace que el resultado final dependa de la forma como estén colocados los operadores aritméticos. La prioridad sigue éste orden: (),/ ó *, + ó -. De éste modo se evaluará inicialmente todos los paréntesis de una expresión, seguidamente se resolverán las multiplicaciones y divisiones, tomándolas de izquierda a derecha y finalmente las sumas y restas en igual sentido. Si una expresión presenta un operador en más de una vez, se tomará de izquierda aderecha. Una ASIGNACIÓN permite almacenar una variable, una constante o el resultado de una EXPRESIÓN en una VARIABLE. El nombre de la variable se escribe a la izquierda del símbolo = ó y expresión, constante o variable a la derecha del mismo. Ej: V =D / T V: VARIABLE que almacena el resultado de dividir D entre T DT: Expresión X 2 X: VARIABLE que almacena el valor de la CONSTANTE 2 Y =Z Y: VARIABLE que almacena el valor de la VARIABLE Z El símbolo =, significa ASIGNAR, ALMACENAR, GUARDAR. No tiene el significado matemático. Es por ello que en algunos casos es conveniente utilizar el símbolo para indicar asignación. El primer ejemplo significa debe calcular D/T y éste resultado almacenarlo con el nombre V. El segundo ejemplo almacena 2 bajo el nombre de X. El tercer ejemplo almacena en Y el valor guardado bajo el nombre de Z, esto significa que tanto Y como Z tienen igual valor almacenado. Ej: si A (C/A-1 + (A-2))/3*C. El orden de la operación será: 01. Evalúa (A-2) 02. Evalúa (C/A) 03. Evalúa 02 – 1 04. Evalúa 03 + 01 05. Evalúa 04 / 3 06. Evalúa 05 * C 07. almacena el resultado de 06 en A EjercicioS: 1. D = A/B/C/D+5 2. A = 8+5*(5-L)*(A/2) 11.Enunciados Un enunciado es una indicación completa que le da instrucciones a la computadora para ejecutar alguna tarea. Por lo general los enunciados van cada uno en una línea, aunque algunos pueden extenderse a varias línaes. Enunciados de asignación: Le da instrucciones a la PC para que realice operaciones y asigne el resultado a la una variable. Ej: x = 2 + 3 Enunciados literales: Son cadenas que se encuentran entre comillas, y son interpretadas literalmente por el compilador. Ej: print (“Hola”); Print (“World”); Por lo general los enunciados despliegas mensajes o información en la pantalla, leen entrada del teclado, ejecutan operaciones matemáticas, llaman funciones, leen archivos de disco y hacen todas las otras operaciones que un programa necesita ejecutar. El print puede desplegar un mensaje como tal o un mensaje y el valor de una o más variables del programa. 12. Comentarios del programa Cualquier parte de un programa que empiece con /* y termine con */ es llamado un comentario. El compilador ignora todos los comentarios y, por lo tanto, no tienen ningún efecto sobre la manera en que funciona el programa. Se puede poner lo que quiera en un comentario. Puede ocupar varias líneas. Ej: 1. /* Un comentario de una sola línea */ 2. /* Un comentario de varias lineas */ 3. x = y + j /* Aquí estamos sumando dos números y la respuesta la asignamos a la variable x */ NOTA: DEBE AÑADIR MUCHOS COMENTARIOS AL CÓDIGO FUENTE DEL PROGRAMA, EN ESPECIAL CERCA DE LOS ENUNCIADOS O FUNCIONES QUE PUEDEN SER NO MUY CLARAS PARA UNO O PARA QUIEN TENGA QUE MODIFICARLAS POSTERIORMENTE. 13.Llaves Se usan llaves ({}) para agrupar la líneas de programa. Un grupo de uno o más enunciados encerrados dentro de llaves es llamado bloque. 14. Primitivas básicas Los algoritmos fundamentalmente están basados en la lectura, escritura y procesamiento (operaciones) de datos para producir información, éstas tareas se realizan a través de las instrucciones básicas. RESUMEN DE PRIMITIVAS BÁSICAS Instrucción Representación en pseudocódigo Representación en programación Lectura Lea (x) Read (x); Lee un dato del teclado y lo almacena en la variable x. Al terminar la lectura, el cursor queda en la misma línea Escritura Escriba Print (‘OK’,x); Asignación xy X=100; x 100 x=100; Escribe en pantalla los datos que están entre paréntesis. Si el dato está encerrado entre comillas (‘OK’), escribe los caracteres que están entre las comillas. Si no, escribe el valor que esté almacenado en la variable indicada (x). Al terminar la escritura, el cursor queda en la misma línea. -Son los llamados enunciados literales Asigna a la variable el valor que está en la variable y. x y y deben der del mismo tipo. Asigna a la variable el valor 100. En este caso, x debe ser una variable numérica. Decisión si (x > y) If (x > y) La primitiva de decisión se encarga de hacer comparaciones o condiciones, donde existen 2 posibles salidas (verdadero ó falso) – se cumple o no se cumple la condición Escritura por impresora Escriba Print(`la respuesta es:`); Se encarga de simular una respuesta por medio impreso. Por lo general se utiliza para la impresión de resultados Inicio/Fin Inicio/fin -/end Se encarga de determinar el comienzo y el final de un programa en pseudocódigo, DFD (Diagrama de Flujo de Datos) Conector - - Son los encargados de indicar la continuación de un programa cuando no alcanza el espacio donde se está trabajando, al interior de la primitiva se marca con una misma letra donde termina y donde comienza el siguiente tramo de código Dirección - - Descripción Se encarga de indicar la dirección que se debe seguir en un DFD. Representación gráfica A 15 Funciones y operaciones básicas Mod: Operación entre dos datos de tipo entero que retorna el residuo, de la división entre ellos. Ej: La instrucción X = 14 mod 3 almacenaría en X el valor 2. 14 3 2 4 Div: Operación entre dos datos de tipo entero que retorna el cociente e la división entre ellos. Ej: La instrucción X = 14 div 3 almacenaría en X el valor 4. 15 2 3 4