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

#691
Hum...

Me estoy acordadon yo de "minority report" y toda esa publicidad personalizada que recibia tom cruise en los centros comerciales y demas parafernalia de la pelicula...

¡Saludos!
#692
¡Buenas!

Si mal no recuerdo, para que para poder utilizar funciones miembro sobre objetos constantes tienes que añadir el calificador const despues del prototipo de la funcion. Esto estara indicando que la funcion no modifica los atributos de la clase. Si una funcion modifica estos atributos no podras delararla constante, y no podras untilizarla sobre objetos constantes, pero los metodos get si que podras utilizarlos, por lo que los prototipos deberian de ser:
Código (cpp) [Seleccionar]

int get_dia() const;
int get_mes() const;
int get_ano() const;


Prueba a hacer este cambio y nos cuentas.

¡Saludos!

PD: Tambien tienes que añadir el const cuando implementes las fuciones:
Código (cpp) [Seleccionar]

int Fecha::get_dia() const {//tu codigo}
int Fecha::get_mes() const {//tu codigo}
int Fecha::get_ano() const {//tu codigo}
#693
¡Buenas!
CitarCon esto esperan que las descargas legales de música sean más atractivas, y al mismo tiempo demostrar que pueden suavizar las cosas por un lado mientras por otro las aprietan (una ley recientemente aprobada en Japón criminaliza las descargas piratas). Necesitan ese empujón, porque según la fuente las descargas legales de música han descendido un 16% entre el 2010 y el 2011.

Nos ha jodido. Con lo bordes que se han puesto ultimamente, no me extraña que la gente boicotee la industria. Yo mismo no he comprado ni libros, ni discos ni he ido al cine, desde que se aprobo la ley sinde. Animo a los demas a boicotear a la industria "cultural"

¡Saludos!
#694
Programación C/C++ / Re: ayuda con menu en c
5 Julio 2012, 18:18 PM
Cita de: shitoman en  5 Julio 2012, 17:57 PM
es que es alreves como es falso el bucle se repite....


1º - Si no sabes de lo que estas hablando, deja de molestar.
2º - Pasate por la sección de libros - papers y descargate algo para EMPEZAR a aprender.
3º - Cuando hayas estudiado y tengas alguna duda, la preguntas.
4º - Si estas en un foro, y tres personas te estan diciendo algo que tu no pienses que sea asi, molestate en enterarte de lo que estas hablando, es probable que no estes en lo cierto.
5º - Por mi parte, con esa actitud que tienes, olvidate de obtener ninguna respuesta.

¡Saludos!


Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
#695
Programación C/C++ / Re: ayuda con menu en c
5 Julio 2012, 17:53 PM
Cita de: DickGumshoe en  5 Julio 2012, 17:48 PM
Hombre, explicar las funciones cuando en los libros la explicación es de unas 20 ó 30 páginas... Sería un poco larga la explicación. El foro, como ya ha dicho daniyo, es para preguntar dudas puntuales, no para que te digamos la teoría...

Y si no quieres creerlo, pues no lo creas, pero 2==3 SOLO te va a repetir lo que está en el do-while UNA vez.

Saludos.

+1 XD

¿Es dos igual a tres? NOOOOOO, -> falso -> sale del bucle
#696
¡Buenas!

Si lo que quieres es renombrar un archivo, en stdio tienes la funcion rename

¡Saludos!
#697
¡Buenas!

Si que ando espeso estos dias... (el calor y los examenes...). Por lo que he comentado en el ultimo post, basta poner i <= numero (como condicion de fin de for), y asi siempre se tendra que i - 1 es el mayor de los divisores primos.

¡Saludos!
#698
¡Buenas!

A ver si esto te sirve...


#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(int argc, char *argv[])
{
    int repeticiones['z' - 'a' + 1],i;
    char cadena[256];

    fgets(cadena,256,stdin);

    if(cadena[strlen(cadena) - 1] != '\n')
        while(getchar() != '\n');

    for(i = 0 ; i < 'z' - 'a' + 1 ; i++)
        repeticiones[i] = 0;

    for(i = 0 ; cadena[i] ; i++)
        if((cadena[i] = tolower(cadena[i])) >= 'a' && cadena[i] <= 'z')
            repeticiones[cadena[i] - 'a']++;

    for(i = 0 ; i < 'z' - 'a' + 1 ; i++)
        if(repeticiones[i])
            printf("%c: %3d\n",'a' + i, repeticiones[i]);

    printf("Pulsar intro...");
    while(getchar() != '\n');

    return 0;
}


¡Saludos!
#699
¡Buenas!

Espera, que el algoritmo no cuadra siempre. Voy a ver como lo arreglo.

¡Saludos!

Ya lo tengo. La cosa esta en darse cuenta de que el valor de salida que tendra numero depende del exponente del mayor factor primo que tenga.

Si nk == 1, significa que al eliminar pk-1 como factor, el valor que tomara numero es pk. Como i va avanzando de uno en uno, y buscamos valores menores que numero, nunca alcanzara el valor pk, y nunca dividiremos numero por pk, por lo que el valor de salida de numero sera pk.

Si nk > 1, al eliminar pk-1 como factor, el valor de numero sera pk^nk, con nk >= 2. Por lo que tendremos pk < pk^nk, e i si que alcanzara el valor pk, por lo que al eliminar pk como divisor de numero, numero saldra con valor 1.

Por lo tanto el divisor que buscamos sera:

Si numero != 1 -> numero
sino i - 1;
#700
XD

Pues tenia entendido que c++ inicializaba a cero, pero no debe ser asi entonces. Por lo tanto debe se como en C, que las variables tienen "basura", y en particular, auque sea poco problable, es posible que ese valor inicial sea cero. Por eso intenta inicializar las variables con valores que tengan sentido para el uso que les vayas a dar (o como en este caso, una vez que terminas de usarlas, dejarlas como al principio para la siguiente vez que las utilices).

¡Saludos!