¿Qué hacer? en C++
October 2, 2008 10:07 pm ProgramaciónAquí tienen la versión (mi versión, claro) de C++ de un programa que nos ayudará para cuando estemos indecisos. Cuantas veces nos ha pasado que no sabes que hacer, con esto, escogemos tres opciones y nuestra computadora con ayuda de números aleatorios nos va decir que hacer.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
class QueHacer
{
public:
QueHacer(char [], char [], char []);
private:
int sugerir;
};
QueHacer::QueHacer(char opc1[], char opc2[], char opc3[])
{
srand( time(0) );
sugerir = 1 + rand() % 3;
if( sugerir == 1 )
{
cout<<"Hacer: "<< opc1 << endl;
}
else if( sugerir == 2 )
{
cout<<"Hacer: "<< opc2 << endl;
}
else if( sugerir == 3 )
{
cout<<"Hacer: "<< opc3 << endl;
}
else
{
cout<<" Sopenco!";
}
}
int main(int argc, char *argv[])
{
if(argc != 4 )
{
cout<<"Uso: ./que_hacer [opc1] [opc2] [opc3]"<<endl;
while( cin.get() != '\n' );
}
else
{
QueHacer obj( argv[1], argv[2], argv[3] );
}
return 0;
}
Ejemplo:
soullost@UnderHouse ~/c++/tmp $ g++ que_hacer.cxx -o que_hacer soullost@UnderHouse ~/c++/tmp $ ./que_hacer "Ir a desayunar" "Seguir en la pc" "Ir a dormir" Hacer: Ir a desayunar
La idea se ha iniciado en los foros de Picando Codigo (con un script de shell en bash), después fernando lo ha puesto en su blog. Unos días más tarde, hugo_dc lo ha pasado en python y ahora, yo lo he escrito en C++.
Esto podría convertirse en una meme para programadores
y tal vez, podría competir con el ya famoso: Hola Mundo!!..
PD: Por ahora, hoy no he tenido dolores de cabeza
.
Temas Relacionados:


October 4th, 2008 at 7:19 am
Inventiva forma de usar rand
Podria editarse para que tomara los argumentos que fueran, como:
#include #include using namespace std; class QueHacer { public: QueHacer(int, char *[]); private: int sugerir; }; QueHacer::QueHacer(int argc, char *argv[]) { srand( time(0) ); sugerir = 1 + rand() % (argc-1); if( argv[sugerir] != NULL ) { cout << "Hacer: " << argv[sugerir] << endl; } else { cout << "Sopenco!"; } } int main(int argc, char *argv[]) { if(argc < 3 ) { cout<<"Uso: ./que_hacer [opc1] [opc2] [opc3]"<<endl; while( cin.get() != '\n' ); } else { QueHacer obj( argc, argv ); } return 0; }Curiosidades:
Java
public class QueHacer { static public void main(String[] args) { if( args.length < 3 ) { System.out.println("Uso: ./ [opc1] [opc2] [opc3]"); } else { int i = (int)(args.length*Math.random()); System.out.println("Que hacer: " + args[i]); } } }C#
namespace ConsoleApplication { class Program { static void Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Uso: ./ [opc1] [opc2] [opc3]"); } else { Random rand = new Random(); int i = rand.Next(0, args.Length); Console.WriteLine("Hacer: {0}", args[i]); } } } }Espero sigas mejor de tus jaquecas
October 4th, 2008 at 12:16 pm
Marioly muy bueno
, lastima que no tengas blog para seguir con la cadenita
. También pensé pasarlo a c-sharp (porque lo voy a usar últimamente) pero, la idea era pasarlo a uno solo xD.
Que leet, optimizaste las líneas de código xD, yo, a simple vista no lo vi
.
Ojalá sea migraña ;D .
October 10th, 2008 at 2:32 am
Que geek he soullost
Ya aporté a la cadenita!!
Acá mi aportación
October 10th, 2008 at 2:25 pm
Un poco geek dirás. Ya he comentado por tu blog, saludos.
October 11th, 2008 at 12:49 pm
Diablos no comprendo todo ese codigo solo algunas cosas 8_8