Introduccion a la programacion
- Variables: de tipo por valor y de tipo por referencia.
a) Por valor:
El valor de la variable se copia en otra al usar el operador "="
El operador "==" compara el valor de las variables.
Ejemplos: int, char, double, float, boolean.
b) Por referencia:
Al usar el operador "=", se copia la REFERENCIA a la variable.
Les llamamos"objetos", o instancias de una clase.
El operador "==" compara las referencias a los objetos.
Para copiar el valor de un objeto sobre otro, usamos métodos creados por
nosotros (si el objeto es instancia de una clase que hayamos creado), o se usan
recursos que lean el contenido de los objetos. Por ejemplo, en el caso de un
arreglo, creamos la instancia del arreglo sobre el que queremos copiar elotro,
dándole el mismo tamaño que el arreglo a copiar. Luego, usamos un loop para leer
las variables almacenadas en el arreglo original, y finalmente las copiamos una por
una en el segundo arreglo.
Ejemplos: String, int[], String[,], nombreDeUnaClaseNuestra.
- Posibilidad de control de flujo: controlar el orden de la ejecución del programa, de acuerdo a
condiciones impuestas por nosotros, esdecir, con operadores booleanos.
Herramientas:
Dividir el camino en varias rutas a seguir : if/else if/else
Loops: while/do-while/for
- Métodos: encapsulación de una funcionalidad, por motivos de modelación, de ahorro y
reusabilidad de código.
- Clases: abstracción de un objeto, sus características y sus funcionalidades, que facilita y permite
modelar mundos mucho más complejos que los que sepueden ver en un Main. También facilita el
debug del programa y la interpretación del mismo por otro programador.
Elementos:
Características del objeto representadas como los parámetros, o "campos" de la
clase.
Funcionalidades del mismo representadas como métodos dentro de la clase.
- Objetos: instancias de una clase.
Ejemplo: queremos representar un auto. Los parámetros que queremosimplementar son:
El color
La cantidad de combustible
El motor
Las ruedas
La maleta
Los pasajeros
Las funcionalidades que queremos que tenga son:
Encender
Apagar
Acelerar (oprimiendo un cierto % del acelerador)
Frenar (ejerciendo un cierto % de la presión máxima admitida, sobre el freno)
Cargar combustible (una cierta cantidad)
Cargar pasajero (entran de uno en uno)
Bajar pasajeroPintar de otro color
Cargar maleta (cargando un conjunto de cosas)
Descargar maleta (descargando todas las cosas que lleve el auto)
¿Cómo representamos esto en una clase?
Inicio Ejemplo
>>
Fin ejemplo
- Arreglos:
Forma de juntar "n" valores u objetos del mismo tipo en una misma referencia.
Tipo por referencia, es decir, es la instancia de una clase.
No existen límites para fijar un largo,pero luego de fijarlo, éste es invariable.
Cada una de sus casillas es una referencia a un valor o a un objeto.
- Búsqueda y ordenación de colecciones: a veces queremos buscar un objeto de una colección
dentro de ésta, para saber si está dentro de ella, y obtener así el índice con el que podemos
acceder a su "lugar" dentro de la colección.
Si los objetos de ésta colección son ordenables deacuerdo a una característica propia de ellos (a >
b, en el caso de los ints, o s1.CompareTo(s2) en el caso de los Strings, por ejemplo), muchas veces
es apropiado ordenar la colección de acuerdo a esa característica, para luego poder buscar un
objeto usando la clásica "búsqueda binaria".
Hay diversos algoritmos para ordenar objetos, y cada algoritmo tiene un costo de procesamiento.
Uno delos más fáciles de memorizar es BubbleSort, pero el más rápido de todos es QuickSort.
(Para ver BubbleSort en detalle: http://es.wikipedia.org/wiki/Ordenamiento_de_burbuja), y para
QuickSort: http://es.wikipedia.org/wiki/Ordenamiento_r%C3%A1pido).
Recomendación:
Ya que el QuickSort es muy complicado de entender y memorizar, es preferible conocer de
memoria el BubbleSort, cosa de tener siempre...
Regístrate para leer el documento completo.