[Inf 140] Introduccion A Los Algoritmos (4 Diap X Hoja)

10
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 Profesores Pamela Hermosilla Monckton Daniel Cabrera Paniagua Ayudantes Profesores PHM/DCP Definición de Algoritmo (RAE) • Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. Método y notación en las distintas formas del cálculo. Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática INF 140 – Informática I Profesores PHM/DCP Algoritmo (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 Algoritmo (informalmente) 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

Transcript of [Inf 140] Introduccion A Los Algoritmos (4 Diap X Hoja)

Page 1: [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

Page 2: [Inf 140]   Introduccion A Los Algoritmos (4 Diap X Hoja)

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

Page 3: [Inf 140]   Introduccion A Los Algoritmos (4 Diap X Hoja)

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

Page 4: [Inf 140]   Introduccion A Los Algoritmos (4 Diap X Hoja)

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

Page 5: [Inf 140]   Introduccion A Los Algoritmos (4 Diap X Hoja)

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.

Page 6: [Inf 140]   Introduccion A Los Algoritmos (4 Diap X Hoja)

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

Page 7: [Inf 140]   Introduccion A Los Algoritmos (4 Diap X Hoja)

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

Page 8: [Inf 140]   Introduccion A Los Algoritmos (4 Diap X Hoja)

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

Page 9: [Inf 140]   Introduccion A Los Algoritmos (4 Diap X Hoja)

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).

Page 10: [Inf 140]   Introduccion A Los Algoritmos (4 Diap X Hoja)

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