Documente Academic
Documente Profesional
Documente Cultură
Un aporte para:
Tabla de contenidos
Qu es un algoritmo?
Cmo resuelvo un problema?
Entender el problema
Trazar un plan
Ejecutar el plan
Revisar
Anlisis del problema
Disear un algoritmo
Traducir un algoritmo
Depurar el programa
Ejercicios propuestos
Qu es un algoritmo?
De acuerdo a Wikipedia la definicin del un algoritmo
es:
"...es un conjunto preescrito de instrucciones o reglas
bien definidas, ordenadas y finitas que permite
realizar una actividad mediante pasos sucesivos que
no generen dudas a quien deba realizar dicha actividad.
Dados un estado inicial y una entrada, siguiendo los
pasos sucesivos se llega a un estado final y se obtiene
una solucin..."
Cmo resuelvo un
problema?
Para entender como resolver un problema
debemos entender el siguiente esquema,
segn Polya.
Inicio
Entender el problema
Bsicamente es poner a prueba nuestra comprensin de
lectura (tambin puede ser oral) del problema.
Debemos seguir estos pasos:
1. Leer y re leer el problema
2. Entender la pregunta, es decir, tener claro cual es el
resultado esperado.
3. Identificar los datos importantes
4. Organizar y clasificar los datos e informacin
5. Realizar un esquema o figura.
Trazar (configurar)
un plan
Esto quiere decir que acciones debemos hacer con
los datos y verificar nuestros datos, por lo que debemos
tener presente estas preguntas:
Ejecutar Plan
Revisar
Manos a la obra!
En un juego, el ganador obtiene una ficha roja; el
segundo, una ficha azul; y el tercero, una amarilla. Al
final de varias rondas, el puntaje se calcula de la
siguiente manera: Al cubo de la cantidad de fichas rojas
se adiciona el doble de fichas azules y se descuenta el
cuadrado de las fichas amarillas. Si Andrs lleg 3
veces en primer lugar, 4 veces de ltimo y 6 veces de
intermedio, Qu puntaje obtuvo?
(Adaptado de Melo (2001), pgina 30).
Primera reaccin
Esto es lo que pensamos... o no?
Qu dijo?!
Cmo fue?
AAAAAH!!!!
Respiramos y
continuamos
Entonces ahora comenzamos aplicar nuestro ciclo.
Primero ENTENDER el problema, leamos de nuevo pero
ms lento y por partes.
Ayudas:
Subrayar y
colorear
Y ahora?
Hemos ledo el enunciado y re ledo, obtuvimos los datos
de acuerdo a cada parte del enunciado, por lo que ahora
pasamos a TRAZAR un plan segn los datos que
tenemos.
Es decir ordenarlos segn por cada parte del enunciado y
verificar que operaciones necesito para resolver el
problema.
Continuamos...
Nuestro tercer paso es EJECUTAR nuestra traza segn
los datos obtenidos al entender el problema.
Quiere decir unir las operaciones elegidas y aplicar los
datos en dichas operaciones.
Ejecutando el plan
Por lo que tenemos:
Andrs tiene: 3 fichas rojas (R), 6 azules (Az) y 4
amarillas (Am).
Y la frmula obtenida:
PF = (R3)+ (2 x Az) - (Am2)
Reemplazando tenemos:
PF = (33) + (2x6) - (42)
Continuando cada operacin:
PF = 27 + 12 - 16
Nuestro resultado final es: PF = 23
Revisando
Al ejecutar nuestro plan ahora debemos REVISAR, para
ello debemos comprobar que nuestro resultado es
correcto, quiere decir que debemos revisar los clculos y
verificar con la solucin estimada.
Tenemos que dar una solucin completa, en nuestro caso
sera como respuesta segn la pregunta del problema:
El puntaje final que obtuvo Andrs fue de 23
Resumiendo
Entonces para resolver un problema debemos:
Entender
Trazar
Ejecutar
Revisar
Cmo resuelvo un
algoritmo?
Ahora que entendemos un poco ms de cmo resolver un
problema ahora llevemos el mismo teorema para resolver
un algoritmo en computacin.
Cuyas fases seran entonces:
Analizar el problema
Esta etapa sera Entender el problema por lo que aqu
debemos:
Formular el problema
Conocer el resultado esperado
Identificar datos e informacin
Definir las operaciones
Restricciones del problema
Traducir un algoritmo
Es Ejecutar el problema, es decir que debemos pasar
nuestro diagrama a un lenguaje (idioma), en donde cada
lenguaje posee su propia gramtica y sintaxis:
Depurar un programa
Manos a la obra!
Disear un algoritmo
Ayudas:
// indica comentario
Depurar el programa
Para hacer la depuracin debemos ir reemplazando los
valores de las variables en nuestro programa.
Tenemos los valores ya dados por el enunciado: f_rojas
= 3, f_azules = 6 y f_amarillas = 4, estos valores
debemos reemplazarlos en nuestra frmula inicial:
puntaje_final = 3^3 + 2*6 - 4^2;
Realizando el clculo nos da como resultado:
puntaje_final = 39;
Impresin por pantalla:
El puntaje final de Andres es de 39
Veamos si generalizamos
el problema
Qu sucede si existen ms jugadores?
Cmo podramos calcular el puntaje final para un nuevo
jugador y con cantidades de fichas distintas a Andrs?
Tienes alguna idea?
Disear un algoritmo
Traducir un algoritmo
INICIO
ENTERO f_rojas=0, f_azules=0, f_amarillas=0, puntaje_final=0;
TEXTO nombre_jugador = " "; //se inicia con un espacio
IMPRIMIR "Ingrese el nombre del jugador: ";
LEER nombre_jugador;
IMPRIMIR "Ingrese cantidad fichas rojas:";
LEER f_rojas;
IMPRIMIR "Ingrese cantidad fichas azules:";
LEER f_azules;
IMPRIMIR "Ingrese cantidad fichas amarillas:";
LEER f_amarillas;
puntaje_final = f_rojas^3 + 2*f_azules - f_amarillas^2;
IMPRIMIR "El puntaje final de ";
IMPRIMIR nombre_jugador;
IMPRIMIR " es de: ";
IMPRIMIR puntaje_final;
FIN
Depurar el programa
Depurar el programa
Debemos imaginarnos la ejecucin del programa,
suponiendo que el usuario nos ingresa los valores
siguientes.
Ingrese nombre jugador: Jorge
Se asigna el texto Jorge en la variable nombre_jugador
Ingrese cantidad fichas rojas: 2
Se asigna el nmero 2 en la variable f_rojas
Ingrese cantidad fichas azules: 4
Se asigna el nmero 4 en la variable f_azules
Ingrese cantidad fichas amarillas: 2
Se asigna el nmero 6 en la variable f_amarillas
Depurar el progrma
Reemplazando los valores ingresados por el usuario en la
formula quedara
puntaje_final = 2^3 + 2*4 - 6^2
Resultado de la operacin:
puntaje_final = -20
Impresin por pantalla:
El puntaje final de Jorge es de -20
Disear un algoritmo
Reaccin
Creo que ests as nuevamente... o no?
AAAAAH!!!!
Reaccin
Respira y....
meditar
Traducir un algoritmo
INICIO
ENTERO f_rojas=0, f_azules=0, f_amarillas=0, puntaje_final=0;
ENTERO cantidad_jugadores = 0, contador = 0;
TEXTO nombre_jugador = " "; //se inicia con un espacio
IMPRIMIR "Ingrese la cantidad de jugadores: ";
LEER cantidad_jugadores;
MIENTRAS (contador < cantidad_jugadores)
IMPRIMIR "Ingrese el nombre del jugador: ";
LEER nombre_jugador;
IMPRIMIR "Ingrese cantidad fichas rojas:";
LEER f_rojas;
IMPRIMIR "Ingrese cantidad fichas azules:";
LEER f_azules;
IMPRIMIR "Ingrese cantidad fichas amarillas:";
LEER f_amarillas;
Traducir un algoritmo
puntaje_final = f_rojas^3 + 2*f_azules - f_amarillas^2;
IMPRIMIR "El puntaje final de ";
IMPRIMIR nombre_jugador;
IMPRIMIR " es de: ";
IMPRIMIR puntaje_final;
contador = contador + 1;
FIN MIENTRAS
IMPRIMIR "Se ha calculado los puntajes de los jugadores";
FIN
Depurar un algoritmo
Vuelta (iteracin) 1
Variables / n vueltas
valor inicial
cantidad_jugadores
""
Jorge
f_rojas
10
f_azules
f_amarillas
puntaje_final
1010
nombre_jugador
El usuario ingresa los valores de cada ficha y las reemplazamos en la frmula donde
obtenemos el resultado final.
La ltima operacin del ciclo mientras es:
contador = contador + 1, es decir estamos aumentando en 1 la variable
contador por lo que su nuevo valor es 1, este valor inicial de la siguiente vuelta.
Vuelta (iteracin) 2
Variables / n vueltas
valor inicial
cantidad_jugadores
""
Jorge
Ana
f_rojas
10
f_azules
f_amarillas
puntaje_final
1010
511
nombre_jugador
Volvemos a validar la
condicin mientras con
nuevo valor de la variable
contador: 1 < 4
Donde el resultado
VERDADERA, se entra al
ciclo mientras y ejecuta
las operaciones
nuevamente
El usuario ingresa los valores de cada ficha y las reemplazamos en la frmula donde
obtenemos el resultado final.
La ltima operacin del ciclo mientras es:
contador = contador + 1, es decir estamos aumentando en 1 la variable
contador por lo que su nuevo valor es 2, este valor inicial de la siguiente vuelta.
Vuelta (iteracin) 3
Variables / n vueltas
valor inicial
cantidad_jugadores
""
Jorge
Ana
Fran
f_rojas
10
f_azules
f_amarillas
puntaje_final
1010
511
324
nombre_jugador
Volvemos a validar la
condicin mientras con
nuevo valor de la variable
contador: 2 < 4
Donde el resultado
VERDADERA, se entra al
ciclo mientras y ejecuta
las operaciones
nuevamente
El usuario ingresa los valores de cada ficha y las reemplazamos en la frmula donde
obtenemos el resultado final.
La ltima operacin del ciclo mientras es:
contador = contador + 1, es decir estamos aumentando en 1 la variable
contador por lo que su nuevo valor es 3, este valor inicial de la siguiente vuelta.
Vuelta (iteracin) 4
Variables / n vueltas
VI
cantidad_jugadores
""
Jorge
Ana
Fran
Fabiola
f_rojas
10
f_azules
f_amarillas
puntaje_final
1010
511
324
171
nombre_jugador
Volvemos a validar la
condicin mientras con
nuevo valor de la
variable contador:
3 < 4
Donde el resultado
VERDADERA, se
entra al ciclo mientras
y ejecuta las
operaciones
nuevamente
El usuario ingresa los valores de cada ficha y las reemplazamos en la frmula donde
obtenemos el resultado final.
La ltima operacin del ciclo mientras es:
contador = contador + 1, es decir estamos aumentando en 1 la variable
contador por lo que su nuevo valor es 4, este valor inicial de la siguiente vuelta.
Vuelta (iteracin) 5
Variables / n vueltas
valor inicial
cantidad_jugadores
nombre_jugador
""
Jorge
Ana
Francisco
Fabiola
f_rojas
10
f_azules
f_amarillas
puntaje_final
1010
511
324
171
Volvemos a validar la condicin mientras con nuevo valor de la variable contador: 4 < 4
Donde el resultado FALSA, no entra al ciclo mientras y muestra por pantalla el mensaje final
y finaliza nuestro programa.
Depurar el programa
Validaciones
Ejercicios propuestos
Dejo 2 ejercicios propuestos:
1.
2.
Comentarios Finales
Referencias
ALGORITMOS Y PROGRAMACIN
Algoritmo y Programacin - Gua para el docente
Wikipedia
http://es.wikipedia.org/wiki/Algoritmo
http://es.wikipedia.org/wiki/Diagrama_de_flujo
http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo
FIN!