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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  RETOS C++
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 Ir Abajo Respuesta Imprimir
Autor Tema: RETOS C++  (Leído 50,991 veces)
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: RETOS C++
« Respuesta #90 en: 30 Septiembre 2012, 16:52 pm »

Perdón por el doble post, pero son cosas diferentes.

Entiendo, pero por el texto de la consigna "Un programa que diga el nombre de dígitos que tiene el texto introducido ", no interpreté que se tratase de la cantidad de caracteres de la cadena ingresada.

Entonces:
Código
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.  string texto;
  7.  
  8.  cout << "Texto: ";
  9.  getline(cin, texto);
  10.  cout << "El texto tiene " << texto.length() << " caracteres.";
  11.  cin.get();
  12.  return 0;
  13. }
  14.  

Saludos.

mi solución, me falla porque no lee espacios, y averiguando encontre que la solución de ecfisa, es la mejor...

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.  char palabra[100];
  7.  int contador = 0;
  8.  
  9.  
  10.  cout << "Digita la palabra:  ";
  11.  cin >> palabra;
  12.  
  13.  for (int i = 0; i < 100; i++ )
  14.  {
  15.     if ( palabra[i] !=  '\0' )
  16.        contador++;
  17.    else
  18.         break;
  19.  }
  20.  
  21.  cout << "LA PALABRA TIENE " << contador << " LETRAS";
  22.  return 0;
  23. }
  24.  

De todas maneras, lo intente XDD buenos retos. Sigo!!


« Última modificación: 1 Octubre 2012, 01:52 am por dato000 » En línea


overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: RETOS C++
« Respuesta #91 en: 30 Septiembre 2012, 17:00 pm »

RETO 13 (Sudoku)

No consigo entender el enunciado, lo que se ha dado, ¿un sudoku?, no sé como se puede dar un sudoku, lo he interpretado como hacer un sudoku de un tamaño a elegir por el programador, he escogido 4x4 para no alargar el code.
Aquí dejo el source:

Window.hpp
Código
  1. #include <QtGui>
  2. #include<QMessageBox>
  3. class window : public QMainWindow
  4. {
  5.    Q_OBJECT
  6.  
  7.    public:
  8.  
  9.        window();
  10.        void constructWindow();
  11.  
  12.    public slots:
  13.  
  14.        void compruebaSudoku();
  15.  
  16.  
  17.    private:
  18.  
  19.        QLineEdit *numero1,*numero2,*numero3,*numero4,*numero5,*numero6,*numero7,*numero8,*numero9,*numero10,
  20.        *numero11,*numero12,*numero13,*numero14,*numero15,*numero16;
  21.        QVBoxLayout *mainLayout;
  22.        QHBoxLayout *primLayout,*segLayout,*terLayout,*cuarLayout;
  23.        QPushButton *acceptButton;
  24.        QWidget *myWindow;
  25.        QMessageBox *finalizado,*error;
  26. };
  27.  
  28.  

Window.cpp
Código
  1. #include "window.hpp"
  2.  
  3. window::window()
  4. {
  5.    numero1 = new QLineEdit;
  6.    numero2 = new QLineEdit;
  7.    numero3 = new QLineEdit;
  8.    numero4 = new QLineEdit;
  9.    numero5 = new QLineEdit;
  10.    numero6 = new QLineEdit;
  11.    numero7 = new QLineEdit;
  12.    numero8 = new QLineEdit;
  13.    numero9 = new QLineEdit;
  14.    numero10 = new QLineEdit;
  15.    numero11 = new QLineEdit;
  16.    numero12 = new QLineEdit;
  17.    numero13 = new QLineEdit;
  18.    numero14 = new QLineEdit;
  19.    numero15 = new QLineEdit;
  20.    numero16 = new QLineEdit;
  21.    mainLayout = new QVBoxLayout;
  22.    primLayout = new QHBoxLayout;
  23.    segLayout = new QHBoxLayout;
  24.    terLayout = new QHBoxLayout;
  25.    cuarLayout = new QHBoxLayout;
  26.    finalizado = new QMessageBox;
  27.    error = new QMessageBox;
  28.    finalizado->setText("Sudoku Finalizado");
  29.    error->setText("El sudoku introducido no es valido o no es correcto");
  30.    acceptButton = new QPushButton("Aceptar");
  31.    myWindow = new QWidget;
  32.    myWindow->setMaximumSize(200,200);
  33.    myWindow->setMinimumSize(200,200);
  34.    myWindow->setWindowTitle("Sudoku 4x4 Overxfl0w");
  35.    constructWindow();
  36.    QObject::connect(acceptButton,SIGNAL(clicked()),this,SLOT(compruebaSudoku()));
  37.    myWindow->show();
  38. }
  39.  
  40. void window::constructWindow()
  41. {
  42.    numero2->setText("4");
  43.    numero3->setText("2");
  44.    numero4->setText("3");
  45.    numero5->setText("3");
  46.    numero6->setText("2");
  47.    numero7->setText("1");
  48.    numero8->setText("4");
  49.    numero10->setText("3");
  50.    numero11->setText("4");
  51.    numero15->setText("3");
  52.    numero2->setReadOnly(true);
  53.    numero3->setReadOnly(true);
  54.    numero4->setReadOnly(true);
  55.    numero5->setReadOnly(true);
  56.    numero6->setReadOnly(true);
  57.    numero7->setReadOnly(true);
  58.    numero8->setReadOnly(true);
  59.    numero10->setReadOnly(true);
  60.    numero11->setReadOnly(true);
  61.    numero15->setReadOnly(true);
  62.    primLayout->addWidget(numero1);
  63.    primLayout->addWidget(numero2);
  64.    primLayout->addWidget(numero3);
  65.    primLayout->addWidget(numero4);
  66.    mainLayout->addLayout(primLayout);
  67.    segLayout->addWidget(numero5);
  68.    segLayout->addWidget(numero6);
  69.    segLayout->addWidget(numero7);
  70.    segLayout->addWidget(numero8);
  71.    mainLayout->addLayout(segLayout);
  72.    terLayout->addWidget(numero9);
  73.    terLayout->addWidget(numero10);
  74.    terLayout->addWidget(numero11);
  75.    terLayout->addWidget(numero12);
  76.    mainLayout->addLayout(terLayout);
  77.    cuarLayout->addWidget(numero13);
  78.    cuarLayout->addWidget(numero14);
  79.    cuarLayout->addWidget(numero15);
  80.    cuarLayout->addWidget(numero16);
  81.    mainLayout->addLayout(cuarLayout);
  82.    mainLayout->addWidget(acceptButton);
  83.    myWindow->setLayout(mainLayout);
  84. }
  85.  
  86. void window::compruebaSudoku()
  87. {
  88.    if(numero1->text() == "1" && numero12->text() == "1" && numero16->text() == "2" && numero14->text() == "1" && numero9->text() == "2" && numero13->text() == "4")
  89.    {
  90.        finalizado->exec();
  91.        exit(0);
  92.    }
  93.    else error->exec();
  94. }
  95.  

main.cpp
Código
  1. #include "window.hpp"
  2. int main(int argc, char *argv[])
  3. {
  4.    QApplication app(argc, argv);
  5.    window window;
  6.    return app.exec();
  7. }
  8.  




He usado Qt si ves que no puedes compilarlo, te paso el .exe compilado en estático.


En línea

[/url]
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: RETOS C++
« Respuesta #92 en: 1 Octubre 2012, 01:03 am »

zonahurbana   

a.cpp:6: warning: converting NULL to non-pointer type

yo utilizaria la funcion max(); de la libreria algortihm que te estalvia algunos if.
En CodeBlocks no me muestra error. ¿Usted podría recomendarme algún IDE?
Yo nunca hice eso de inicializar como NULL a un entero. Esta vez lo hice por probar, y como no me daba error, creí que era correcto. Lo que normalmente habría hecho es no inicializar la variable mayor. Ésta adoptaría como primer valor a nros[0]; y ya luego haría las comparaciones. Pero, ¿hay alguna manera de inicializar a un entero de modo que al compararlo siempre sean mayores que él? (Es decir, de modo que cual fuere el primer valor, reemplace a lo que venía por defecto y luego se continúe normalmente el proceso de comparación)
¿Aquella librería de la que usted habla es estándar? Es que siempre están diciendome que evite incluir librería no estándares. ¿Y sobre mi pregunta de la pausa?
Gracias por responder.
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: RETOS C++
« Respuesta #93 en: 1 Octubre 2012, 01:50 am »

2- Crear programa que lea el contenido de un archivo de texto.

umm lo hice a lo simple, corto y claro.

Código
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. int main () {
  6.     ifstream nuevo("prueba.txt");
  7.     char nombre[100];
  8.  
  9.     nuevo.getline(nombre, 100);
  10.     cout << nombre;
  11.  
  12.     return 0;
  13. }
  14.  
En línea


overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: RETOS C++
« Respuesta #94 en: 1 Octubre 2012, 13:20 pm »

RETO 5

Código
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. int main(int argc,char* argv)
  5. {
  6.    char palabraGenerada[10];
  7.    ofstream archivo;
  8.    archivo.open("diccionario.txt",ofstream::app);
  9.    for(int x=97;x<=122;x++)
  10.    {
  11.        for(int y=97;y<=122;y++)
  12.        {
  13.            for(int j=97;j<=122;j++)
  14.            {
  15.                for(int z=97;z<=122;z++)
  16.                {
  17.                    for(int a=97;a<=122;a++)
  18.                    {
  19.                        for(int b=97;b<=122;b++)
  20.                        {
  21.                            for(int m=97;m<=122;m++)
  22.                            {
  23.                                for(int n=97;n<=122;n++)
  24.                                {
  25.                                    for(int p=97;p<=122;p++)
  26.                                    {
  27.                                        archivo << char(x) << char(y) << char(j) << char(z) << char(a) << char(b) << char(m) << char(n) << char(p) << "\n";
  28.                                    }
  29.                                }
  30.                            }
  31.                        }
  32.                    }
  33.                }
  34.            }
  35.        }
  36.    }
  37.    return 0;
  38. }
  39.  

RETO 6 (Windows 7)

Código
  1. #include <windows.h>
  2.  
  3. int main(int argc,char* argv)
  4. {
  5.  SetCursorPos(0, 780);
  6.  mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, GetMessageExtraInfo());
  7.  SetCursorPos(320,700);
  8.  mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, GetMessageExtraInfo());
  9.  mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, GetMessageExtraInfo());
  10.  return 0;
  11. }
  12.  

110 puntitos y espero el bonus por ser el primero en el 6 :D

Saludos
« Última modificación: 1 Octubre 2012, 14:48 pm por overxfl0w13 » En línea

[/url]
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: RETOS C++
« Respuesta #95 en: 1 Octubre 2012, 15:02 pm »

los bonues son por utilizar la funcion max o para crear un buen programa compatible con todo.

como algunos codigos de do-while

PD:Para saber si va el 6 lo tenog k probar, y me da miedo de k no salga error XDXD

PPD:Ya lo probe
« Última modificación: 1 Octubre 2012, 15:12 pm por Stakewinner00 » En línea

overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: RETOS C++
« Respuesta #96 en: 1 Octubre 2012, 15:12 pm »

los bonues son por utilizar la funcion max o para crear un buen programa compatible con todo.

como algunos codigos de do-while

PD:Para saber si va el 6 lo tenog k probar, y me da miedo de k no salga error XDXD
bonus por usar max? no era por el primero o por el codigo más corto? eso pone en el primer post pero bueno xD.
En línea

[/url]
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: RETOS C++
« Respuesta #97 en: 1 Octubre 2012, 15:15 pm »

bonus por usar max? no era por el primero o por el codigo más corto? eso pone en el primer post pero bueno xD.

lo del codigo mas corto si despues añadi lo de max para el numeor más grande

Código:
El codigo mas corto o el codigo mas rápido ganara un bónus.

Lo del primero no lo dice.

Cuando tenga tiempo revisare todos los códigos y comprobare cual va más rápido.

PD:Si alguien ve k le sume demasiados puntos o demasiados pocos k se queje 

En línea

overxfl0w13

Desconectado Desconectado

Mensajes: 163



Ver Perfil WWW
Re: RETOS C++
« Respuesta #98 en: 1 Octubre 2012, 15:47 pm »

RETO 4

Código
  1. #include <iostream>
  2. int main(int argc,char* argv)
  3. {
  4.    std::string palabra1,palabra2,palabra3,palabra4;
  5.    std::cin >> palabra1 >> palabra2 >> palabra3 >> palabra4;
  6.    if(palabra1 < palabra2 && palabra1 < palabra3 && palabra1 < palabra4){std::cout <<"La palabra mas pequenya es: " << palabra1 << std::endl;}
  7.    else{if(palabra2 < palabra1 && palabra2 < palabra3 && palabra2 < palabra4){std::cout <<"La palabra mas pequenya es: " << palabra2 << std::endl;}
  8.    else{if(palabra3 < palabra2 && palabra3 < palabra1 && palabra3 < palabra4){std::cout <<"La palabra mas pequenya es: " << palabra3 << std::endl;}
  9.    else{if(palabra4 < palabra2 && palabra4 < palabra3 && palabra4 < palabra1){std::cout <<"La palabra mas pequenya es: " << palabra4 << std::endl;}}}}
  10.    if(palabra1 == palabra2 && palabra1 == palabra3 && palabra1 == palabra4){std::cout <<"Todas las palabras son iguales" << std::endl;}
  11.    return 0;
  12. }
  13.  
« Última modificación: 1 Octubre 2012, 15:52 pm por overxfl0w13 » En línea

[/url]
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: RETOS C++
« Respuesta #99 en: 1 Octubre 2012, 16:23 pm »

ahora miro el code peor no seria mejor esto;

Código:
#include <iostream>
#include <algorithm>
using namespace std;

int main () {
int a,b,c,d;
cin >> a >> b >> c >> d;

if (max(a,b)>max(c,d)) {
  cout << max(a,b) << endl;
  } else {
    cout << max(c,d) << endl;
}
}

usando max con un solo if basta para comparar los 4 numeros, seguramente hay otras formas pero esta es una.
En línea

Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RECOPILACION DE RETOS] VBClassic Por 79137913
Programación Visual Basic
79137913 5 14,102 Último mensaje 21 Enero 2013, 18:58 pm
por 79137913
Zona de retos Scripting « 1 2 3 »
Scripting
Eleкtro 23 54,118 Último mensaje 20 Enero 2014, 19:16 pm
por Eleкtro
Retos de java « 1 2 »
Java
4dr14n31t0r 10 5,242 Último mensaje 22 Enero 2016, 16:06 pm
por 0xFer
Retos forenses en español?
Dudas Generales
Sapote 0 1,916 Último mensaje 22 Mayo 2017, 02:58 am
por Sapote
Retos(1 - 15) (wardGame) « 1 2 »
Desafíos - Wargames
4A45414E 14 7,190 Último mensaje 10 Noviembre 2018, 03:16 am
por zonahurbana
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines