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

#1101
Cita de: torralbita en  7 Diciembre 2012, 19:09 PM

El problema que tengo es que si fallo la contraseña 2 veces (por ejemplo) y la introduzco bien la tercera vez no hace nada! debería de poder acceder al juego.


for(i = 1; i <= 2; i++) {
cout << "Contraseña incorrecta! Vuelve a intentarlo: ";
cin >> password;
}
if(i == 3)
{
cout << "Lo siento, pero has fallado demasiadas veces. No puedes jugar." << endl;


Citar
Ya lo dice el código, a la tercera:Lo siento, pero has fallado demasiadas veces. No puedes jugar. ¿O estas preguntando otra cosa?


Saluditos!.
#1102
Cita de: luis456 en  7 Diciembre 2012, 13:50 PM
Hola a todos me llamo Luis y seguro que seré el mas viejo de estos lares jeje tengo 52 años y soy super fanático de todo lo que escrito este, se trasforme en algo,bueno aprendí a programar en Fox pro pero se volvió viejo como yo ,ahora me dio por seguir aprendiendo c++. a demás lo que mas me gusta son las mate y estadísticas por eso mis programas se basan en ello,muchos para hacer claves y cosas de esas.

tengo este código no es mio pero me gustaría saber como modificarlo para que me entregue los resultados como yo le pida al programa de tres de cuatro hasta 6 resultados.

ejemplo yo le meto digamos estos numeros 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15....lo otro es que pueden ser numeros no correlativos y deberá saber cuales son pares o impares,por lo tando recorrer la cadena entre dos no vale jeje

y me entregue los resultados impares ordenados de menor a mayor en el orden que le pedí al principio en este caso en resultados de 6

esto me daría:

impares
1 3 5 7 9 11
1 3 5 7 9 13
1 3 5 7 9 15---> como no hay mas impares aca lo deja y sigue con los pares

2 4 6 8 10 12
2 4 6 8 10 14
Amigo Luis te equivocas en que eres el más longevo de estos lares, yo al menos te gano. Y curiosamente coincidimos en lo de ser amantes de las mates. Ya ves que pequeño puede resultar hasta Internet.
Pero a lo que vamos. Sólo llevo unos meses con C y menos, que ya es decir, con C++, por eso me he visto obligado a modificar ligeramente el código que posteas, ya que yo, por mi falta de conocimientos, me veo obligado a declarar los arrays tipo C.
Pero . . . el código que te paso hace lo que quieres para los impares . . . y la de los pares:

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
using namespace std;

int main () {
    int total,i,j,k=0,l=0,ver=0,ver_impar=0,ver_par=0;
    cout<<"Cuantos numeros desea ingresar?: ";
    cin>>total;
    int numeros[total],n_par[total],n_impar[total];
    cout<<"Cuantos numeros desea ver cada vez?: ";
    cin>>ver;
    ver_impar=ver_par=ver;
    for( i = 0; i < total; i++){
        cout<<"Ingrese el "<<i+1<<" numero: ";
        cin >> numeros[i];
        for( j = i-1; j >=0 ; j--){
            if(numeros[i] == numeros[j]){
                cout<<"El numero esta repetido ingrese otro\n";
                i--;
                break;
            }
        }
    }

    for( i = 0; i < total; i++){
         if (numeros[i]%2==0){
            n_par[k]=numeros[i];
            k++;
            }
        else  {
            n_impar[k]=numeros[i];
            l++;
        }
    }
    do{
        for (i=0;i<ver-1;i++){
            cout<< n_impar[i]<<"  ";
        }
        cout<< n_impar[ver_impar-1]<<"  ";
        ver_impar++;
        cout<< endl;
        }while (ver_impar<=l);
    do{
        for (i=0;i<ver-1;i++){
            cout<< n_par[i]<<"  ";
        }
        cout<< n_par[ver_par-1]<<"  ";
        ver_par++;
        cout<< endl;
        }while (ver_par<=k);
    system("pause");
    return 0;
}

Saluditos!.
REEDITADO
#1103
Cita de: ZedGe en  7 Diciembre 2012, 04:23 AM
He estado buscando códigos aca de c++ para lograr escribir al final de un fichero txt en c++. . .
CitarModo de apertura de un fichero:
" a  ": Añade al final del fichero si existe, o lo crea si no existe. ejemplo:

                    fopen(nombre, "ra")

No estoy seguro si te referías a esto. Si no es así concreta más la pregunta.
Saluditos!.
#1104
Cita de: rir3760 en  6 Diciembre 2012, 17:38 PM
Me temo que si.

Revisa con cuidado el bucle de tu programa:

while (fgets(frase, 81, fichero) != NULL){
  fgets(frase, 80, fichero);
  puts(frase);
}

Y encuentra porque se pierden las lineas primera, tercera, quinta, etc. Lo encuentras en menos de un minuto.
Y una hora, día, semana ....... no lo pillo, y he ampiado el código para confirmar que se come los impares -o pares si empezamos desde cero- y nada.
No entiendo lo que ocurre por más que lo reviso. .... help me !

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
main()
{
   FILE* fichero;
   char frase[80];
   fichero = fopen("cantidad.txt", "wt");
   fputs("1\n", fichero);
   fputs("2\n", fichero);
   fputs("3\n", fichero);
   fputs("4\n", fichero);
   fputs("5\n", fichero);
   fputs("6", fichero);
   fclose(fichero);
   fichero = fopen("cantidad.txt", "rt");
   if ((fichero = fopen("cantidad.txt", "rt")) == NULL){
       perror("cantidad.txt");
       return EXIT_FAILURE;
   }
   while (fgets(frase, 80, fichero) != NULL) {
       fgets(frase, 80, fichero);
       puts(frase);
   }
   fclose(fichero);
   return 0;
}

Repito ...... HELP ME !!!![
P.D:Con lo a gustito que estaba yo con "while (! feof(fichero))", pero si el maestro rir dice lo que dice, razón lleva .... aunque yo no lo pille.
CitarREEDITO: ¡ ¡ ¡ claro que va de dos en dos ! ! ! .... si es que tengo dos fgets, en el bucle y el siguiente que está de más. Seré burro.
Gracias "MAESTRO ", sí, es lo que pienso de tí querido amigo rir, y perdona la confianza.
Saluditos!.
#1105
Cita de: Bomb-P en  6 Diciembre 2012, 21:08 PM
Solo dime que opinas sobre C++ y sus librerias demasiado dificiles lol :D
Estas hablando de la librería windows, que  es un submundo dentro del mundo de C++. Sin duda inicialmente es compleja, pero como todo lo que se empieza de cero. Hasta Pyton es difícil para no iniciados en programación.
Si quieres seguir una guía-explicación:

http://www.elrincondelc.com/nuevorincon/foros/viewtopic.php?t=19596&postdays=0&postorder=asc&start=0
#1106
Cita de: rir3760 en  6 Diciembre 2012, 16:11 PM
Debería.
Si tomo tu programa y solo sustituyo estas dos sentencias:
while (! feof(fichero)) {
  fgets(linea, 81, fichero);

Por:
while (fgets (linea, 81, fichero) != NULL){
El programa funciona correctamente imprimiendo todas la lineas empezando por "anita traba la ropa".

Sin embargo en este otro, a no ser que la esté pifiando en alguna tonteria, sí se come la primera línea:
Código (cpp) [Seleccionar]

#include <stdio.h>
#include <stdlib.h>
main()
{
   FILE* fichero;
   char frase[81];
   fichero = fopen("cantidad.txt", "wt");
   fputs("1\n", fichero);
   fputs("5\n", fichero);
   fputs("10", fichero);
   fclose(fichero);
   fichero = fopen("cantidad.txt", "rt");
   if ((fichero = fopen("cantidad.txt", "rt")) == NULL){
       perror("cantidad.txt");
       return EXIT_FAILURE;
   }
   while (fgets(frase, 81, fichero) != NULL) {
       fgets(frase, 80, fichero);
       puts(frase);
   }
   fclose(fichero);
}

.....................? ? ? ? ? .............
REEDITO: ¡¡¡¡¡Seré torpe !!!!!, claro que lee de dos en dos, porque son dos fgets: el del bucle y el siguiente. Mira que soy burro.
Tutti claro. Gracias por la lección amigo rir.
Saluditos!.
#1107
Programación C/C++ / Re: Duda sobre ficheros
6 Diciembre 2012, 15:57 PM
Cita de: rir3760 en  6 Diciembre 2012, 15:39 PM
Se debe evitar el uso de la funcion feof para controlar la lectura de un archivo, te comente las razones de ello en otro tema.
Me pillo antes de leer el otro tema, donde ya corregí lo que indicabas,  pero con la duda-repito la pregunta del otro tema-que  al usar while (fgets(frase, 81, fichero) != NULL) en lugar de while (! feof(fichero)) no me sale la primera línea.
Gracias otra vez.
Saluditos!.
#1108
Gracias por las correciones.
Sólo una duda más. Al usar while (fgets(frase, 81, fichero) != NULL) en lugar de while (! feof(fichero)) no me sale la primera línea ? ? ? ?

CitarPor ultimo considerando que no haces nada con la cadena modificada puedes eliminar ese paso (almacenamiento) e imprimir directamente cada carácter mediante la función putchar.
Es para posteriormente guardarlas en un nuevo fichero
Saluditos!.
#1109
Programación C/C++ / Re: Duda sobre ficheros
6 Diciembre 2012, 15:35 PM
Un ejemplo es el código que te paso. Puedes cambiarlo con un índice, para que sólo te lea un número determinado de líneas o ciertas líneas, como las pares o impares, etc:
Código (cpp) [Seleccionar]
/* Lectura hasta el final de un fichero de texto */
#include <stdio.h>
main()
{
    FILE* fichero;
    char frase[81];
    fichero = fopen("cantidad.txt", "wt");
    fputs("1\n", fichero);
    fputs("5\n", fichero);
    fputs("10", fichero);
    fclose(fichero);
    fichero = fopen("cantidad.txt", "rt");
    if (fichero == NULL){
        printf("No existe el fichero!\n");
        return 1;
        }
    while (! feof(fichero)) {
        fgets(frase, 80, fichero);
        puts(frase);
    }
    fclose(fichero);
}

Saluditos!.
#1110
Has pruebas y confirma que funciona bien:
Código (cpp) [Seleccionar]

#include <string.h>
#include <stdio.h>
#define N   3 /*<== aqui pones los digitos que quieres*/

int main()
{
   int N1[N]={0},N2[N]={0}, RE[9]={0};
   int C=0,I=0;
   for(I=0;I<N;I++){
       printf ("Digito %d del N1: ",I);
       scanf("%d",&N1[I]);
   }
   puts ("\n");
   for(I=0;I<N;I++){
       printf ("Digito %d del N2: ",I);
       scanf("%d",&N2[I]);
   }
   for(I=0;I<N;++I){
       if((N1[I]+N2[I]+C)==0){
          RE[I]=0;
          C=0;
       }
        else if((N1[I]+N2[I]+C)==1){
              RE[I]=1;
              C=0;
       }
       else   if((N1[I]+N2[I]+C)==2){
               RE[I]=0;
               C=1;
       }
       else   if((N1[I]+N2[I]+C)==3){
           RE[I]=1;
           C=1;
       }
   }
   if (C==0) RE[I]=0;
   else RE[I]=1;
   for(I=N;I>=0;--I)  /*ciclo para imprimir 1  por 1 el numero */
     printf("%d ",RE[I]);
   return 0;
}

Saluditos!.