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 - CalgaryCorpus

#131
Asignarle algún valor a la variable Rep
#132
Programación C/C++ / Re: Ayuda, Camino mas corto
22 Diciembre 2018, 12:09 PM
Tengo la impresión que tienes que usar dijkstra 2 veces, una vez desde el origen a uno de los puntos y otra desde ese punto al otro.

No es claro que es lo que no entiendes, si el algoritmo o como hacerlo en C++.
Como cualquiera de estas 2 podría implicar una respuesta extensa, sugiero buscar antes en Google y volver aquí con una duda específica.
#133
El switch está controlado por un valor de A.mm
Es superfluo hacerlo parte del if que acompaña cada opción
es imposible que el valor sea simultáneamente un valor y además cumpla las condiciones de los if.
.
#134
No leas como int
Lee un string siempre, conviertelo a int después usando atoi() o similar.
#135
Programación C/C++ / Re: Consulta - Punteros
18 Diciembre 2018, 04:43 AM
Cuando invoques la funcion usando el puntero p, elige una de estas 2 opciones, ambas deberian funcionar.

- Usa p sin *,  osea  p( parametros... )
- Desreferencia primero,      (*p)( parametros .. )
#136
Código (cpp) [Seleccionar]
template <typename T1, typename T2>
#137
Programación C/C++ / Re: ordenamieno burbuja
13 Diciembre 2018, 16:41 PM
No parece haber codigo que compare y de vuelta libros. Veo un codigo que compara y da vuelta auxref dentro de libros, pero no libros. Siendo asi, los libros no se van a ordenar.
#138
Hay mucha redundancia posible de eliminar.
Sugiero hacer una funcion que compare 2 coordenadas

Código (cpp) [Seleccionar]
bool iguales(coordenadas c1, coordenadas c2);

y este se use en la comparacion de punto_geografico

Código (cpp) [Seleccionar]
bool iguales(punto_geografico p1, punto_geografico p2) {
   return iguales(p1.longitud, p2.longitud) &&
          iguales(p1.latitud, p2.latitud);
}


y dado que los valores de los elementos de una coordenada estan limitados, sugiero hacer una conversion de los numeros antes de compararlos.

Por ejemplo:

Código (cpp) [Seleccionar]
long convertir(coordenadas c) {
   return c.grados* 10000 + c.minutos*100 + c.segundos;
}


En el fondo lo que se quiere hacer, si es que la aritmetica no me falla, es convertir 3 numeros sueltos en un solo numero: por ejemplo:  grados 165, minutos 32, segundos 87 se convierte en 1653287.

Con ello se hace 1 sola comparacion numerica y 1 del caracter.
iguales (la version que compara de coordenadas) se transforma en:

Código (cpp) [Seleccionar]
bool iguales(coordenadas c1, coordenadas c2) {
    return c1.direccion == c2.direccion &&
           convertir(c1) == convertir(c2);
}


#139
Si el codigo es una sucesion de condiciones que tienen que cumplirse para que sea true y si no se cumple cualquiera de ellas, el valor de verdad deberia ser falso, puede reemplazarlo por 1 return, ningun if, ninguna variable, ninguna asignacion.

Código (cpp) [Seleccionar]
bool f() {
  return condicion1 && condicion2 && .... ;
}
#140
Sugiero no hacer cout en las funciones, retorna un valor que el usuario de tu TAD use para imprimir si quiere.

- igualdad_fechas que retorne bool
- comparar_fechas que retorne un valor numérico, similar a strcmp
- mostrar_mes podría tener un arreglo de strings, similar a lo que se hace entros métodos con la cuenta de días.
- casi todos los métodos tienen nombre que termina en _fecha excepto bisiesto y días. Sugiero eliminar el _fecha de todos los nombres o bien, a la atención*, poner fecha al inicio, incluyendo v bisiesto y días.

Ademas, comparar_fechas tiene un bug, pásale 2 fechas, mismo mes, mismo año, la.primera menor que la segunda y ve que retorna/escribe tu función.