Вы находитесь на странице: 1из 43

ALGORITMIA Y PROGRAMACIÓN

Carlos Andrés Mera Banguero


carlosm@univalle.edu.co

Clase No. 1
Carlos Andrés Mera 1
Algoritmia y Programación
Contenido
Introducción

Funciones Presentación del Programa

Problemas y Soluciones

Definición de Algoritmo

Introducción al Enfoque de Objetos

Carlos Andrés Mera 2


Algoritmia y Programación
Programa
750001M - Algoritmia y Programación – Grupo 4
Validable: NO

Habilitable: NO

Intensidad: 3 Horas Semanales

Objetivo General:
Capacitar al estudiante en la solución de problemas mediante su
modelación por el enfoque de objetos, el desarrollo de métodos con
algoritmos estructurados y la programación en el computador mediante un
lenguaje orientado a objetos.

Carlos Andrés Mera 3


Algoritmia y Programación
Programa
Contenido del Curso:

Los Problemas y Tipos de Soluciones


Ejemplificación de Problemas
Tipos de Soluciones para Problemas
Problemas El Enfoque de Objetos
Objetos, Atributos, Clases y Métodos
Relaciones Entre Clases
El Lenguaje de Programación Java
Instrucciones Básicas del Lenguaje
El API de Java y Clases Avanzadas
Desarrollo de Interfaces Gráficas
Componentes Swing
Manejo de Eventos del Ratón

Carlos Andrés Mera 4


Algoritmia y Programación
Programa

Evaluación:

I Parcial: 30 %
II Parcial: 35 %
Laboratorios: 25 %
Tareas y Quices: 10 %

Bibliografía:
How to Program Java, Deitel, HM., Deitel, P. J.. Prentice Hall, 2000
Documentación Java, http://java.sun.com/

Carlos Andrés Mera 5


Algoritmia y Programación
Introducción

¿Qué
¿Quése
seimaginan
imaginanque
quevamos
vamosaaaprender
aprenderen
eneste
estecurso?
curso?
¿Será
¿Seráque
quenos
nosva
vaaaser
serútil
útilpara
paraalgo?
algo?
¿Qué
¿Quées
esun
unPrograma?
Programa?--¿Qué
¿Quées
esun
unAlgoritmo?
Algoritmo?

Carlos Andrés Mera 6


Algoritmia y Programación
Introducción
Definición 1: Un Programa “es una lista de instrucciones escritas en algún lenguaje
de programación que son ejecutadas por un computador para que la máquina actué de
forma determinada” [Diccionario para usuarios de computadoras].

Definición 2: Un Algoritmo “es un procedimiento matemático o lógico para resolver


un problema”. [Diccionario para usuarios de computadoras] Dicho procedimiento es una secuencia de
pasos que tienen un orden definido para dar solución a un problema.

Idea Algoritmo Lenguaje Programa

Carlos Andrés Mera 7


Algoritmia y Programación
Problemas

¿Qué
¿Quées
esun
unProblema?
Problema?
¿Cómo
¿CómoSolucionamos
Solucionamosun
unProblema?
Problema?

Carlos Andrés Mera 8


Algoritmia y Programación
Problemas
Definición 3: Un Problema “es una cuestión que hay que aclarar”.

Definición 4: Para solucionar un problema este se debe identificar como tal,


debemos realizar una serie de acciones para encontrarle una solución y describir dicha
solución de la forma más clara posible para que otros la entiendan

Básicamente, el objetivo de esta asignatura es presentar al estudiante una serie de

problemas que más adelante a prenderá a resolver (darles una solución) a través del

lenguaje algorítmico para construir un programa.

Carlos Andrés Mera 9


Algoritmia y Programación
Problemas

¿Cuál
¿Cuáles
eselelaporte
aportede
deeste
estecurso
cursoen
enmi
micarrera?
carrera?

Carlos Andrés Mera 10


Algoritmia y Programación
Problemas
Cada uno de los problemas que el estudiante resuelva se utiliza para incrementar los
conocimientos y las habilidades que le permitirán enfrentar y solucionar otros
problemas tanto de su vida cotidiana como de su vida laboral.

Carlos Andrés Mera 11


Algoritmia y Programación
Solución de Problemas
Problemas de la Vida Diaria: Todos los días resolvemos problemas en nuestra
vida cotidiana. Como por ejemplo cambiar un bombillo fundido, llegar temprano a una
clase cuando estamos retrazados, …

En general, cuando resolvemos este tipo de problemas nuestro cerebro,


inconcientemente, realiza 3 actividades que nos permiten llegar a una solución al
problema:

1. Definimos el Problema

2. Establecemos una Estrategia de Solución.

3. Probamos el Funcionamiento de la Estrategia Buscada.

Carlos Andrés Mera 12


Algoritmia y Programación
Soluciones de Problemas
Por Ejemplo: Observemos el siguiente problema a resolver:

Vamos a visitar a una amiga que vive en un conjunto residencial. En este conjunto hay

un sistema de citofonía que permite que la puerta principal de ingreso se abra desde los

apartamentos, no hay portería y hemos olvidado en que edificio y en que piso vive.

¿Cómo encontramos el apartamento de nuestra amiga?

¿Qué solución plantean ustedes?

Carlos Andrés Mera 13


Algoritmia y Programación
Soluciones de Problemas
Estrategias de Solución e Problemas

Definición 5: La búsqueda de Solución al Azar es la más sencilla y básicamente


corresponde a ensayar una solución al azar y probar si esta es correcta. El proceso se
realiza hasta que se encuentra una respuesta correcta.

Definición 6: La búsqueda de Solución Algorítmica definen una serie de pasos


ordenados que nos permitirán llegar a la solución.

Definición 7: La búsqueda de Solución Heurística Consiste en aplicar experiencias y


conocimientos previos sobre el problema, para encontrar una solución.

Carlos Andrés Mera 14


Algoritmia y Programación
Soluciones de Problemas
Ejercicio: Dos profesores pasean charlando de sus respectivas familias.

A: Por cierto – Pregunta uno A a B- “¿que edad tienen tus tres hijas?”.

B: El colega responde: “el producto de sus edades es 36 y su suma

casualmente , es igual al número de tu casa”.

… Tras pensar un rato, A dice: “me falta un dato”.

B: Así que el colega responde “ …hummm es verdad, se me había

olvidado aclararte que la mayor toca el piano”.

¿Cuáles son las edades de las tres hijas?

Carlos Andrés Mera 15


Algoritmia y Programación
Soluciones de Problemas
Ejercicio:

Describa los pasos necesarios para reemplazar un bombillo fundido, que se encuentra

en el centro del cielo raso de una habitación. Haga de cuenta que le va a explicar a un

niño como hacerlo …

Carlos Andrés Mera 16


Algoritmia y Programación
Soluciones de Problemas
Ejercicio:

En un estante de una biblioteca se han colocado en forma ordenada los tres tomos de la

Divina Comedia, cada uno de los cuales tiene 100 hojas. Una polilla empezó por taladrar

la primera hoja del primer tomo y prosiguió horizontalmente en el mismo sentido, terminó

su tarea con la última hoja del último tomo. ¿Cuántas hijas taladró la polilla?

I II III

Carlos Andrés Mera 17


Algoritmia y Programación
Soluciones de Problemas
Conclusiones:

No siempre la primera solución en la que se piensa en la correcta o la más


acertada.

Cuando se plantea un problema es posible que algunas consideraciones


necesarias para platear la solución no estén suficientemente claras. Por ello una
de las tareas iniciales en la solución de un problema, es añadir supuestos que
delimiten y contextualicen claramente el problema a resolver.

Se debe tener muy claro el problema que se va a resolver y esto tal vez
involucre hacer una pequeña investigación relacionada con el problema.

Carlos Andrés Mera 18


Algoritmia y Programación
Algoritmos

¿Recuerdan
¿Recuerdanque
quees
esun
unAlgoritmo?
Algoritmo?

Carlos Andrés Mera 19


Algoritmia y Programación
Algoritmos
Definición 8: Un Algoritmo es una serie finita de instrucciones bien definidas
(pasos) para realizar un cálculo o resolver un problema. [Rosen K.]

Por Ejemplo: Escriba un algoritmo que determine cual es el número más


entre dos números enteros:

Paso 1: Tome dos números y llámelos A y B.


Paso 2: Compare A y B en tamaño.
Paso 3: Si A es mayor que B, devuelva A y pare.
Paso 4: Sino Devuelva B y pare.

Carlos Andrés Mera 20


Algoritmia y Programación
Algoritmos
Algoritmos:

Cuando definimos un algoritmo en lenguaje natural (español, inglés,


alemán, etc.), decimos que hemos definido el algoritmo en pseudocódigo.
Así pues, el pseudocódigo es la descripción textual de un algoritmo

Por otra parte, cuando se habla de implementación, se hace alusión al


proceso de escribir un algoritmo en un lenguaje de computador particular
(programa).

Carlos Andrés Mera 21


Algoritmia y Programación
Algoritmos
Ejemplo: Observe la implementación del algoritmo numeroMayor que
permite determinar el mayor de dos números:

int numeroMayor (int a, int b) {


//si a>b retorna como numero mayor a, y para la ejecución del algoritmo
if ( a > b)
return a;
else
return b;
}

Carlos Andrés Mera 22


Algoritmia y Programación
Algoritmos
Propiedades de los Algoritmos: Existen varias propiedades de nuestro interés que
comparten los algoritmos:
Entrada: un algoritmo toma como punto de partida un conjunto de valores bien
definido que son considerados las entradas del algoritmo.

Salida: el algoritmo arroja un valor bien definido, que tiene relación con la entrada,
y que corresponde a la solución del problema.

Definición Clara: cada paso del algoritmo debe estar definido claramente y sin
ambigüedad.

Correctitud: el algoritmo debe producir la salida correcta (veraz) para todas las
posibles entradas
Carlos Andrés Mera 23
Algoritmia y Programación
Algoritmos
Propiedades de los Algoritmos:
Finito: el algoritmo debe producir la salida esperada después de un número finito
de pasos para cualquier conjunto de entrada.

Eficaz: debe ser posible realizar cada paso del algoritmo de manera exacta y en
un lapso finito (acotado) de tiempo.

General: el algoritmo debe ser aplicable a todos los problemas que satisfagan las
restricciones de su entrada y no a subconjuntos específicos de valores únicamente.
Será mejor aún en cuanto menos se restrinja su entrada.

Ejercicio: Escriba los algoritmos para las operaciones de suma y división de dos
número. Analice si los algoritmos cumplen las propiedades.

Carlos Andrés Mera 24


Algoritmia y Programación
Algoritmos
Solución a los Algoritmos:
Suma:
Paso 1: Tome dos números y llámelos A y B.
Paso 2: Sume A y B, y al resultado llámelo C.
Paso 3: Devuelva C y termine.

División:
Paso 1: Tome dos números y llámelos A y B.
Paso 2: Si B es igual a cero entonces escriba: “Error: División por Cero”
Paso 3: Sino, A divídalo entre B, y al resultado llámelo C.
Paso 4: Devuelva C y termine.

Carlos Andrés Mera 25


Algoritmia y Programación
Algoritmos
Elementos Básicos de los Algoritmos:

Pasos Iniciales: Captura de los datos de entrada.

Pasos Centrales: realización de cálculos y control de errores o posibles


situaciones anormales o inesperadas que generen conflicto

Pasos Finales: despliegue o devolución de resultados.

Carlos Andrés Mera 26


Algoritmia y Programación
El Enfoque de Objetos

¿Qué
¿Quéserá
seráeso
esodel
delEnfoque
Enfoquede
deObjetos?
Objetos?
¿Qué
¿Quées
esun
unObjeto?
Objeto?

Carlos Andrés Mera 27


Algoritmia y Programación
El Enfoque de Objetos
Introducción:

El enfoque de objetos es un paradigma para el desarrollo de programas y sistemas que

se usa en la actualidad.

Este paradigma toma como base el hecho de que nuestro alrededor está formado por

objetos de diversa índole, unos son animados, otros inanimados y también los

artificiales.

Carlos Andrés Mera 28


Algoritmia y Programación
El Enfoque de Objetos
Los Objetos:

Definición 9: De manera un poco formal el concepto de OBJETO se refiere a todo


aquello que podemos observar y/o comprender de nuestro entorno..

Por Ejemplo: Un Marcador, un Televisor, un Carro, un Perro, …

Además, todo objeto tiene un estado u atributos y un comportamiento.

Por Ejemplo: los atributos de un perro son su nombre, raza, edad, color, … y su
comportamiento es comer, correr, saltar, ladrar, …

Carlos Andrés Mera 29


Algoritmia y Programación
El Enfoque de Objetos
Los Objetos:

Los Legos: Son unas piezas que por un lado tienen partes circulares y del otro
tienen orificios donde encajan perfectamente otras piezas.

Las piezas de los legos se pueden ir uniendo para formar objetos más grandes: casas,

castillos, autos y hasta robots.

Entonces, de esa misma manera es como funciona la Programación Orientada a

Objetos: unir elementos pequeños para construir otros más grandes.

Carlos Andrés Mera 30


Algoritmia y Programación
El Enfoque de Objetos
Los Objetos:

¿Qué tiene que ver todo esto con la programación?

R/= TODO … los programas que vamos a construir estarán formados por muchos

componentes (objetos) independientes y diferentes. Cada uno con una función

específica en el programa y que puede comunicarse con todos los demás de manera

predefinida.

Carlos Andrés Mera 31


Algoritmia y Programación
El Enfoque de Objetos

¿Qué
¿Quées
esun
unObjeto?
Objeto?

Carlos Andrés Mera 32


Algoritmia y Programación
El Enfoque de Objetos
Objetos:

Definición 10: la palabra objeto se refiere a todo aquello que podemos observar
y/o comprender de nuestro entorno.

Por Ejemplo: una mesa, un radio, un televisor, una cuenta bancaria, …

Todo objeto tiene un conjunto de características y un comportamiento.

Por Ejemplo:
Atributos del Televisor: marca, color, Tamaño, No de Inventario,
Comportamiento del Televisor: encender, apagar, proyectar, …

Carlos Andrés Mera 33


Algoritmia y Programación
El Enfoque de Objetos

Determine
Determinecuáles
cuálesson
sonlos
losobjetos
objetosque
quehay
hayen
enelelsalón
salónyyespecifique
especifique
cuáles
cuálesestán
estánrepetidos
repetidos……

Carlos Andrés Mera 34


Algoritmia y Programación
El Enfoque de Objetos
Objeto Está Repetido
Ventilador Gris Si, se puede agrupar en el conjunto Ventilador

Ventilador Blanco Si, se puede agrupar en el conjunto Ventilador

Pupitre No 001235 Si, Se puede agrupar en el conjunto Pupitre

Pupitre No 001236 Si, Se puede agrupar en el conjunto Pupitre

Tablero No

Mesa No

Video Bean No

CPU No

Ratón No

Carlos Andrés Mera 35


Algoritmia y Programación
El Enfoque de Objetos

Pupitres Mesas

001234 001235 Mesa No 1 Mesa No 2

En el cuadro anterior se identificaron y agruparon los objetos que presentan


características similares en conjuntos que los representan. La figura anterior
muestra tal agrupamiento.

Carlos Andrés Mera 36


Algoritmia y Programación
El Enfoque de Objetos
Objetos:

Definición 11: En el enfoque de objetos la agrupación de aquellos objetos que


tienen características similares se le denomina CLASE.

Así una CLASE puede ser vista como una plantilla genérica para un conjunto de
objetos con características similares. A continuación se muestran las clases de objetos
que hay en el salón: Pupitre, Video Bean, Tablero, Escritorio.

Por Ejemplo: Pupitre, Video Bean, Tablero, Escritorio son clases

Carlos Andrés Mera 37


Algoritmia y Programación
El Enfoque de Objetos
Clases:

En los Ejemplos pasados he hablado de las características del objeto. Enumeremos las
características de algunas de las clases de objetos del salón:

Pupitre Escritorio CPU


numeroDeSerie numeroDeSerie numeroDeSerie
color alto color
material ancho marca
largo referencia
color
material

Carlos Andrés Mera 38


Algoritmia y Programación
El Enfoque de Objetos
Atributos:

Definición 12: A cada característica que mencionamos de los objetos se les


conoce en el enfoque de objetos como Atributos ya que son los sustantivos que
permiten diferenciar un objeto de otro.

Cada objeto del mundo real tiene un valor para los atributos establecidos en la clase:

unPupitre
001234
gris
plastico

Carlos Andrés Mera 39


Algoritmia y Programación
El Enfoque de Objetos
Métodos:

Definición 13: Se conoce como Métodos de una clase a las funciones que
determinan el comportamiento de un objeto o una clase. Será a través de los métodos
que los objetos se podrán comunicar entre sí en un programa.

Por Ejemplo: Pensemos en un auto.


¿Cuáles son los atributos de la clase Auto?
¿Cuál es el comportamiento de un auto? ó
¿Cuáles son las operaciones que puede realizar un auto?

Carlos Andrés Mera 40


Algoritmia y Programación
El Enfoque de Objetos
Entonces de acuerdo a lo que ustedes establecieron como comportamiento de
un auto tenemos:

Auto Nombre
marca
modelo
color Atributos
numeroDePuertas

encender();
acelerar();
frenar(); Métodos
girar();

Carlos Andrés Mera 41


Algoritmia y Programación
El Enfoque de Objetos
El Principio de Abstracción:

Definición 14: Mediante la Abstracción la mente humana crea un modelo de la


realidad en forma de objetos. Por ello debemos llegar a un acuerdo de cómo
representarlos y como diferenciarlos de las clases de objetos.

Así, de ahora en adelante usaremos la siguiente notación:

Nombre

Atributos

Métodos

Carlos Andrés Mera 42


Algoritmia y Programación
Lecturas

• Lectura No 1: Problemas y Tipos de Solución

• Lectura No 2: El Enfoque de Objetos

Se recomienda leer antes de la Lectura No 2 las Lecturas relacionadas con Objetos:

¿Qué es la Programación Orientada a Objetos? – Programación Orientada a Objetos.

Carlos Andrés Mera 43


Algoritmia y Programación

Вам также может понравиться