TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
Algoritmos (DFD, Pseudocodigos).pptx
1. ALGORITMO
¿Qué es un algoritmo?
Es un conjunto de pasos, instrucciones que se deben
seguir y ejecutar de manera ordenada para alcanzar un
fin deseado.
¿Para qué nos sirven los algoritmos?
Para resolver problemas de la vida cotidiana y ordenar
prioridades; pueden ser ejecutados por un procesador
utilizando un lenguaje de programación como: Visual
Basic, C, C++, PHP entre otros.
2. Conceptos básicos.
Aspectos que se deben considerar a la hora de escribir un algoritmo:
• Determinación de las primitivas de las que partimos
• Lenguaje simbólico a utilizar para desarrollar el algoritmo
• Representación de los datos
• Establecer datos de entrada
• Establecer datos de salida
• Establecer las relaciones entre los datos de entrada y los de salida
Condiciones que debe cumplir un algoritmo:
• Ser finito: El algoritmo debe acabar tras un número finito de pasos
• Estar bien definido: Todas las ejecuciones del algoritmo con los mismos datos de
entrada deben devolver los mismos datos de salida.
Diferencias entre un algoritmo y un programa:
• Los algoritmos no son directamente interpretables por el computador => deben ser
traducidos a un lenguaje de programación concreto.
3. Algoritmo
Es un procedimiento computacional bien definido que toma un
conjunto de valores como entrada y produce otro conjunto de
valores como salida.
4. Representación de algoritmos
• Métodos para representar un algoritmo:
– Pseudolenguaje
– Diagramas de flujo
• Pseudolenguaje
– Es un lenguaje específico de descripción de algoritmos
– La traducción de un algoritmo escrito en pseudolenguaje a un programa
en un lenguaje de programación determinado es relativamente simple
• Herramientas de un pseudolenguaje para representar un algoritmo
– Conjunto de palabras clave que proporcionan:
• las estructuras de control
• declaraciones de variables
• características de modularidad
– Sintaxis libre de un lenguaje natural que describe las características del
proceso
– Elementos para la definición y llamada a subprogramas
5. Metodología de diseño
Un problema => muchos algoritmos para resolverlo
¿Cómo elegir el más adecuado? Basándonos en las siguientes
características:
– Legibilidad – Eficiencia
– Portabilidad – Modularidad
– Modificabilidad – Estructuración
6. Metodología de diseño
Programación estructurada
– Conjunto de técnicas que aumentan la productividad de un
programa, reduciendo el tiempo para:
• Escribir • Depurar
• Verificar • Mantener
– Utiliza un número limitado de estructuras de control que
minimizan la complejidad de los problemas
– Teorema de BOHM-JACOPINI: cualquier programa, por
complejo que sea, puede escribirse utilizando sólo tres estructuras
de control:
– Secuencial
– Selectiva
– Repetitiva
7. Cuantitativos
Son aquellos que intervienen cálculos numéricos se
relacionan con los operadores aritméticos y de
relación.
Cualitativos
Son aquellos que describen los pasos utilizando
palabras.
Los algoritmos se clasifican en dos tipos:
8. Texto Narrativo (consiste en escribir paso a paso las
acciones).
Diagrama de Flujo (Representac. grafica mediante el uso
de símbolos).
Pseudocódigo (Usar lenguaje no formal para describir la
secuencia de acciones).
Los algoritmos pueden ser representados mediante las
siguientes técnicas:
9. METODOLOGÍA PARA
RESOLVER PROBLEMAS
Principalmente abordamos la definición de problema:
¿Qué es un problema?
Es algo que hay que resolver; situación de diferente índole.
Observa la imagen donde presenta el concepto de problema:
Factores: condiciones o alternativas Valores de salida
Situación
inicial
Proceso
Situación
Final
Valores de entrada
10. Identificar el problema y delimitarlo; especificar cuál es la situación.
Analizar el problema y plantear alternativas de solución.
Elegir alternativa de solución para comenzar a diseñar el algoritmo.
Desarrollar la solución
Evaluar la solución; realizar prueba de escritorio o emplear lenguaje
de programación.
Seguir la metodología para resolver problemas
11. CARACTERÍSTICAS
DE LOS
ALGORITMOS
Un algoritmo requiere cumplir con cinco condiciones importantes:
1. Finito: porque termina en algún momento.
2. Definido: Si sigue el algoritmo dos veces se tiene el mismo
resultado
3. Entrada: Generar datos de inicio.
4. Salida: Al término del algoritmo tiene relación con los datos de
entrada.
5. Efectivo: todas las operaciones son sencillas para ser exactas.
12. Estructura de un Algoritmo
Todo algoritmo consta de tres secciones principales:
Entrada: Es la introducción de datos para ser
transformados.
Proceso: Es el conjunto de operaciones a realizar para
dar solución al problema.
Salida: Son los resultados obtenidos a través del
proceso.
Entrada Proceso Salida
13. Diseño de algoritmos
Alternativas de solución
Es la forma de representar la secuencia lógica
de ejecución de instrucciones.
Esta puede ser a través de:
1) Diagramas de flujo
2) Pseudocódigo
14. DIAGRAMAS DE FLUJO
Un diagrama de flujo representa gráficamente
a un algoritmo y éste muestra la solución de
un problema y se puede trasladar a un
lenguaje de programación.
Diagramas de entrada- Proceso – Salida
Inicio: leer datos de entrada
Procesar los datos.
Escribir datos de salida.
15. Diagrama de Flujo de Datos (DFD)
- El resultado de este análisis deberá ser:
• Gráfico
• Lógico , nunca referido a entornos físicos
• Preciso y breve
• Comprensible
• Debidamente particionado
• Bien documentado
• Nunca redundante
• No ambiguo
- En los DFD no se deberá modelizar:
Procedimientos, puntos de inicio y de terminación del DFD
condiciones, tratamientos de errores poco relevantes
16. Diagrama de flujo
Es empleado para representar la solución de un
algoritmo empleando figuras geométricas, donde
cada una de ellas representa en particular una tarea
especifica que realizar.
Las más comunes son:
17. SIMBOLO UTILIDAD
El rectángulo se utiliza para
identificar las acciones a
realizar, es decir, este símbolo
indica el proceso a realizar
El trapezoide, indica la entrada
o lectura de los datos
El rombo, es la caja de
decisiones, representa las
alternativas con solo dos
posibles opciones SI y NO
18. SIMBOLO UTILIDAD
Los círculos, son utilizados para
indicar el inicio y el final del
algoritmo.
El cono se utiliza para indicar una
salida en pantalla.
La flecha, indica la secuencia de
acciones a realizar, es decir, es
quien marca la continuidad y orden de
ejecución de las acciones propias del
problema a resolver.
21. 21
Líneas de flujo: Es una línea con una flecha (y solo una flecha) que permite conectar los
bloques del diagrama. La flecha indica la secuencia en la que se van a ejecutar las acciones.
Símbolos Utilizados.
Principio y Fin: Todo algoritmo y por lo tanto, todo diagrama de flujo tiene un principio y un fin
(y son únicos). Dentro de este bloque se coloca la palabra “INICIO” o “FIN” según
corresponda.
"INICIO” o “FIN”
Proceso: Aquí dentro se escribe la acción que debe realizar el programa. Si son varias, se
escriben una debajo de la otra, sin olvidarse que se ejecutan una a una en forma secuencial
según en qué orden fueron escritas.
Acciones
22. 22
Condición: Dentro de este bloque se escribe una condición. Si ésta es verdadera, entonces
el algoritmo tomará una de sus salidas, de lo contrario, tomará la siguiente. Permite
representar estructuras del tipo selectivas y repetitivas.
Símbolos Utilizados.
Entrada y Salida: Representa acciones de entrada salida desde un teclado o hacia una
pantalla respectivamente. Es decir, si debemos ejecutar una acción que consiste en leer un
dato que se ingresa mediante el teclado de una PC y almacenarlo en la variable de nombre
“a”, entonces dicha acción se describe dentro de este bloque como “leer a”.
Condición
Verdadera
?
Leer o Escribir
Si No
23. 23
Conectores: Permiten “unir” diagramas de flujo cuando éstos no caben en una misma
columna de la hoja por completo. Es decir, cuando debemos, por cuestiones de espacio en la
hoja, fragmentar el programa entonces utilizamos estos bloques para indicar los puntos de
unión. Cada par de puntos que se deben unir llevarán dentro de este bloque el mismo
número.
En la misma hoja: En otra hoja:
Símbolos Utilizados.
Comentarios: Es una aclaración para comprender mejor el código del programa, pero no
forma parte del código, es decir, no se ejecuta.
24. 24
RECORDAR: CONCEPTO DE
ALGORITMO: Un algoritmo es
un conjunto de pasos o
secuencia de instrucciones
que, ejecutadas en un
determinado orden, permiten
resolver un problema
determinado.
Diagrama de Flujo Elemental.
INICIO
Declaración e
Inicialización de
Variables
Entrada de
Datos
Presentación de
Resultados en
Pantalla
Procesamiento de
Datos
FIN
Esto es un comentario.
25. 25
Diagrama de Flujo Elemental.
INICIO
Declaración e
Inicialización de
Variables
Entrada de
Datos
Presentación de
Resultados en
Pantalla
FIN
Condición
Verdadera
?
Si No
Acción 1 Acción 2
Ejemplo de DF de un algoritmo genérico que incluye
una bifurcación.
Si la Condición es Verdadera, se ejecuta la Acción 1 y
en caso contrario (Falsa) la Acción 2.
27. 27
• El pseudocódigo es una manera de escribir algoritmos de forma poco estricta
(con una sintaxis relajada) o estructuras de datos poco detalladas, pero
intentando acercar las ideas del algoritmos a estructuras y sintaxis parecidas a
las de los lenguajes de alto nivel en los que vamos a programar el algoritmo.
• Es para ser leído por personas, por tanto no se preocupa en detalles
sintácticos.
• Es un lenguaje de especificación de algoritmos, pero muy parecido a cualquier
lenguaje de programación, por lo que luego su traducción al lenguaje de
programación es muy sencillo, pero con la ventaja de que no se rige por las
normas de un lenguaje en particular. Nos centramos más en la lógica del
problema.
• El pseudocódigo también va a utilizar una serie de palabras claves o palabras
especiales que va indicando lo que significa el algoritmo.
Pseudocódigo.
28. 28
1. INICIO y FIN: Por donde empieza y acaba el algoritmo.
2. DATOS: Aquí se declaran e inicializan las variables que utilizará el algoritmo.
3. ALGORITMO: En esta sección se escribe el algoritmo.
Pseudocódigo - Sintaxis Utilizada.
Pseudocódigo de un algoritmo genérico:
INICIO.
DATOS: ** esto es un comentario **
entero a ; ** declaración de una variable entera **
real b = 0 ; ** declaración e inicialización de una variable **
ALGORITMO:
leer a ;
b = a + 5 ;
escribir b ;
FIN.
29. CARACTERISTICAS
DE UN PSEUDOCÓDIGO
Las características que definen a un Pseudocódigo son las siguientes:
a) Emplea palabras normales de un idioma.
b) No existe vocabulario obligado y por el uso frecuente se establecen estándares.
c) Las instrucciones deben ser precisas con precisión.
d) Las instrucciones no requieren rigurosidad de las empleadas en el lenguaje de
programación.
e) Un algoritmo representado en Pseudocodigo puede convertirse en código de un
lenguaje de programación.
30. Conocer los tipos de datos que serán empleados adecuadamente.
En sentido amplio un tipo de dato define un conjunto de valores y las
operaciones sobre estos valores.
Enteros: números enteros positivos y negativos.
Reales: Se identifican por ser un número que lleva un punto decimal.
Caracteres: Son números, letras o símbolos entre apóstrofos.
Cadenas: Se expresan en comillas y consiste una secuencia de caracteres.
Lógicos: Solo tienen dos valores Falso y verdadero.
31. Variables
Permite almacenar de forma temporal un valor y el cual
puede cambiar durante la ejecución del algoritmo ó
programa.
Toda variable tiene un nombre que sirve para
identificarla.
Ejemplo:
prom=(calf1+calf2+calf3)/3
Las variables son: prom, calf1, calf2, calf3.
32. Constantes
Son datos numéricos o alfanuméricos que contienen un
valor y que no cambia durante la ejecución del
algoritmo ó programa.
Ejemplos:
prom=(calf1+calf2+calf3)/3
PI=3.1416
Las constantes son: 3, PI.
33. Operadores y Expresiones
Expresiones: Es un conjunto de constantes, variables,
operadores con lo que se realizan las operaciones y
permite obtener un resultado.
Ejemplo:
resultado a*(2*b+5)/c
Cal_final (cali1+cali2)/2
34. Operadores: Es un símbolo que permite manipular los
valores de variables y/o constantes.
Operadores matemáticos
1) ^ **
2) * / div mod
3) + -
Los operadores con igual nivel de prioridad se
evalúan de izquierda a derecha.
Operador de asignación
= ó
Sirve para recuperar o guardar los valores obtenidos al
realizarse o ejecutarse una expresión.
35. Operadores de relación
1) Mayor que >
2) Menor que <
3) Mayor igual que >=
4) Menor igual que <=
5) Igual =
6) Diferencia < > !=
•Son empleados para comparar dos ó más valores.
•Su resultado produce valores como verdadero y
falso.
•Tienen el mismo nivel de prioridad.
36. Operadores Lógicos o booleanos
•Son empleados para comparar dos valores (verdadero y
falso)
•Su resultado produce valores como verdadero y falso.
•Los tres tienen el mismo nivel de prioridad.
VAL1 VAL2 RESUL
Cierto Cierto Cierto
Cierto Falso Falso
Falso Cierto Falso
Falso Falso Falso
AND
VAL1 VAL2 RESUL
Cierto Cierto Cierto
Cierto Falso Cierto
Falso Cierto Cierto
Falso Falso Falso
OR
VAL1 RESUL
Cierto Falso
Falso Cierto
NOT
37. Prioridad entre los Operadores
1) Matemáticos
2) Relacionales
3) Lógicos
4) De asignación
Siempre se ejecutan de
izquierda a derecha en
caso de haber dos ó más
operadores con el mismo
nivel de prioridad.
38. ESTRUCTURAS DE CONTROL
Secuencial
Selección
Repetición
Las estructuras que se encuentran en el desarrollo de los algoritmos
pueden clasificarse de la siguiente manera
41. Selectivas: Se utilizan para TOMAR DECISIONES.
Simples
Lo que se hace es EVALUAR la condición, si la
condición es verdadera realiza la acción, en caso
contrario termina el programa.
Si <condición> entonces
Acción(es)
Fin-si
44. Selectivas
Doble
Luego de evaluar una condición si esta se
cumple, es decir si es verdadera realiza una serie
de acciones, y si esta es falsa se realiza otra serie
de acciones distinta a la primera.
Si <condición> entonces
Acción(es)
Sino
Acción(es)
Finsi
47. Selectivas
Múltiple
Se realiza a partir de anidar estructuras simples
y/o dobles, de manera tal que se realicen
diferentes acciones con base a varias
comparaciones, así habrá tantas opciones como
se requieran.
Si <condición> entonces
Acción(es)
Sino
Si <condición> entonces
Acción(es)
Sino
.
. Varias condiciones
.
Finsi
Finsi
48. 48
Si: Si la Condición es Verdadera, se ejecuta la Acción, sino el algoritmo continua con su
ejecución.
Estructuras de Control Selectivas.
Condición
Verdadera
?
Si
No
Acción
Si < Condición >
<Acción>
Fin_Si
49. 49
Si – Sino: Si la Condición es Verdadera, se ejecuta la Acción 1, sino el algoritmo ejecuta la
Acción 2. Luego el algoritmo continua con su ejecución.
Condición
Verdadera
?
Si
No
Acción 1 Acción 2
Si < Condición >
< Acción 1 >
Sino < Acción 2 >
Fin_Si
Estructuras de Control Selectivas.
50. 50
Si – Sino – Si: Si la Condición 1 es Verdadera, se ejecuta la Acción 1, sino el algoritmo
evalúa la Condición 2. Si es Verdadera, ejecuta la Acción 2 y sino la Acción 3.
Cond. 1
Verdadera
?
Si
No
Acción 1
Acción 3
Cond. 2
Verdadera
?
Acción 2
Si
No
Si < Condición 1 >
< Acción 1 >
Sino_Si < Condición 2 >
< Acción 2 >
Sino < Acción 3 >
Fin_Si
Estructuras de Control Selectivas.
51. 51
Según (alternativa múltiple): Se evalúa una condición o expresión que puede tomar “n”
valores. Según el valor que la expresión tenga en cada momento se ejecutan las acciones
correspondientes al valor. El valor con el que se compara la expresión, va a depender de los
lenguajes, de lo que sea ese valor. En general ese valor puede ser un valor constante, un
rango de valores o incluso otra condición.
Expresión
o
Condición
Acción 1 Acción “n”
Acción 2
Según <expresión>
< Valor 1 >: < Acción 1 >
< Valor 2 >: < Acción 2 >
< Otro >: < Acciones >
Fin_Según
Estructuras de Control Selectivas.
…
54. Repetitivas: Este tipo de estructura se utilizan
para ejecutar acciones repetidamente, esto
se hace posible mediante una secuencia de
instrucciones que se repiten una y otra vez y
así evitamos escribir múltiples veces las
mismas instrucciones.
55. Repetitiva
Para
Esta estructura ejecuta los pasos de la solución
del algoritmo un número definido de veces y de
modo automático controla el número de
iteraciones o pasos a través del cuerpo del ciclo.
Para el control se utiliza un contador en el cual
se va acumulando el número de veces que se
ha repetido las instrucciones.
Hacer para V.C = LI a
L.S
Acción1
Acción2
.
.
AcciónN
Fin para
V.C Variable de control de
ciclo
L.I Límite inferior
L.S Límite superior
58. 58
Desde – Hasta o Para: Se utiliza cuando se sabe el número exacto de veces que hay que
iterar. Para ello el bucle llevará asociado una variable “índice”, a la que se le asigna un valor
inicial y se determina cual va a ser su valor final y además se va a incrementar (o
decrementar) en cada iteración de bucle en un valor constante.
Variable = Inicio ; Condición? ; Inc. “n”
Condición
Verdadera
?
Si
No
Acción
Acción
No
Si
Inicio
Acción 2
Para variable = Vi, variable < Vf, Inc n
<Acción>
Fin_Para
Estructuras de Control Repetitivas.
(Recuerde que…)
59. Repetitiva
Mientras
Este se utiliza cuando NO sabemos el número
de veces que se ha de repetir un ciclo, los ciclos
se determinan por una condición que se evalúa
al inicio del ciclo, es decir, antes de ejecutarse
todas los pasos.
Hacer mientras <condición>
Accion1
Accion2
.
.
AccionN
Fin-mientras
62. 62
Mientras: Se evalúa la Condición. Si es Verdadera, se ejecuta la Acción y se evalúa
nuevamente la Condición. En el momento en el que la Condición sea Falsa se sale del bucle y
se continua con la ejecución del algoritmo. Al evaluarse la Condición, al principio, antes de
entrar en el bucle, si la condición es Falsa, nunca se entrará en el bucle. Por lo tanto se utiliza
obligatoriamente este tipo de bucle en el caso de que exista la posibilidad de que el bucle
pueda ejecutarse 0 veces.
Estructuras de Control Repetitivas.
(Recuerde que…)
Condición
Verdadera
?
Si
No
Acción
Mientras < Condición >
< Acción >
Fin_Mientras
63. Repetitiva
Hacer – Mientras ó Repetir
En esta estructura el ciclo se va a repetir hasta
que la condición se cumpla, a diferencia de las
estructuras anteriores la condición se escribe al
finalizar la estructura.
Repetir
Accion1
Accion2
.
.
AccionN
Hasta <condicion>
64. Repetitiva Hacer – Mientras ó Repetir
Ejemplo
Pseudocódigo
Proceso sin_titulo
Repetir
Leer SALARIO;
SAL_FIN<-SALARIO*1.15;
Escribir "El salario con aumento es",SAL_FIN;
Escribir "hay otro empleado";
Leer EMPLEA;
Hasta Que EMPLEA="n"
FinProceso
65. Repetitiva Hacer – Mientras ó Repetir
Ejemplo
Convertido a
diagrama de
flujo
desde PseInt
66. 66
Hacer - Mientras: En primera instancia se ejecuta la Acción. Posteriormente, se evalúa la
Condición. Si es Verdadera, se ejecuta nuevamente la Acción. Si es Falsa, se continúa con la
ejecución del algoritmo. Se repite el bucle mientras la condición sea Verdadera. La Condición
se evalúa siempre al final del bucle, si es Verdadera se ejecuta nuevamente la Acción, si es
Falsa se sale del bucle. Como la Condición se evalúa al final, incluso aunque la primera vez
ya sea Falsa, el bucle (la Acción) se habrá ejecutado al menos una vez.
Condición
Verdadera
?
Si
No
Acción
Hacer < Acción >
Mientras < Condición >
Estructuras de Control Repetitivas.
(Recuerde que…)
67. Ejemplo: Mostrar el producto de números enteros positivos entrados por teclado hasta el
ingreso de un número negativo.
Pseudocódigo:
Módulo: Principal
INICIO
DATOS:
P, num: entero
ALGORITMO:
P 1
Leer num
Mientras num >= 0
P p * num
Leer num
Fin_mientras
Escribir p
FIN
INICIO
Entero P, num
P = 1
Leer num
P = P * num
FIN
Num >= 0?
Leer num
Escribir num
Si
No
69. Primitivas de entrada-salida
• En el caso de diagramas de flujo:
– Están asociados a dos símbolos relacionados con
las acciones de leer (entrada de datos) y escribir
(salida de datos).
• En el caso de pseudocódigo:
– Se asocian a las palabras Leer y Escribir.
72. Asignación y cálculo
• En diagramas de flujo y pseudocódigo implican:
– Se deben observar todas la reglas referentes a la escritura
y evaluación de expresiones de asignación y cálculo.
– Todos los identificadores involucrados en una operación de
cálculo deben haber sido inicializados previamente.
– Todos los identificadores involucrados en una operación de
cálculo deben tener valores en el momento de que dicha
operación sea evaluada.
– Se recomienda, para mayor legibilidad y orden, usar una
sentencia por cada operación de asignación o cálculo.