Anda di halaman 1dari 6

!"#$%#!

&
!
INF-120 Programacin
Escuela de Ingeniera Informtica Pontificia Universidad Catlica de Valparaso
Prof. Rafael Mellado Silva
rafael.mellado@ucv.cl
Programacin: Introduccin al curso
Ciencia, tecnologa e ingeniera
"
Necesidades humanas
Ingeniera: Desarrollo y aplicacin de
tecnologas
Ciencia
Lo primero que se debe plantear en un curso ligado a tecnologas e ingeniera es: Porqu son importantes las
tecnologas de informacin para la Ingeniera?
!"#$%#!&
"
Tecnologas de informacin y comunicaciones
%
! Es el conjunto de tecnologas que permiten procesar y transmitir
informacin.
! Comprenden el estudio, diseo, desarrollo, soporte y gestin de
sistemas de informacin y de telecomunicaciones, incluyendo
software (programas) y hardware (equipos).
! El objetivo de las TICs es la manipulacin de datos para la
generacin de informacin, mediante su conversin,
almacenamiento, proteccin, transmisin y recuperacin en forma
segura.
Estrategia
Gato, podras decirme, por favor, qu camino debo seguir para salir de
aqu?

Esto depende en gran parte del sitio al que quieras llegar dijo el Gato.

No me importa mucho el sitio... dijo Alicia.

Entonces tampoco importa mucho el camino que tomesdijo el Gato.

... siempre que llegue a alguna parte aadi Alicia como explicacin.

Oh, siempre llegars a alguna parte asegur el Gato ,si caminas lo
suficiente!


Lewis Carrol, Alicia en el Pas de la Maravillas
&
!"#$%#!&
%
Estrategia - Ejemplo
Entonces, Qu harias para unir todos los puntos con cuatro rectas sin leventar el lpiz?
(
Especificacin de un problema
)
Elementos Participantes:

a) Datos de Entrada
b) Datos de Salida.
c) Procesos.

Entradas Procesamiento
Salida
Nmeros a= 5, b=1 Sumar a y b 6
!"#$%#!&
&
Tcnicas algortmicas para resolver un problema
*
Algoritmos de fuerza bruta: toman la ruta ms evidente o corta para resolver el problema, independiente de
que sea buena o no.

Dividir y conquistar: la solucin global es la unin de todas las soluciones parciales (sub-soluciones).

Programacin dinmica: es similar al anterior, pero busca reutilizar los resultados obtenidos de los sub-
problemas.

Algoritmos voraces: en cada punto de decisin, selecciona la opcin que tiene el menos coste inmediato.

Algoritmos probabilistas: adems de los datos de entrada, dependen de valores producidos aleatoriamente.
Cuando no es capaz de tomar una decisin ptima, escoge una al azar.

Anlisis de algoritmos
+
! Busca establecer la calidad de un programa y compararlo con otros que
resuelvan el mismo problema, sin necesidad de desarrollarlos.
! Permite evaluar el diseo de las estructuras de datos de un programa,
midiendo su eficiencia.
! Se basa en: Las caractersticas estructurales del algoritmo que respalda al
programa. Se persigue encontrar una medida de calidad que permita
comparar los algoritmos empleados, aplicando una funcin matemtica para
medir la eficiencia de cada algoritmo.
!"#$%#!&
(
Y qu sucede con la eficiencia?
,
Espacio de memoria que el algoritmo requiere, se determina por: Nmero y tamao de las variables y
estructuras de datos.

Tiempo de ejecucin del algoritmo (tiempo de cmputo) considerando:
1. La estructura del algoritmo, nmero de operaciones elementales que deben ser realizadas durante la
ejecucin del algoritmo.
2. La velocidad de operacin del computador en que se ejecuta.
3. El compilador utilizado.
4. Tamao de los datos de entrada con los que el programa trabaja.

Y qu sucede con la eficiencia?
!$

Se define como T
A
(n), tiempo empleado por el algoritmo A
en procesar una entrada de tamao n y producir una
solucin al problema.

Tiempo y espacio suelen estar inversamente relacionados.
ejemplo: para reducir los requisitos de espacio, se debe
incrementar el tiempo de ejecucin.
!"#$%#!&
)
Medicin del tiempo de ejecucin
!!
1. Complejidad Asinttica del tiempo de ejecucin (complejidad
en tiempo), busca medir el trmino de orden ms alto que
exprese el tiempo de ejecucin, ya que con este se determina la
tasa de crecimiento de la ecuacin.
2. Dependiendo de la complejidad en tiempo (eficiente v/s
intratable) de un algoritmo, estos se clasifican en:

a)Algoritmos de tiempo polinmico, se mantienen estables.
b)Algoritmos de tiempo exponencial, crecen en tiempo de
ejecucin conforme al tamao de la entrada.
INF-120 Programacin
Escuela de Ingeniera Informtica Pontificia Universidad Catlica de Valparaso
Prof. Rafael Mellado Silva
rafael.mellado@ucv.cl