Você está na página 1de 21

Análisis de problemas

 La resolución de problemas implica el desarrollo de 
habilidades del pensamiento.
 Nuestra capacidad de enfrentar problemas aumenta 
N   id d d   f   bl    
con la práctica.
 Existen algunos textos con problemas que se 
consideran clásicos.
 Uno de estos textos de fácil lectura es “El hombre que 
Uno de estos textos de fácil lectura es  El hombre que 
calculaba” de Malba Tahan.
Introducción
 Una computadora que al igual que una calculadora 
sirve para hacer operaciones con números.
 Logra trabajar con otro tipo de información al 
L   b j       i  d  i f ió   l 
asignarle un código numérico a los datos.
 Históricamente las máquinas para realizar cálculos son 
antiguas como el uso del ábaco.
 La gran utilidad de las computadoras consiste en que 
estas realizan cálculos repetitivos con precisión y 
rapidez.
Algoritmo
 Las computadoras necesitan algoritmos para procesar 
la información.
 Un algoritmo es un conjunto ordenado de 
U   l i       j   d d  d  
instrucciones que sirven para transformar los datos en 
información que nos resulte útil.
información que nos resulte útil
 Las instrucciones de un algoritmo deben ser precisas 
p
para ofrecer resultados consistentes.
 Además para que un algoritmo sea útil se pide que el 
conjunto de instrucciones sea finito para obtener 
respuestas en tiempos razonables.
   i   bl
Teorema de Bohm Jacopini
 Todo programa propio puede ser expresado utilizando 
únicamente tres estructuras de control básicas.
 Secuenciales
 Selectivas
 Repet t vas
Repetitivas
 Un programa propio es aquel que tiene al menos un 
camino de ejecución para cada instrucción en el 
mismo.
i
 Un programa propio no contiene bucles infinitos y 
tiene solo un punto de inicio y de finalización.
p y
Estructura secuencial
 La estructura secuencial es la más simple de todos e 
implica seguir el orden de izquierda‐derecha‐arriba‐
abajo.
abajo
 Este orden puede verse alterado por la precedencia de 
los operadores involucrados en algunas instrucciones.
los operadores involucrados en algunas instrucciones
 Típicamente entre los operadores aritméticos, la 
multiplicación/división tienen prioridad sobre la 
p p
suma/resta.
Estructura secuencial(cont).
 Asignación se refiere a la asignación de un valor a una 
variable, por medio de una constante o como resultado 
de una operación.
de una operación
 Entrada/salida estas operaciones sirven para ingresar 
datos y mostrar los resultados.
datos y mostrar los resultados
 Las instrucciones secuenciales son la base de todo 
algoritmo y de la combinación de estas se pueden 
g y p
muchas veces encontrar soluciones distintas.
Estructura selectiva
 La estructura selectiva  permite romper el orden 
estrictamente secuencial de un algoritmo y 
condicionar la ejecución de alguna o algunas de sus 
instrucciones.
 Por lo general implican una instrucción de salto para el 
caso en que el resultado de la condición sea negativo.
 La más simple es “si
p condición entonces”
 Implica que la siguiente instrucción deberá
ejecutarse si la condición se cumple, en caso
contrario
i d
deberemos
b saltarla.
l l
Estructura selectiva(cont).
 Una variación permite elegir entre dos opciones que se 
realizarán dependiendo de si el resultado de la 
condición es falso o verdadero.
condición es falso o verdadero
 Si condición entonces instrucción1 en caso contrario 
instrucción2.
instrucción2
 En la estructura anterior el algoritmo ejecutará o
bien la instrucción 1 o 2 p
pero no ambas, dado q que la
condición es verdadera o bien falsa.
 Existe la posibilidad de que la estructura elija entre
un conjunto
j t definido
d fi id dde valores
l d
de una variable.
i bl
Estructura selectiva(cont).
 La estructura de selección múltiple ejecuta la 
instrucción que hace que la variable de control 
coincida con algún valor particular.
coincida con algún valor particular
 En caso de que x sea
Valor1: instrucción1
Valor2: instrucción2
ValorN: instrucciónN
 En algunos casos puede admitirse que el control sea un 
rango de valores.
g
Estructura de repetición
 La idea de repetir significa romper el orden secuencial 
para regresar a una instrucción previamente ejecutada.
 Debe existir un control cuidadoso con este tipo de 
D b   i i    l  id d       i  d  
estructuras para evitar que el algoritmo entre en un 
ciclo infinito de repeticiones al no cumplirse nunca la 
condición de paro.
 Existen dos variantes para este tipo de estructuras: las 
p p
de condición previa y las de condición posterior.
 Una variante que puede implementarse a partir de las 
anteriores es aquella controlada por un contador.
i     ll   l d       d
Estructura de repetición(cont).
 La estructura de condición previa es de la forma 
mientras condición repetir instrucción
 La estructura de condición posterior es de la forma 
L    d   di ió   i    d  l  f  
repetir  instrucción hasta condición
 Si se permite en el lenguaje elegido la estructura 
controlada por contador es de la forma para contador 
desde valor inicial hasta valor final con incrementos de 
valor.
 Por defecto los incrementos son de uno en uno en 
sentido creciente.
id   i
Ejemplo1
cont = 0
Suma = 0
Mientras cont < 11 hacer
suma = suma + x(cont)
cont = cont + 1
Fin mientras
Promedio = suma / 10
Mostrar promedio
Ejemplo2
Grupo1 = 0
Grupo2 = 0
Para i desde 1 hasta 100 hacer
si x(i) >= 5 y x(i) < 10 entonces
grupo1 = grupo1 + 1
fin si
si x(i) >= 10 y x(i) < 20 entonces
grupo2 = grupo2 + 1
fin si
Fin para
Mostrar grupo1
Mostrar
ost a g grupo2
upo
Ejemplo3
Factorial = 1
N=5
Repetir
Factorial = factorial *n
n=n–1
Mientras n > 0
Mostrar factorial
Herramientas para programar
 Existen una enorme cantidad de lenguajes de 
programación por lo que elegir el más apropiado no es 
una tarea fácil ni trivial.
 Muchas veces depende de la preferencia y la 
experiencia, sin embargo de la elección adecuada de la 
h
herramienta depende el esfuerzo para programar 
i  d d   l  f      
alguna tarea determinada.
 En el caso de los algoritmos, estos pueden escribirse en 
un seudocódigo usando el Rockefer Basic.
 También pueden probarse con dfd usando diagramas 
d  fl j
de flujo.
Conceptos generales
 Variable es un nombre que se le asigna a un lugar en la 
memoria.
 E  
En una variable es posible almacenar datos de los 
  i bl     ibl   l  d  d  l  
siguientes tipos básicos: enteros, números de punto 
flotante y cadenas de caracteres.
flotante y cadenas de caracteres
 Un entero puede tener o no signo como 8 o -5.
 Un numero de punto flotante puede ser 1.5 e-3.
e 3.
 Una cadena puede ser “hola mundo”
Operadores
 Además de las variables los algoritmos contienen 
operadores que trabajan sobre esos datos.
 L   á 
Los más conocidos son los operadores aritméticos, los 
id    l   d   i éi  l  
relacionales y los lógicos.
 Los aritméticos son +    *, / y en algunos casos ^.
Los aritméticos son +, ‐,   / y en algunos casos ^
 Los relacionales son =, >, <, >=, <=, !=.
 Los lógicos son y  o y no
Los lógicos son y, o y no.
 Con operadores, variables y constantes se pueden 
construir expresiones aritméticas o lógicas.
p g
Expresiones
 Una expresión aritmética da como resultado una 
constante de tipo numérico ya sea entero o de punto 
flotante.
flotante
 Ej. x = 2*y + 5
 Una expresión relacional o lógica da como resultado 
los  valores de falso o verdadero.
 Ej. x < 5 y x > 0
Pruebas de escritorio
 Estas consisten en corridas de prueba hechas a mano 
para el algoritmo con el fin de comprobar que este sea 
correcto.
correcto
 Por lo regular se construye una tabla con todos los 
elementos importantes del algoritmo como la 
evaluación de las expresiones lógicas y de las variables.
 Lo anterior se hace con el fin de seguir con mayor 
g y
facilidad la ejecución del algoritmo.
Conclusión
 En estos apuntes se han resumido los principales 
puntos, temas y conceptos relacionados con la 
escritura de algoritmos para computadora.
escritura de algoritmos para computadora
 En las siguientes lecciones se irán introduciendo cada 
uno de estos elementos por medio de ejemplos y 
ejercicios.

Você também pode gostar