Professional Documents
Culture Documents
RESOLUCION DE PROBLEMAS
Programación:
Establecer una secuencia de acciones que tras ser ejecutadas por un procesador
resuelva un determinado problema.
Fases:
1. Análisis del problema
2. Estudio de su solución
3. Diseño del Algoritmo
4. Codificación del programa
5. Depuración y prueba
1
1. Tomar un vaso vacío.
2. Colocar tres cubitos de hielo en el vaso.
a) Sacar la cubitera del congelador.
b) Rociar la parte inferior con agua.
c) REPETIR
d) Extraer un cubito.
e) Echarlo al vaso.
f) HASTA QUE el no de cubitos sea 3.
g) Rellenar los huecos de la cubitera con agua.
h) Meter de nuevo la cubitera en el congelador.
3. Echar vino tinto hasta la mitad del vaso.
4. Añadir gaseosa hasta llenar el vaso.
5. Agitar tres segundos el contenido.
DEFINICIONES
Algoritmo
Dado un procesador y un entorno bien definido, es el enunciado de una secuencia finita
de acciones primitivas que resuelven un determinado problema
2
TIPOS DE PROGRAMACIÓN
En general, hay varias formas de escribir un algoritmo, pero explicaremos las dos mas
conocidas:
Diagrama de Flujo
Que consta de rectángulos que encierran las instrucciones y líneas que apuntan hacia
la siguiente instrucción de modo que no se pierda el orden. Además, las operaciones
elementales como la entrada de datos, salida de datos, ciclos, etc. se reconocen de las
demás instrucciones porque no se encierran en rectángulos sino en otra clase de
figuras por lo que según la figura en la que esté encerrada la instrucción se reconoce
su significado; Es muy didáctico, por lo que es muy fácil de entender así ni siquiera se
conozca al programador que diseñó el algoritmo.
Ejemplo:
Hacer un programa que me muestre la suma de dos valores
Pseudocodigo
En el pseudocodigo, cada instrucción es una línea y las operaciones elementales se
escriben de una forma tan clara que será imposible que algún programador no las
entienda. Aquí utilizaremos un pseudocodigo un poco personalizado, para hacer más
sencilla la explicación.
Ejemplo:
Hacer un programa que me muestre la suma de dos valores
3
INICIO
DECLARAR VARIABLES
FIN
Aunque no hay un método general para diseñar algoritmos, si se puede decir que lo
más adecuado es seguir con los siguientes pasos al tratar de resolver un problema
determinado:
También se deben observar cuales serían los casos especiales, es decir, aquellos
casos que no cumplan la norma general, y tratar de evaluarlos de otra forma.
Este paso es el que más tiempo debe llevarle a un buen programador, ya que de
un buen análisis depende los buenos resultados que arroje el algoritmo.
Obviamente, éste método es muy engorroso para algoritmos muy extensos, por
lo que en estos casos no sería aplicable.
DIAGRAMA DE FLUJO
4
Un Diagrama de Flujo representa la esquematización gráfica de un algoritmo, el cual
muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un
problema.
SIMBOLOGÍA
5
IMPRESIÓN, nos indica que mostrará
el resultado de un algoritmo por
impresora.
ESTRUCTURAS ALTERNATIVAS
Alternativa simple
Si se cumple una determinada condición se ejecutará un conjunto de instrucciones
(que en caso contrario no se ejecutarían).
Pseudocódigo:
Si (condicion)
{
instrucciones
}
Lenguaje C:
if (condición)
{
instrucciones
};
Donde:
- condición es cualquier expresión que devuelva un valor lógico (true/false).
- instrucciones es un bloque de una o más instrucciones que se ejecutarán solo en el
caso de que se cumpla la condición.
6
Alternativa doble
Si se cumple la condición se ejecutará el primer bloque de instrucciones, si no se
cumple se ejecutará el segundo bloque.
Pseudocódigo:
Si (condicion)
{
Instrucciones1
} sino
{
Instrucciones2
}
Lenguaje C:
if (condición)
{
instrucciones1
}
else
{
instrucciones2
};
Estructuras repetitivas
En ocasiones necesitaremos que un bloque de instrucciones se ejecute varias veces
seguidas; en estos casos utilizaremos estructuras repetitivas o bucles.
Pseudocódigo:
Mientras (condicion)
{
Instrucciones
}
Lenguaje C:
while(condición)
{
instrucciones
}
7
Donde:
- condición es la condición cuyo valor deberá ser true para que se produzca la
entrada en el bucle y que será comprobado antes de cada nueva ejecución del
bloque de instrucciones.
Funcionamiento:
1.- Al encontrar la estructura while lo primero que hace (antes de entrar por primera
vez en el bucle) es evaluar la condición: si es verdadera entra en el bucle y ejecuta el
bloque de instrucciones, pero si es falsa ni siquiera llegará a entrar en el bucle.
2.- Una vez ejecutadas las instrucciones del bucle se evalúa de nuevo la condición para
determinar si se vuelve a ejecutar el bloque o no (si es verdadera se ejecuta, si es
falsa deja de ejecutarse). Este punto se repite hasta que la condición deja de ser
verdadera.
Observaciones:
• Debemos asegurarnos de que en algún momento se produzca la salida del bucle ya
que de lo contrario estaríamos ante un bucle sin fin. Por ejemplo, si en lugar de la
condición while (Nota < 0 || Nota > 10) hubiésemos escrito: while (Nota > 0 || Nota
< 10) el bucle hubiese estado iterando constantemente y no finalizaría nunca.
• Se puede forzar una salida del bucle en cualquier momento mediante la cláusula
break.
• También se puede forzar a realizar un nuevo ciclo aún sin terminar todas las
instrucciones del bucle mediante la cláusula continue. Pero ninguna de estas dos
últimas opciones es recomendable ya que dificultan la legibilidad de los programas y,
por tanto, su posterior mantenimiento.
8
Pseudocódigo:
Hacer
{
instrucciones
}
mientras (condición)
Lenguaje C:
Do
{
instrucciones
}
while(condicion)
condiciónContinuaciÓn; ExpresiónIncremento)
{
instrucciones
...
}
Donde:
- VariableControl: es una variable interna o local al bucle (no hay que declararla
previamente) que se utiliza normalmente como contador del numero de ejecuciones
del bucle en cada momento.
- ValorInicio: es el valor inicial que tomará la VariableControl.