Algorítmica y Metodología

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 34

Algorítmica y

Metodología
Dra. Cristián castillo Olea
El Modelo Von Neumann
Unidad Central de Procesamiento
(CPU)

Unidad de Control Unidad Aritmético-


Lógica

Unidad de Memoria

 Datos importantes:
 Un programa es una cadena secuencial de instrucciones
 Las instrucciones ordenan al ordenador realizar una operación
sobre unos datos
 Las instrucciones se ejecutan una tras otra, aunque puede haber
bifurcaciones condicionales (usar un dato para decidir entre dos
instrucciones diferentes por donde continuar)
 La computadora procesa tanto instrucciones como sus datos
 Las instrucciones y los datos se almacenan juntos en memoria
Unidad de Memoria (UM)
 Almacena las instrucciones y los datos del programas

Selector

Registro de Dirección (RD)

Registro de Intercambio ...


de Datos (RID)

UM Celdas

 El almacén está formado por celdas


 Identificadas unívocamente por su

dirección
 Siempre contienen información

 Se puede leer o escribir información en

ellas
Unidad Aritmético-Lógica (UAL)
 Realiza las operaciones elementales aritméticas (suma,
resta, multiplicación, división, etc.) y lógicas
(comparaciones de igualdad, mayor, menor, etc.)

Banco de Registros
Temporales (BRT)

Operador

Acumulador UAL
La computadora manipula únicamente información digital:

Datos e instrucciones se codifican como


dígitos binarios (0’s y 1’s)

 ¿Por qué no se usa una representación de otro tipo?


 Problema tecnológico (es más fácil representar ceros y unos)
 ¿A qué nos conduce la solución adoptada para evitar el
problema tecnológico?
 La máquina sólo puede trabajar con cadenas de ceros y unos
Lenguaje máquina

a = (b + c)/(d + e)
 Pasos
 sumar b y c, y guardar el resultado en una dirección de
memoria temporal X
 sumar d y e, y guardar el resultado en una dirección de
memoria temporal Y
 dividir el contenido de X por el de Y y guardar el resultado en la
dirección de memoria de a
 Inconvenientes
 Grandes posibilidades de error
 Portabilidad: máquina-dependiente
 No se puede llevar el programa a otra máquina porque, entre otras
cosas, el repertorio de instrucciones es distinto
 Tedioso
 Nula capacidad de abstracción
 Es muy complicado formular una solución a problemas del mundo
real con ese lenguaje tan específico
 Lenguaje simbólico con una mínima capacidad de
abstracción
 Nombres nemotécnicos para los códigos de operación
 Nombres simbólicos para las direcciones de memoria

 Ejemplo de instrucción de código ensamblador

codigoSimbOp direccSimbOp1, direccSimbOp2, direccSimbRes

 Códigos simbólicos de las operaciones


 SUM = La suma
 DIV = La división

a = (b + c)/(d + e)

SUM B, C, X
SUM D, E, Y
DIV X, Y, A
 Cuestiones
 ¿Cómo entiende la máquina el lenguaje ensamblador?

 Programa ensamblador
 Traducción a código binario de códigos simbólicos de operación
 Traducción de las direcciones simbólicas a direcciones reales de
memoria
 Inconveniente: sigue siendo dependiente de la máquina
Lenguajes de alto nivel

 Lenguaje que permite representar el mecanismo de


resolución de los problemas usando instrucciones
independientemente de la computadora
 Cercanía conceptual al programador
 Pascal, C, Java, etc. son lenguajes de alto nivel
 Capacidad de abstracción
 Abstracción procedimental (poder representar operaciones más
complejas como calcular las raíces de un polinomio)
 Abstracción de datos (poder representar información más
compleja como el estado de una cuenta bancaria)

 ¿Cómo conseguir que la computadora “entienda” los


programas escritos en lenguajes de alto nivel?
 Intérprete
 Analiza el programa fuente y lo ejecuta directamente en la máquina
 Compilador
 Analiza el programa fuente y lo traduce a lenguaje máquina
El sistema operativo
 Programa básico encargado de manejar el hardware y
facilitar el trabajo a los demás programas (aplicaciones)
proporcionándoles un conjunto de servicios genéricos
 Asignación de tiempos de CPU
 Control y asignación racional de los recursos de la computadora
 Ejecución de programas
 Controlar la E/S (ej., almacenar/recuperar en/de memoria
permanente)
 Control de errores y protección (ej., monitorizar la ejecución de
un programa)
 Interfaz con el usuario

 ¡Sin sistema operativo todo sería mucho más complicado!


 ¿Quién ejecuta el sistema operativo?
 Las computadoras suelen estar preparadas para, al
arrancar, ejecutar un pequeño programa que, a su vez,
se encarga de ejecutar el sistema operativo
 En el caso de los PCs, se almacena en memoria un
programa denominado BIOS (Basic Input/Output
System), capaz de localizar en memoria secundaria el
programa “cargador” del sistema operativo
La programación: resolución de problemas
 Un programa es una secuencia de instrucciones con un
propósito concreto que un ordenador puede interpretar y
ejecutar
 Programar es resolver problemas
 Conjunto de actividades implicadas en la descripción, el
desarrollo y la implementación eficaz de soluciones
algorítmicas a problemas bien especificados

Algoritmo -Conjunto ordenado y finito de operaciones que


permite hallar la solución de un problema.

 Un algoritmo es, por tanto, una sistemática que transforma


un estado inicial en un estado final
 La entrada del programa: Precondiciones
 Descripción del estado inicial (datos y situación de partida)
 La salida del programa: Postcondiciones
 Descripción del estado final (datos y situación deseada al
acabar)
El Ciclo de Vida del Software
 Todas las tareas a realizar desde que se concibe un
programa hasta que se deja de utilizar (no sólo “hasta que
se codifica” ni “hasta que se instala”)
 Existen distintos modelos del ciclo de vida software, aunque
nosotros estudiaremos el más simple: Modelo en Cascada

Análisis

Diseño

Implementación

Pruebas

Mantenimiento
¿Qué significa?

Casa Software
¿Qué tiene que hacer
“Quiero 4 habitaciones, Análisis exactamente nuestro
2 baños, garaje...” programa?
¿Cómo vamos a organizar
Planos, diseño circuito
eléctrico y de agua...
Diseño el programa? ¿Qué
partes tendrá y cómo
funcionará?
Se construye la casa Se construye el software
Implementación

Se comprueba la solidez de la Ponemos a prueba nuestro


estructura, el funcionamiento de programa, incluso en
las instalaciones, el acabado...
Pruebas situaciones límite

Algunas reparaciones, se cierra Pequeñas modificaciones o


la terraza, se instala aire Mantenimiento correcciones (parches),
acondicionado... actualizaciones, etc...
Algoritmo

Secuencia bien definida y finita de


tareas bien definidas, cada una de
las cuales se puede realizar con una
cantidad de recursos finitos.
Características de un Algoritmo
De finitud o
Precisión Finitud
Determinismo

Hay un
orden El algoritmo
Todas las veces que
preciso en debe
se realicen las tareas
el cual terminar en
o pasos de un
deben algún mo-
algoritmo, con las
ejecutarse mento y
mismas condi-ciones
las tareas debe usar
iniciales, se de-ben
que una can-
obtener resultados
conforman tidad finita
idénticos.
Estructura de un Algoritmo
Datos Instruccione Estructuras de
s control
Para Las acciones Las que
almacenar o procesos determinan el
información: que el orden en que se
da-tos de algoritmo ejecutarán las
entrada, de realiza sobre ins-trucciones del
salida o inter- los datos. algo-ritmo.
medios.
Ejemplo

Un estudiante se encuentra en su casa


(durmiendo) y debe ir a la universidad (a
tomar la clase de programación!!),
¿Que debe hacer el estudiante?
Ejemplo

Un joven debe dar de comer a su mascota


(perro o gato)
¿Que debe hacer?
Representación de
Algoritmos
Las representaciones más
conocidas son:

Diagramas de flujo.

Pseudo-código.
Diagramas de Flujo
Esquema de representación gráfico
de algoritmos.

Usa elementos gráficos como


rectángulos y rombos.

Se pueden usar operaciones


matemáticas.
Pseudo Código
Esquema de representación de algoritmos
que usa un subconjunto del lenguaje
natural del diseñador de algoritmos.

Elimina posibles ambigüedades


empleando una notación que aunque libre
es más restringida que la del lenguaje
natural.
Pseudo Código
leer A, B, C sino
si A>B si B>C
si A>C Mayor B
Mayor  A sino
sino
Mayor  C Mayor  C
fin_si fin_si
fin_si
escribir Mayor
Solución de Problemas
Algorítmicos

Problema

Metodología

Programa
Metodología de
Programación
 Análisis del problema.
 Especificación del problema.
 Diseño del algoritmo.
 Prueba del algoritmo y refinamiento.
 Codificación.
 Prueba y verificación.
Análisis del Problema
Entender de manera clara el problema que
se esta resolviendo.

Esta fase de la metodología concuerda con


el proceso de identificación de objetos
conocidos, objetos desconocidos y
condiciones usado en la sección de
problemas.
Especificación del Problema
Descripción clara y precisa de:

Las entradas del problema.


Las salidas del problema.
Las condiciones, es decir la dependencia
que mantendrán las salidas obtenidas
con las entradas recibidas.
Ejemplo de Especificación
Entradas: La cantidad total de animales
(50), cantidad de patas totales (140).

Salidas: La cantidad de conejos y la


cantidad de gansos.

Condiciones: La suma de conejos y


gansos es igual a cincuenta. La suma de
las patas de los conejos (cuatro por cada
uno) y de los gansos (dos por cada uno)
es igual a ciento cuarenta.
Ejemplo de Especificación
Problema:
Construir un algoritmo que determine el mayor de
tres números enteros.

Especificación:

Entradas: A,B,C (números de entrada) de tipo


entero.

Salidas: Mayor de tipo entero.

Condiciones: Mayor debe ser el valor máximo


de A, B y C.
Diseño del algoritmo
Es la fase en la que se construye el
algoritmo que permitirá encontrar la
solución al problema.

La forma adecuada de realizar este


proceso es subdividirlo.
Prueba del Algoritmo y
Refinamiento

Proceso de seguimiento del algoritmo


para verificar que cumple con la
especificación. Si no se cumple con la
especificación se va refinando hasta
lograr el objetivo.
Codificación

Proceso en el cual se escribe el algoritmo


en un lenguaje de programación,
utilizando el editor de la herramienta.
Prueba y Verificación

Proceso en el cual se corrigen los errores


de sintaxis y de lógica del programa,
hasta lograr que el programa resuelva el
problema.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy