elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 ... 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 [103] 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 ... 132
1021  Programación / Programación C/C++ / Re: Descomponer numero en factores.. en: 12 Febrero 2013, 22:23 pm

Porque usas funciones de C? Sería más apropiado usar los new y delete:


Como yo también soy nuevo en esto del C++, planteo una dudita; ¿otra forma más "inmediata" de inicializar factores a cero?:

Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4.  
  5. int main(){
  6.  int i=0;
  7.  int contador=0;
  8.  int aux=0;
  9.  int descomponer=0;
  10.  int *factores=new int[32];
  11.  for (i=0;i<32;i++)
  12.    factores[i]=0;
  13.   cout <<"Factorizar un numero.."<<endl;
  14.  cout<<endl<<"Numero a factorizar : " ;
  15.  cin>>descomponer;
  16.  aux=descomponer;
  17.  cout<<endl;
  18.  for(i=2;i<=descomponer;i++) {
  19.    while(descomponer%i==0) {
  20.      factores[contador]=i;
  21.      contador++;
  22.      descomponer=descomponer/i;
  23.    }
  24.  }
  25.  cout<<"########"<<endl;
  26.  cout<<aux<<" = " <<" ";
  27.  cout<<factores[0];
  28.  int x=1;
  29.  do{
  30.    cout<<"x";
  31.    cout<<factores[x];
  32.    x++;
  33.  
  34.  }while(factores[x]!=0);
  35.  cout<<endl<<"########"<<endl;
  36.  delete[] factores;
  37.  return EXIT_SUCCESS;
  38. }
  39.  

Saluditos!.
1022  Programación / Programación C/C++ / Re: Ayuda lenguaje C pequeña duda en: 11 Febrero 2013, 22:19 pm
Buenas, tengo el siguiente codigo y lo que quiero ...................

Mejor tomar opción como char y así al entrar una letra no se colgará.

Fíjate en que ahora los case son 'Nº ':


Código
  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4.  
  5. char opcion;
  6.  do {
  7.  
  8.    cout<<"1- Nueva partida"<<endl;
  9.    cout<<"2- Cargar partida"<<endl;
  10.    cout<<"3- Salir"<<endl;
  11.  
  12.      cout<<"Opcion:"<<endl;
  13.    cin>>opcion;
  14.      switch (opcion){
  15.        case '1':
  16.          cout<<"1- Nueva partida"<<endl;
  17.          break;
  18.        case '2':
  19.          cout<<"2-  partida"<<endl;
  20.          break;
  21.        case '3':
  22.          cout<<"3-  Adios"<<endl;
  23.          break;
  24.        default:
  25.          cout<<"Error: Opcion incorrecta"<<endl;
  26.      }
  27.  }while(opcion!='3');
  28.  return 0;
  29. }
  30.  
  31.  

Otra opción es "comerse" el carácter no válido:

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. using namespace std;
  4. int main(){
  5.  
  6. int opcion;
  7.  do {
  8.  
  9.    cout<<"1- Nueva partida"<<endl;
  10.    cout<<"2- Cargar partida"<<endl;
  11.    cout<<"3- Salir"<<endl;
  12.  
  13.      cout<<"Opcion:"<<endl;
  14.    cin>>opcion;
  15.    while ( getchar() != '\n' );
  16.      switch (opcion){
  17.        case 1:
  18.          cout<<"1- Nueva partida"<<endl<<endl;
  19.          break;
  20.        case 2:
  21.          cout<<"2-  partida"<<endl<<endl;
  22.          break;
  23.        case 3:
  24.          cout<<"3-  Adios"<<endl<<endl;
  25.          break;
  26.        default:
  27.          cout<<"Error: Opcion incorrecta"<<endl<<endl;
  28.      }
  29.  
  30.  }while(opcion!=3);
  31.  return 0;
  32. }
  33.  
Saluditos!.
1023  Programación / Programación C/C++ / Re: Programa de Educacion Asistida por Computadora en C. en: 11 Febrero 2013, 21:43 pm
Pues como sólo va una instrucción después del if, yo no pondría llaves:

Código
  1. do
  2. {
  3.         scanf( "%d", &operando );
  4.  
  5.         if ( operando < 1 || operando > 5 )
  6.               printf( "Opcion no valida, intenta de nuevo..." );
  7.  
  8. } while ( operando < 1 || operando > 5 );

y arreglaría el "scanf( "%d", &operando );" por si entran un carácter en vez de un número.

Saluditos!.
1024  Programación / Programación C/C++ / Re: Problema básico en C++ en: 11 Febrero 2013, 19:47 pm
Mírate este otro enlace:

http://foro.elhacker.net/programacion_cc/ayuda_con_un_programa_en_c-t377604.0.html;msg1806477#msg1806477

O sea:
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int main() {
  5.    int i,cont=0,j,num,k,total;
  6.    cout <<"Ingresa el total de numeros: ";
  7.    cin >>total;
  8.    for (i=0;i<total;i++){
  9.        cout <<"Ingresa el numero "<<i+1<<": ";
  10.        cin >>num;
  11.        k=0;
  12.        for (j=1; j<=num; j++)
  13.            if (num%j == 0)
  14.                k++;
  15.        if (k == 2 ){
  16.            cont++;
  17.            cout <<"El numero "<<num<<" ES primo"<<endl;
  18.        }
  19.        else cout <<"El numero "<<num<<" NO es primo"<<endl;
  20.    }
  21.    cout <<"El numero de primos es :"<<cont<<endl;
  22.    return 0;
  23. }
  24.  
Saluditos!.
P.D: Cuando tengas que poner un código usa las etiquetas GeSHi y eliges C++ y en medio de las dos etiquetas Code que te salen "pegas" el código.
1025  Programación / Programación C/C++ / Re: Duda con una calculadora C++ en: 10 Febrero 2013, 22:50 pm
... Y tambien me gustaria que alguno de ustedes me dijera si esta bien asi o necesita alguna mejora ese codigo... El código del programa lo hize yo...
Está bastante ben, salvo por "pequeños detelles. como el uso de "#include <iostream.h>, que debe ser "<iostream>" así como el uso de la librería "conio" y sus acólitos" clrscr" y "getch" que no forman parte del estándar de C. Existen otras opciones sí estándar.

Repites primera en donde debería decir segunda y olvidaste incluir "using namespace std;", el declarar a y b como float, por si entras decimales o por siel resultado de la división es decimal (aunque esto se podría solventar con un cast si sigues declarando a y b como int) y ya de paso hago uso de "#include<clocale>" que con "setlocale(LC_ALL, "Spanish");" permite en los cout escribir en español (acentos, ñ, ¿,¡, ..), evitándote los códigos ASCII:

Código
  1. #include <iostream>
  2. #include<clocale>
  3. using namespace std;
  4. int main ()
  5. {
  6. setlocale(LC_ALL, "Spanish");
  7. int opcion;
  8. float a,b;
  9. while (1) {
  10. cout<<"Seleccione la operación a realizar: \n";
  11. cout<<"1 Suma\n";
  12. cout<<"2 Resta\n";
  13. cout<<"3 Multiplicación\n";
  14. cout<<"4 División\n";
  15. cout<<"5 Salir\n";
  16.    cin>>opcion;
  17.  
  18. switch (opcion){
  19.     case 1:
  20.   cout<<"Ingrese la primera cantidad a sumar: ";
  21.   cin>>a;
  22.   cout<<"Ingrese la segunda cantidad a sumar: ";
  23.   cin>>b;
  24.   cout<<"El resultado es: "<<(a+b)<<endl;
  25.     break;
  26.     case 2:
  27.     cout<<"Ingrese la primera cantidad a restar: ";
  28.            cin>>a;
  29.   cout<<"Ingrese la segunda cantidad a restar: ";
  30.   cin>>b;
  31.     cout<<"El resultado es: "<<(a+b)<<endl;
  32.       break;
  33.       case 3:
  34.   cout<<"Ingrese la primera cantidad a Multiplicar: ";
  35.   cin>>a;
  36.   cout<<"Ingrese la segunda cantidad a Multiplicar: ";
  37.   cin>>b;
  38. cout<<"El resultado es: "<<(a*b)<<endl;
  39.       break;
  40.       case 4:
  41.   cout<<"Ingrese la  cantidad a Dividir: ";
  42.   cin>>a;
  43.   cout<<"Ingrese la  cantidad  Dividir: ";
  44.   cin>>b;
  45. cout<<"El resultado es: "<<(float)a/b<<endl;
  46.     break;
  47.       case 5:
  48.          return 1;
  49.     break;
  50.       default:
  51.       cout<<"Sólo puede seleccionar una de las opciones de el Menú... : ";
  52.            cout<<"Presione cualquier tecla para continuar";
  53.            break;
  54.    }
  55. }
  56. return 0;
  57. }
  58.  
Saluditos!.
                                   
1026  Programación / Programación C/C++ / Re: Leer secuencia de doubles hasta tecla enter en: 10 Febrero 2013, 15:48 pm
Cita de: radix.2007
..............................................................
pero mi principal problema es que no sé como hacer para que cuando pulse intro pueda leer esos "n" números separados por espacios (serian números decimales), alguna idea ?, saludos.
Espero que surjan ideas más ingeniosas que la que yo propongo. En principio es todo un reto al no tener prefijado el número n:
Código
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6. main()
  7. {
  8.    int i=0,j=0,k=0;
  9.    float suma=0,Numero[100]={0};
  10.    char Numero_char[15][10],cad[100];
  11.    gets (cad);
  12.    for (i = 0; i < cad[i]!='\0'; i++){
  13.      if (cad[i]==' ') {
  14.        Numero_char[k][j]='\0';
  15.        k++;j=0;
  16.        continue;
  17.      }
  18.       else {
  19.          Numero_char[k][j]=cad[i];
  20.          j++;
  21.      }
  22.    }
  23.    Numero_char[k][j]='\0';
  24.    cout<< endl <<endl ;
  25.    for (i = 0; i <= k; i++){
  26.      Numero[i]= atof (Numero_char[i]);
  27.      suma+=Numero[i];
  28.      }
  29.    cout <<" Media= "<<(float) suma/(k+1)<<endl ;
  30.    return 0;
  31. }
  32.  
Olvide que era con cin:
Código
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6. main(){
  7.  int i=0,j=0,k=0;
  8.    float suma=0,Numero[100]={0};
  9.    cin>>Numero[i];
  10.    while (getchar ()!='\n'){
  11.      i++;cin>>Numero[i];
  12.    }
  13.  cout<< endl <<endl ;
  14.    for (j=0;j<=i;j++)
  15.         suma+=Numero[j];
  16.    cout <<" Media= "<<(float) suma/(i+1)<<endl ;
  17.  return 0;
  18. }
  19.  
Saluditos!.
1027  Programación / Programación C/C++ / Re: problema con escrbir fichero en: 9 Febrero 2013, 21:24 pm
Depende, si el operador << para string esta declarado en string si que usa alguna funcion de esa libreria.
Pero no es su caso. :rolleyes:
Saluditos!.
1028  Programación / Programación C/C++ / Re: problema con escrbir fichero en: 9 Febrero 2013, 19:35 pm
listo,lo arregle, no se que habrá sido, por las dudas agregue la librería string y salio
No debería ser así ya que no haces uso de ninguna función de esa librería. :rolleyes:
Por cierto, el enlace, aunque algo elemental, interesante. Ese tio se lo curra ya que he visto varios "cortos" suyos y son muy ilustrativos.
Saluditos!.
1029  Programación / Programación C/C++ / Re: problema con escrbir fichero en: 9 Febrero 2013, 00:00 am
Pues a míme escribe el fichero sin problemas.
Código
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5.  
  6. int main ()
  7. {
  8.  
  9. ofstream F("texto.txt");
  10. string nombre;
  11. cin>>nombre;
  12. cout<<"hola como estas " << nombre << endl;
  13. F<<"hola como estas" << nombre << endl;
  14. return 0;
  15. }
  16.  
Código:
SAlida en pantalla:
leosan
hola como estas leosan

Process returned 0 (0x0)   execution time : 4.884 s
Press any key to continue.
Código:
Salida en fichero:

hola como estas leosan

Saluditos!.
1030  Programación / Programación C/C++ / Re: alinear texto en: 8 Febrero 2013, 20:31 pm
Puesto a hacerlo sin usar más de un for salió esto, que además funciona:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main(void){
  6.  int i,num;
  7.  char valor[2],str[20]={0};
  8.  printf("Dame un digito (1-9): \n");
  9.  scanf("%d",&num);
  10.  for (i = 1; i <=num; i++){
  11.    memset (str,' ',num-i);
  12.    strcat(str,itoa (i,valor,10));
  13.    memset (&str[strlen (str)-1], i+'0',i);
  14.    printf ("%s\n",str);
  15.    memset (str,0,strlen (str)-1);
  16.  }
  17.   return EXIT_SUCCESS;
  18. }
  19.  
Se admiten críticas o sugerencias.
Saluditos!.


REEDITO: Pensándolo bien, ¿para qué usar strcat?:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main(void){
  6.  int i,num;
  7.  char valor[2],str[20]={0};
  8.  printf("Teclea un digito (1-9): \n");
  9.  scanf("%d",&num);
  10.  for (i = 1; i <=num; i++){
  11.    memset (str,' ',num-i);//relleno izquierda con espacios
  12.    memset (&str[strlen (str)], i+'0',i);//relleno derecha con numeros
  13.    printf ("%s\n",str);
  14.    memset (str,0,strlen (str)-1);//hago nula la cadena para volver a usarla
  15.  }
  16.   return EXIT_SUCCESS;
  17. }
  18.  

Y con una pequeña variante puedo obtener una pirámide, tipo:

Código
  1. Teclea un digito (1-9):
  2. 6
  3.     1
  4.    222
  5.   33333
  6.  4444444
  7. 555555555
  8. 66666666666
  9.  

Con sólo esto:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main(void){
  6.  int i,num;
  7.  char valor[2],str[20]={0};
  8.  printf("Teclea un digito (1-9): \n");
  9.  scanf("%d",&num);
  10.  for (i = 1; i <=num; i++){
  11.    memset (str,' ',num-i);//relleno izquierda con espacios
  12.    memset (&str[strlen (str)], i+'0',2*i-1);//relleno derecha con numeros
  13.    printf ("%s\n",str);
  14.    memset (str,0,strlen (str)-1);//hago nula la cadena para volver a usarla
  15.  }
  16.   return EXIT_SUCCESS;
  17. }
  18.  
  19.  

Hay que ver lo que da de sí memset ¡ ¡ ¡.

Nuevamente, Saluditos!.
Páginas: 1 ... 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 [103] 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 ... 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines