Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - do-while

#611
Por lo que veo no has leido bien la explicacion que te he dado. Tienes que terminar de leer la linea despues de cada cin >>, sino siempre te quedara el salto de linea.

Si, lo he releido y estaba bien explicado y con un ejemplo. Si preguntas, molestate en leer con atencion las respuestas.
#612
¡Buenas!

Por lo que tengo entendido, el ministro pretende añadir a los modelos de educacion existentes uno en el que las clases sean en castellano, lo cual me parece de pu*a madre. Yo soy de una zona vascofona y siempre han existido tres modelos de educacion. Las clases en castellano con una asignatura de lengua vasca y literatura, las clases en vasco con la asignatura correcpondiente de lengua castellana y literatura, y las clases completamente en castellano. Nunca ha habido obligacion de tener que hacerlo todo en vasco.

Cuando me toco elegir carrera, pude haber ido a la universidad del pais vasco en la que podia haber elegido hacer la carrera en vasco o en castellano, no dependiendo la lengua de las apetencias del profesor, sino del plan de estudios escogido. Otra opcion era ir a Barcelona, donde tengo familia, pero donde los profesores podian dar las clases en castellano o en catalan segun les diese la real gana. Al final no fui a la UPV porque estaba de politica hasta los mismisimos huevos, no fui a barcelona porque me parece una falta de respeto que en españa tenga que estar aguantando tonterias en catalan segun le apetezca o no al profesor de turno sin poder aprender en castellano, y al final, acabe en Zaragoza.

Asi que si se da la opcion de estudiar en castellano a quien lo quiera, me parece perfecto. No se esta discriminando a nadie, es mas, se estan añadiendo opciones a las ya existentes.

¡Saludos!
#613
Programación C/C++ / Re: Error con funciones
12 Octubre 2012, 11:56 AM
¡Buenas!

No tiene nada que ver con lo anterior. En este caso da lo mismo que declares una variable dentro de la funcion como si la pasas como parametro. Es cierto que al no pasar una referencia ni un puntero (si no has visto esto todavia ya lo haras), realmente no estas modificando el valor fuera de la funcion, pero tampoco intentas acceder  al dato leido a traves del parametro sino que directamente lees el dato devuelto por la funcion, asi no tienes mayor problema.

La cuestion es que dentro de la funcion lees un dato utilizando el operador >> sobre cin. Este operador, siempre deja al menos un salto de linea en la entrada (cuando terminas de introducir los datos y pulsas intro estas introduciendo el salto de linea). Entonces, cuando dentro de la funcion encode llegas a
Código (cpp) [Seleccionar]

std::cin.getline(text, 50000);

getline lee hasta que encuentra un salto de linea. El mismo salto de linea que se ha quedado antes al utilizar el operador >> con cin y por lo tanto no te da la opcion de leer el texto que quieras introducir.

Para evitar esto, despued de utilizar >> con cin, siempre tendras que terminar de leer la linea (que como habiamos dicho, terminara en salto de linea). Para esto, cuando utilices >> con cin acostumbrate siempre ha hacer lo siguiente:
Código (cpp) [Seleccionar]

cin >> un_dato; //leemos el dato

//si ya no tenemos que leer mas datos
while(cin.get() != '\n'); //leemos los caracteres que queden en la linea


Aqui no he tenido en cuenta que pueda aparecer un EOF, por lo que el codigo tampoco es completamente correcto, pero creo que es lo suficientemente claro para que veas como funciona.

Termina de leer la linea dentro de la funcion op, y ya veras como ahora si te pedira que introduzcas el texto que quieras.

¡Saludos!

PD: En C++ creo que se podia descartar el contenido del buffer de entrada con una sola llamada a una funcion, pero ahora no recuerdo cual era...

Si buscas en la referencia de cplusplus la clase istream (cin es un objeto de esta clase) te saldran todas las funciones miembro que tiene esta clase y ahi estara la funcion que te digo (tendras que combinar un par, creo)
#614
¡Buenas!

Hay alguna cosilla...

  mat  = (float **)malloc(4 * sizeof(float *)); /* faltaba el parentesis final */


El problema supongo que estara en que dentro del bucle estas haciendo 3600 llamadas a la funcion y esta trabaja con numeros de coma flotante. Trabajar con floats o doubles es "mucho" mas costoso que trabajar con enteros y supongo que por eso te ira mas lento.

Danos mas informacion sobre los valores del vector y de la matriz, ya que si estan acotados (dentro de un minimo y un maximo) igual se pueden utilizar valores enteros para describir el problema y a la hora de tener que utilizar los valores del vector en otra parte se podrian traducir a floats...

¡Saludos!
#615
Cita de: wolfbcn en 11 Octubre 2012, 23:36 PMPor tanto tendrán que pagar 30.000 dólares de multa (un 20% de las ganancias actuales del equipo en el torneo)

¿¿¿¿Un 20%???? Si que sale rentable hacer trampas en los torneos. Para el siguiente me monto un equipo de LoL con mis colegas y ha hacer trampas se ha dicho...

¿Alguien se apunta?

¡Saludos!
#616
Cita de: pasajero en 11 Octubre 2012, 07:19 AM
Probaste con los algoritmos de Grafos?? Dijkstra por ejemplo?
Digo que uses algoritmos ya hechos porque no le veo el chiste a reinventar la rueda  :huh:

Incorrecto. Si no trabajas por ti mismo los algoritmos ni desarrollaras la logica, ni tendras herramientas para enfrentarte a futuros problemas...

Si piensas un poco, cada columna es un punto de partida y cada elemento de esa columna es un destino. Por lo tanto tendras que recorrer las distintas columnas buscando elementos no nulos que te indiquen a que columna puedes deplazarte para continuar la busqueda de la solucion en dicha columna (lo cual sugiere un algoritmo recursivo). Tendras que tener en cuenta que de una columna no puedes volver a una por la que ya hayas pasaso ya que entrarias en un bucle infinito. De esta forma encontrarias una solucion. Si llevas un recuento de la distancia que ya has recorrido podras descartar los caminos que sean mas largos que las soluciones que ya hayas encontrado y podras dar la solucion de minima distancia.

Esto solo es una solucion. Espero que te sirva.

¡Saludos!
#617
¡Buenas!

Otro posible error tendria que ver con la alineacion de los registros dentro del struct. Los distintos campos no tienen porque mantener la misma posicion relativa con respecto a la direccion en la que empieza el struct en distintos compiladores.

Te recomiendo que no utilices un buffer fijo, sino que ese buffer lo crees a partir de otro struct. Esto no tampoco te asegurara que siempre funcione bien. Por ejemplo, si compilas el programa con distintos compiladores que guarden los struct en ficheros binarios (siempre y cuando guardes el bloque entero del struct aplicando un sizeof para saber los bytes que ocupa), volveras a poder tener problemas con la alineacion de los campos del struct, y te podra volver a dar errores de datos mal inicializados o fallos de segmentacion...

Si quieres asignar valores a un struct desde un buffer utilizando memcpy, y que te funcione siempre, tendras que comprobar los tamaños del tipo de dato de tu compilador y la alineacion de los campos dentro del struct y tendras que compilar siempre con dicho compilador. (Si esto es incorrecto corregidme, pero creo que es asi)

¡Saludos!
#618
Programación C/C++ / Re: RETOS C++
3 Octubre 2012, 23:31 PM
14.
Código (cpp) [Seleccionar]

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main(int argc, char *argv[])
{
   int max,num;

   srand(time(NULL));
   max = rand();

   for(int i = 1 ; i < 15200 ; i++)
       if((num = rand()) > max)
           max = num;

   cout << max << endl;

   return 0;
}
#619
Cita de: Roy-Mustang en  3 Octubre 2012, 17:37 PM
es el ajedrez es un arte de guerra no importa quien empiece siempre ganara quien logra predecir lo que piensa hacer el otro jugador, o como decia mi profesor quien se equivoca menos.

Eso es erroneo, ya he dicho antes que esta predefinido el ganador (o no perdedor) del juego:

http://gaussianos.com/%C2%BFpara-que-tipo-de-juegos-existe-una-estrategia-ganadora/

La cuestion es que hoy por hoy, es imposible implementarla. Pero existe.

¡Saludos!
#620
¡Buenas!

Esta demostrado que el ajedrez es un juego de estrategia ganadora. Por lo uno de los dos jugadores gana siempre (no recuerdo si es el que empieza o el otro (o si no hay demostracion sobre eso)):

http://platea.pntic.mec.es/jescuder/ajedrez.htm
http://es.wikipedia.org/wiki/Zermelo

¡Saludos!