Você está na página 1de 21

ALGORITMOS Y

ESTRUCTURA DE DATOS
Objetivo central

• SER CAPAZ DE ANALIZAR, COMPRENDER Y RESOLVER UNA AMPLIA


VARIEDAD DE PROBLEMAS COMPUTACIONALES, DISEÑANDO E
IMPLEMENTANDO SOLUCIONES EFICIENTES Y DE CALIDAD, COMO
RESULTADO DE LA APLICACIÓN DE UN PROCESO METÓDICO
Permite resolver problemas

¿Qué clase de problemas?

¿Cómo es el proceso para resolver un problema?

¿Cuándo se dice que la solución es eficiente y de calidad?


Problemas, programas, algoritmos y
estructuras de datos
Algoritmos
• PROBLEMA +
Estructuras de
datos

Problema: Conjunto de hechos o circunstancias que dificultan la consecución de algún fin.

Algoritmo: Conjunto de reglas finito

Estructura de datos: Disposición en memoria de la información.

Programa: Algoritmos + Estructuras de datos.


Evolución e historia de la
programación
Lenguajes Lenguajes Lenguajes
de bajo nivel estructurados orientados a objetos

(Basic, Fortran,
Ensamblador, …) (Pascal, C, (Smalltalk, C++,
Modula, ADA, …) Java, Eiffel, …)
Lenguajes de bajo nivel

• No existen procedimientos ni funciones

• No existen registros ni tipos definidos por el usuario

• No existen bloques estructurados (while, repeat,


etc.)

• En definitiva: no hay abstracciones

• Y sin embargo… funciona:


Lenguajes estructurados

• Procedimientos y funciones son abstracciones de


control

• Los tipos definidos por el usuario son abstracciones


de datos

• Las unidades, módulos o paquetes son abstracciones


de nivel superior: abstracciones de funcionalidades
Lenguajes orientados a objetos

• Una clase encapsula los datos de un tipo y las operaciones


sobre el mismo

• Una clase es, al mismo tiempo, un tipo abstracto de datos


y un módulo que encierra un conjunto de funciones
relacionadas

• Separación clara entre interface (parte visible desde fuera)


e implementación (oculta)
Resolución de problemas
¿Cómo construye un puente
ARQUITECTO un arquitecto?
INFORMÁTICO
1. Estudio de viabilidad, 1. Análisis del
análisis del terreno, problema
requisitos pedidos, etc.
2. Diseño del
2. Diseñar los planos del
programa (alg.
puente y asignar los
materiales. y estr.)
3. Poner los ladrillos de 3. Implementación
acuerdo con los planos. (programación)
4. Supervisión técnica del 4. Verificación y
puente. pruebas
Resolución de problemas
MÉTODO CIENTÍFICO INFORMÁTICO
1.Análisis del
1.Observación.
problema
2. Diseño del
2.Hipótesis. programa (alg.
y estructura.)
3. Implementación
3.Experimentación.
(programación)
4. Verificación y
4.Verificación. pruebas
Conclusiones

1. Proceso de análisis/diseño. No empezar


tecleando código como locos.
2. Usar abstracciones, respetando los dos
principios básicos:
• Encapsulación: las funciones relacionadas deben
ir juntas (clases, módulos, paquetes, etc.).
• Ocultación de la implementación: los aspectos de
implementación no son visibles fuera del módulo,
clase, etc.
DIAGRAMAS DE FLUJO

• Es una notación gráfica para implementar algoritmos.

• Se basa en la utilización de unos símbolos gráficos denominados bloques,


en los que escribimos las acciones que tiene que realizar el algoritmo.

• Estos bloques están conectados entre sí por líneas y eso nos indica el
orden en el que tenemos que ejecutar las acciones.

• En todo algoritmo siempre habrá un bloque de inicio y otro de fin, para el


principio y final del algoritmo.
Símbolos Utilizados
• Líneas de flujo: Es una línea con una flecha (y solo una
flecha) que permite conectar los bloques del diagrama. La
flecha indica la secuencia en la que se van a ejecutar las
acciones
• Inicio y Fin: Todo algoritmo y por lo tanto, todo diagrama de
flujo tiene un principio y un fin (y son únicos). Dentro de este
bloque se coloca la palabra “INICIO” o “FIN” según
corresponda. "INICIO” o
“FIN”
• Proceso: Dentro se escribe la acción que debe realizar el
programa. Si son varias, se escriben una debajo de la otra, sin
olvidarse que se ejecutan una a una en forma secuencial según
en qué orden fueron escritas.
Acciones

• Condición: Dentro de este bloque se escribe una condición. Si


ésta es verdadera, entonces el algoritmo tomará una de sus
salidas, de lo contrario, tomará la siguiente. Permite representar
estructuras del tipo selectivas y repetitivas.
Si No
Condición
Verdadera
?
• Entrada y Salida: Representa acciones de entrada salida desde un
teclado o hacia una pantalla respectivamente. Es decir, si debemos
ejecutar una acción que consiste en leer un dato que se ingresa mediante
el teclado de una PC y almacenarlo en la variable de nombre “a”, entonces
dicha acción se describe dentro de este bloque como “leer a”.

Leer o Escribir

• Conectores: Permiten “unir” diagramas de flujo cuando éstos no caben en una


misma columna de la hoja por completo. Es decir, cuando debemos, por
cuestiones de espacio en la hoja, fragmentar el programa entonces utilizamos
estos bloques para indicar los puntos de unión. Cada par de puntos que se
deben unir llevarán dentro de este bloque el mismo número.
En la misma hoja En otra hoja:
• Declaración de variables: Toda variable requerida debe ser declarada
y de ser necesario se le debe inicializar con un valor. Esta declaración
se debe realizar antes de ser utilizada.
RECORDAR: CONCEPTO
Diagrama de Flujo Elemental. DE ALGORITMO: Un
algoritmo es un conjunto de
pasos o secuencia de
INICIO
instrucciones que, ejecutadas
en un determinado orden,
Declaración e permiten resolver un problema
Inicialización de determinado.
Variables

Entrada de
Datos
Esto es un comentario.

Procesamiento de
Datos

Presentación de
Resultados en
Pantalla

FIN

17
INICIO
Diagrama de Flujo Elemental.
Declaración e
Inicialización de
Variables

Ejemplo de DF de un algoritmo genérico que incluye


una bifurcación. Entrada de
Datos
Si la Condición es Verdadera, se ejecuta la Acción 1 y
en caso contrario (Falsa) la Acción 2.
Si Condición No
Verdadera
?

Acción 1 Acción 2

Presentación de
Resultados en
Pantalla

FIN
18
PILAS

Una pila es una colección ordenada de elementos en la cual, en un


extremo, pueden insertarse o retirarse otros elementos, ubicados por la
parte superior de la pila. Una pila permite la inserción y eliminación de
elementos, por lo que realmente es un objeto dinámico que cambia
constantemente.
Concepto

Una PILA es una estructuras en donde cada elemento es


insertado y retirado del tope de la misma, y debido a esto el
comportamiento de un una pila se conoce como LIFO (último
en entrar, primero en salir ).
Colas

Una cola sencilla es una estructura en donde cada elemento es


insertado inmediatamente después del último elemento insertado;
y donde los elementos se retiran siempre por el frente de la
misma, debido a esto el comportamiento de un una cola se
conoce como FIFO (primero en entrar, primero en salir).

Você também pode gostar