Ya estamos en los ultimos dias de Febrero y ya nos encontramos organizando y planeando el evento del FLISoL en el Instituto Tecnologico de Ciudad Madero.
Este evento es un Festival de Instalacion de Software Libre, el cual se celebra en toda Latinoamerica.
Por el momento solo nos hemos encontrado delegando funciones y planeando que conferencistas serán los invitados. De igual manera los talleres que se impartiran.
Los mantendré informados cuando tenga mas noticias al respecto.
Mostrando las entradas con la etiqueta ITCM. Mostrar todas las entradas
Mostrando las entradas con la etiqueta ITCM. Mostrar todas las entradas
domingo, 19 de febrero de 2012
jueves, 13 de octubre de 2011
Torneo Interno de Programación (TIP) ACM 2011 en el ITCM
Hace 2 semanas dio inicio el TIP en el ITCM, un concurso de programacion en JAVA en el cual se concursaba en equipos 3 personas. La semana pasada fue la segunda fase, y mañana se cumple ya una semana de esa segunda fase.
Los problemas que se realizaron en la primer fase fueron:
Feel Good, un problema acerca de calcular el nivel de felicidad en un rango de dias. Usando arreglos, y haciendo todas las combinaciones posibles de 2 a n elementos para conjuntos de numeros contiguos... etc.
JavaVsC, era un problema basicamente de modificar un string, si encontraba una mayuscula, cambiara minuscula y agregar guion bajo, y viceversa.
Y a mi parecer el de dificultad dificil fue el de las torres de Hanoi, dado una estrategia a seguir contabilizar el numero de pasos que tardarias en resolverlo.
La segunda fase tambien fueron tres problemas, aunque un poco mas dificiles:
Youth's Hostel, un problema de obtener maximos, con restriccion. Acomodar en una matriz el mayor numero de camas, de tal forma que se pudiera acceder a ellas mediante el pasillo
Un problema de tautogramas, verificar si un string dado era un tautograma o no.
Y el ultimo problema era uno de unas "piedras" que se iban apilando y se queria escalar por ellas, pero tenian que tener una diferencia de altura menor a X numero... etc. Vaya, tenia su chiste el problema.
Al ver en la primer fase que por lo menos la mitad de los equipos resolvio 1 problema, dos equipos resolvieron 2 problemas y un equipo los tres problemas. Pues en la segunda fase se intento ver si el nivel de programación era más alto, pero no fue asi, los problemas fueron más complejos, requerian mas tiempo para poder analizarlos detenidamente y encontrar un patron o solución. Con lo que solo se logro como maximo se resolviera un problema.
Con este post solo queria relatar un poco de como fue el torneo de programacion aqui en el ITCM, del cual hasta ahorita no tenemos muchas noticias. Pero esperemos pronto nos digan con exactitud quienes pasaron a la siguiente ronda.
Los problemas que se realizaron en la primer fase fueron:
Feel Good, un problema acerca de calcular el nivel de felicidad en un rango de dias. Usando arreglos, y haciendo todas las combinaciones posibles de 2 a n elementos para conjuntos de numeros contiguos... etc.
JavaVsC, era un problema basicamente de modificar un string, si encontraba una mayuscula, cambiara minuscula y agregar guion bajo, y viceversa.
Y a mi parecer el de dificultad dificil fue el de las torres de Hanoi, dado una estrategia a seguir contabilizar el numero de pasos que tardarias en resolverlo.
La segunda fase tambien fueron tres problemas, aunque un poco mas dificiles:
Youth's Hostel, un problema de obtener maximos, con restriccion. Acomodar en una matriz el mayor numero de camas, de tal forma que se pudiera acceder a ellas mediante el pasillo
Un problema de tautogramas, verificar si un string dado era un tautograma o no.
Y el ultimo problema era uno de unas "piedras" que se iban apilando y se queria escalar por ellas, pero tenian que tener una diferencia de altura menor a X numero... etc. Vaya, tenia su chiste el problema.
Al ver en la primer fase que por lo menos la mitad de los equipos resolvio 1 problema, dos equipos resolvieron 2 problemas y un equipo los tres problemas. Pues en la segunda fase se intento ver si el nivel de programación era más alto, pero no fue asi, los problemas fueron más complejos, requerian mas tiempo para poder analizarlos detenidamente y encontrar un patron o solución. Con lo que solo se logro como maximo se resolviera un problema.
Con este post solo queria relatar un poco de como fue el torneo de programacion aqui en el ITCM, del cual hasta ahorita no tenemos muchas noticias. Pero esperemos pronto nos digan con exactitud quienes pasaron a la siguiente ronda.
domingo, 12 de junio de 2011
Programación Java. Problema 02: Re-acomodar arreglos y matrices
Continuando con los problemas de programación, que básicamente intento sean de lógica y cualquiera en cualquier lenguaje los podría plantear y resolver (aunque aquí la solución propuesta la pongo en java). Bueno, en fin, continuemos.
Problema
En el caso que tuviéramos un arreglo de números de cualquier longitud. Re-acomodar los números moviendo el primer numero a la ultima posición, y el ultimo a la primer posición, el segundo numero a la penúltima posición y el penúltimo a la segunda, y así sucesivamente.
Digamos el arreglo:
La matriz:
Al igual que el problema pasado, el código de la solución lo pondré mañana.
Básicamente se podría resolver con un ciclo for.
Problema
En el caso que tuviéramos un arreglo de números de cualquier longitud. Re-acomodar los números moviendo el primer numero a la ultima posición, y el ultimo a la primer posición, el segundo numero a la penúltima posición y el penúltimo a la segunda, y así sucesivamente.
Digamos el arreglo:
0 1 2 3 4 5 6 7 8 9
Re-acomodarlo a:9 8 7 6 5 4 3 2 1 0
También podríamos elaborar un programa que haga algo similar, pero con una matrizLa matriz:
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Re-acomodarla a: 9 8 7 6 5 4 3 2 1 0
19 18 17 16 15 14 13 12 11 10
Solución:Al igual que el problema pasado, el código de la solución lo pondré mañana.
Básicamente se podría resolver con un ciclo for.
sábado, 11 de junio de 2011
Programación Java. Problema 01: Ordenar datos / números.
En el caso que tuviéramos un arreglo de números, y los quisiéramos ordenar, ya sea para obtener el numero mayor, el menor, el dato que se repite más veces, etc. Tendríamos que re ordenar el arreglo, acomodando los números ya sea del menor al mayor, o del mayor al menor.
Para esto existen diversos métodos. Como el método de la burbuja (bubble sort), shaker sort, quick sort, etc.
Durante los temas que iré poniendo, estaré obviando mucho lo que es la explicación, y solo daré un enunciado del problema y en algunas ocasiones el código del problema resuelto, aunque existen diversas formas de resolver algunos problemas, y cada código seria distinto.
Problema.
Dado un numero entero N, crear un arreglo de N elementos. Llenar el arreglo con numeros generados aleatoriamente del 1 al 20, o ingresarlos manualmente. Imprimir el arreglo generado, ordenar los números del menor al mayor e imprimirlos.
Solución:
Intentar resolverlo en base a su lógica, intenten no buscar ningún método de ordenamiento en Internet (en caso de no conocerlos).
Solución propuesta 1
Solución propuesta 2:
Básicamente se cambian de lugar los 2 números que se comparan, en caso que uno sea mayor al otro.
En la siguiente pagina pueden encontrar una animación donde se explica un poco mejor el funcionamiento de esta solución propuesta, conocida como el método de la burbuja.
http://algorithms.openmymind.net/sort/bubblesort
También les dejo un video del "Baile del Bubble Sort"
http://www.youtube.com/watch?v=lyZQPjUT5B4
Fuente: http://algorithms.openmymind.net/sort/bubblesort
Para esto existen diversos métodos. Como el método de la burbuja (bubble sort), shaker sort, quick sort, etc.
Durante los temas que iré poniendo, estaré obviando mucho lo que es la explicación, y solo daré un enunciado del problema y en algunas ocasiones el código del problema resuelto, aunque existen diversas formas de resolver algunos problemas, y cada código seria distinto.
Problema.
Dado un numero entero N, crear un arreglo de N elementos. Llenar el arreglo con numeros generados aleatoriamente del 1 al 20, o ingresarlos manualmente. Imprimir el arreglo generado, ordenar los números del menor al mayor e imprimirlos.
Solución:
Intentar resolverlo en base a su lógica, intenten no buscar ningún método de ordenamiento en Internet (en caso de no conocerlos).
Solución propuesta 1
//Despues de tener un arreglo con numeros enteros.
for(i=0; i < arreglo.length; i++ ) {
for(j=1;jarreglo[j]){
aux = arreglo[i]; //Guardamos en una variable aux, el valor actual de arreglo[i]
arreglo[i]=arreglo[j]; //Sobreescribimos arreglo[i]
arreglo[j]=aux; //Sobreescribimos arreglo[j]
}//Fin del IF
} //Fin del for anidado
}//Fin del primer for
//Fin del programa
Solución propuesta 2:
//Despues de tener un arreglo llamado "values" con numeros enteros.
do {
boolean swapped = false;
for(var i = 0; i < values.length; i++) {
if (values[i] > values[i+1]) {
int temp = values[i];
values[i] = values[i+1];
values[i+1] = temp;
swapped = true;
}
}
}
while(swapped == true)
Básicamente se cambian de lugar los 2 números que se comparan, en caso que uno sea mayor al otro.
En la siguiente pagina pueden encontrar una animación donde se explica un poco mejor el funcionamiento de esta solución propuesta, conocida como el método de la burbuja.
http://algorithms.openmymind.net/sort/bubblesort
También les dejo un video del "Baile del Bubble Sort"
http://www.youtube.com/watch?v=lyZQPjUT5B4
Fuente: http://algorithms.openmymind.net/sort/bubblesort
Suscribirse a:
Entradas (Atom)
