Páginas

miércoles, 29 de agosto de 2012

Buenas practicas de programación [1]

Para programar correctamente hay que seguir algunos consejos, que no solo hace que los programas sean más eficientes sino que tambien permiten mejorar la presentación del código y hacerlo más fácil de entender.

Estos consejos son denominados oficialmente "buenas practicas en programación", la idea es ir recopilando estos consejos, así que vamos con el primero.



Algo muy importante son los nombres, llamados identificadores, a la hora de nombrar un elemento (ya sea clase, atributo o método), es necesario ser muy claros.

Hay que evitar nombrar un elemento como "a" o "variable", estos nombres son ambiguos y no dan una idea de lo que son, nombres más claros serian "Carro" o "numeroEstudiantes", estos nombre si dan una idea clara   de la naturaleza del elemento.

Hay que evitar usar símbolos y palabras reservadas, estas palabras son propias del lenguaje de programación (en este caso Java) y no se deben usar.


abstractbooleanbreakbytecasecatch
charclassconstcontinuedefaultdo
doubleelseextendsfinalfinallyfloat
forgotoifimplementsimportinstanceof
intinterfacelongnativenewpackage
privateprotectedpublicreturnshortstatic
strictfpsuperswitchsynchronizedthisthrow
throwstransienttryvoidvolatilewhile
assertenum



Por otra parte para nombrar elementos de programación en Java hay que tener en cuenta los siguientes consejos.

- Para clase: la primera letra en mayúscula y luego usar notación camelCase (primera letra de cada palabra en mayúscula), los nombres deben ser sustantivos y estar en singular.

-Para interfaces: aplica lo mismo que clases excepto que los nombres deben ser adjetivos.

-Para métodos:  la primera letra en minúscula y luego usar notación camelCase, los nombres deben ser o un verbo o una mezcla de verbo y sustantivo.

-Para variables: la primera letra en minúscula y luego usar notación camelCase, deberían ser nombres con significados claros y en lo posible corto.

- Las constantes: en este caso todas las letras deben estar en mayúscula y se debe separar cada palabra con un "_".

Con este consejo ya sera más fácil entender su código, no es lo mismo ver la variable "x" que la variable "nombreUsuario".

lunes, 27 de agosto de 2012

Pagina recomendada [1]

Nombre: java2s

Descripción: Esta pagina contiene información de muchas cosas relacionadas con la programación, pero lo mas importante es que contiene la explicación de como usar diferentes clases, métodos y librerías, lo mejor es que se explica usando ejemplos del funcionamiento de cada método, el código es muy claro y generalmente esta documentado.


Aunque su interfaz no es la mejor, cumple su cometido, para entender mejor como funciona, veamos un ejemplo, queremos buscar como colocar un icono a un botón en Java:

1. Se selecciona el lenguaje de programación.



2. Se selecciona la clase de la que se quiere más información.



3. Se selecciona el método.



4. Se obtiene el código que necesitamos.


No se olviden de visitar http://www.java2s.com/ y de recomendarnos otras paginas en sus comentarios.

Tutorial Hola Mundo en C++

Luego de la exitosa instalación realizada en el tutorial anterior, lo siguiente es verificar que todo esté listo para programar en C++ usando Eclipse.

1. Se crea un nuevo proyecto, la opción C++ Project.


ejeC_01.jpg


2. Se le asigna un nombre al proyecto y en “Project Type” se elige la carpeta “Executable” y opción “Hello World C++ Project”.


ejeC_02.jpg


3. Se presiona el botón “Finish” y se espera un momento.


ejeC_03.jpg


4. Se genera el siguiente código, observen la estructura de las carpetas e investigue, ahora un paso muy importante es compilar el programa, para ello pulsamos el icono del martillo.


ejeC_04.jpg


El proyecto va a compilar lo que tardara un momento.


ejeC_05.jpg


5. Ahora como en un programa normal, se ejecuta usando el icono Run.


ejeC_06.jpg


6. Por ultimo en consola se muestra el Hello World.


ejeC_07.jpg

Tutorial Instalacion C/C++ en Eclipse


Recursos






Instalación

Primer es necesario descargar eclipse y descomprimirlo.
Luego se descarga el instalador de MinGW y se ejecuta.

instC_01.jpg

El instalador requiere permisos de administrador y crea accesos directos a la aplicación.

instC_02.jpg

Se elije la segunda opción en esta ventana, para descargar los últimos paquetes.

instC_03.jpg

Leemos cuidadosamente los términos y condiciones y para continuar la instalcion los aceptamos.

instC_04.jpg

En este punto se elije la carpeta de instalación, se requieren al menos 1,7 MB libres.

instC_05.jpg

El instalador crea una carpeta con accesos directos en el menú de inicio.

instC_06.jpg

Ahora viene lo importante, se elije “C++ Compiler” en este caso y se continua con la instalación.

instC_07.jpg

Ahora el programa esta listo para descargar los archivos, muestra un resumen de nuestras preferencias y solicita permiso para instalar.

instC_08.jpg

Instala los archivos iniciales.

instC_09.jpg

Y comienza a descargar el resto de los archivos, esto puede tomar un tiempo, no hay que cerrar la ventana hasta que termine.

instC_10.jpg

Acá se muestra el progreso de la instalación hay que tener paciencia.

instC_11.jpg

Cuento el programa termina muestra este mensaje y nos permite ver un archivo de texto con los resultados de la instalación.

instC_12.jpg

Lo siguiente es instalar el complemento para poder programar con C++ en Eclipse, para eso en la barra de menú se selecciona el ítem “Help” y la opción “Install New Software”.

instC_13.jpg

Lo que mostrara la siguiente pantalla, en el campo “Work with” se introduce la dirección http://www.eclipse.org/cdt/downloads.php y se pulsa “Next”.
instC_14.jpg

El resultado será el siguiente.


instC_15.jpg


El la siguiente ventana se muestra lo siguiente, se elije la primera opción, como se ve en la imagen y se pulsa “Next”.


instC_16.jpg


El asistente de instalación tomara un momento para calcular las dependencias y los requisitos, el progreso se mostrara en la una barra en la parte inferior de la ventana.


instC_17.jpg


Luego se muestra la siguiente ventana de confirmación, se pulsa “Next” para continuar.


instC_18.jpg


Para continuar se leen los términos y condiciones y se aceptan y con eso concluye la etapa de configuración.


instC_19.jpg


A continuación se inicia la instalación.


instC_20.jpg


Es necesario esperar un tiempo, pero el progreso se ve claramente.


instC_21.jpg


Aunque para que se agregue correctamente el complemento será necesario reiniciar eclipse.


instC_22.jpg


Se hace necesario cambiar las variables de entorno, es algo sencillo, click derecho en “Mi Pc”, se elije la opción propiedades.


instC_23.jpg


En la pestaña “Opciones avanzadas” se pulsa el botón “Variables de entorno”


instC_24.jpg


En la tabla de “Variables del sistema” se selecciona la fila “Path” y se pulsa “Modificar”.


instC_25.jpg


En la ventana que aparece, se agrega la ruta donde se instalado en compilador y donde esta la carpeta bin, pero antes se pone un “;” sin comillas, que separa las diferentes rutas, se oprime aceptar y eso es todo.


instC_26.jpg


Con eso ya se puede programar en C++ usando eclipse.

Ciclos While y Do While

While

Es un ciclo con una estructura simple pero muy poderosa, la idea que se maneja es repetir una instrucción mientras una condición de control se mantenga verdadera, hay que destacar que primero se evalúa la condición y luego se ejecuta las instrucciones.

File:While-loop-diagram.svg
File:While-loop-diagram.svg
While-loop-diagram.svg by P. Kemp
Seudocodigo
Mientras (condicion) {
Instrucciones;
}
Codigo Java
while (condition) {
Instrucciones;
}

condition Es una condicion, que va devolver un valor boleano, ya sea true si la condición se cumple o false si no lo hace, por lo general se tienen en cuenta 3 opciones:

1. Que se haga una operacion que directamente devuelva un boleano, como operandos igual, diferente, menor o igual, mayor o igual, menor y mayor (==, !=, <=, >=, <, >,).
while (numero>10) {Instrucciones;}
2. Que se evalué una variable boleana.
while (encendido) {Instrucciones;}
3.Que se llame un método cuyo retorno sea un boleano.

while (esEditable) {Instrucciones;}
Instrucciones; Es lo que quiere que se ejecute varias veces.
Do While
Una estructura similar al While, pero con una gran diferencia primero se realizan las instrucciones y luego se evalúa la condición para decidir si se vuelve a realizar el proceso. Lo que significa que las instrucciones se ejecutaran por lo menos una vez.

File:Do-while-loop-diagram.svg
File:Do-while-loop-diagram.svg

Do-while-loop-diagram.svg by P. Kemp
Seudocodigo
Haga{Instrucciones;}Mientras (condición);
Código Java

do {
Instrucciones;} while (condition);
condition Es una condición, que va devolver un valor boleano, revizar condición while.
Instrucciones; Es lo que quiere que se ejecute varias veces.

Ciclos For y For each

Un ciclo se utiliza cuando se quiere repetir una acción un numero determinado de veces, para explicarlos se usara sintaxis de JAVA.

FOR

El ciclo for se usa cuando se quiere hacer una acción determinado numero de veces y es muy útil para el manejo de lista o estructuras numeradas, ya que maneja un indice el cual sera útil no solo para repetir la acción sino para el manejo de estas estructuras.

De este indice se debe conocer el valor inicial y el valor final.

Seudocodigo:

Para (variable = "acá valor inicial"; hasta <= "valor final"; "incremento"){

instrucción a repetirse;
}

Código java

for (int i = 0i < 11i++) {

System.out.println(i);

}

int i Es la variable con la que se va a trabajar, al ser una variable no necesariamente tiene que llamarse i.

i = 0 Es la condición inicial, quiere decir que se va a empezar con la variable i con el valor cero (0).

i < 11 Es la condición de control, lo que garantiza que el ciclo llegue a su fin, en este casi cuando i valga 10 el ciclo terminara, lo que indica que el ciclo se repite 10 veces.


i++ En este caso se presenta un incremento(variable++), lo que indica que cada vez entre a uno, lo que indica que la primera vez que entra al ciclo la variable i vale 0 la segunda 1 y así hasta que se cumpla la condición de control. También se puede hacer un decremento(variable--).


System.out.println(i); Es la instrucción que se repite, es lo que el ciclo realizara 10 veces, en este caso mostrar por consola en valor de la variable i.

La ventaja es que ademas de realizar las instrucciones las veces que queramos dentro de for podemos usar la variable i para lo que necesitemos, por ejemplo cuando se quiere recorrer un vector en orden.

FOR EACH

Aunque el for es muy útil existe otra estructura similar llamada FOR EACH, se puede decir que es una evolución del for clásico diseñado para el manejo de elementos de un vector su función es la de aplicar un procedimiento a todos los elementos de dicho vector y por ello solo se debe usar en esta situación ya que no es tan flexible.

Seudocodigo

Para (elemento x de tipo y: de esta estructura){

instrucción a repetirse;
}

Código Java

ArrayList<String> nombres = new ArrayList<>();


nombres.add("Andres");

nombres.add("Jose");

nombres.add("Sebatian");


for (String nombre : nombres) {

System.out.println(nombre);

}

String nombre Es una variable auxilia que va a tomar en cada ciclo el valor de un elemento del vector.

nombres Hace referencia al vector con el que se va a trabajar.

System.out.println(nombre); Es la instrucción que se repite sobre el elemento.

Búsqueda Secuencial



Teoría


La búsqueda secuencial es un algoritmo de búsqueda donde se evalúan los elementos uno por uno hasta llegar con el que se está buscando o en su defecto hasta llegar al final.
Se usa en conjuntos que no están ordenados, algo que hay que destacar es que como se compara con todos los elementos, no se puede saber si un elemento está en el conjunto hasta evaluar todos.

Caso de estudio


Ud. está en una fiesta y alguien le pide el favor de llevar una bebida a un invitado que Ud. no conoce, los invitados están recostados contra la pared en forma de fila y el único dato que le dan es el nombre: “Alejandra”.
secu_01.png
La idea es preguntarles a todos hasta llegar con la persona que se está buscando.

-¿Sujeto 1 Ud. se llama “Alejandra”?
-No, pero la vi por ahí.
secu_02.png

-¿Sujeto 2 Ud. se llama “Alejandra”?
-No, ¡yo soy hombre que le pasa!
secu_03.png

-¿Sujeto 3 Ud. se llama “Alejandra”?
-Sí, esa bebida es para mí gracias.
secu_04.png

En este caso solo le preguntamos a 3 personas, pero se puede dar el caso que la primera persona a la que le preguntemos sea la que estamos buscando, así como que sea la última o simplemente que no esté pero para eso hay que verificar todos los elementos.

Algoritmo


Se identificó el siguiente algoritmo teniendo en cuenta el caso de estudio:

1. Verificar el primer elemento de la lista
a. El elemento coincide con el que estamos buscado (fin).
b. El elemento NO coincide con el que estamos buscado, se continúa con el paso 2.
2. Se continúa con el siguiente elemento, vuelve al paso 1 pero teniendo como primer elemento de la lista este elemento (este paso se repite hasta que no existan elementos en la lista en este caso el elemento no está en la lista).

Búsqueda binaria


Teoria

Este algoritmo se usa para buscar elementos en un conjunto de datos ordenados tipo lista.

La idea es la siguiente, usando el principio divide y vencerás ir limitando el rango de búsqueda, como cuando se busca una página de un libro, se abre el libro en una página al azar, si está más adelante pues pasamos un grupo de páginas así delante de lo contrario nos devolvemos, reduciendo el rango de búsqueda hasta llegar a la página buscada.
Se compara el elemento a buscar, con un elemento central de la lista, si este elemento central es mayor que el del elemento buscado, se toma el intervalo inferior (del inicio a la mitad de la lista, en caso contrario se toma la parte de superior (que va desde el elemento de la mitad hasta el final); en los dos casos, se repite el procedimiento en la parte del lista seleccionada. De esta manera obtenemos intervalos cada vez más pequeños, hasta que se obtenga un intervalo indivisible. Si el elemento no se encuentra dentro de este último entonces se deduce que el elemento buscado no se encuentra en toda la lista.

Caso estudio

Buscando en su ordenada colección de comics Alexander que hallar la edición 84 de “The Walking Dead”, lo haría de la siguiente manera.

bin_01.png

1. Se divide la lista en dos y se ubica el elemento de la mitad, en este caso TWD 77.

bin_02.png
2. Lo comparamos con el que queremos encontrar que es el 84, el elemento referencia (77) es menor, entonces se toma la parte “superior” de la lista.

bin_03.png


bin_04.png



bin_05.png

3. Ahora se repite el procedimiento con la nueva lista, se toma el elemento de la mitad.

bin_06.png

4. Lo comparamos con el que queremos encontrar que es el 84, el elemento referencia (99) es mayor, entonces se toma la parte “inferior” de la lista.

bin_07.png



bin_08.png


bin_09.png
5. Ahora se repite el procedimiento con la nueva lista, se toma el elemento de la mitad.

bin_10.png

6. Lo comparamos con el que queremos encontrar que es el 84, el elemento referencia (84) es mayor, como son igual quiere decir que ya encontramos el elemento que estábamos buscando y está en la posición 7.

bin_11.png

Algoritmo


1. Se busca el elemento de la mitad de la lista.
2. Se compara con el elemento que se está buscando.
a. Si el elemento de la mitad es mayor, se toma la parte de inferior de la lista (del primer elemento al de la mitad) vuelve al paso 1 pero con esta nueva sublista.
b. Si el elemento de la mitad es menor, se toma la parte de superior de la lista (del elemento de la mitad hay último elemento) vuelve al paso 1 pero con esta nueva sublista.
c. Si el elemento de la mitad es igual al elemento que estamos buscando se concluye la búsqueda exitosamente (fin).
d. Es el último elemento de la lista y no es igual al que se está buscando, el elemento no está en la lista (fin).