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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 ... 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 [82] 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 ... 132
811  Programación / Programación C/C++ / Re: Problema con un programa: en: 17 Mayo 2013, 09:38 am
muchas gracias ya funciona perfectamente!!!!!  ;-)

Lo reedite buscando la mejora visual. Espero hayas pillado "la última edición" y me alegra que te haya servido.

Saluditos!. ....
812  Programación / Programación C/C++ / Re: Problema con un programa: en: 17 Mayo 2013, 08:26 am
Bueno y para evitar el goto Bucle (que incluso en el manual que estoy leyendo me dice que lo evite) como lo sustituiria  :huh: . Y en cuanto a lo de tantos endl es por que quiero que se limpie la pantalla, me podrias explicar como usaria lo que has puesto del cls ???
Muchas gracias por la ayuda :)

Mejor lo ves:

Código
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cstdlib>
  4. #define N      4
  5.  
  6. using namespace std;
  7. struct Fulanito {
  8.       char Nombre[40];
  9.       int Telefono;
  10.       } Fulanito[N];
  11. int main()
  12. {
  13.  
  14.    int i,z,buscaTel=0,indice;
  15.    char buscaNombre[40]={0};
  16.    for (i = 0; i < N; i++)
  17.        {
  18.            cout << " Introduce el nombre de la persona " << i+1 <<" de "<< N <<" :";
  19.            cin >> Fulanito[i].Nombre; cout << endl;
  20.            cout << " Introduce el numero telefonico de " << Fulanito[i].Nombre<< ": ";
  21.            cin >> Fulanito[i].Telefono;
  22.            cout << endl << endl;
  23.        }
  24.  
  25.    system("cls");
  26.  
  27.    while(1) {
  28.        indice=0;
  29.        cout << "   ******************** MENU *********************      " << endl << endl << endl << endl << endl;
  30.        cout << "           1) Buscar por nombre                 " << endl << endl;
  31.        cout << "           2) Buscar por numero                 " << endl << endl;
  32.        cout << "           3) Salir                             " << endl << endl;
  33.  
  34.        cout << " Que desea realizar: "; cin >> z;
  35.        system("cls");
  36.        if (z == 3) return 1;
  37.  
  38.        else if (z == 1)
  39.      {
  40.            cout << " Introduce el nombre de la persona que desea buscar: ";
  41.            cin >> buscaNombre; cout << endl << endl;
  42.  
  43.            for (i = 0; i < N ;i++)
  44.            {
  45.                if (strcmp(Fulanito[i].Nombre, buscaNombre)==0){
  46.                    cout <<"    Telefono de "<< Fulanito[i].Nombre <<": " << Fulanito[i].Telefono;
  47.                    cout << endl << endl << endl;
  48.                    indice++;
  49.                }
  50.            }
  51.            if (indice==0)
  52.                cout << "No existe en la base esa persona"<< endl<< endl<< endl;
  53.      }
  54.      else if (z == 2)
  55.      {
  56.            cout << " Introduce el numero de la persona que desea buscar: ";
  57.            cin >> buscaTel; cout << endl << endl;
  58.            for (i = 0; i<N ;i++)
  59.            {
  60.                if ((buscaTel==Fulanito[i].Telefono)){
  61.                    cout << " Nombre: " << Fulanito[i].Nombre;
  62.                    cout << endl << endl << endl;
  63.                    indice++;
  64.                }
  65.            }
  66.            if (indice==0)
  67.                cout << "No existe en la base ese numero"<< endl<< endl<< endl;
  68.      }
  69.      else
  70.        cout<<"Opcion equivocada"<<endl<<endl<< endl;
  71.    }
  72.  return 0;
  73. }
  74.  

Saluditos!. ....
813  Programación / Programación C/C++ / Re: Pequeña duda con funcion recursiva en: 17 Mayo 2013, 08:12 am
sorry equivoqué el post
814  Programación / Programación C/C++ / Re: Problema con un programa: en: 16 Mayo 2013, 23:01 pm
................................................
Luego, para evitarte muchos cout << endl;, puedes hacer una funcion simple como la siguiente:

Código:
void MuchosCout(int numerodecouts)
{
    for(int i=0;i<numerodecouts;++i)
       cout << endl;
}


Muy acertada la función. Aunque creo que lo que pretende es "pasar" líneas hasta que no se vea lo anterior y para eso yo le aconsejaría usar system("cls") para limpiar la pantalla, suponiendo esté en Windows y, eso sí, incluir la librería <cstdlib> para su uso.



Te compila?, veo que tienes varios errores, como:
Código:
cout << " Introduce el nombre de la persona: ";cin >> Fulanito.Nombre; cout << endl;

Cuando intentas acceder a un array, tienes que decirle a QUE POSICION QUIERES ACCEDER., es decir, Fulanito.Nombre[posicion].

Totalmente de acuerdo, pero es Fulanito[posicion].Nombre y aún en ese supuesto sí los tiene puestos. El problema radica en que al pegar el código sin usar las etiquetas GeSHi de C++, por favor usarlas y pegar el código en medio de esas etiquetas, pues a lo que iba, al no usar las susodichas etiquetas el código le sale en cursiva y se "come" los índices. Si editas su mensaje veras que si están puestos.

Saluditos!. .....  
815  Programación / Programación C/C++ / Re: Orientación con un problema en: 16 Mayo 2013, 22:42 pm
Buff...arrays, aun no he tocado ese tema en el libro que estoy leyendo, de hecho, terminé con las funciones y ese es el que me toca ahora, así que lo leeré y después continuo con el problema, muchas gracias, cuando lo retome miraré otra vez tus consejos.

Pues ánimos y a por el tema de arrays, es fundamental porque te abrirá las puertas a muchos ejercicios.

Y casi seguro que después tendras el tema de punteros. Desde ya te aconsejo tomarlo con calma y ganas ya que es "la otra gran puerta".

Saluditos .....,nuevamente".......
816  Programación / Programación C/C++ / Re: Orientación con un problema en: 16 Mayo 2013, 21:56 pm
Antes que nada un fuerte saludo otra vez y gracias por la alegría que me das al verte  por aquí.

Para que te hagas una idea de lo que te proponen, ya que no vas a usar ficheros pues aún no has llegado -tranqui!, todo es cuestión de tiempo- puedes imaginarte un capítulo como un array compuesto de diversas palabras. Por ejemplo suponiendo que ninguna palabra exceda de 20 caracteres:


Código
  1. char capitulo1[15][20]={"pincel","pipa","Cine","Teatro", ....-y así hasta quince....}
  2. char capi1[15][20]={0};
  3.  

Y lo que podrías hacer es recorrer el array capitulo1 y guardar en capi1 las palabras abreviadas. Ahí veo una pequeña laguna en cuanto al número de letras a tomar como abreviaturas de las originales. Por hacerlo de forma esquemática yo te propondría que tomaras la longitud de la palabra, que la obtienes con strlen, menos tres de forma que pincel sería pin, como ejemplo.

Se trataría en esencia de ir recorriendo con un for el array
Código
  1. capitulo1[i]
y en otro for interno al anterior de 0 a strlen-3 guardas
los caracteres. Vamos algo así:

Código
  1. for (i=0;i<15;i++)
  2.    for (j=0;j<strlen(capitulo1[i])-3;j++)
  3.        {
  4.              capi1[i] [j]=capitulo1[i] [j];
  5.        }
  6.  

Se podría hacer con más capítulos pero en el formato array en lugar de fichero originaría arrays tridimensionales.

Se me ocurre que para dos capítulos fuera:


Código
  1. char capituloi[2][15][20]={{"pincel","pipa","Cine","Teatro", ....-y así hasta quince....},{"papel","tijera", ....-y así hasta quince....}}
  2. char capi[2][15][20]={0};
  3.  

Demasiado fuerte para empezar. Te aconsejaría el primero con un sólo capítulo.

Espero haberme explicado meridianamente bien y te sirva de orientación.......  y que yo no haya metido la gamba.

Saluditos!. ......  

P.D:Procura elegir mejor los ejercicios, éste es muy de fichero.
817  Programación / Programación C/C++ / Re: Creando una función para hallar la media y la desviación en: 14 Mayo 2013, 17:04 pm
Tienes razón, no era un problema sino dos (el uso del VLA y las dos variables sin inicializar).

¿O son tres? Lo menciono porque:

1) Debido a que la definición de la función main omite el tipo de retorno no se puede compilar como C99 (no seria valido).

2) La declaración del array "data" requiere compilar como C99.

...


Ya sé que main debería ser declarado como int y que el uso de VLAs da problemas al no estar implementado en algunos compiladores, sin embargo en ese caso lo mejor es cambiar de compilador a uno más "funcional". En mi caso con Code::Blocks no he tenido problema alguno ni con main ni con los VLAs, que utilizo frecuentemente sin problemas.

Vamos que si el compilador "no tira" por falta de implementación de ciertas funcionalidades del C99 sencillamente cambiaría de compilador.

Saluditos!. .....
818  Programación / Programación C/C++ / Re: Ayuda con un programa en: 14 Mayo 2013, 16:53 pm
Hola

¿ Podrían ayudarme por favor? :)



Pues andaba aburrido y me dije ¡vamos a echarle un cabo a Luisa Ringo!.

Y me salio esta salida que es "casi" la esperada para lo que se pedía:


Código
  1.  
  2. Ingrese Nombre de Cines:
  3. >sorancio
  4.  
  5. Ingrese Nombre de Cines:
  6. >leosan
  7.  
  8. Ingrese Nombre de Cines:
  9. >masakre
  10.  
  11. Ingrese Nombre de Cines:
  12. >rir3760
  13.  
  14. Ingrese Nombre de Cines:
  15. >pantalaimon
  16.  
  17. Cines ordenados alfabeticamente:
  18.  
  19.        leosan
  20.        masakre
  21.        pantalaimon
  22.        rir3760
  23.        sorancio
  24. Ingrese Nombre de Teatros:
  25. >amchacon
  26.  
  27. Ingrese Nombre de Teatros:
  28. >leosansan
  29.  
  30. Ingrese Nombre de Teatros:
  31. >caster
  32.  
  33. Ingrese Nombre de Teatros:
  34. >puntoinfinito
  35.  
  36. Ingrese Nombre de Teatros:
  37. >do-while
  38.  
  39. Teatros ordenados alfabeticamente:>
  40.        amchacon
  41.        caster
  42.        do-while
  43.        leosansan
  44.        puntoinfinito
  45. Teatros y Cines ordenados alfabeticamente:>
  46.        amchacon
  47.        caster
  48.        do-while
  49.        leosan
  50.        leosansan
  51.        masakre
  52.        pantalaimon
  53.        puntoinfinito
  54.        rir3760
  55.        sorancio

Con este código, a mejorar poniendo más funciones para los trozos que se cuasi-repiten, pero algo tendrás que aportar tú:

Código
  1. #include<stdio.h>
  2. #include<string.h>
  3. #define TAM 5
  4. #define TAM2 2*TAM
  5. #define TAM_NOMBRE  20
  6. void bubblesort(char cines[][TAM_NOMBRE], int tam );
  7. int main()
  8. {
  9.    int i;
  10.    char cines[TAM][TAM_NOMBRE],teatros[TAM][TAM_NOMBRE],entretenimientos[TAM2][TAM_NOMBRE];
  11.    for(i=0;i<TAM;i++)
  12.        {
  13.            printf("\nIngrese Nombre de Cines:\n>");
  14.            scanf("%s",&cines[i]);
  15.        }
  16.    printf("\nCines ordenados alfabeticamente:\n");
  17.    bubblesort(cines,TAM);
  18.    for(i=0;i<TAM;i++)
  19.        printf("\n\t%s",cines[i]);
  20.    for(i=0;i<TAM;i++)
  21.        {
  22.            printf("\nIngrese Nombre de Teatros:\n>");
  23.            scanf("%s",&teatros[i]);
  24.        }
  25.    bubblesort(teatros,TAM);
  26.    printf("\nTeatros ordenados alfabeticamente:\n>");
  27.    for(i=0;i<TAM;i++)
  28.        printf("\n\t%s",teatros[i]);
  29.    for(i=0;i<TAM;i++)
  30.        strcpy(entretenimientos[i],teatros[i]);
  31.    for(i=TAM;i<TAM2;i++)
  32.        strcpy(entretenimientos[i],cines[i-TAM]);
  33.    bubblesort(entretenimientos,TAM2);
  34.    printf("\nTeatros y Cines ordenados alfabeticamente:\n>");
  35.    for(i=0;i<TAM2;i++)
  36.        printf("\n\t%s",entretenimientos[i]);
  37.    return 0;
  38. }
  39. void bubblesort(char nombre[][TAM_NOMBRE], int n )
  40. {
  41.    int i,j,temp;
  42.    char temp_[TAM_NOMBRE];
  43.    float comp;
  44.    for(i=1;i<n;i++)
  45.        {
  46.            for(j=0;j<n-i;j++)
  47.                {
  48.                    comp = strcmp( nombre[j], nombre[j+1] );
  49.                    if(comp > 0)
  50.                        {
  51.                            strcpy(temp_,nombre[j]);
  52.                            strcpy(nombre[j],nombre[j+1]);
  53.                            strcpy(nombre[j+1],temp_);
  54.                        }
  55.                }
  56.        }
  57. }
  58.  

¡Huy!, que me olvidé que era en C++


¡Lo que me habría ahorrado con string!. En fin, eso te lo dejo a tí, como lo de ordenar de manera descendente el segundo array, el de teatros.

Saluditos!. .....  


P.D:Hay algo a mejorar, que la letra inicial sea mayúscula, pero no te lo voy a dar todo hecho.
819  Programación / Programación C/C++ / Re: Creando una función para hallar la media y la desviación en: 14 Mayo 2013, 15:41 pm
Quiero hacer un programa que genere N floats uniformemente distribuidos en un intervalo dado y que calcule la media y la dispersión mediante una función
...............................................................

Compila sin problemas pero los valores para la media y la varianza son incorrectos. El caso es que en una versión anterior del programa en la cual N no estaba pillado de la consola al menos la media funcionaba.

¿Alguna pista?

El problema radica, con permiso de rir, en que no inicializas las  variables *media=0 y *varianza=0 antes de los correspondientes for. A mí, con esta pequeñísima corrección, me ha funcionado bien, creo.

Saluditos!. ......  
820  Programación / Programación C/C++ / Re: quien me orienta con este ejercicio en c++ en: 11 Mayo 2013, 14:46 pm

Para empezar no es C++ sino más bien C.


Además de lo comentado por amchacon, tienes dos switch y no tiene por qué continuar los case del uno con el otro, ambos pueden empezar de 1, eso sí con dos opciones diferentes para no liarla.

Las opciones con entero pueden dar bucles si el usuario entra una letra en lugar de un número, de ahí que yo los use como char y en los case, al ser char van entre las comillas simples.

Sería conveniente darle al usuario la opción de regresar al menú principal una vez que ha usado el menú secundario o segundo switch, así al menos es como funcionan los cajeros y limpiar o refrescar la pantalla según se vayan seleccionando opciones. Con estas opciones te propongo este código para seguir mejorándolo:


Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define GRACIAS     puts("GRACIAS POR SU PREFERENCIA")
  4. int main(){
  5.       int a;
  6.       char opcion,opcion1;
  7.       puts("\nESTE PROGRAMA MUESTRA COMO ES EL SISTEMA DE UN CAJERO AUTOMATICO");
  8.        while(1){
  9.            puts ("\nDame tu clave");
  10.            scanf(" %d",&a);
  11.            if(a==123456){
  12.                system ("cls");
  13.                puts("\nEs correcto");
  14.                break;
  15.            }
  16.            else{
  17.                printf("\n Contraseña invalida");
  18.                printf("\nTeclea otra ves tu clave");
  19.            }
  20.       }
  21.        while (1){
  22.        system("\npause");
  23.        system ("cls");
  24.        puts("\nEste es el menu de opciones\n ");
  25.        puts("1.-Traspaso\n");
  26.        puts("2.-Recargas\n");
  27.        puts("3.-Retiro en efectivo\n");
  28.        puts("4.-Salir\n");
  29.        puts("\nTeclea la opcion que quieras\n");
  30.        scanf(" %c",&opcion);
  31.  
  32.            switch(opcion)
  33.              {
  34.                  case '1':
  35.                        {
  36.                            puts("Traspaso");
  37.                            GRACIAS;
  38.                         break;
  39.                        }
  40.                  case '2':
  41.                        {
  42.                         puts("Recargas");
  43.                         GRACIAS;
  44.                         break;
  45.                        }
  46.                  case '4':
  47.                          {
  48.                               puts("Elejiste la opcion de salir");
  49.                               GRACIAS;
  50.                               system("\npause");
  51.                               return 1;
  52.                          }
  53.                        default:
  54.                          puts("opcion erronea");
  55.                  case '3':
  56.                        {
  57.                         system ("cls");
  58.                         puts("\nRetiro en efectivo");
  59.                         puts("\nCuanto deseas retirar:");
  60.                         puts("\nElige la opcion que quieras para retirar");
  61.                         puts("\nPuedes elegir:");
  62.                         puts("1.- $20");
  63.                         puts("2.- $50");
  64.                         puts("3.- $100");
  65.                         puts("4.- $200");
  66.                         puts("5.- $500");
  67.                         puts("6.- $1000");
  68.                         puts("7.- Volver al menu principal");
  69.  
  70.                                puts("\nElige la opcion que quieras");
  71.                                scanf("\n%c",&opcion1);
  72.                                switch(opcion1)
  73.                                 {
  74.                                    case '1':
  75.                                {
  76.                                     puts("Elegiste la opcion de $20");
  77.                                     GRACIAS;
  78.                                     break;
  79.                                }
  80.                                case '2':
  81.                                {
  82.                                     puts("Elegiste la opcion de $50");
  83.                                     GRACIAS;
  84.                                     break;
  85.                                }
  86.  
  87.                                case '3':
  88.                                {
  89.                                     puts("Elegiste la opcion de $100");
  90.                                     GRACIAS;
  91.                                     break;
  92.                                }
  93.                                case '4':
  94.                                {
  95.                                     puts("Elegiste la opcion de $200");
  96.                                    GRACIAS;
  97.                                     break;
  98.                                }
  99.                                case '5':
  100.                                {
  101.                                     puts("Elegiste la opcion de $500");
  102.                                     GRACIAS;
  103.                                     break;
  104.                                }
  105.                                case '6':
  106.                                {
  107.                                     puts("Elegiste la opcion de $1000");
  108.                                     GRACIAS;
  109.                                     break;
  110.                                }
  111.                                case '7':
  112.                                {
  113.                                     puts("Elegiste la opcion de volver al menu principal");
  114.                                     GRACIAS;
  115.                                     break;
  116.                                }
  117.                                default:
  118.                                  puts("opcion erronea");
  119.                                  break;
  120.                            }
  121.  
  122.                        }
  123.  
  124.              }
  125.        }
  126.        return 0;
  127.  
  128.      }
  129.  

Saluditos!. .....  
Páginas: 1 ... 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 [82] 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 ... 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines