El documento introduce los conceptos básicos de los algoritmos y su desarrollo. Explica que un algoritmo es un método para resolver un problema en pasos precisos e independientes del lenguaje de programación. Describe las características de los algoritmos como ser precisos, definidos y finitos, y que deben especificar la entrada, proceso y salida. Además, presenta técnicas como el diseño descendente para dividir un problema en subproblemas más simples, y formas de expresar algoritmos como pseudocódigo y diagramas de flujo.
Presentación de la conferencia sobre la basílica de San Pedro en el Vaticano realizada en el Ateneo Cultural y Mercantil de Onda el jueves 2 de mayo de 2024.
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “ROMPECABEZAS DE ECUACIONES DE 1ER. GRADO OLIMPIADA DE PARÍS 2024”. Esta actividad de aprendizaje propone retos de cálculo algebraico mediante ecuaciones de 1er. grado, y viso-espacialidad, lo cual dará la oportunidad de formar un rompecabezas. La intención didáctica de esta actividad de aprendizaje es, promover los pensamientos lógicos (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia, viso-espacialidad. Esta actividad de aprendizaje es de enfoques lúdico y transversal, ya que integra diversas áreas del conocimiento, entre ellas: matemático, artístico, lenguaje, historia, y las neurociencias.
Documento sobre las diferentes fuentes que han servido para transmitir la cultura griega, y que supone la primera parte del tema 4 de "Descubriendo nuestras raíces clásicas", optativa de bachillerato en la Comunitat Valenciana.
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: