2. LENGUAJE El lenguaje en su forma mas general se define como una serie de símbolos que sirven para trasmitir una o mas ideas o mensajes entre dos entidades diferentes. La transmisión de ideas se conoce como comunicación, pero antes que exista la comunicación primero hay que tener en cuenta que esta “transmisión de ideas” debe cumplir con dos reglas fundamentales: Las ideas deben ir en un solo sentido a la vez. Deben existir 4 elementos: Emisor, Receptor, Medio de comunicación y Mensaje.
3. Lenguajes de Programación Los lenguajes de programación se pueden clasificar en: Lenguaje de máquina: Ese es el lenguaje del PC. Todas las instrucciones se expresan como combinaciones de 1’s y 0’s. Lenguaje de Bajo Nivel: Conocido como ensamblador es un punto intermedio entre el lenguaje del ser humano y el del PC. Las instrucciones son códigos alfabéticos que se rigen por normas nemotécnicas específicas. Lenguajes de Alto Nivel: Las instrucciones de estos lenguajes son palabras similares al lenguaje humano. Algunos de ellos son: C++, BASIC, PASCAL, COBOL, FORTRAN, ETC.
4. ALGORITMO Se sabe que la palabra algoritmo se dio en honor del matemático persa del siglo IX, Khowarizmi. Con éste término se hace referencia a un conjunto de reglas, ordenadas de forma lógica, para desarrollar un cálculo o para solucionar un problema, ya sea de forma manual o utilizando una máquina.
5. Características de un algoritmo Un algoritmo debe tener al menos las siguientes características: Ser Preciso: Esto significa que las operaciones o pasos del algoritmo deben desarrollarse en un orden estricto, ya que el desarrollo de cada paso debe obedecer a un orden lógico. Ser Definido. Ya que en el área de programación, el algoritmo se desarrolla como paso fundamental para crear un programa, es necesario tener en cuenta que el computador solo hará las tareas programadas y con los datos suministrados; es decir, no puede improvisar y tampoco se inventará o adivinará el dato que necesite para realizar un proceso. Por eso, el algoritmo debe estar plenamente definido; esto es, que cuantas veces se ejecute, el resultado depende estrictamente de los datos suministrados. Si se ejecuta con un mismo conjunto de datos de entrada, el resultado será siempre el mismo.
6. Características de un algoritmo Ser finito: Esta característica implica que el número de pasos de un algoritmo, por grande y complicado que sea el problema que soluciona, debe ser limitado. Todo algoritmo, sin importar el número de pasos que incluya, debe llegar a un final. Para hacer evidente esta característica, en la representación de un algoritmo siempre se incluyen los pasos inicio y fin. Presentación Formal: Para que el algoritmo sea entendido por cualquier persona interesada es necesario que se exprese en alguna de las formas comúnmente aceptadas; pues, si se describe de cualquier forma puede no ser muy útil ya que solo lo entenderá quien lo diseñó. Las formas de presentación de algoritmos son: el pseudocódigo, diagrama de flujo y diagramas de Nassi/Schneiderman, entre otras.
7. Características de un algoritmo Corrección: el algoritmo debe ser correcto, es decir debe satisfacer la necesidad o solucionar el problema para el cual fue diseñado. Para garantizar que el algoritmo logre el objetivo, es necesario ponerlo a prueba; a esto se le llama verificación o prueba de escritorio. Eficiencia: hablar de eficiencia o complejidad de un algoritmo es evaluar los recursos de cómputo que requiere para almacenar datos y para ejecutar operaciones frente al beneficio que ofrece. En cuanto menos recursos requiere será más eficiente el algoritmo.
8. TÉCNICAS PARA LA FORMULACIÓN DE ALGORITMOS Diagrama de flujo Pseudocódigo Diagrama estructurado (nassi-schneiderman)
9. Diagrama de Flujo Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en un procesador para producir resultados. Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en máquina o PC), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos.
10. Diagrama de Flujo DESVENTAJAS No se elaboran con base en los principios de la programación estructurada, ilustran el flujo del programa, pero no su estructura, requiere de un espacio considerable y cuenta con demasiadas ramificaciones.
11. Los símbolos Indica el inicio y el final de nuestro diagrama de flujo. Indica la entrada y salida de datos. Símbolo de proceso y nos indica la asignación de un valor en la memoria y/o la ejecución de una operación aritmética. Símbolo de decisión indica la realización de una comparación de valores. Se utiliza para representar los subprogramas. Conector dentro de página. Representa la continuidad del diagrama dentro de la misma página. Conector fuera de pagina. Representa la continuidad del diagrama en otra pagina.
12. Los símbolos Indica la salida de información por la Impresora. Indica la salida de información en la pantalla o monitor. Líneas de flujo o dirección. Indican la secuencia en que se realizan las operaciones.
13. Recomendaciones para el diseño de Diagramas de Flujo Se deben se usar solamente líneas de flujo horizontales y/o verticales. Se debe evitar el cruce de líneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar líneas de flujo sin conectar. Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.
14. Pseudocódigo Mezcla de lenguaje de programación que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de programación. Cabe señalar que el pseudocódigo no puede ser ejecutado por un procesador. En esencial, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.
26. DIAGRAMAS DE FLUJO Realizar un diagrama de flujo que permita mostrar en pantalla un mensaje de mayoría o minoría de edad según sea el caso para un nombre específico.
27. INICIO ‘Nombre:’ nom ‘Edad:’ ed Ed>=18 nom,’Eres menor de edad’ nom,’Eres mayor de edad’ FIN
28. Pseudocódigo Se requiere preguntar dos valores, y a continuación ofrecer un menú con las operaciones básicas (+, -, *, /). Después de presentar el resultado se ofrecerá la posibilidad de una nueva operación.
29. Pseudocódigo Real : X, Y, RESPUESTA Entero : OPCION Carácter : OP Inicio Repetir escribir(‘Primer valor : ’ ) leer(X) escribir(‘Segundo valor : ‘) leer(Y) escribir(‘1) Suma ‘) escribir(‘2) Resta ‘) escribir(‘3) Multiplicación ‘) escribir(‘4) División ‘) escribir(‘Qué operación deseas realizar ? : ‘) leer(OPCION) casos OPCION de 1 : RESULTADO X+Y 2 : RESULTADO X-Y 3 : RESULTADO X*Y 4 : si Y=0 entonces escribir(‘ Error ‘) RESULTADO 0 en caso contrario RESULTADO X/Y escribir (‘Resultado :‘,RESULTADO) escribir(‘Deseas otro cálculo : [S/N] ‘) leer(OP) Hasta que RES = ‘N’ Fin
31. Máquinas de Estados Finitos Las máquinas de estado finito (SFM) son sistemas digitales donde las salidas dependen de las entradas y de los estados previos almacenados. De manera mas clara, una máquina de estados finitos, es una forma gráfica de expresar un proceso secuencial.
32. Ejemplo Retiro en un cajero. Insertar la tarjeta. Digitar la clave. Digitar el monto. Retirar el dinero. Si no se sigue este estricto proceso no se puede llegar al punto 4 y obtener el dinero.
33. Al siguiente estado X/R X: Entrada que provoca una transición. R: Salida. http://www.youtube.com/watch?v=5AzRuYnCuhE&feature=related ESTADO Del estado previo Representación Las máquinas de estado finito están conformadas por entradas, salidas, estados y transiciones, que se representan de la siguiente manera:
35. Otro ejemplo Un hombre desea cruzar un río con un León, una bolsa de Trigo y una Vaca. El problema es que sólo puede cruzar él y dos de los elementos si permitir que la vaca devore el trigo o que el león devore a la vaca. Para resolver el problema hay que seguir una secuencia estricta.
36. Para el ejemplo del hombre Los estados se definen en cada una de las situaciones. El estado inicial es cuando está con todos los elementos a un lado del río (Lado A). El hombre pasa al lado B del río con la vaca. Se devuelve al lado A solo. Pasa al lado B con el león. Se devuelve al lado A con la vaca. Pasa al lado B con el trigo. Se devuelve al lado A solo. Pasa al lado B con la vaca.
39. DISEÑO Diseñar un circuito que controle el siguiente sistema. ON M SD SI
40. DISEÑO (Explicación) El sistema se activa una vez se hunde el botón “ON”. El motor empieza a girar a la derecha hasta que la placa negra llega al sensor “SD”. Cuando llega al sensor “SD”, la polaridad del motor se invierte y la placa avanza hacia el lado izquierdo. Cuando llega al sensor “SI” el motor se detiene.
41. PASOS Se identifican las entradas y las salidas. Entradas: Botón START: BS. Sensor Derecha: SD. Sensor Izquiereda: SI. Salidas: X: Entrada al puente “H”. Y: Entrada al puente “H”.
42. PASOS Descripción del problema (seudo código). Inicialmente el motor se encuentra apagado, en un estado de reposo donde el BS está desactivado, el sensor SI está activado y el SD está desactivado. Esta es la posición inicial o estado de repos del sistema. Cuando se da un START (BS=1) y el SI está activado, el motor se enciende ala derecha (XY=01), hasta que el sensor SI se activa. En ese momento el motor se activa a la izquierda (XY=10), hasta que el sensor derecha se active. Una vez el sensor SI se activa el sistema queda en espera para ser activado nuevamente (XY=00).
43. La máquina de estados CÓDIGO= BS SI SD / XY 110/01 110/01 00 01 000/01 010/00 010/01 100/01 REPOSO DERECHA IZQUIERDA 001/10 010/10 10 000/10