Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Fundamentos de Programación
Unidad 2: ALGORITMOS
2.1 Análisis de problemas
Problema: es la diferencia entre una situación actual y una
situación deseada, ésta última puede surgir como producto
de una necesidad, una deficiencia o una oportunidad de
mejora de los negocios.
Entrada Salidas
Ejemplo: calcular el área de un rectángulo
Base
2.1.2 Fases de resolución de un problema
Definición de Problema
Análisis de los Datos
Diseño de la Solución (Algoritmo)
Codificación (Programa)
Prueba y Depuración
Documentación
Mantenimiento
2.1.2.1 Definición del problema
Está dada en sí por el enunciado del
problema, el cual debe ser claro y completo.
Operador Operación
^ Exponenciación
* Multiplicación
/ División
+ Suma
- Resta
DIV División entera (cociente)
MOD Modulo o residuo de División
2.2.3.2 Operadores relacionales
Permiten realizar comparaciones de valores de tipo
numérico o carácter. Estos operadores sirven para
expresar las condiciones en los algoritmos. Proporcionan
resultados lógicos.
Operador Significado
< Menor que
> Mayor que
<= Menor igual
>= Mayor igual
= igual
<> Diferente
2.2.3.3 Operadores lógicos
Son aquéllos que permiten la combinación de condiciones
para formar una sola expresión lógica. Utilizan operandos
lógicos y proporcionan resultados lógicos también.
X Y X X X NOT(X) NOT(Y)
AND OR XOR
Y Y Y
F F F F F V V
F V F V V V F
V F F V V F V
V V V V F F F
2.2.3. 4 Prioridad de Operadores
Determina el orden en que habrán de realizarse las operaciones
en una expresión determinada. Para obtener la prioridad se
deben conocer las siguientes reglas:
Las operaciones que están encerradas entre paréntesis se
evalúan primero. Si existen diferentes paréntesis anidados
(interiores unos a otros), las expresiones más internas se
evalúan primero.
Las operaciones aritméticas dentro de una expresión suelen
seguir el siguiente orden de prioridad:
Operador Prioridad
^ Exponenciación (ALTA)
*,/,DIV,MOD multiplicación, división,
cociente , residuo
+,- suma, resta
Relacionales Baja
Lógicos
Descripción narrada
Diagrama de flujo (representación gráfica)
Pseudocódigo
Diagramas estructurados(N-S)
2.4.1 Descripción narrada
Utiliza el lenguaje natural para describir la
secuencia de pasos a seguir para dar
solución a un problema especifico.
Es muy utilizada para describir algoritmos
cotidianos como recetas de cocina,
instructivos de instalación, etc.
Se debe de emplear una clara redacción con
énfasis en los detalles y sin ambigüedades.
La secuencia de pasos se debe de enumerar
de acuerdo al orden de ejecución del
algoritmo.
2.4.2 Diagrama de flujo
Se basan en la utilización de diversos
símbolos para representar operaciones
específicas.
Se les llama diagramas de flujo porque los
símbolos utilizados se conectan por medio
de flechas para indicar la secuencia de
operación.
La simbología utilizada para la elaboración
de diagramas de flujo es variable y debe
ajustarse a un patrón definido previamente.
2.4.2.1 Simbología de Diagrama de flujo1
Símbolo Función
Terminal : representa el inicio o fin de un programa,
puede también representar una parada o interrupción
programada que sea necesario realizar en un programa
Entrada/Salida de datos
Acción 1 SI
Accion(es) Accion(es)
Accion(es)
Acción 2
MULTIPLE
Selector
Acción n
Valor 1 Valor 2 Valor 3 Valor N
Accion(es) Accion(es) Accion(es) … Accion(es)
2.4.2.2 Representación de estructuras de
control de repetición diagrama de flujo
Condicionada al Inicio (While) Condicionada al Final (Repeat-Until)
NO Accion(es)
Condición
SI
NO
Condición
Accion(es)
PREDEFINIDA SI
i=Val. Inicial
I<=Val. Final
NO
i=i+1
SI
Accion(es)
2.4.3 Pseudocódigo
Es un 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.
La ventaja del pseudocódigo es que en su uso en la
planificación de un programa, el programador se puede
concentrar en la lógica y en las estructuras de control y no
preocuparse de las reglas de un lenguaje específico.
Es también fácil modificar si se descubren errores o
anomalías en la lógica del programa.
utiliza para representar las acciones sucesivas palabras en
un lenguaje natural (similares a sus homónimos en los
lenguajes de programación), tales como inicio, fin, repite –
hasta, si –entonces-sino, etc.
2.4.3.1Palabras usadas en Pseudocódigo
Secuencia Doble
Inicio si condición entonces
acción1 acción(es)
acción2 en caso contrario
: acción(es)
acción n
Fin Múltiple
Decisión Simple casos selector de
si condición entonces valor1 : acción(es)
acción1 valor2 : acción(es)
acción2 :
: valor n : acción(es)
acción n
2.4.3.1Palabras Iteración en Pseudocódigo
Predefinida
para var. Entera inicial hasta final hacer
acción(es)
Condicional al inicio
Haz mientras (condición)
acción(es)
Condicional al final
Repetir
acción(es)
Hasta que condición
2.4.4 Diagramas Estructurados
(nassi-schneiderman)
El diagrama N-S de Nassi-Schneiderman, también
conocido como diagrama de Caja, 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 caja.
Los Diagramas Estructurados, son una técnica que
permite formular algoritmos mediante una
representación geométrica y de asignación
de espacios de un bloque específico.
2.4.4.1 Estructuras de control diagramas N-S
Secuencia
Selección Simple
Selección Múltiple
Selección Doble
2.4.4.1 Estructuras de control de repetición
diagramas N-S
Pre-definida
2.4.4.2 Ejemplos diagrama (N-S)