1 Computación Especializada Programación Estructurada
2 Entendemos por problema una situación en la que las cosas que tenemos son diferentes de las que deseamos. Ejemplo: Una persona quien desea tener una casa nueva, sin embargo, el solo dispone de los maderos, las pinturas y las herramientas, en síntesis desea una casa pero solo cuenta con los materiales. Para enfrentar estas situaciones problemáticas proponemos un método para “desenredar” el problema y paulatinamente construir la situación
3 Definición : Es una serie de pasos ordenados lógicamente que permiten resolver un problema.
4
5 Podemos encontrar algoritmos hasta en la actividad más sencilla, “dar un paso” por ejemplo: 1.- Apoyar el cuerpo sobre el pie izquierdo 2.- Levantar el pie derecho 3.- Avanzar el pie derecho 4.- Bajar el pie derecho 5.- Apoyar el cuerpo sobre el pie derecho 6.- Levantar el pie izquierdo 7.- Avanzar el pie izquierdo 8.- Bajar el pie izquierdo Aquí podemos apreciar que importante es seguir el orden marcado por el algoritmo, piense que ocurriría si después de realizar el numero 2 se salte al paso 6.
6 CARACTERÍSTICAS DE LOS ALGORITMOS Finitud : El algoritmo debe alcanzar la solución correcta en un limite detiempo Precisión: Las instrucciones de un algoritmo deben ser claras,precisan y no prestarse ainterpretaciones (es decir evitar laambigüedad) Entradas y Salidas claramentedefinidas: Las entradas se transformaran para obtener lassalidas, por ello un algoritmo debemostrar con claridad cuales seránlos resultados (datos iniciales ) Efectividad: Los pasos de un algoritmo deben conducir a lasolución del problema original
7 Definición: Es la representación grafica de la solución de un problema o un procedimiento Definición de Pseudo código: Consiste en redactar (en español) cada paso del algoritmo, utilizando oraciones breves y sin incluir adjetivos y artículos.
8 METODOLOGíA
9 IDENTIFICACIÓN DEL PROBLEMA Un problema siempre surge en una situación mas o menos compleja. Esto provoca que muchas veces no se aprecia el verdadero problema. Para identificar el problema es necesario encontrar dentro de la situación todos los elementos importantes: aquellos que están presentes( lo que tenemos) y aquellos que están ausentes ( lo que deseamos) Ejemplo: Nuestro personaje esta sentado en su casa viendo la televisión. Afuera esta lloviendo y como su techo esta en mal estado el agua se introduce a la habitación.
10 ¿Cuál es su problema? El problema es que la televisión no se ve bien El problema es que el sillón no es cómodo El problema es que las gotas hacen ruido El problema es que se esta metiendo el agua a su casa Un análisis profundo de la situación ( y un poco de sentido común) podemos determinar que en realidad el problema consiste en que se esta metiendo el agua a la casa: nuestro personaje tiene una gotera, pero no quiera la gotera
11
12 Cualquiera de estas soluciones es posible llevarla a la practica; sin embargo, resulta casi obvio que las dos primera son risibles: la resignación provocara que se dañe el piso y los muebles, y colocar un paraguas “le da la vuelta” al problema. La tercera solución es la mejor, pero considerando que esta lloviendo, la solución inmediata es colocar la cubeta ( y cuando no llueva reparar el techo). En algunos otros casos las soluciones propuestas son poco factibles, otras fantásticas y algunas otras falsas, pues no resuelven el problema sino lo evitan o crean otro. Un ejemplo, un problema de nutrición se soluciona ( falsamente) con comida chatarra. La solución es una estrategia que sirve para alcanzar el resultado deseado de un problema, dicha estrategia consta de un conjunto de transformaciones que convierten los elementos disponibles en los objetos deseados.
13 Regresando al primer ejemplo el de la persona que desea una casa debe seguir para lograr su propósito: Elaboración de planos de la casa Cortar los maderos al tamaño adecuado Construir puertas y techos Pintar la casa Si nuestro personaje sigue los pasos es seguro que podrá disfrutar de una casa nueva. En general a la serie de pasos que permiten resolver un problema se le conoce como algoritmo.
14 Actividad: Determine cual es el error en el siguiente problema: El siguiente algoritmo presenta un sencillo procedimiento de inscripción en la escuela de manejo. 1. Llegar a la oficina de inscripción 2. Recoger solicitud de inscripción 3. Llenar solicitud con los datos 4. Entregar la solicitud 5. Salir de la oficina
15 Diagramas de Flujo 1.Los diagramas de flujo son una manera de representar visualmente el flujo de datos a travéz de sistemas de tratamiento de información. 2.Los diagramas de flujo describen que operaciónes y en que secuencia se requieren para solucionar un problema dado. 3.Los diagramas de flujo se dibujan generalmente antes de comenzar a programar el código frente a la computadora. 4.Los diagramas de flujo facilitan la comunicación entre los programadores y la gente del negocio. Estos diagramas de flujo desempeñan un papel vital en la programación de un problema y facilitan la comprensión de problemas complicados y sobre todo muy largos. Una vez que se dibuja el diagrama de flujo, llega a ser fácil escribír el programa en cualquier idióma de alto nivel. Vemos a menudo cómo los diagramas de flujo nos dan ventaja al momento de explicar el programa a otros. Por lo tanto, está correcto decir que un diagrama de flujo es una necesidad para la documentación mejor de un programa complejo.
16 Reglas para dibujar un diagramas de flujo. Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin embargo, algunos símbolos especiales pueden también ser desarrollados cuando séan requeridos. Algunos símbolos estándares, que se requieren con frecuencia para diagramar programas de computadora se muestran a continuación:
17
18 Observación: Para obtener la correcta elaboración de los símbolos, existen plantillas. Las puedes conseguir en Papelerías. Simbolos gráficos Dentro de los simbolos fundamentales para la creaación de diagramas de flujo, los símbolos gráficos son utilizádos especificamente para para operaciónes aritméticas y relaciónes condicionales. La siguiente es una lista de los símbolos más comunmente utilizados:
19 Símbolos Matemáticos de uso Frecuente
20 Reglas para la creación de Diagramas 1.Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha. 2.Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección en la que fluye la información, en los procesos se deben de utilizar solamente líneas de flujo horizontal o verticales (nunca diagonales). 3.Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se vana utilizar conectores cuando sea estrictamente necesario. 4.No deben quedar líneas de flujo sin conectar 5.Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras. 6.Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final. 7.Solo los símbolos de decisión pueden y deben tener mas de una línea de flujo de salida.
21 Ejemplo de Diagrama de Flujo 1.inicio 2.pedir mesa 3.decidir en el bar o restaurant 4.pedir menú 5.analizar menú 6.pedir 7.pagar 8.salir
22
23 Diagrama de flujo que encuentra la suma de los primeros 50 números naturales
24 Suma, es la variable a la que se le va agregando la valor de cada número natural. N, es el contador. Éste recorrerá lo números hasta llegar al 50. El primer bloque indica el inicio del Diagrama de flujo El segundo bloque, es un Símbolo de procesos En este bloque se asume que las variables suma y N han sido declaradas previamente y las inicializa en 0 para comenzar a el conteo y la suma de valores (Para declararlas existe el bloque Tarjeta perforada). El tercer bloque, es también un Símbolo de procesos En éste paso se incrementa en 1 la variable N (N = N + 1). Por lo que, en la primera pasada esta N valdrá 1, ya que estaba inicializada en 0.
25 El cuarto bloque es exactamente lo mismo que el anterior Pero en éste, ya se le agrega el valor de N a la variable que contendrá la suma (En el primer caso contendrá 1, ya que N = 1). El quinto bloque es uno Símbolo de Toma de decisiones y Ramificación Lo que hay dentro del bloque es una pregunta que se le hace a los valores que actualmente influyen en el proceso. ¿Es N=50?, Obviamente la respuesta es no, ya que N todavía es 1. por lo que el flujo de nuestro programa se dirigirá hacía la parte en donde se observa la palabra no: Tercer Bloque, éste le sumará 1 (N=N+1) y vuelve a llegar a éste bloque, donde preguntará ¿Es N=50?... ¡No!, todavía es 2. Ha pues, regresa al Tercer bloque y vuelve hacer lo mismo. Y así hasta llegar a 50, obteniendo así la suma de los primeros 50 primeros números naturales.
26 Por último indicamos que el resultado será mostrado en la impresora (Este lo puedes cambiarlo por el display para mostrar datos). Fin del programa (o diagrama) !Felicidades¡ haz resuelto tu primer algoritmo con un diagrama de flujo.
27 pseudocódigo Un pseudocódigo (falso lenguaje), es una serie de normas léxicas y gramaticales parecidas a la mayoría de los lenguajes de programación, pero sin llegar a la rigidez de sintaxis de estos ni a la fluidez del lenguaje coloquial. Esto permite codificar un programa con mayor agilidad que en cualquier lenguaje de programación, con la misma validez semántica, normalmente se utiliza en las fases de análisis o diseño de Software, o en el estudio de un algoritmo. Forma parte de las distintas herramientas de la ingeniería de software. No siendo el pseudocódigo un lenguaje formal, varían de un programador a otro, es decir, no hay una estructura semántica ni arquitectura estándar. El pseudocódigo describe un algoritmo utilizando una mezcla de frases en lenguaje común, instrucciones de programación y palabras clave que definen las estructuras básicas.
28 DEFINICION DE DATOS DEL PSEUDOCOGIGO La definición de datos se da por supuesta, sobre todo en las variables sencillas, si se emplea formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del algoritmo, y naturalmente cuando empleemos el pseudocódigo para definir estructuras de datos, esta parte la desarrollaremos adecuadamente. DEFINICION DE ESTRUCTURAS DE CONTROL Como se había mencionado antes, cada autor usa su propio pseudocódigo con sus respectivas convenciones. Por ejemplo, considere la instrucción "Reemplace el valor de la variable x por el valor de la variable y"; algunas de las posibles sintaxis para indicar lo anterior podrían ser: asigne a el valor de Sin embargo, independientemente de estas diferencias, muchos autores consideran tres estructuras de control para desarrollar los procedimientos
29 SECUENCIAL Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el número de renglón. Es decir que las instrucciones se ejecutan de arriba hacia abajo. Instrucción1 Instrucción2 Instrucción3 Instrucción4, etc. FUNCIONES Y PROCEDIMIENTOS Muchas personas prefieren distinguir entre funciones y procedimientos. Una función, al igual que una función matemática, recibe un valor de entrada y regresa una salida mientras que un procedimiento recibe una entrada pero no genera una salida. En ambos casos es necesario dejar en claro cuáles son las entradas para el algoritmo, esto se hace comunmente colocando estos valores entre paréntesis al principio o bien declarándolo explicitamente con un enunciado. En el caso de las funciones, es necesario colocar una palabra como regresar o devolver para indicar cuál es la salida generada por el algoritmo.
30 VENTAJAS AL UTILIZAR PSEUDOCODIGO 1.Permite representar de forma fácil operaciones repetitivas complejas. 1.Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación formal. 1.Si se siguen las reglas de identificación se puede observar claramente los niveles en la estructura del programa.
31 Ejemplo: Realizar el pseudocódigo de un programa que permita calcular el área de un rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo. Programa; área Entorno: BASE, ALTURA, AREA son número enteros Algoritmo: escribir “Introduzca la base y la altura” leer BASE, ALTURA calcular AREA = BASE * ALTURA escribir “El área del rectángulo es “AREA Finprograma
32 Ejemplo: Realizar el pseudocódigo que permita al usuario introducir por teclado dos notas, calculando la suma y el producto de las notas. Programa: SumaProducto Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son números enteros Algoritmo: escribir “Introduzca las notas” leer NOTA1,NOTA2 calcular SUMA = NOTA1 + NOTA2 calcular PRODUCTO = NOTA1 * NOTA2 escribir “La suma de las dos notas es:” SUMA escribir “El producto de las dos notas es :”PRODUCTO Finprograma
33 Ejemplo: Realizar el pseudocódigo de un programa que permita saber si un número es mayor, menor o igual a cero. Programa: ComparaNúmeros Entorno: NUMERO es un número entero Algoritmo: Escribir “Introduzca un número “ leer NUMERO SI NUMERO>0 ENTONCES escribir “El número introducido es positivo” SI NO SI NUMERO
34 Lenguaje de Programación PHP Oficialmente PHP significa: Hypertext Processor ó Procesador de Hipertexto Pero aun sigue conociéndose en todo el mundo por su nombre original: Personal Home Page ó Pagina de Inicio Personal. Es el lenguaje de programación Más popular entre los servidores web, esa en la idea detrás del lenguaje PHP Programar de manera sencilla en un servidor web, creando de todo desde bases de datos en línea hasta libros de visitantes, desde herramientas para cargar archivos hasta carritos de compras. ¿De donde vino PHP? Los usuarios de este lenguaje se sorprenden algunas veces al enterarse de que PHP ha estado entre nosotros desde hace buen tiempo; fue creado por Rasmus Lerdorf en 1994 Rasmus deseaba tener un recurso para registrar quien observaba su currículum en línea y rápidamente se hizo de popularidad entre los programadores para 1995 ya era de dominio publico. Ya que en ese entonces existía una necesidad real de tener un lenguaje de programación que acortara la curva de aprendizaje y fuera una solución a la programación web, ya que solo se contaba con HTML como fundamento y base de programación.