[Inf 140] Introduccion A Los Algoritmos (4 Diap X Hoja)
-
Upload
daniel-barraza-rodriguez -
Category
Lifestyle
-
view
891 -
download
1
Transcript of [Inf 140] Introduccion A Los Algoritmos (4 Diap X Hoja)
Profesores
PHM/DCP
Pontificia Universidad Católica de Valparaíso
Facultad de Ingeniería
Escuela de Ingeniería Informática
“Introducción a los Algoritmos”
Asignatura
INF 140 –
Inform
ática I
Profeso
res
Pam
ela Herm
osilla M
onckton
Dan
iel Cab
rera Pan
iagua
Ayu
dantes
Profesores
PHM/DCP
Definición de Algoritm
o (RAE)
•Conjunto ordenadoy finitode operaciones
que perm
ite hallar la solución de un
problema.
•Método y notación en las distintas form
as del
cálculo.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Algoritm
o (Otras fuentes)
•Procedimiento para resolver un problema
matemático en un número finito de pasos, lo
que frecuentemente involucra repetición de una
operación.
�Método detallado paso a paso para lograr una
tarea.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Algoritm
o (inform
almen
te)
Si a una persona se le entrega dicha lista, y ésta
sigue las instrucciones cuidadosamente
entonces al llegar al final se habrá
resuelto la
tarea en cuestión
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Un algoritm
oes un conjunto finito
de instrucciones que especifican la
secuencia
de operaciones a realizar, en orden, para resolver un problema
determ
inado.
En otras palabras es una fórm
ula para resolver un problema.
Generalmente es una lista de la siguiente form
a:
Paso 1: “Hacer algo”
Paso 2: “Hacer algo”
Paso 3: “Hacer algo”
Paso n: “Hacer algo”
. . .Nuestra Definición de Algoritm
o
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Algoritm
os
Nivel de Abstracción
Olvidar inform
ación y consecuentemente tratar
cosas que son diferentes como si fueran las
mismas. Esto con el fin de simplificar el análisis
separando los atributos relevantes dentro de un
contexto determ
inado.
Dividir & Vencer (divide & conquer)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Algoritm
os Cotidianos (Narrativo
s)
Llamar por teléfono
Planchar
Cocinar panqueques
Inscribir una asignatura…
etc.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Un alumno solicita ser el ayudante de un ramo. El profesor examina en la
base de datos de la escuela el historial del alumno. Si el alumno está
capacitado el profesor lo acepta como ayudante, en caso contrario la solicitud
del alumno será
rechazada.
Los pasos del algoritmo en descripción narrativa son los siguientes:
1. Inicio
2. Leer solicitud del alumno
3. Leer historial del alumno
4. Si, el alumno estácapacitado, el profesor acepta la solicitud, en caso contrario
la solicitud es rechazada.
5. Fin
Otros Ejemplos
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Calcular el promedio de 3 notas:
1. Inicio
2. Leer nota 1
3. Leer nota 2
3. Leer nota 3
4. Asignar a suma_de_notasel resultado de nota1+ nota2 + nota3
5. Asignar a promedio el resultado de suma_de_notas/ 3
6. Escribir resultado
7. Fin
Realizar una venta con factura…
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Características
•Correcto -Fiable
•Eficiencia tiempo & recursos
•Claro -Fácil de mantener
•Interfaz apropiada
•Preciso : orden en cada paso
•Definido: siempre se obtiene el mismo resultado
•Finito: número finito de pasos
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
•Error –creer que:
Aprender a programarsignifica aprender un
lenguaje computacionalhasta dominarlo
completamente, y luego utilizarlo para
expresar, en la form
a que el computador
entiende, el problema particular que se
quiere resolver
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCPRealid
ad:
La parte medular de la programación
consiste en resolver el problema.
Esto es independiente del lenguajeen el cual
se expresará
posteriorm
ente esta solución
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
•Programar NO es fácil, ya que no es fácil
resolver problemas
•... y enseñar a programar tampoco lo es
porque en realidad lo que se debe
enseñar son técnicas de solución de
problemas.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
•Resolver un problema usando un computadorno es
solamente conocer unlenguaje de programación.
•Es disponer dela capacidad para analizar un
problema,entenderlo y especificar el algoritm
oque
perm
ite solucionarlo, usando un lenguaje de
programación.
•Para ello no basta con aprender un lenguaje de
programación, además hay quedisponer de una
metodología que perm
ita resolver problemas
computacionalmente.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
•El medio para resolver un problema en form
a
computacional es un conjunto preciso de
instrucciones expresadas en un cierto lenguaje, lo
cual constituye lo que se denomina un programa.
•Pero el programa puede ser visto simplemente como
unalgoritm
oexpresado en unlenguaje de
programación.
•Este algoritmo es independiente del lenguaje y
constituye la form
a en que se resuelve el problema.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
¿Quées un lenguaje? (1)
Def. R
AE:
�“Conjunto de sonidos articulados con que el hombre
manifiesta lo que piensa o siente.”
�“Estilo y modo de hablar y escribir de cada persona en
particular.”
�“Conjunto de señales que dan a entender algo. (El lenguaje
de los ojos, el de las flores).”
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
¿Quées un lenguaje? (2)
•Un lenguaje es un m
edio
de comunicaciónentre los
seres humanos a través de signosorales y escritos que
poseen un significado.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
¿Quées un lenguaje de
programación?
•Es un lenguaje utilizado es la escritura de programas
para
computadores, de tal modo que puedan ser entendidos por
estos últimos.
•Se clasifican en tres grupos:
–Máquina
–Bajo Nivel
–Alto Nivel
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Lenguaje Máquina
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
•Es el lenguaje propio de los computadores, basado en la
lógica binaria, de ceros y unos (00010111).
•Este lenguaje resulta difícil de utilizar para las personas, ya
que el programador debe introducir todos y cada uno de los
comandos y datos en form
a binaria.
•La programación en lenguaje máquina es una tarea tan
tediosa y consume tanto tiempo que raras veces lo que se
ahorra en la ejecución del programa justifica los días o
semanas que se han necesitado para escribir el mismo.
Profesores
PHM/DCP
Lenguaje de Bajo Nivel
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
•La programación en lenguaje máquina es difícil. Es por ello se
necesitan lenguajes que faciliten este proceso. En base a esto
se han sido diseñados los lenguajes de bajo nivel.
•Los lenguajes de bajo nivel perm
iten crear programas m
uy
rápidos, pero que son a menudo difíciles de comprender.
•Se requiere que el programador piense a nivel de máquina.
•Un ejemplo de este tipo de lenguaje es el ensamblador.
Profesores
PHM/DCP
Lenguaje Ensamblador
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
•El lenguaje ensamblador es un lenguaje funcionalmente
similar al lenguaje máquina, pero más sencillo de utilizar.
•En este lenguaje, los programadores utilizan códigos
alfabéticos que se corresponden con instrucciones de tipo
numérico de las máquinas.
•El “enlace”entre el programador y el computador, un
programa llamado ensamblador, traduce cada instrucción de
este lenguaje en la sentencia máquina que corresponda.
Profesores
PHM/DCP
Lenguaje de Alto Nivel (1)
•Los llamados lenguajes de alto nivel son los que se emplean
con m
ayor frecuenciacomo lenguajes de programación,
porque perm
iten expresar los algoritmos de una manera y con
un estilo fácilm
ente reconocible
por parte de diversos
programadores.
•Son útiles para simplificar el proceso de programación.
•Algunos ejemplos de lenguaje de alto nivel son:
–Java
–C/C++
–Visual Basic
–HTML, XML, Prolog, Lisp, …yungranetc…
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Lenguaje de Alto Nivel (2)
•Ventaja:
–Son fácilm
ente transportables de una máquina a otra sin
necesidad de realizar grandes cambios en ellos, por lo que se
dice que son independientes de la máquina empleada.
•Tanto los lenguajes de alto nivel como de bajo nivel no son
entendibles directamente por la máquina, sino que necesitan
ser traducidos a instrucciones en lenguaje máquina.
•Para ello se emplean Compiladores, e Intérpretes.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Compiladores (1)
•Un compilador es un traductor.
•El compilador traduce un código fuente íntegramente a
lenguaje máquina antes de su ejecución, por lo que el
resultado se ejecuta con tanta rapidez como si se hubiese
escrito directamente en lenguaje máquina.
•El compilador es el más eficaz para la mayor parte de las
máquinas, puesto que presenta la ventaja que cada una de las
sentencias del programa es interpretada y traducida al
lenguaje máquina sólo una vez.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Compiladores (2)
•Un compilador crea una lista de instrucciones de código
máquina, basándose en un código fuente.
•El código objeto resultante es un programa rápido y listo para
funcionar, pero que puede hacer que falle el ordenador si no
estábien diseñado.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Intérpretes
•Son programas que se traducen línea por línea el código
fuente.
•Son traductores más lentos que los compiladores, ya que no
producen un código objeto, sino que recorren el código fuente
una línea cada vez.
•Cada línea se traduce a código máquina y se ejecuta.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Alto Nivel
Compilador /
Intérprete
Código
fuente
Ensamblador
Bajo Nivel
Código
Objeto
SUB
…
Máquina
011010
100010
Ejecu
table
Incorporación de
bibliotecas ya
existentes
Profesores
PHM/DCP
Resolución de Problemas
•Entender el problema-> Definir el problema con claridad !!!
•Idear un plan para resolver el problema
–Identificar recursos, personas, inform
ación, etc.
–Establecer el modo de utilizar los elementos identificados.
•Ejecutar el plan
•Evaluar la solución obtenida
–¿Se ha resuelto efectivamente el problema existente?
–La solución alcanzada, ¿es útil para otros problemas?
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Proceso de Programación
•La programación es una form
a especializadadel modelo de
resolución de problemas…
•Sus fases son:
–Definición del problema.
–Creación, depuración y verificación del algoritmo.
–Escritura del programa.
–Verificación y depuración del programa.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Alcances…
(1)
•En general, los problemas a resolver son tan complejos, que no
es posible resolverlos de una sola vez.
•Es por ello que usualmente se divide un problema mayor en un
listado de sub-problemas más pequeños y abordables.
•Cada uno de estos sub-problemas son, a la vez, divisibles en
otros sub-problemas de menor tamaño.
•Algunos autores llaman a esto Dividir y Conquistar, o
Refinamiento por Pasos.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Alcances…
(2)
•Este tipo de proceso se asocia a un enfoque “de arriba abajo”
(TopDown), ya que el problema se aborda desde lo más
general (“desde arriba”), y progresivamente se introducen
mayores detalles según se requiera (“hacia abajo)”.
•El resultado es un algoritm
o, que corresponde a un conjunto
de instrucciones paso a paso que, luego de ser ejecutadas,
resuelven el problema original.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Alcances…
(3)
•Este algoritmo suele estar escrito en un form
ato denominado
Pseudocódigo, una mezcla entre lenguaje inform
ático y
lenguaje natural.
•Una vez que los detalles del algoritmo están correctos, el paso
siguiente es traducir las instrucciones existentes en
pseudocódigoa un lenguaje de programación de alto nivel.
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Profesores
PHM/DCP
Form
a Difícil de Resolver un
Problema
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Problema
Solución en form
a de
programa
•Énfasis en dar una solución ráp
ida al problema, pero…
¿Quéproblema estoy resolviendo?
¿Abordéel problema de m
anera adecuada?
?
Profesores
PHM/DCP
Form
a Adecuada de Resolver un
Problema (1)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Problema
Solución en form
a de
programa
Solución en
form
a algorítm
ica
Comprensión
del p
roblema
Implemen
tación
de la Solución
Profesores
PHM/DCP
Form
a Adecuada de Resolver un
Problema (2)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
•Lo importante radica en comprender efectivamente qué
problema pretendemos resolver, y plantear una
solución analíticaque lo resuelva.
•Si fallamosen la comprensión del p
roblema, sus
consecuencias se arrastran hasta la solución final…
Profesores
PHM/DCPAspectos a tener en cuenta en
un algoritm
o (1)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
•Como ya se ha mencionado, un algoritmo se desarrolla con
el objetivo de resolver un problema.
•Por lo tanto, se espera que, luego de la ejecución del
algoritmo, exista un resultado o salida.
•Pero para obtener esta salida, es necesario que exista un
procesoque sea capaz de entregarlo.
•Ahora bien, un proceso requiere de entrad
as, elementos
inicialmente externos al proceso, pero que se incorporan a
él con el fin de obtener la salida esperada (solución).
Profesores
PHM/DCPAspectos a tener en cuenta en
un algoritm
o (2)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
Entrada 1
Entrada 2
Entrada 3
Entrada N
……
Salid
a 1
Salid
a 2
Salid
a 3
…
…
Salid
a N
PROCESO
Profesores
PHM/DCPAspectos a tener en cuenta en
un algoritm
o (3)
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I
•Entrad
as:
–¿Cuántas entradas son requeridas por el proceso establecido?
–¿Quétipo de entradas son requeridas por el proceso
establecido?
•Proceso:
–¿Cuál es el proceso más adecuado para resolver el problema
planteado?
•Salidas:
–¿Cuál es el resultado final esperado?
Profesores
PHM/DCP
Fin
Pontificia Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 140 –Informática I