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

#491
¿Y que pasa si el número tiene quince cifras?. Casi se te acabaría el abecedario, por no hablar de la longitud del código.

Este es un caso típico para usar un bucle o una función recursiva o, como en el caso que te propongo, tomar el número como cadena e ir transformando cada uno de los dígitos:

Citar

Escribe un numero de 20 digitos como maximo: 12345678901234567890
Digitos:   1  2  3  4  5  6  7  8  9  0  1  2  3  4  5  6  7  8  9  0



Código (cpp) [Seleccionar]

#include <stdio.h>
#define N 19

int main( void )
{
  int c, i, n;
  int digitos[N];
  unsigned long long int num;

  printf( "Escribe un numero de %d digitos como maximo: ", N );
  fflush( stdout );
  num = 0;
  for( n = 0; n < N && (c = getchar()) != '\n'; n++ )
  {
     digitos[n] = c - '0';
     num *= 10;
     num += digitos[n];
  }
  printf( "Digitos: " );
  for( i = 0; i < n; ++i )
     printf( " %3d,", digitos[i] );
  return 0;
}


Claro que si lo que queremos es exclusivamente imprimir las cifras esto irá mejor, puedes meter cuantas cifras quieras:

Código (cpp) [Seleccionar]

#include <stdio.h>
#define N 100

int main( void )
{
  int i, n;
  char digitos[N];
  printf( "Escribe un numero de %d digitos como maximo: ", N );
  fflush( stdout );
  scanf ("%s",digitos);
  /*cuento los digitos*/
  for (n=0;digitos[n]!='\0';n++);
 /*los imprimo*/
  for (i=0;i<n;i++)
   printf ("%3c",digitos[i]);
  return 0;
}


¡¡¡¡ Saluditos! ..... !!!!


#492
Programación C/C++ / Re: Compilador C++
5 Enero 2014, 05:32 AM
Cita de: falcojor en  4 Enero 2014, 22:53 PM
..................................
por sencillez de instalacion, por facilidad de uso y por llevar IDE y compilador juntos es CODEBLOCKS

http://www.codeblocks.org

A mi me funciona perfectamente, y ya digo yo estoy empezando.
No tiene tantas complicaciones y opciones, para mi tiene lo basico para aprender a programar.



Cita de: leosansan en 22 Diciembre 2013, 10:55 AM
Yo uso Code::Blocks

Elige la de 96.8 MB.



Me encanta que te encante.
;) ;) ;)

¡¡¡¡ Saluditos! ..... !!!!


#493
Programación C/C++ / Re: Problema con while
4 Enero 2014, 20:18 PM
Cita de: rir3760 en  4 Enero 2014, 20:11 PM
Esa es la solucion pero, por alguna razón, no la agregaste a tu programa. La sentencia en cuestión debe ser:
scanf(" %c",&sex);

Un saludo

Gracias por estar siempre al quite. Eso pasa por  :-X :-X :-X

Un fuerte abrazo, maestro.


¡¡¡¡ Saluditos! ..... !!!!



P.D: Ya reedite el mensaje anterior.
#494
Programación C/C++ / Re: Problema con while
4 Enero 2014, 19:49 PM
Cita de: psycho248 en  4 Enero 2014, 15:32 PM
Hola. Muchas gracias por tu respuesta. Lo que sucede si no pongo el \n en scanf, al correrlo imprime el texto "ingrese el sexo de la persona" en grupos de 2 o mas según el numero de cant. Es realmente muy rearo porque ya probe con for y do y los mismos resultados  :rolleyes:

Para cuando postees el código elige las etiquetas GeSHi y toma la C++ y en medio de las etiquetas Code que aparecen "pegas" tu código. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.

Lo que sucede no es nada raro, es lo habitual en un scanf dentro de un bucle especialmente. Ocurre porque el último ENTER que introduces por teclado se queda en lo que se llama memoria intermedia o buffer, de forma que al correr el programa un bucle y encontrarse con otro scanf, como se había quedado con el ENTER en memoria, ejecuta la siguiente instrucción que requiera de un ENTER, lo tenía en memoria y antes de coger  nuevos datos suelta ese que tiene. Esto es lo que te ocurre:

Citar
Ingrese la cantidad de personas
4
Ingrese el sexo de la persona 1
Ingrese el sexo de la persona 2


Si te das cuenta se produce un salto, como si alguien hubiese dado al ENTER de más.

Una forma simple, en este caso, es lo que te comente de dejar un espacio en blanco en el scanf antes de escribir el %c. Y esto es lo que pasaría:


Citar

Ingrese la cantidad de personas
4
Ingrese el sexo de la persona 1
a
Ingrese el sexo de la persona 2
s
Ingrese el sexo de la persona 3
f
Ingrese el sexo de la persona 4
f
La cantidad de mujeres es: 2


Ves que sencillo. Aquí el código, básicamente es el tuyo con la única modificación del scanf y, muy importante, acostúmbrate a indentar o sangrar el código para que sea más legible y con las etiquetas code:

Código (cpp) [Seleccionar]

//Definir el número de mujeres que hay en n cantidad de personas
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
   int cant, cantm=0, cont=1;
   char sex;
   printf("Ingrese la cantidad de personas\n");
   scanf("%d",&cant);
   while (cont<=cant)
   {
       printf("Ingrese el sexo de la persona %d \n",cont);
       scanf(" %c",&sex);
           if(sex=='f' || sex=='F')
               cantm++;
       cont++;
   }
   printf("La cantidad de mujeres es: %d \n",cantm);
return 0;
}


¡¡¡¡ Saluditos! ..... !!!!


REEDITADO.
#495
Cita de: DanielC# en  4 Enero 2014, 18:30 PM

Antes de dar de baja mi cuenta te dejo un último mensaje, yo a diario hablo con Dios, yo si escucho en mi interior "aquiétate y sabe que yo soy Dios", yo siento con un suspiro muy profundo la bajada del espíritu santo.-
.......................................................
Te abrazo a la distancias (ya con algunas lagrimas que enpiezan a caer) te adoro hermano y espero que seas muy pero muy feliz.-



Un abrazo igualmente para tí. ;) ;) ;)

Pero me preocupa seriamente eso de hables con alguien que nadie ha visto ni oído, físicamente hablando, y lo de que escuches voces en tu interior me suena más a enfermedad psiquiátrica que a otra cosa.

Te aconsejaría una consulta
con el profesional de turno, puede ir a peor si no se trata adecuadamente esos síntomas de hablar con alguien que no está presente o escuchar voces estando solo, por no hablar de esos suspiros sin razón lógica aparente.

¿Seguro que nunca te has planteado ir al siquiatra?
. Y no te lo digo en plan de sorna y/o cachondeo, es algo natural la visita a un profesional. Yo, sin ir más lejos, estuve internado, es decir encerrado a cal y canto, en un psiquiátrico `más de dos meses para deshabituarme de la morfina que durante cinco años me estuvieron dando los médicos para soportar un cáncer y sus consecuencias. Como creían que me moría si o si, se pasaron en las dosis de morfina, todo con la buena intención de que no sufriera hasta que se produjera el óbito, cosa que como puedes comprobar no se ha producido. Y por cierto, también escuchaba voces y hablaba con personas que sólo estaban en mi imaginación. Por eso te aconsejo una consulta. :rolleyes: :rolleyes: :rolleyes:

Y a lo importante, no nos abandones. Es uno de los mejores foros de programación. Ya te indiqué que yo cada día aprendo mogollón de cosas. ¡¡¡Anímate!!!.

Por cierto, no me has comentado nada del último código que posteé. Me resultó molón.


¡¡¡¡ Saluditos! ..... !!!!

:rolleyes: ;) ;) ;) :rolleyes:
#496
Esta vez no has realizado consulta alguna sobre código o cosas similares. Te has limitado a expresar una opinión y ante ello me veo en la obligación de responder con mi propia opinión.

Cita de: DanielC# en  4 Enero 2014, 15:00 PM
.......................................
"Yo solo digo lo que vos necesitas escuchar"
Roberto Daniel Virgili.-

...............................

Modestia no te falta al dar una cita propia, pero veo muy pretencioso por tu parte que lo que digas es lo que quiera y/o necesite escuchar yo. Más bien que no.


Cita de: DanielC# en  4 Enero 2014, 15:00 PM
...............................
Si bien este es un foro de programación para que se me entienda mejor tengo que introducir un poco de teoría sobre lo que realmente vine a aprender
.................................................

Ahí has dado en el clavo, este es un foro de programación en el que gente como yo, o tú, expone dudas, consultas o solicita información sobre algún otro tema concreto y así vamos complementando la formación, bien académica o bien autodidacta, como es nuestro caso. Yo no paro de aprender cosas nuevas cada día, sin dudarlo un instante es un buen foro y lo hacen bueno todas esas personas anónimas que "nos regalan" su propio tiempo y sus conocimientos. No es algo habitual en estos tiempos que corren, así que desde aquí gracias a todos.


Cita de: DanielC# en  4 Enero 2014, 15:00 PM
...........................................................................
lo que realmente vine a aprender en esta reencarnación (como en las anteriores) que es a evolucionar..
.................................................

Lo ves, expresas una opinión o idea existencial, nada de dudas o consultas. Y me parece respetable en este caso tu creencia, pero ....pues va a ser que no, que para  nada comparto tu creencia. ¿Te basas en algún dato y/o prueba de carácter científico que sostenga semejante aseveración?. ¿O te ha dado en creer por creer?. Respeto las creencias que sean respetables con nuestro modelo de valores humanos, pero creer por creer, como que no. No me mueve la fe sino las pruebas y/o los conocimientos comprobables científicamente, lo demás se reduce, y repito otra vez, a creer por creer, vamos un acto simple, puro y duro de fe, que por cierto ni mueve montañas ni nada por el estilo.


Cita de: DanielC# en  4 Enero 2014, 15:00 PM
..............................................................
estoy muy consciente que viendo lo que está pasando humanamente voy a perder mucho sin la ayuda de todos Uds.
.................................................


En este punto te doy la razón por lo que ya he expuesto. Yo estoy presente en este foro para aprender y , si cuadra en mis escasos conocimientos, ayudar.


Cita de: DanielC# en  4 Enero 2014, 15:00 PM
.....................................................
pero priorizo lo espiritual.........
..............................

Amén. Pero con lo espiritual sostengo lo mismo que con tu otra creencia sobre la reencarnación. ¿Dónde está el espíritu?, ¿pesa, tiene color, huele, es bueno, malo, cambia con el tiempo, alguien lo ha podido medir y/o ver?.  Y ya es raro, teniendo en cuenta los milenios que la humanidad arrastra esas creencias ancestrales que no se tenga ni *uta idea con respecto al mismo.Pues va a ser que no. ;) :rolleyes: ;)

Cita de: DanielC# en  4 Enero 2014, 15:00 PM
........................................................
luego Dios (como siempre) me presentará a otros hermanos para que me enseñen
....................................


Has mentado una palabra mágica:DIOS. Sólo tengo una duda, para aquellos que creen en su existencia: ¿es bueno o malo?. ¿Ese ser creador y todopoderoso es el mismo que permite las grandes tragedias humanas?. Vamos, por poner solo un par de ejemplos, la muerte de más de 50.000 personas por culpa de un ciclón en Filipinas o la muerte de más de 250.000 personas por un maremoto en Indonesia, por no hablar de la lotería de nacer en el primer o tercer mundo.¡¡Ahh!!, me olvidaba, los designios de dios son inescrutables. Bonita frase para justificar las innumerables obras de un ser que, caso de existir, debe ser despiadado y/o malvado.

Cita de: DanielC# en  4 Enero 2014, 15:00 PM
.........................
si el karma no está aprendido tal vez sean Uds. mismo, el padre me lo hará saber
...............................


¿Qué pasa?, ¿tienes comunicación directa con él ?, lo digo por eso de que te lo hará saber. ¡¡¡Ah, claro!!!, te refiere a de forma indirecta, vamos alguna iluminación. ¡¡¡Vamos hombre!!!, que ya somos mayorcitos.

Conste que he procurado ser breve en las respuestas y respetuoso con tus creencias pero claro, como dicen en mi tierra, "donde no hay mata no hay patata".

Fíjate en la de opiniones que encerraban tu escueta despedida de este foro y espero por el bien de tu/mi aprendizaje que no se produzca. Todas la aportaciones intelectuales, que no opiniones, nos enriquecen . ;) ;) ;)


¡¡¡¡ Saluditos! ..... !!!!

:rolleyes: ;) ;) ;) :rolleyes:
#497
Cita de: DanielC# en  3 Enero 2014, 18:58 PM
Hola leosansan.Te pido por favor que la próxima vez, si tenes que utilizar este tipo de aclaraciones prefiero que no me contestes o que me pidas que no efectúe nuevo post.-
Yo soy un autodidacta y dependo muchísimo de los foros, con tu aclaración me estás dando a entender que mi código está mal, perfecto lo acepto y acepto me falta mucho por aprender, no sería mejor que pusieras un programa como el que hiciste pero a tu manera y de esa forma me dieras la  posibilidad de aprender la forma correcta de hacerlo.  



Estamos en el mismo barco, yo también soy autodidacta.

Respecto a lo segundo soy de la opinión de cuando alguien postea un código y tiene algún error procedo a la corrección pertinente respetando en lo posible su código, no a poner un código que a mí se me ocurra, ya que puede que el nivel no sea el mismo y no le sirva, y no es porque mi nivel sea alto, todo lo contrario.


Cita de: DanielC# en  3 Enero 2014, 23:22 PM
..................................................................
Leosansan, con mis 61 años debo reconocer que siempre fui muy visceral extremadamente franco y en este caso te pido disculpas si fui muy duro pero es lo que sentí en el momento, y para que veas que me hago cargo de mis errores voy a dejar de postear el elhacker.net, de esta manera trato de no perjudicarte, es preferible que te quedes vos que podes ayudar a muchos y no yo que he dejado un triste antecedente.-
..........................................


Casi te pillo, yo tengo 59 años y como tu, además de autodidacta, soy muy crítico conmigo mismo, así que si te he ofendido en algo te pido humildemente disculpas. Pero sinceramente no sé que he podido decir que te haya ofendido ;).

No entiendo por qué quieres dejar de postear en este foro. Creo que se te ha ayudado de forma presta e intensa: ivancea96, rir3760, amchacon y yo mismo.

No entiendo por qué dices que lo haces por no perjudicarme, todo lo contrario, me has ayudado a refrescar cositas sobre números en binario y máscaras de bits.  :rolleyes:

Y para que veas que te respeto y admiro, como en mi caso, al meterte en este mundillo con tu edad y por ti solo, te dejo una nueva solución, esta vez partiendo de cero, usando las funciones que el C pone a nuestra disposición. Por no usar, no he usado ni strlen como sugirió amchacon:


Citar
Introduzca una  frase en minusculas:

rir amchacon leosansan

 r en decimal 114 en binario 1110010 -->mayuscula-->R--> 1010010-->82
 i en decimal 105 en binario 1101001 -->mayuscula-->I--> 1001001-->73
 r en decimal 114 en binario 1110010 -->mayuscula-->R--> 1010010-->82
   en decimal  32 en binario 100000 -->mayuscula--> --> 100000-->32

 a en decimal  97 en binario 1100001 -->mayuscula-->A--> 1000001-->65
 m en decimal 109 en binario 1101101 -->mayuscula-->M--> 1001101-->77
 c en decimal  99 en binario 1100011 -->mayuscula-->C--> 1000011-->67
 h en decimal 104 en binario 1101000 -->mayuscula-->H--> 1001000-->72
 a en decimal  97 en binario 1100001 -->mayuscula-->A--> 1000001-->65
 c en decimal  99 en binario 1100011 -->mayuscula-->C--> 1000011-->67
 o en decimal 111 en binario 1101111 -->mayuscula-->O--> 1001111-->79
 n en decimal 110 en binario 1101110 -->mayuscula-->N--> 1001110-->78
   en decimal  32 en binario 100000 -->mayuscula--> --> 100000-->32

 l en decimal 108 en binario 1101100 -->mayuscula-->L--> 1001100-->76
 e en decimal 101 en binario 1100101 -->mayuscula-->E--> 1000101-->69
 o en decimal 111 en binario 1101111 -->mayuscula-->O--> 1001111-->79
 s en decimal 115 en binario 1110011 -->mayuscula-->S--> 1010011-->83
 a en decimal  97 en binario 1100001 -->mayuscula-->A--> 1000001-->65
 n en decimal 110 en binario 1101110 -->mayuscula-->N--> 1001110-->78
 s en decimal 115 en binario 1110011 -->mayuscula-->S--> 1010011-->83
 a en decimal  97 en binario 1100001 -->mayuscula-->A--> 1000001-->65
 n en decimal 110 en binario 1101110 -->mayuscula-->N--> 1001110-->78



Código (cpp) [Seleccionar]

#include<stdio.h>
#include <stdlib.h>

int main(void){
   char cadena[100],binario[8] = "";
   int i=0;
   puts("Introduzca una  frase en minusculas:\n");
   scanf ("%100[^\n]", cadena);
   for (i=0;cadena[i] ;i++){
       printf("\n  %c en decimal %3d en binario %s", cadena[i],(int)(cadena[i]), itoa((int) (cadena[i]),binario,2 ));
       if (binario[1] = '1' )
           binario[1] = '0';
       if (!isalpha(cadena[i]))
           cadena[i]+=32;
       printf(" -->mayuscula-->%c-->",(int)(cadena[i])-32 );
       printf(" %s-->%d",binario,((int)(cadena[i])-32));
   }
   puts("\n\n");
   return 0;
}


¡¡¡¡ Saluditos! ..... !!!!

:rolleyes: ;) ;) ;) :rolleyes:
#498
Programación C/C++ / Re: Problema con while
4 Enero 2014, 08:05 AM
Cita de: psycho248 en  4 Enero 2014, 06:34 AM
Tengo un problema con este sencillo algoritmo que en la última vuelta de while no suma el contador de cantm. si pongo en cant 3 y en los tres pongo f solo suma 2, si pongo 5 solo suma 4 y así.

Citar

scanf("%d\n",&cant);




¿Lo ves?. Ese /n en el scanf produce un  comportamiento inesperado del scanf. En su lugar va:

Citar

scanf("% d",&cant);


Observa que lleva un espacio en blanco el scanf después del %d.

¿Por qué?- Has la prueba sin ponerlo y veras lo que sucede. Es una simple forma de "limpiar" el llamado buffer. Para más información utiliza el motor de búsquedas del foro. :rolleyes: :rolleyes: :rolleyes:




#499
Cita de: SoyelRobert en  3 Enero 2014, 18:32 PM
sip jaja exactante, queria hacerlo para sentencias para la entrada estandar y para textos en caso de tratarse de ficheros:
...........................................

Que sirva de precedente, aclaren bien las preguntas que hagan y así no perdemos el tiempo en buscarte soluciones que no les servirán. Y esto lo digo de forma general, no por tí en particular.¡¡¡ Pero es que resulta frustante !!!, da ganas de dejarlo. ;)

¡¡¡¡ Saluditos! ..... !!!!



#500
Cita de: SoyelRobert en  3 Enero 2014, 16:17 PM
.............................................
el asunto era crear un programa en C que al tu introducir un texto cambie todas las vocales que aparezcan por la siguiente vocal que le toque, no se trata de introducir una única vocal para que la modifique sino introducir un texto entero donde aparezcan blancos, saltos de linea, etc (cualquier caracter hasta que se acabe el fichero, EOF)

En todo caso hasta que se acabe la cadena o frase, es decir hasta \0. Lo otro sería para ficheros, que no es el caso, supongo.

Citar

Introduzca frase:
leosansan salio una tarde que llovia.

leusensen selou ane terdi qai lluvoe.



Código (cpp) [Seleccionar]

/*hay que modificar la condicion del while*/
#include <stdio.h>

int esVocal (char c);
char sigVocal (char c);

int main (){
    int i;
    char c,frase[100];
    puts ("Introduzca frase:");
        scanf("%100[^\n]s",frase);
        while (getchar ()!='\n');
    do{
        if(esVocal(frase[i])!=0)
            frase[i]=sigVocal (frase[i]);
        i++;
    }while(frase[i]!= '\0');
    printf("\n%s\n",frase);
    return 0;
}

int esVocal (char c){
    int si_o_no=0;
    if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u')
        si_o_no=1;
    else si_o_no=0;
    return si_o_no;
}

char sigVocal (char c){
    if(c=='a')
        c='e';
    else if(c=='e')
        c='i';
    else if(c=='i')
        c='o';
    else if(c=='o')
        c='u';
    else if(c=='u')
        c='a';
    return c;
}


¡¡¡¡ Saluditos! ..... !!!!