2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOSMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosCaracterísticas de los algoritmosLas características fundamentales que debe cumplir todo algoritmo son:Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea debe tener un número finito de pasos.La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosEjemplo 4: En un algoritmo de receta de cocina se tiene que: Entrada: 	Ingredientes y utensilios empleados. Proceso: 	Elaboración de la receta de cocina.Salida: 	Terminación del platillo, por ejemplo enchiladas. Fin del ejemplo 4
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosEjemplo 5: 	Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su base de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazará el pedido. Redactar el algoritmo correspondiente. Solución: Los pasos del algoritmo son: InicioLeer el pedidoExaminar la ficha del clienteSi el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido.Fin Fin del ejemplo 5.
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosEjemplo 6Se desea diseñar un algoritmo para saber si un número es primo o no. 	Un número es primo si sólo puede dividirse entre sí mismo y entre la unidad, es decir, no tiene más divisores que él mismo y la unidad. Por ejemplo, 9, 8  6, 4, 12, 16, 20 no son primos, ya que son divisibles pro números distintos a ellos mismos y a la unidad. El 9 es divisible entre 3, el 8 es divisible entre 2 y entre 4, etc. Solución:InicioHacer X igual a 2  (X = 2, X variable que representa a los divisores del número N que se busca)Dividir N entre X (N/X)Si el resultado de N/X es entero, entonces N no es un número primo y continuar con el paso 7; en caso contrario, continuar con el siguiente paso.Sumar 1 a X (X = X+1)Si X es igual a N, entonces N es un número primo; en caso contrario, continuar con el paso 3.Fin. Fin del ejemplo 6.
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosDiseño de un algoritmoUna computadora no tiene capacidad para solucionar problemas a menos de que se le proporcionen los pasos sucesivos a realizar. Estos pasos sucesivos que indican las instrucciones a ejecutar constituyen, como ya se mencionó, el algoritmo.La información proporcionada al algoritmo constituye su entrada y la información producida por el algoritmo constituye su salida. Los problemas complejos pueden resolverse más eficazmente con la computadora cuando se divide en subproblemas que sean más fáciles de solucionar que el problema original. Este método suele denominarse “divide y vencerás”, y consiste en dividir el problema complejo en otros más simples.
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosEjemplo 7:	Un problema que pretende encontrar el perímetro y el área de un círculo puede dividirse en tres problemas más simples, como se muestra en la siguiente figura:
Elementos y reglas de la representación gráfica y manuscrita de los algoritmos	La descomposición del problema original en subproblemas más simples y a continuación dividir estos subproblemas en otros más simples que pueden implementarse para su solución en la computadora se denomina diseño descendente (top-downdesign). Normalmente los pasos diseñados en el primer esbozo del algoritmo son incompletos e indican sólo unos pocos pasos (un máximo de doce). Tras esta primera descripción, estos se amplían en una descripción más detallada con más pasos específicos. Este proceso se denomina refinamiento del algoritmo (stepwiserefinement). Para problemas complejos se necesitan con frecuencia diferentes niveles de refinamiento antes de que se pueda obtener un algoritmo claro, preciso y completo. 	El problema de cálculo del perímetro y área del círculo se puede descomponer en subproblemas más simples: Leer datos de entradaCalcular el perímetro y área del círculoEscribir resultados (datos de salida)
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosLas ventajas más importantes del diseño descendente son:El problema se comprende más fácilmente al dividirse en partes más simples denominadas módulos.
Las modificaciones en los módulos son más fáciles.
La comprobación del problema se puede verificar fácilmente. 	Tras los pasos anteriores (diseño descendente y refinamiento sucesivo por pasos) es preciso representar el algoritmo mediante  una determinada herramienta de programación: diagrama de flujo, pseudocódigo o diagrama N-S.
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosDiagramas de flujoUn diagrama de flujo (flowchart) es una de las técnicas de representación del algoritmo más antigua y a la vez más utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparición de lenguajes de programación estructurados.Símbolos de diagramas de flujo
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosSímbolos de diagramas de flujo
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosSímbolos de diagramas de flujoElementos y reglas de la representación gráfica y manuscrita de los algoritmosEjemplo 8: 	Se desea realizar el algoritmo que resuelva el siguiente problema: Cálculo de los salarios mensuales de los empleados de una empresa, sabiendo que éstos se calculan en base a las horas semanales trabajadas y de acuerdo a un precio especificado por horas. Si se pasan de cuarenta horas semanales, las horas extraordinarias se pagarán a razón de 1.5 veces la hora ordinaria. Solución: Algoritmo Leer datos del archivo de la empresa, hasta que se encuentre la ficha final del archivo (HORAS, PRECIO_HORA, NOMBRE).Si HORAS <= 40, entonces SALARIO es el producto de HORAS por PRECIO_HORA.Si HORAS > 40, entonces SALARIO = 40 x PRECIO_HORA + 1.5 x PRECIO_HORA x (HORAS – 40)
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosDiagrama de flujoFin del ejemplo 8
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosPseudocódigoEl pseudocódigo es en lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el paso de codificación final (esto es, la traducción a un lenguaje de programación) relativamente fácil. 	El pseudocódigo nació como un lenguaje similar al inglés y era un medio de representar básicamente las estructuras de  control de programación estructurada.  	El pseudocódigo original utiliza para representar las acciones sucesivas palabras reservadas en inglés, similares a sus homónimos en lenguajes de programación, tales como start, end, stop, if-then-else, repeat-until, etc. La escritura de pseudocódigo exige normalmente la indentación (sangría en el margen izquierdo) de diferentes líneas.
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosPseudocódigoEjemplo 9:El pseudocódigo correspondiente al diagrama de flujo del ejemplo 2.3.3 es el siguiente: Start	/ cálculo de impuesto y salariosread HORAS, PRECIO_HORA, NOMBREif HORAS >= 40 then		SALARIO= HORAS * PRECIO_HORAelse		SALARIO=40*PRECIO_HORA + 1.5*PRECIO_HORA*(HORAS –40)endifWrite SALARIO endfin del ejemplo 9.
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosPseudocódigo	El algoritmo comienza con la palabra start y finaliza con la palabra end, en inglés (en español, inicio, fin). Entre  estas palabras, sólo se escribe una instrucción o acción por línea.	La línea precedida por // se denomina comentario. Es una información para el lector del programa y no realiza ninguna instrucción ejecutable, sólo tiene efecto  de documentación interna del programa.
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosDiagramas de Nassi-Scheneiderman (N-S)El diagrama N-S de Nassi-Schneiderman, también conocido como diagrama de Chapin, es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se escriben en cajas sucesivas y, como en los diagramas de flujo, se pueden escribir diferentes acciones en una misma caja.Un algoritmo se representa con un rectángulo en el que cada banda es una acción a realizar:
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosEjemplo 10:
Elementos y reglas de la representación gráfica y manuscrita de los algoritmosOtro ejemplo es la representación de la estructura condicional:

DEFINICIÓN DE LENGUAJES ALGORÍTMICOS

  • 1.
    2.3 DEFINICIÓN DELENGUAJES ALGORÍTMICOSMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
  • 2.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosCaracterísticas de los algoritmosLas características fundamentales que debe cumplir todo algoritmo son:Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea debe tener un número finito de pasos.La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.
  • 3.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosEjemplo 4: En un algoritmo de receta de cocina se tiene que: Entrada: Ingredientes y utensilios empleados. Proceso: Elaboración de la receta de cocina.Salida: Terminación del platillo, por ejemplo enchiladas. Fin del ejemplo 4
  • 4.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosEjemplo 5:  Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su base de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazará el pedido. Redactar el algoritmo correspondiente. Solución: Los pasos del algoritmo son: InicioLeer el pedidoExaminar la ficha del clienteSi el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido.Fin Fin del ejemplo 5.
  • 5.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosEjemplo 6Se desea diseñar un algoritmo para saber si un número es primo o no.  Un número es primo si sólo puede dividirse entre sí mismo y entre la unidad, es decir, no tiene más divisores que él mismo y la unidad. Por ejemplo, 9, 8 6, 4, 12, 16, 20 no son primos, ya que son divisibles pro números distintos a ellos mismos y a la unidad. El 9 es divisible entre 3, el 8 es divisible entre 2 y entre 4, etc. Solución:InicioHacer X igual a 2 (X = 2, X variable que representa a los divisores del número N que se busca)Dividir N entre X (N/X)Si el resultado de N/X es entero, entonces N no es un número primo y continuar con el paso 7; en caso contrario, continuar con el siguiente paso.Sumar 1 a X (X = X+1)Si X es igual a N, entonces N es un número primo; en caso contrario, continuar con el paso 3.Fin. Fin del ejemplo 6.
  • 6.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosDiseño de un algoritmoUna computadora no tiene capacidad para solucionar problemas a menos de que se le proporcionen los pasos sucesivos a realizar. Estos pasos sucesivos que indican las instrucciones a ejecutar constituyen, como ya se mencionó, el algoritmo.La información proporcionada al algoritmo constituye su entrada y la información producida por el algoritmo constituye su salida. Los problemas complejos pueden resolverse más eficazmente con la computadora cuando se divide en subproblemas que sean más fáciles de solucionar que el problema original. Este método suele denominarse “divide y vencerás”, y consiste en dividir el problema complejo en otros más simples.
  • 7.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosEjemplo 7: Un problema que pretende encontrar el perímetro y el área de un círculo puede dividirse en tres problemas más simples, como se muestra en la siguiente figura:
  • 8.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmos La descomposición del problema original en subproblemas más simples y a continuación dividir estos subproblemas en otros más simples que pueden implementarse para su solución en la computadora se denomina diseño descendente (top-downdesign). Normalmente los pasos diseñados en el primer esbozo del algoritmo son incompletos e indican sólo unos pocos pasos (un máximo de doce). Tras esta primera descripción, estos se amplían en una descripción más detallada con más pasos específicos. Este proceso se denomina refinamiento del algoritmo (stepwiserefinement). Para problemas complejos se necesitan con frecuencia diferentes niveles de refinamiento antes de que se pueda obtener un algoritmo claro, preciso y completo.  El problema de cálculo del perímetro y área del círculo se puede descomponer en subproblemas más simples: Leer datos de entradaCalcular el perímetro y área del círculoEscribir resultados (datos de salida)
  • 9.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosLas ventajas más importantes del diseño descendente son:El problema se comprende más fácilmente al dividirse en partes más simples denominadas módulos.
  • 10.
    Las modificaciones enlos módulos son más fáciles.
  • 11.
    La comprobación delproblema se puede verificar fácilmente.  Tras los pasos anteriores (diseño descendente y refinamiento sucesivo por pasos) es preciso representar el algoritmo mediante una determinada herramienta de programación: diagrama de flujo, pseudocódigo o diagrama N-S.
  • 12.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosDiagramas de flujoUn diagrama de flujo (flowchart) es una de las técnicas de representación del algoritmo más antigua y a la vez más utilizada, aunque su empleo ha disminuido considerablemente, sobre todo desde la aparición de lenguajes de programación estructurados.Símbolos de diagramas de flujo
  • 13.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosSímbolos de diagramas de flujo
  • 14.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosSímbolos de diagramas de flujoElementos y reglas de la representación gráfica y manuscrita de los algoritmosEjemplo 8:  Se desea realizar el algoritmo que resuelva el siguiente problema: Cálculo de los salarios mensuales de los empleados de una empresa, sabiendo que éstos se calculan en base a las horas semanales trabajadas y de acuerdo a un precio especificado por horas. Si se pasan de cuarenta horas semanales, las horas extraordinarias se pagarán a razón de 1.5 veces la hora ordinaria. Solución: Algoritmo Leer datos del archivo de la empresa, hasta que se encuentre la ficha final del archivo (HORAS, PRECIO_HORA, NOMBRE).Si HORAS <= 40, entonces SALARIO es el producto de HORAS por PRECIO_HORA.Si HORAS > 40, entonces SALARIO = 40 x PRECIO_HORA + 1.5 x PRECIO_HORA x (HORAS – 40)
  • 15.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosDiagrama de flujoFin del ejemplo 8
  • 16.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosPseudocódigoEl pseudocódigo es en lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el paso de codificación final (esto es, la traducción a un lenguaje de programación) relativamente fácil.  El pseudocódigo nació como un lenguaje similar al inglés y era un medio de representar básicamente las estructuras de control de programación estructurada.   El pseudocódigo original utiliza para representar las acciones sucesivas palabras reservadas en inglés, similares a sus homónimos en lenguajes de programación, tales como start, end, stop, if-then-else, repeat-until, etc. La escritura de pseudocódigo exige normalmente la indentación (sangría en el margen izquierdo) de diferentes líneas.
  • 17.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosPseudocódigoEjemplo 9:El pseudocódigo correspondiente al diagrama de flujo del ejemplo 2.3.3 es el siguiente: Start / cálculo de impuesto y salariosread HORAS, PRECIO_HORA, NOMBREif HORAS >= 40 then SALARIO= HORAS * PRECIO_HORAelse SALARIO=40*PRECIO_HORA + 1.5*PRECIO_HORA*(HORAS –40)endifWrite SALARIO endfin del ejemplo 9.
  • 18.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosPseudocódigo El algoritmo comienza con la palabra start y finaliza con la palabra end, en inglés (en español, inicio, fin). Entre estas palabras, sólo se escribe una instrucción o acción por línea. La línea precedida por // se denomina comentario. Es una información para el lector del programa y no realiza ninguna instrucción ejecutable, sólo tiene efecto de documentación interna del programa.
  • 19.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosDiagramas de Nassi-Scheneiderman (N-S)El diagrama N-S de Nassi-Schneiderman, también conocido como diagrama de Chapin, es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se escriben en cajas sucesivas y, como en los diagramas de flujo, se pueden escribir diferentes acciones en una misma caja.Un algoritmo se representa con un rectángulo en el que cada banda es una acción a realizar:
  • 20.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosEjemplo 10:
  • 21.
    Elementos y reglasde la representación gráfica y manuscrita de los algoritmosOtro ejemplo es la representación de la estructura condicional: