Escolar Documentos
Profissional Documentos
Cultura Documentos
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.