SlideShare una empresa de Scribd logo
Desarrollo de lógica
algorítmica
Introducción
 Algoritmo
 Método para resolver un problema.
 Pasos para la resolución de un problema:
1. Analizar el problema.
2. Diseñar el algoritmo –sin ambigüedades- que conduzca a la solución.
3. Expresar el algoritmo como un programa en un lenguaje de programación (codificación).
4. Ejecución y validación del programa.
2
Problema Diseño del
algoritmo
Programa de
computadora
Introducción (cont.)
 Los algoritmos son independientes tanto del lenguaje de programación como de la
computadora que los ejecuta.
 Ejemplo, analogía ¿cómo preparar espaguetti?
3
Receta de espaguetti
Spaghetti recipe
Spaghetti recette
¡Un lenguaje de programación es tan sólo un medio para
expresar un algoritmo y una computadora es sólo un
procesador para ejecutarlo!
Características de los algoritmos
 Preciso:
 Sin ambigüedades e indicar el orden de realización de cada
paso.
 Definido:
 Si se sigue dos veces se debe obtener el mismo resultado cada
vez.
 Finito:
 Se debe terminar en algún momento, debe tener un número
finito de pasos.
4
Características de los algoritmos
(cont.)
La definición de un algoritmo debe describir tres partes:
1. Entrada
2. Proceso
3. Salida
Por ejemplo para el algoritmo de la receta:
1. Entrada Ingredientes y utensilios empleados
2. Proceso Elaboración de la receta en la cocina
3. Salida Terminación del plato, el platillo en sí
5
Características de los algoritmos
(cont.)
 Ejercicios:
1. Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco 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.
2. Se desea diseñar un algoritmo para saber si un número es primo o no.
3. Diseñar un algoritmo para obtener el número mayor de tres números dados
por el usuario.
6
Características de los algoritmos
(cont.)
 Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de datos la ficha
del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario,
rechazará el pedido. Algoritmo:
1. inicio
2. leer el pedido
3. examinar la ficha del cliente
4. si el cliente es solvente:
5. aceptar pedido
6. si no:
7. rechazar pedido
8. fin si
9. fin
7
Características de los algoritmos
(cont.)  Algoritmo para saber si un número es primo o no:
1. inicio
2. leer el número (num)
3. establecer una variable x a 2
4. mientras x < num hacer:
5. si el resultado de num/x es entero:
6. escribir num no es un número primo
7. ir al paso 12
8. fin si
9. aumentar x en 1
10. fin mientras
11. escribir num es un número primo
12. fin
8
Características de los algoritmos
(cont.)
 Algoritmo para obtener el número mayor de tres números dados por el
usuario:
1. inicio
2. leer el número 1 (num1)
3. leer el número 2 (num2)
4. leer el número 3 (num3)
5. si num1>=num2 y num1>=num3:
6. escribir num1 es el número mayor
7. si no si num2>=num1 y num2>=num3:
8. escribir num2 es el número mayor
9. si no:
10. escribir num3 es el número mayor
9
Diseño del algoritmo
 La técnica de diseño descendente es la más común.
 Diseño descendente:
 Descomposición del problema original en subproblemas más simples y a
continuación la división de estos subproblemas en otros más simples.
 Al proceso de ampliar la primera descripción del problema en una descripción
más detallada con más pasos específicos se le denomina refinamiento por
pasos.
 Para problemas complejos se necesitan con frecuencia diferentes niveles de
refinamiento antes de que se pueda obtener un algoritmo claro, preciso y
completo.
10
Problema original Subproblemas Refinamiento
1. calcular área de un
triángulo a partir del valor de
sus lados
1. leer valores de los
lados
2. calcular perímetro
3. calcular
semiperimetro
4. calcular área
5. escribir resultados
1a. leer valor de lado1 (l1)
1b. leer valor de lado2 (l2)
1c. leer valor de lado3 (l3)
2. p = l1 + l2 + l3
3. s = p / 2
4. a = s(s − l1)(s − l2)(s − l3)
5. escribir p, s y a
Diseño del algoritmo (cont.)
 Diseño descendente (cont.)
 Ejemplo, realizar el algoritmo para calcular el área de un triángulo a partir del valor de sus lados:
11
Diseño del algoritmo (cont.)
 Diseño descendente (cont.)
Ventajas:
El problema se comprende mejor 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.
12
Diseño del algoritmo (cont.)
Diseño de un
algoritmo
Diseño descendente
(1)
Refinamiento por
casos
(2)
Escritura del
algoritmo:
-pseudocódigo
-diagrama de flujo
-diagrama N-S
(3)
13
Pseudocódigo
 Es un lenguaje de especificación (descripción) de algoritmos con una gran similitud al
lenguaje natural, pero utilizando ciertas palabras reservadas.
… facilita la traducción a un lenguaje de programación.
 Originalmente se representaban las acciones con palabras reservadas en el idioma
inglés:
 start, end, read, write, repeat, while…
 El algoritmo comienza con la palabra “inicio” y termina con la palabra “fin”.
 La línea precedida por “//” se denomina comentario.
 La escritura de pseudocódigo exige normalmente la indentación (sangría en el margen
izquierdo) de las diferentes líneas acorde al bloque al que pertenecen.
14
Pseudocódigo (cont.)
 Ejemplo, cálculo del salario de un trabajador:
INICIO
// Cálculo del salario:
LEER nombre, horas_trabajadas, pago_por_hora, deducciones
salario = horas_trabajadas * pago_por_hora
salario_neto = salario – deducciones
ESCRIBIR nombre, salario, salario_neto
FIN
15
Diagrama de flujo
 Forma de representación de un algoritmo utilizando símbolos (cajas) estándar
unidas por flechas (denominadas líneas de flujo) que indican la secuencia en
que se debe ejecutar.
 Los símbolos son normalizados por la ANSI (American National Standars
Institute) y son muy variados, los más utilizados representan:
 inicio/fin
 proceso
 decisión
 entrada/salida
 conectores
 dirección del flujo
16
Diagrama de flujo (cont.)
 Plantilla típica para diagramas de flujo:
17
Terminador, representa el comienzo y final de un algoritmo,
puede representar también una parada o interrupción
programada.
Entrada/Salida, cualquier tipo de introducción de datos
(entrada) o registro de la información procesada en un
periférico (salida).
Proceso, cualquier tipo de operación que pueda originar un
cambio de valor, formato o posición de la información
almacenada en memoria: operaciones aritméticas, de
asignación, etc.
Diagrama de flujo (cont.)
 Plantilla típica para diagramas de flujo (cont.):
18
Decisión, indica operaciones lógicas o de comparación
entre datos, en función del resultado determina con cuál de
los caminos alternativos el algoritmo debe continuar.
Conector, sirve para enlazar dos partes cualesquiera del
flujo del diagrama a través de un conector en la salida y
otro conector en la entrada. Se refiere a la conexión en la
misma página del diagrama.
Conector, conexión entre dos puntos del algoritmo situado
en diferentes páginas.
n
o
sí
Diagrama de flujo (cont.)
 Plantilla típica para diagramas de flujo (cont.):
19
Llamada a subrutina o a un proceso predeterminado, una
subrutina es una parte independiente del algoritmo que
recibe una entrada, realiza una tarea determinada y regresa,
al terminar, al algoritmo principal.
Comentario, se utiliza para añadir comentarios a otros
símbolos del diagrama de flujo, se pueden dibujar a
cualquier lado del símbolo.
Diagrama de flujo (cont.)
 Ejemplo, cálculo del salario de un trabajador:
20
inicio
leer nombre,
horas_trabajadas,
pago_por_hora,
deducciones
salario = horas_trabajadas *
pago_por_hora
salario_neto = salario – deducciones
escribir nombre,
salario,
salario_neto
fin
cálculo del salario
salario = horas_trabajadas * pago_por_hora
salario_neto = salario – deducciones
Es posible agregar varias acciones
similares en un solo símbolo:

Más contenido relacionado

Similar a Desarrollo de lógica algorítmica_PARTE 1.PPTX

Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadorarestradal
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacionneyvajms
 
Diagramas flujo
Diagramas flujoDiagramas flujo
Diagramas flujoinfobran
 
Algoritmos y programacion en C++
Algoritmos y programacion en C++Algoritmos y programacion en C++
Algoritmos y programacion en C++
Alejandro Leon Cerna
 
Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.pptLeydi Hernandez
 
Manual de javaa2
Manual de javaa2Manual de javaa2
Manual de javaa2
adrianyourlust1998
 
Manual de java
Manual de java Manual de java
Manual de java
ariannalizeeth
 
manual 10
manual 10manual 10
manual 10
ariannalizeeth
 
MANUAL DE JAVA 1
MANUAL DE JAVA 1MANUAL DE JAVA 1
MANUAL DE JAVA 1
ariannalizeeth
 
Programación
ProgramaciónProgramación
Programación
belenramiz
 
_Algoritmos.ppt
_Algoritmos.ppt_Algoritmos.ppt
_Algoritmos.ppt
ssuser18ad10
 
Fundamentos de programación - Introducción
Fundamentos de programación - IntroducciónFundamentos de programación - Introducción
Fundamentos de programación - Introducción
ManuelZambrano67
 
Qué es un algoritmo
Qué es un algoritmoQué es un algoritmo
Qué es un algoritmo
Abrirllave
 
Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmo
Nombre Apellidos
 
Clase 2 algorítmos - 16-04-201
Clase 2   algorítmos - 16-04-201Clase 2   algorítmos - 16-04-201
Clase 2 algorítmos - 16-04-201Andrés Cadena
 
Seudocodigo
SeudocodigoSeudocodigo
Seudocodigo
arianygutierrez
 

Similar a Desarrollo de lógica algorítmica_PARTE 1.PPTX (20)

Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadora
 
Clase 2
Clase 2Clase 2
Clase 2
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
Diagramas flujo
Diagramas flujoDiagramas flujo
Diagramas flujo
 
Algoritmos y programacion en C++
Algoritmos y programacion en C++Algoritmos y programacion en C++
Algoritmos y programacion en C++
 
Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.ppt
 
Manual de java_3
Manual de java_3Manual de java_3
Manual de java_3
 
Manual de javaa2
Manual de javaa2Manual de javaa2
Manual de javaa2
 
Manual de java
Manual de java Manual de java
Manual de java
 
manual 10
manual 10manual 10
manual 10
 
Manual de java 3
Manual de java 3Manual de java 3
Manual de java 3
 
MANUAL DE JAVA 1
MANUAL DE JAVA 1MANUAL DE JAVA 1
MANUAL DE JAVA 1
 
Programación
ProgramaciónProgramación
Programación
 
_Algoritmos.ppt
_Algoritmos.ppt_Algoritmos.ppt
_Algoritmos.ppt
 
Fundamentos de programación - Introducción
Fundamentos de programación - IntroducciónFundamentos de programación - Introducción
Fundamentos de programación - Introducción
 
Qué es un algoritmo
Qué es un algoritmoQué es un algoritmo
Qué es un algoritmo
 
Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Clase 2 algorítmos - 16-04-201
Clase 2   algorítmos - 16-04-201Clase 2   algorítmos - 16-04-201
Clase 2 algorítmos - 16-04-201
 
Seudocodigo
SeudocodigoSeudocodigo
Seudocodigo
 

Último

Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
calendario academico uanl semestre 2024.
calendario academico uanl semestre 2024.calendario academico uanl semestre 2024.
calendario academico uanl semestre 2024.
ClaudiaPalacios64
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
el pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdfel pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdf
almitamtz00
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
H4RV3YH3RN4ND3Z
 
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdfUNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
Joan Ribes Gallén
 
Biografía de Gregor Mendel y sus 3 leyes.pptx
Biografía de Gregor Mendel y sus 3 leyes.pptxBiografía de Gregor Mendel y sus 3 leyes.pptx
Biografía de Gregor Mendel y sus 3 leyes.pptx
ar5498718
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Demetrio Ccesa Rayme
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIAFUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
ElenaGallardoPals
 
recursos naturales en chile quinto básico .pptx
recursos naturales en chile quinto básico .pptxrecursos naturales en chile quinto básico .pptx
recursos naturales en chile quinto básico .pptx
Waleska Chaparro
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
20minutos
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
Armando920824
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Alejandrino Halire Ccahuana
 
Tema 3-3 Métodos anticonceptivos y ETS 2024
Tema 3-3 Métodos anticonceptivos y ETS 2024Tema 3-3 Métodos anticonceptivos y ETS 2024
Tema 3-3 Métodos anticonceptivos y ETS 2024
IES Vicent Andres Estelles
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 

Último (20)

Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
calendario academico uanl semestre 2024.
calendario academico uanl semestre 2024.calendario academico uanl semestre 2024.
calendario academico uanl semestre 2024.
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
el pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdfel pensamiento critico de paulo freire en basica .pdf
el pensamiento critico de paulo freire en basica .pdf
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
 
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdfUNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
 
Biografía de Gregor Mendel y sus 3 leyes.pptx
Biografía de Gregor Mendel y sus 3 leyes.pptxBiografía de Gregor Mendel y sus 3 leyes.pptx
Biografía de Gregor Mendel y sus 3 leyes.pptx
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIAFUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
FUENTES DE LA CULTURA GRIEGA EN LA HISTORIA
 
recursos naturales en chile quinto básico .pptx
recursos naturales en chile quinto básico .pptxrecursos naturales en chile quinto básico .pptx
recursos naturales en chile quinto básico .pptx
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
 
El ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURAEl ensayo mexicano en el siglo XX LITERATURA
El ensayo mexicano en el siglo XX LITERATURA
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
 
Tema 3-3 Métodos anticonceptivos y ETS 2024
Tema 3-3 Métodos anticonceptivos y ETS 2024Tema 3-3 Métodos anticonceptivos y ETS 2024
Tema 3-3 Métodos anticonceptivos y ETS 2024
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 

Desarrollo de lógica algorítmica_PARTE 1.PPTX

  • 2. Introducción  Algoritmo  Método para resolver un problema.  Pasos para la resolución de un problema: 1. Analizar el problema. 2. Diseñar el algoritmo –sin ambigüedades- que conduzca a la solución. 3. Expresar el algoritmo como un programa en un lenguaje de programación (codificación). 4. Ejecución y validación del programa. 2 Problema Diseño del algoritmo Programa de computadora
  • 3. Introducción (cont.)  Los algoritmos son independientes tanto del lenguaje de programación como de la computadora que los ejecuta.  Ejemplo, analogía ¿cómo preparar espaguetti? 3 Receta de espaguetti Spaghetti recipe Spaghetti recette ¡Un lenguaje de programación es tan sólo un medio para expresar un algoritmo y una computadora es sólo un procesador para ejecutarlo!
  • 4. Características de los algoritmos  Preciso:  Sin ambigüedades e indicar el orden de realización de cada paso.  Definido:  Si se sigue dos veces se debe obtener el mismo resultado cada vez.  Finito:  Se debe terminar en algún momento, debe tener un número finito de pasos. 4
  • 5. Características de los algoritmos (cont.) La definición de un algoritmo debe describir tres partes: 1. Entrada 2. Proceso 3. Salida Por ejemplo para el algoritmo de la receta: 1. Entrada Ingredientes y utensilios empleados 2. Proceso Elaboración de la receta en la cocina 3. Salida Terminación del plato, el platillo en sí 5
  • 6. Características de los algoritmos (cont.)  Ejercicios: 1. Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco 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. 2. Se desea diseñar un algoritmo para saber si un número es primo o no. 3. Diseñar un algoritmo para obtener el número mayor de tres números dados por el usuario. 6
  • 7. Características de los algoritmos (cont.)  Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazará el pedido. Algoritmo: 1. inicio 2. leer el pedido 3. examinar la ficha del cliente 4. si el cliente es solvente: 5. aceptar pedido 6. si no: 7. rechazar pedido 8. fin si 9. fin 7
  • 8. Características de los algoritmos (cont.)  Algoritmo para saber si un número es primo o no: 1. inicio 2. leer el número (num) 3. establecer una variable x a 2 4. mientras x < num hacer: 5. si el resultado de num/x es entero: 6. escribir num no es un número primo 7. ir al paso 12 8. fin si 9. aumentar x en 1 10. fin mientras 11. escribir num es un número primo 12. fin 8
  • 9. Características de los algoritmos (cont.)  Algoritmo para obtener el número mayor de tres números dados por el usuario: 1. inicio 2. leer el número 1 (num1) 3. leer el número 2 (num2) 4. leer el número 3 (num3) 5. si num1>=num2 y num1>=num3: 6. escribir num1 es el número mayor 7. si no si num2>=num1 y num2>=num3: 8. escribir num2 es el número mayor 9. si no: 10. escribir num3 es el número mayor 9
  • 10. Diseño del algoritmo  La técnica de diseño descendente es la más común.  Diseño descendente:  Descomposición del problema original en subproblemas más simples y a continuación la división de estos subproblemas en otros más simples.  Al proceso de ampliar la primera descripción del problema en una descripción más detallada con más pasos específicos se le denomina refinamiento por pasos.  Para problemas complejos se necesitan con frecuencia diferentes niveles de refinamiento antes de que se pueda obtener un algoritmo claro, preciso y completo. 10
  • 11. Problema original Subproblemas Refinamiento 1. calcular área de un triángulo a partir del valor de sus lados 1. leer valores de los lados 2. calcular perímetro 3. calcular semiperimetro 4. calcular área 5. escribir resultados 1a. leer valor de lado1 (l1) 1b. leer valor de lado2 (l2) 1c. leer valor de lado3 (l3) 2. p = l1 + l2 + l3 3. s = p / 2 4. a = s(s − l1)(s − l2)(s − l3) 5. escribir p, s y a Diseño del algoritmo (cont.)  Diseño descendente (cont.)  Ejemplo, realizar el algoritmo para calcular el área de un triángulo a partir del valor de sus lados: 11
  • 12. Diseño del algoritmo (cont.)  Diseño descendente (cont.) Ventajas: El problema se comprende mejor 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. 12
  • 13. Diseño del algoritmo (cont.) Diseño de un algoritmo Diseño descendente (1) Refinamiento por casos (2) Escritura del algoritmo: -pseudocódigo -diagrama de flujo -diagrama N-S (3) 13
  • 14. Pseudocódigo  Es un lenguaje de especificación (descripción) de algoritmos con una gran similitud al lenguaje natural, pero utilizando ciertas palabras reservadas. … facilita la traducción a un lenguaje de programación.  Originalmente se representaban las acciones con palabras reservadas en el idioma inglés:  start, end, read, write, repeat, while…  El algoritmo comienza con la palabra “inicio” y termina con la palabra “fin”.  La línea precedida por “//” se denomina comentario.  La escritura de pseudocódigo exige normalmente la indentación (sangría en el margen izquierdo) de las diferentes líneas acorde al bloque al que pertenecen. 14
  • 15. Pseudocódigo (cont.)  Ejemplo, cálculo del salario de un trabajador: INICIO // Cálculo del salario: LEER nombre, horas_trabajadas, pago_por_hora, deducciones salario = horas_trabajadas * pago_por_hora salario_neto = salario – deducciones ESCRIBIR nombre, salario, salario_neto FIN 15
  • 16. Diagrama de flujo  Forma de representación de un algoritmo utilizando símbolos (cajas) estándar unidas por flechas (denominadas líneas de flujo) que indican la secuencia en que se debe ejecutar.  Los símbolos son normalizados por la ANSI (American National Standars Institute) y son muy variados, los más utilizados representan:  inicio/fin  proceso  decisión  entrada/salida  conectores  dirección del flujo 16
  • 17. Diagrama de flujo (cont.)  Plantilla típica para diagramas de flujo: 17 Terminador, representa el comienzo y final de un algoritmo, puede representar también una parada o interrupción programada. Entrada/Salida, cualquier tipo de introducción de datos (entrada) o registro de la información procesada en un periférico (salida). Proceso, cualquier tipo de operación que pueda originar un cambio de valor, formato o posición de la información almacenada en memoria: operaciones aritméticas, de asignación, etc.
  • 18. Diagrama de flujo (cont.)  Plantilla típica para diagramas de flujo (cont.): 18 Decisión, indica operaciones lógicas o de comparación entre datos, en función del resultado determina con cuál de los caminos alternativos el algoritmo debe continuar. Conector, sirve para enlazar dos partes cualesquiera del flujo del diagrama a través de un conector en la salida y otro conector en la entrada. Se refiere a la conexión en la misma página del diagrama. Conector, conexión entre dos puntos del algoritmo situado en diferentes páginas. n o sí
  • 19. Diagrama de flujo (cont.)  Plantilla típica para diagramas de flujo (cont.): 19 Llamada a subrutina o a un proceso predeterminado, una subrutina es una parte independiente del algoritmo que recibe una entrada, realiza una tarea determinada y regresa, al terminar, al algoritmo principal. Comentario, se utiliza para añadir comentarios a otros símbolos del diagrama de flujo, se pueden dibujar a cualquier lado del símbolo.
  • 20. Diagrama de flujo (cont.)  Ejemplo, cálculo del salario de un trabajador: 20 inicio leer nombre, horas_trabajadas, pago_por_hora, deducciones salario = horas_trabajadas * pago_por_hora salario_neto = salario – deducciones escribir nombre, salario, salario_neto fin cálculo del salario salario = horas_trabajadas * pago_por_hora salario_neto = salario – deducciones Es posible agregar varias acciones similares en un solo símbolo: