SlideShare une entreprise Scribd logo
1  sur  21
2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Características de los algoritmos Las 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 algoritmos Ejemplo 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 algoritmos Ejemplo 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:   Inicio Leer el pedido Examinar la ficha del cliente Si 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 algoritmos Ejemplo 6 Se 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: Inicio Hacer 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 algoritmos Diseño de un algoritmo Una 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 algoritmos Ejemplo 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 entrada Calcular el perímetro y área del círculo Escribir resultados (datos de salida)
Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Las ventajas más importantes del diseño descendente son: ,[object Object]
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 algoritmos Diagramas de flujo Un 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 algoritmos Símbolos de diagramas de flujo
Elementos y reglas de la representación gráfica y manuscrita de los algoritmos ,[object Object],[object Object]
Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Diagrama de flujo Fin del ejemplo 8
Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Pseudocódigo El 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 algoritmos Pseudocódigo Ejemplo 9: El pseudocódigo correspondiente al diagrama de flujo del ejemplo 2.3.3 es el siguiente:   Start 	/ cálculo de impuesto y salarios read HORAS, PRECIO_HORA, NOMBRE if HORAS >= 40 then 		SALARIO= HORAS * PRECIO_HORA else 		SALARIO=40*PRECIO_HORA + 1.5*PRECIO_HORA*(HORAS –40) endif Write SALARIO   end fin del ejemplo 9.
Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Pseudocó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 algoritmos Diagramas 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 algoritmos Ejemplo 10:
Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Otro ejemplo es la representación de la estructura condicional:

Contenu connexe

Tendances

3.1 corrientes del pensamiento
3.1 corrientes del pensamiento  3.1 corrientes del pensamiento
3.1 corrientes del pensamiento
koOrack
 
Unidad6 funciones
Unidad6 funcionesUnidad6 funciones
Unidad6 funciones
moii Hp
 
1.1 atecedentes historicos de la mecanica y 1.2 ubicacion de la estatica y la...
1.1 atecedentes historicos de la mecanica y 1.2 ubicacion de la estatica y la...1.1 atecedentes historicos de la mecanica y 1.2 ubicacion de la estatica y la...
1.1 atecedentes historicos de la mecanica y 1.2 ubicacion de la estatica y la...
David Garay
 
Diagramas de Flujo
Diagramas de FlujoDiagramas de Flujo
Diagramas de Flujo
miguel
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
starduslex
 
Algoritmo cualitativos
Algoritmo cualitativosAlgoritmo cualitativos
Algoritmo cualitativos
jdazas
 

Tendances (20)

Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
3.1 corrientes del pensamiento
3.1 corrientes del pensamiento  3.1 corrientes del pensamiento
3.1 corrientes del pensamiento
 
Sintaxis del lenguaje c++
Sintaxis del lenguaje c++Sintaxis del lenguaje c++
Sintaxis del lenguaje c++
 
Unidad6 funciones
Unidad6 funcionesUnidad6 funciones
Unidad6 funciones
 
1.1 atecedentes historicos de la mecanica y 1.2 ubicacion de la estatica y la...
1.1 atecedentes historicos de la mecanica y 1.2 ubicacion de la estatica y la...1.1 atecedentes historicos de la mecanica y 1.2 ubicacion de la estatica y la...
1.1 atecedentes historicos de la mecanica y 1.2 ubicacion de la estatica y la...
 
Diagramas de Flujo
Diagramas de FlujoDiagramas de Flujo
Diagramas de Flujo
 
Evolución de la Programación
Evolución de la ProgramaciónEvolución de la Programación
Evolución de la Programación
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativos
 
Teoria optimizacion
Teoria optimizacionTeoria optimizacion
Teoria optimizacion
 
Fases de resolucion de problemas
Fases de resolucion de problemasFases de resolucion de problemas
Fases de resolucion de problemas
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
Métodos De Los Cuadrados Medios
Métodos De Los Cuadrados MediosMétodos De Los Cuadrados Medios
Métodos De Los Cuadrados Medios
 
Diagrama nassi sherman
Diagrama nassi shermanDiagrama nassi sherman
Diagrama nassi sherman
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1
 
Algoritmo cualitativos
Algoritmo cualitativosAlgoritmo cualitativos
Algoritmo cualitativos
 

En vedette

Informatica II - 2 Metodologia de Solucion de Problemas
Informatica II - 2 Metodologia de Solucion de ProblemasInformatica II - 2 Metodologia de Solucion de Problemas
Informatica II - 2 Metodologia de Solucion de Problemas
Gabriel Ruiz
 
Modelo top down
Modelo top downModelo top down
Modelo top down
niazuluaga
 
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computador
gisseparrav
 
Lógica y Algoritmos 4. estructuras secuenciales y selectivas
Lógica y Algoritmos 4. estructuras secuenciales y selectivasLógica y Algoritmos 4. estructuras secuenciales y selectivas
Lógica y Algoritmos 4. estructuras secuenciales y selectivas
Edward Ropero
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
lcastillo110
 
Método De Solución De Problemas
Método De Solución De ProblemasMétodo De Solución De Problemas
Método De Solución De Problemas
Priscilla Najera
 

En vedette (20)

METODOLOGÍA PARA EL DISEÑO DE SOFTWARE
METODOLOGÍA PARA EL DISEÑO DE SOFTWAREMETODOLOGÍA PARA EL DISEÑO DE SOFTWARE
METODOLOGÍA PARA EL DISEÑO DE SOFTWARE
 
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
 
Algoritmo Repetitivo
Algoritmo RepetitivoAlgoritmo Repetitivo
Algoritmo Repetitivo
 
Desarrollo de lógica algorítmica
Desarrollo de lógica algorítmicaDesarrollo de lógica algorítmica
Desarrollo de lógica algorítmica
 
Top down
Top downTop down
Top down
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Informatica II - 2 Metodologia de Solucion de Problemas
Informatica II - 2 Metodologia de Solucion de ProblemasInformatica II - 2 Metodologia de Solucion de Problemas
Informatica II - 2 Metodologia de Solucion de Problemas
 
Algoritmos y su representación
Algoritmos y  su representaciónAlgoritmos y  su representación
Algoritmos y su representación
 
Resolucion De Problemas Con Computadora
Resolucion De Problemas Con ComputadoraResolucion De Problemas Con Computadora
Resolucion De Problemas Con Computadora
 
Tecnica top down
Tecnica top downTecnica top down
Tecnica top down
 
Modelo top down
Modelo top downModelo top down
Modelo top down
 
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computador
 
Top down y bottom up
Top down y bottom upTop down y bottom up
Top down y bottom up
 
Representación gráfica de los algoritmos.
Representación gráfica de los algoritmos. Representación gráfica de los algoritmos.
Representación gráfica de los algoritmos.
 
Lógica y Algoritmos 4. estructuras secuenciales y selectivas
Lógica y Algoritmos 4. estructuras secuenciales y selectivasLógica y Algoritmos 4. estructuras secuenciales y selectivas
Lógica y Algoritmos 4. estructuras secuenciales y selectivas
 
Algoritmos Y Programas Unidad1
Algoritmos Y  Programas Unidad1Algoritmos Y  Programas Unidad1
Algoritmos Y Programas Unidad1
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Pseudocódigo
PseudocódigoPseudocódigo
Pseudocódigo
 
Método De Solución De Problemas
Método De Solución De ProblemasMétodo De Solución De Problemas
Método De Solución De Problemas
 

Similaire à DEFINICIÓN DE LENGUAJES ALGORÍTMICOS

5. Diseño de un algoritmo
5. Diseño de un algoritmo5. Diseño de un algoritmo
5. Diseño de un algoritmo
rcarrerah
 
Tarea2
Tarea2Tarea2
Tarea2
Ivan G
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clase
daosma
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
Clariza
 
Desarrollo de un programa.
Desarrollo de un programa.Desarrollo de un programa.
Desarrollo de un programa.
Sam Arr
 

Similaire à DEFINICIÓN DE LENGUAJES ALGORÍTMICOS (20)

Desarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTXDesarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTX
 
5. Diseño de un algoritmo
5. Diseño de un algoritmo5. Diseño de un algoritmo
5. Diseño de un algoritmo
 
Tarea2
Tarea2Tarea2
Tarea2
 
Diseño de pseudocodigo
Diseño de pseudocodigoDiseño de pseudocodigo
Diseño de pseudocodigo
 
Algoritmos y programas estructuras
Algoritmos y programas estructurasAlgoritmos y programas estructuras
Algoritmos y programas estructuras
 
Dfd
DfdDfd
Dfd
 
Unmsm01 2008
Unmsm01 2008Unmsm01 2008
Unmsm01 2008
 
Tema n° 1
Tema n° 1Tema n° 1
Tema n° 1
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clase
 
Vivi Reinoso
Vivi ReinosoVivi Reinoso
Vivi Reinoso
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
 
01_IntroduccionAlgoritmos (1).pdf
01_IntroduccionAlgoritmos (1).pdf01_IntroduccionAlgoritmos (1).pdf
01_IntroduccionAlgoritmos (1).pdf
 
Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmo
 
Desarrollo de un programa.
Desarrollo de un programa.Desarrollo de un programa.
Desarrollo de un programa.
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos con decisiones.pptx
Algoritmos con decisiones.pptxAlgoritmos con decisiones.pptx
Algoritmos con decisiones.pptx
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 

Plus de adark

Funciones
FuncionesFunciones
Funciones
adark
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
adark
 
estructuras de repeticion
estructuras de repeticionestructuras de repeticion
estructuras de repeticion
adark
 
EJERCICIO Diagrama de Flujo
EJERCICIO Diagrama de FlujoEJERCICIO Diagrama de Flujo
EJERCICIO Diagrama de Flujo
adark
 
1.1 Nuevas Tecnologias de la Informacion.
1.1 Nuevas Tecnologias de la Informacion.1.1 Nuevas Tecnologias de la Informacion.
1.1 Nuevas Tecnologias de la Informacion.
adark
 
1.2 Elementos de un sistema computacional.
1.2 Elementos de un sistema computacional.1.2 Elementos de un sistema computacional.
1.2 Elementos de un sistema computacional.
adark
 
1.3 Clasificacion de los sistemas operativos.
1.3 Clasificacion de los sistemas operativos.1.3 Clasificacion de los sistemas operativos.
1.3 Clasificacion de los sistemas operativos.
adark
 
1.4 Paqueteria de Software.
1.4 Paqueteria de Software.1.4 Paqueteria de Software.
1.4 Paqueteria de Software.
adark
 

Plus de adark (10)

Funciones
FuncionesFunciones
Funciones
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
 
71
7171
71
 
51
5151
51
 
estructuras de repeticion
estructuras de repeticionestructuras de repeticion
estructuras de repeticion
 
EJERCICIO Diagrama de Flujo
EJERCICIO Diagrama de FlujoEJERCICIO Diagrama de Flujo
EJERCICIO Diagrama de Flujo
 
1.1 Nuevas Tecnologias de la Informacion.
1.1 Nuevas Tecnologias de la Informacion.1.1 Nuevas Tecnologias de la Informacion.
1.1 Nuevas Tecnologias de la Informacion.
 
1.2 Elementos de un sistema computacional.
1.2 Elementos de un sistema computacional.1.2 Elementos de un sistema computacional.
1.2 Elementos de un sistema computacional.
 
1.3 Clasificacion de los sistemas operativos.
1.3 Clasificacion de los sistemas operativos.1.3 Clasificacion de los sistemas operativos.
1.3 Clasificacion de los sistemas operativos.
 
1.4 Paqueteria de Software.
1.4 Paqueteria de Software.1.4 Paqueteria de Software.
1.4 Paqueteria de Software.
 

DEFINICIÓN DE LENGUAJES ALGORÍTMICOS

  • 1. 2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
  • 2. Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Características de los algoritmos Las 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 reglas de la representación gráfica y manuscrita de los algoritmos Ejemplo 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 reglas de la representación gráfica y manuscrita de los algoritmos Ejemplo 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:   Inicio Leer el pedido Examinar la ficha del cliente Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido. Fin   Fin del ejemplo 5.
  • 5. Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Ejemplo 6 Se 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: Inicio Hacer 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 reglas de la representación gráfica y manuscrita de los algoritmos Diseño de un algoritmo Una 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 reglas de la representación gráfica y manuscrita de los algoritmos Ejemplo 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 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 entrada Calcular el perímetro y área del círculo Escribir resultados (datos de salida)
  • 9.
  • 10. Las modificaciones en los módulos son más fáciles.
  • 11. 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.
  • 12. Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Diagramas de flujo Un 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 reglas de la representación gráfica y manuscrita de los algoritmos Símbolos de diagramas de flujo
  • 14.
  • 15. Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Diagrama de flujo Fin del ejemplo 8
  • 16. Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Pseudocódigo El 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 reglas de la representación gráfica y manuscrita de los algoritmos Pseudocódigo Ejemplo 9: El pseudocódigo correspondiente al diagrama de flujo del ejemplo 2.3.3 es el siguiente:   Start / cálculo de impuesto y salarios read HORAS, PRECIO_HORA, NOMBRE if HORAS >= 40 then SALARIO= HORAS * PRECIO_HORA else SALARIO=40*PRECIO_HORA + 1.5*PRECIO_HORA*(HORAS –40) endif Write SALARIO   end fin del ejemplo 9.
  • 18. Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Pseudocó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 reglas de la representación gráfica y manuscrita de los algoritmos Diagramas 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 reglas de la representación gráfica y manuscrita de los algoritmos Ejemplo 10:
  • 21. Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Otro ejemplo es la representación de la estructura condicional:
  • 22. Elementos y reglas de la representación gráfica y manuscrita de los algoritmos Implementación de algoritmos secuenciales En un algoritmo secuencial se ejecutan las sentencias en orden secuencial, es decir, cuando termina la ejecución de una sentencia comienza la que está inmediatamente después.