2. 1. Introducción a los algoritmos
•Determinar los requerimientos iníciales.
•Determinar las entradas del algoritmo.
•Determinar las salidas del algoritmo.
2. Desarrollo de algoritmos usando seudo lenguaje
•Conocer el concepto de variable y localización de memoria.
•Desarrollar algoritmos que utilicen sentencias de selección Si-Sino.
•Desarrollar algoritmos que utilicen sentencias de iteración Mientras.
3. 1. Introducción a los algoritmos
Algoritmo: método de resolución de un problema en un número finito de pasos.
Problemas del mismo tipo, sean cuales sean los datos de entrada.
Paso conocido como sentencia o instrucción.
Instrucción combinación de palabras, variables, constantes y símbolos que
obedeciendo a la sintaxis propia del lenguaje, son utilizados por el
computador para realizar una determina acción.
Cada instrucción se escribe en una línea diferente.
Programa es la expresión de un algoritmo en un lenguaje de
programación entendible por el computador.
4. Un algoritmo de por si no tiene porque estar ligado con el asunto tecnológico.
Veamos un ejemplo para una receta:
Algoritmo para hacer un huevo frito
1. Ir a la cocina.
2. Sacar un huevo del refrigerador.
3. Sacar una sartén.
4. Pongo un poco de aceite en la sartén.
5. Hecho el huevo a la sartén.
6. Freír.
7. Comer.
5. Algoritmo para hacer un videojuego
1. Bajar los softwares necesarios para el desarrollo de mi videojuego ( udk, 3Dcoat)
2. 3Dcoat : Documentarse sobre los procesos de modelado, familiarizarme con el
editor.
3. UDK : Documentarse sobre el kit de desarrollo.
5. Documentación: Planificación desarrollo, gameplay, documento de diseño.
6. Implementación de los conocimientos adquiridos (Beta).
7. Demo final de el juego.
8. Publicar el juego.
9. Revisar mis informes de ventas millonarias de el juego.
6. El algoritmo o programa de computador consiste en dos partes fundamentales:
1. Descripción de la acciones que deben realizarse mediante las instrucciones.
2. Descripción de los datos que son manipulados por esas instrucciones mediante
declaraciones y definiciones.
Existen 3 tipos de algoritmos : Secuenciales, Condicionales y cíclicos.
Secuenciales: son aquellos que mantienen una secuencia lineal de paso a paso lo que hay
que hacer.
Condicionales: son algoritmos que en alguna parte presentan algún tipo de condición,
esta condición puede ser un si o un no.
Cíclicos: un grupo de instrucciones se ejecuta un número determinado de veces.
Algoritmos que presentan una estructura de repetición, en donde se ejecuta una cierta
cantidad de veces hasta que logra salir de el bucle o ciclo.
7. Algoritmo para hacer un videojuego (condicional)
Bajar los softwares necesarios para el desarrollo de mi videojuego ( udk, 3Dcoat)
3Dcoat : Documentarse sobre los procesos de modelado, familiarizarme con el
editor.
UDK : Documentarse sobre el kit de desarrollo.
Documentación: Planificación desarrollo, gameplay, documento de diseño.
Implementación de los conocimientos adquiridos (Beta).
Demo final de el juego.
Publicar el juego.
Revisar mis informes de ventas millonarias de el juego.
Si informes son positivos
Desarrollar la segunda versión de la saga
Sino
Pensar en una nueva idea de juego
Fin Si
8. Algoritmo para hacer un videojuego (cíclico)
Bajar los softwares necesarios para el desarrollo de mi videojuego ( udk, 3Dcoat)
3Dcoat : Documentarse sobre los procesos de modelado, familiarizarme con el
editor.
UDK : Documentarse sobre el kit de desarrollo.
Documentación: Planificación desarrollo, gameplay, documento de diseño.
Implementación de los conocimientos adquiridos (Beta).
Mientras iteraciones <= Final
Mostrar "Pequeños demos de las iteraciones”
Fin Mientras
Demo final de el juego.
Publicar el juego.
Revisar mis informes de ventas millonarias de el juego.
9. Características de los algoritmos
Cualquier problema puede tener diferentes formas de solución, cada uno de ellos con
sus ventajas e inconvenientes.
Hay que seleccionar el más adecuado. Su elección debe cumplir una serie de
características:
Finito: que finalice.
Legibilidad: debe estar escrito de tal forma que sea fácil de leer y entender.
Modificabilidad: las modificaciones y actualizaciones necesarias para una situación
del programa deben ser fáciles de realizar.
Eficiencia: deben ocupar los menos posible para aprovechar al máximo la memoria del
computador y para que el tiempo de ejecución sea el menor posible.
10. Características de los algoritmos
Modularidad: el programa, llamado programa principal, puede estar subdividido en
módulos o programas más pequeños, llamados subprogramas, cada uno de los cuales
realiza una parte del problema.
Estructuración: comprende todas las características anteriores. Como consecuencia
resulta más fácil para un algoritmo: leerlo, modificarlo y eliminar partes que se
puedan repetir.
11. Tipos de algoritmos
Diagramas de flujo: utiliza símbolos gráficos para su resolución. Presentan los
siguientes inconvenientes:
•Cualquier modificación nos obliga a reorganizarlo de nuevo.
•Utiliza la técnica lineal, en desuso hoy en día.
•El proceso de recorrer el diagrama desde el principio al final puede resultar
complejo y propicia la omisión de una cierta combinación poco frecuente, pero
posible, de condiciones bajo las cuales el algoritmo se comporta mal.
Tablas de decisión: tabulan todas las posibles situaciones que se puede presentar en
el problema y las correspondientes acciones a tomar para cada una de ellas.
Pseudocódigo: describe un algoritmo utilizando una mezcla de frases en lenguaje
común, instrucciones de lenguaje de programación y palabras clave que definen las
estructuras básicas.
12. Estructura de los pseudocódigos
En general, se dividen en tres secciones, que dependiendo del problema pueda o no
incluirla:
Inicial: en esta sección
Inicializaremos las variables que posteriormente vamos a utilizar.
Abriremos los archivos.
Introduciremos por teclado los valores de aquellas variables que deben ir fuera del
ciclo.
En general todo aquello que el computador debe realizar sólo una vez.
Ciclo: es el cuerpo del programa. Se debe repetir un numero determinado de veces o
hasta que se cumpla o deje de cumplirse una determinada condición.
Final: en esta sección
Incluiremos la impresión de los resultados finales que resultan del ciclo.
Cerraremos archivos.
Otras instrucciones.
13. Instrucciones de entrada
Se utilizan para tomar datos del exterior, guardándolos en variables.
Sintaxis: introducir <nombre variable>
Ejemplo: introducir desde el teclado un numero.
numero = 0 Inicializamos la variables a un valor, realizando una
asignación
introducir numero Cuando el computador realice la instrucción,
introducir quedara esperando a que ingresemos el
valor. Por ejemplo digitamos 3 y pulsamos la tecla
<Enter> o <Intro>.
El computador, en la zona de su memoria conocida
con el nombre de numero, almacena el valor 3.
14. Instrucciones de Salida
Sirven para presentar en pantalla o en impresora comentarios, constantes, contenido
de las variables y resultado de expresiones.
Sintaxis para comentarios: imprime “comentario”
Sintaxis para variables, constante y expresiones: imprime <nombre variable>
Ejemplos
imprime “Hola” Visualiza por pantalla o impresora la palabra Hola.
numero = 3 Visualiza el contenido de dicha variable, el 3.
imprime numero
imprime 2+3*4 Visualiza el número 14
a = “Hola “ Visualiza el comentario: Hola ¿qué tal?
b = “¿qué tal?”
imprime a+b
16. 2. Desarrollo de algoritmos usando seudo lenguaje
Concepto de variable y localización de memoria
Se considera variable a una zona de memoria referenciada por un nombre de variable,
donde se puede almacenar el valor de un dato, que puede cambiarse cuando lo
deseemos.
El nombre de la variable es definido por el usuario.
Una variable no es un dato, sino un área de memoria que contendrá un dato.
El computador asigna a cada variable una dirección de memoria. Cuando hagamos
referencia a esa variable, el computador siempre ira a esa dirección.
El contenido
de la variable
es lo que
cambia
17. Concepto de variable y localización de memoria
Para que estén perfectamente definidas las variables, hay que especificar:
Su nombre. Empieza con una letra y no contienen espacios en blanco. En un
lenguaje de programación las palabras reservadas no pueden ser utilizadas como
nombre de variables.
El tipo de dato: numérico, alfanumérico o booleano ( V o F)
El valor que va a tomar en un principio (inicialización)
La forma de almacenar el contenido de una variable en otra del mismo tipo es:
Nombre-variable-1 = nombre-variable-2
El computador guarda el contenido de la variable situada la derecha del signo igual,
variable-2, en su izquierda variable-1.
18. Ejemplo
Numero = 55
Contador = numero
La variable contador toma el valor de 55
Concepto de constante
Se llama constante a toda posición de memoria, referencia por un nombre de constante,
donde se almacena un valor que puede cambiarse a lo largo del proceso. Las contantes
pueden ser:
Enteras: números con valor entero. Ejemplo: mes = 10
Reales: números con punto decimal. Ejemplo: pi= 3.1416
Alfanuméricas: letras, dígitos, signos de puntuación y símbolos especiales. Ejemplo:
teléfono = “(56-2) 548-6733”
20. Uso de Operadores
Suponga las siguientes variables numéricas en memoria:
A B C
17 3
C=B2 El computador calculará 9 y el resultado quedará en la variable C
C=A div B El computador dividirá 17 por 3 y el cuociente (5 en este caso)
quedará almacenado en la variable C
C=A mod B El computador dividirá 17 por 3 y el resto de la división (2 en este
caso) quedará almacenado en la variable C
Observación: Las operaciones DIV y MOD implican división, pero sin decimales
17 : 3 = 5 cuociente
2/ resto
21. Algoritmos que utilizan sentencias de selección o decisión Si-Sino
Son aquellos que consideran acciones alternativas para poder elegir una de ellas cuando
la situación lo requiera.
Las instrucciones de decisión permiten realizar acciones alternativas; por tanto, la
ejecución de una línea o grupos de líneas del programa depende de si se cumplen o no
una o varias condiciones. Entonces, la realización de un acción esta supeditada a que se
cumpla la condición.
Sintaxis Si <condición>
instrucciones
Fin Si
22. Algoritmos que utilizan sentencias de selección o decisión Si-Sino
A menudo necesitamos realizar dos procesos completamente distintos, dependiendo si
cumple o no la condición de entrada del Si.
Sintaxis Si <condición>
instrucciones
Sino
instrucciones
Fin Si
23. Algoritmos que utilizan sentencias de selección o decisión Si-Sino
También considerar los Si-Sino anidados, cuando la situación requiera más condiciones
que evaluar.
Sintaxis
24. Algoritmos que utilizan sentencias de iteración Mientras
Llamamos bucle o ciclo a todo proceso que se repite u número de veces dentro de un
programa.
Sintaxis Mientras <condición>
instrucciones
Fin Mientras
Donde <condición> podría ser:
respuesta = “S”
respuesta = 1 OR respuesta = 2
Edad > 18
Edad > 18 AND Inicial_Apellido = “A”
25. Ejercicio
Leer un número e indicar si es positivo o negativo
Calcular el factorial de un número.
26. Ejercicios propuestos
Calcular el nuevo salario de un trabajador si obtuvo un incremento del 25% sobre su salario anterior.
Calcular el doble de un número ingresado, a ese resultado calcularle el 10% y mostrar ese valor
Informar el promedio de cinco números.
Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el vendedor desea
saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el
total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.
Realice un algoritmo que reciba una cantidad de dinero en pesos y convierta esa misma cantidad en
dólares, considerando que el dólar cotiza a 498. Modificar el ejercicio para que se ingrese la cotización
actual del dólar.
Un alumno desea saber cual será su calificación del primer semestre en la materia de Algoritmos. Dicha
calificación se compone de los siguientes porcentajes:
60% del promedio de sus seis calificaciones parciales.
40% del promedio de la calificación de las tres pruebas parciales.
Informar situación. Si promedio superior o igual a 4.0 aprobado. Entre 3.5 y 4.0; examen especial. Bajo
3.5 reprobado.