Download Algoritmos

Document related concepts
no text concepts found
Transcript
Fundamentos de programación
Organización de una computadora
Datos
• Una computadora procesa datos
• Los convierte en información significativa
• Datos >> Computadora >> Información
Calculadora
• Una calculadora efectúa operaciones sobre
datos de entrada y produce resultados
• Las operaciones no están almacenadas
• El usuario (operador) es quien indica las
operaciones
• Si es programable, es computadora
Modelo de von Newmann
• Programa (conjunto de instrucciones)
almacenado en memoria
• Se ejecutan las instrucciones en secuencia
• Permite la aplicación de algoritmos
Computadora
• Proporciona la capacidad de:
– Aceptar la entrada
– Visualizar o presentar la salida
– Almacenar la información
– Ejecutar operaciones aritméticas o lógicas sobre
los datos de entrada o de salida
– Monitorizar, controlar y dirigir operaciones
globales y de secuencia del sistema
Componentes más importantes
Procesador (CPU)
Unidad Aritmética
Lógica
Entrada
Unidad de Control
Memoria
Almacenam
secundario
Salida
El procesador
• Dispositivo que ejecuta la instrucciones del
programa
• También conocido como CPU (no confundir
con el gabinete
• Si el procesador está en un solo chip, se le
conoce como microprocesador
Datos, algoritmos y lenguajes
Conocer las herramientas, anta de
pretender usarlas
Datos e información
• Datos
– Representación de algún hecho, concepto o
entidad real
• Información
– Datos procesados y organizados
Sistema
• Conjunto de componentes interconectados e
interactivos que tienen un propósito y una
unidad total
Resolución de problemas con
computadoras
Si existe el algoritmo, el problema
está CASI resuelto
Fases en la resolución de problemas
•
•
•
•
•
•
•
•
Análisis del problema
Diseño del algoritmo
Codificación
Compilación y ejecución
Verificación
Depuración
Mantenimiento
Documentación
Análisis
• El problema se analiza
– Comprensión de la naturaleza del problema, bien
definido
– Especificación de requisitos del cliente,
particularmente los datos de entrada y la salida
esperada
– Se deben conocer los datos involucrados, y
eliminar los que no son relevantes
– Se debe conocer la información que el cliente
espera y su presentación
Diseño
• Se diseña la solución que conducirá a un
algoritmo que resuelva el problema
• Descomponer el problema en subproblemas y
estos en sub-sub-problemas, sucesivamente
• Se debe llegar a problemas simples, cuya
solución sea implementable en la
computadora
• A esto se le denomina diseño descendente,
también conocido como divide y vencerás
Algoritmo
La parte intelectual de la resolución
del problema.
El resto, es talacha
Algoritmo
• Conjunto de tareas o pasos en una cantidad
finita que se ejecutan en un orden
determinado, y para determinada situación
inicial se resuelve el problema en un tiempo
finito.
Situación inicial >> algoritmo >> solución
Características de un algoritmo
•
•
•
•
•
•
Correcto (resolver el problema)
Eficiente (recursos y tiempo)
Claro
Flexible (adaptable)
Preciso (bien definido el orden de pasos)
Bien definido (mismo resultado para cada mismo
problema)
• Finito (debe terminar, en un número finito de
pasos)
• Fiable (proporcionar solución)
Representación gráfica de un
algoritmo
Métodos de representación:
– Diagrama de flujo
– Diagrama N-S (Nassi-Schneiderman)
– Lenguaje de especificación de algoritmos:
Pseudocódigo
– Lenguaje natural (español)
– Fórmulas
Diagrama de flujo
• Se utilizan símbolos (cajas)
estándar que representan
los pasos del algoritmo
• Unidos por flechas: líneas
de flujo
• Los símbolos están
normalizados por ANSI
Diagrama N-S
• También conocido como diagrama de chaplin
• Como el diagrama de flujo, pero se omiten
líneas de flujo y las cajas son contiguas
Pseudocódigo
• Describe el algoritmo de manera simple
• Su conversión a código en un lenguaje es
simple
• El desarrollador se concentra en la lógica y
estructuras de control, sin pensar en el
lenguaje
• Lo escrito en pseudocódigo se convierte en
comentarios del lenguaje
Pseudocódigo
Calcular el valor de la suma 1+2+3+…+100
Seudocódigo:
1. Establecer Contador a 1
2. Establecer Suma a 0
3. mientras Contador <= 100 hacer
Sumar Contador a Suma
Incrementar Contador en 1
fin-mientras
4. Visualizar Suma
Lenguaje natural
• Se describen los pasos en simple lenguaje
natural
• En nuestro caso: español
Fórmulas
• Las fórmulas expresan las operaciones
necesarias para obtener el resultado a partir
de los datos de entrada y algunas constantes
Diagramas de Flujo
Pseudocódigo