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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con un asunto en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con un asunto en c++  (Leído 2,621 veces)
andrecid

Desconectado Desconectado

Mensajes: 126


Haz lo que quieras, por que nadie te puede obligar


Ver Perfil
Ayuda con un asunto en c++
« en: 16 Marzo 2015, 22:36 pm »

Hola, quería  preguntar una duda que tengo en c++ si no fuese una molestia bueno la verdad , es que me gusta bastante la programación y cuando me he adentrado a ella lo he decidido hacer mediante c++, la cosa es :

¿Cómo podría hacer que el usuario ingresase nombres y dependiendo de esos nombres pase algo?

Es decir el usuario ingresa por ejemplo : Julio o Andres o Paula y dependiendo de los nombres aparece un mensaje ( con cout ).

La verdad es que solo se me ocurre con if pero es que si tengo que hacer 40 nombres con if me puedo morir. ¿Me pueden decir otra forma de hacerlo sin if?

Ahora les quiero decir que esto no son mis deberes ni nada por el estilo, es más yo estoy estudiando programación por mi cuenta, si ustedes me ayudan se lo agradeceré si no me ayudan, ya me buscare otra forma de aprender.

Digo esto por que se que no les gusta resolver trabajos de nadie ( a mi tampoco me gustaría) y no quiero que ustedes piensen mal de mi.

Espero sus respuestas. Gracias .


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda con un asunto en c++
« Respuesta #1 en: 16 Marzo 2015, 22:44 pm »

Código
  1. string names[]={"Jose","Ivan","Manuel"};
  2. string msg[] = {"Hola","Adios","Bye"};
  3. string t;
  4. getline(cin,t);
  5. for(int i=0; i<3; i++)
  6.    if(names[i]==t){
  7.        cout << msg[i] << endl;
  8.        break;
  9.    }

Es un ejemplo.


En línea

Ariel_10

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda con un asunto en c++
« Respuesta #2 en: 17 Marzo 2015, 14:49 pm »


Hola bro, tambien puedes hacer algo como esto:

1. string names[] = {"Jose","Ivan","Manuel"};
2. string msg[]    = {"Hola","Adios","Bye"};

3. int n;

4. for(int i = 0; i <= names.length(); i++)
5.    cout << "Escriba el numero correspondiente con su nombre" + i.ToString() +"-" 
                    + names << endl;
cin>> n;

cout<<msg[n] + [n];
break;

NOTA: aca ahora no tengo el c++ instalado..puede que el i.ToString() no sea asi, tengo q corroborarlo, hace mucho tiempo lo hice...si no..InToStr(i)..prueba


Otra opcion es hacerlo con la sentencia switch, pero eso depende...observa que en este caso los arrays tienen la misma longitud...si no la tienen, da error...de no tener la misma longitud, lo haria con la sentencia switch

saludos

   
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda con un asunto en c++
« Respuesta #3 en: 17 Marzo 2015, 15:10 pm »

Recuerda colocar las etiquetas GeSHi.
No existe "names.length()".
Es to_string(), de la librería string.

cout<<msg[n] + [n];
msg[n] + [n]?

Switch no sirve para strings ni cadenas.
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Ayuda con un asunto en c++
« Respuesta #4 en: 17 Marzo 2015, 15:34 pm »

Es to_string(), de la librería string.

Mejor que eso... en C++, los tipos básicos, entre los que se incluye int, no tienen métodos. i.ToString, siendo "i" un int, no va a compilar en ningúna versión de C++.
En línea

Ariel_10

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda con un asunto en c++
« Respuesta #5 en: 17 Marzo 2015, 16:02 pm »

Recuerda colocar las etiquetas GeSHi.
No existe "names.length()".
Es to_string(), de la librería string.
msg[n] + [n]?

Switch no sirve para strings ni cadenas.

hace 1 año q no programo en c++...salte para C#.Net

cuando hable del switch decia hacer algo como

/*****/
4. for(int i = 0; i <= names.length(); i++)
5.    cout << "Escriba el numero correspondiente con su nombre" + i.ToString() +"-"
                    + names << endl;
cin>> n;

switch(n)
{
   case 0:
   cout<<msg[0] + names[0]; //Aqui en el post anterior me comi el names...sorry
   break;

/*****/
}

usaria el swicth...por ejemplo...si ademas mostrar la cadena...necesitara hacer algo mas...ademas de que me da la posibilidad de escoger que mensage mostrar, o sea, msg[1], msg[2], o como sea, claro, no mayor que la longitud del array...tratare de ser mas preciso para mi proximo post...pero por ahora dire q C++ tiene una libreria para generar numeros aleatorios en un intervalo tando de espacio como de tiempo...o sea...en 4 seg dame un numero entre 0 y la longitud del array msg...seria mas cool porque a la persona no le saldria el mismo mensage siempre...que creen?
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Ayuda con un asunto en c++
« Respuesta #6 en: 17 Marzo 2015, 16:24 pm »

hace 1 año q no programo en c++...salte para C#.Net

El problema es que plantear una solución que no sólo no es válida, sino que además puede llevar a confusión no es demasiado ético.

Si tienes dudas, hay compiladores online en los que puedes poner tu fragmento de código y verlo funcionar (con ciertas limitaciones, pero ahí están). Sin embargo, lo dicho, no deberías poner una solución basada en un híbrido entre .NET y C++.

Por otro lado, como te ha comentado ivancea, el código debe estar decorado con las etiquetas correspondientes y no, no es un capricho, es una de las normas del foro, por lo que te agradeceríamos su cumplimiento.

Por otro lado, no hace falta ningún switch en el código. Para que el código funcione necesitas dos índices: Uno para mostrar el nombre y otro para mostrar la frase. El primero lo estas obteniendo con el for y es la variable "i", mientras que el segundo lo introduce el usuario en la variable "n":

cuando hable del switch decia hacer algo como

Código
  1. for(int i = 0; i <= names.length(); i++)
  2. {
  3.  cout << "Escriba el numero correspondiente con su nombre" << i  << "-" << names << endl;
  4.  cin >> n;
  5.  cout << msg[n] << names[i]; //Aqui en el post anterior me comi el names...sorry
  6. }
  7.  


pero por ahora dire q C++ tiene una libreria para generar numeros aleatorios en un intervalo tando de espacio como de tiempo

C++ tiene funciones para generar números aleatorios... y te los genera cuando se los pides. No se de dónde has sacado eso de que (si no te he entendido mal) tu le pides un número ahora y dentro de 4 segundos te lo facilita.

Y digo que tiene funciones porque en la versión C++11 el algoritmo de generación de números aleatorios es configurable (se puede elegir entre una serie de motores ya existentes o diseñar un motor propio). Pero aún así, lo dicho, el número te lo genera en cuanto lo pides.

seria mas cool porque a la persona no le saldria el mismo mensage siempre...que creen?

Pudiera ser, pero según lo que comenta el usuario, las respuestas deben ser fijas, es decir, para el nombre X debe aparecer el texto Y... los números aleatorios no tienen cabida en su ejercicio.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Asunto
Nivel Web
WiseHidden 1 2,550 Último mensaje 23 Diciembre 2010, 02:07 am
por volteo0101
Necesito ayuda sobre un asunto algo delicado
Dudas Generales
mryo 4 3,178 Último mensaje 11 Abril 2011, 18:27 pm
por 4rm4ndo
Asunto Ayuda con windows xp
Windows
billy_joe 7 4,182 Último mensaje 7 Julio 2012, 04:55 am
por billy_joe
Secretario de Instituto. Necesito ayuda con un asunto de descargas en las aulas.
Redes
CobraMarley 2 2,238 Último mensaje 14 Diciembre 2012, 15:16 pm
por virtualedu
Asunto De Calificaciones (Ayuda!)
Programación Visual Basic
LuisM_23 1 1,477 Último mensaje 14 Julio 2015, 16:13 pm
por 79137913
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines