|
41
|
Programación / Programación C/C++ / Re: RETOS C++
|
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.
|
|
|
42
|
Programación / Programación C/C++ / Re: RETOS C++
|
en: 1 Octubre 2012, 13:20 pm
|
RETO 5 #include <iostream> #include <fstream> using namespace std; int main(int argc,char* argv) { char palabraGenerada[10]; ofstream archivo; archivo.open("diccionario.txt",ofstream::app); for(int x=97;x<=122;x++) { for(int y=97;y<=122;y++) { for(int j=97;j<=122;j++) { for(int z=97;z<=122;z++) { for(int a=97;a<=122;a++) { for(int b=97;b<=122;b++) { for(int m=97;m<=122;m++) { for(int n=97;n<=122;n++) { for(int p=97;p<=122;p++) { archivo << char(x) << char(y) << char(j) << char(z) << char(a) << char(b) << char(m) << char(n) << char(p) << "\n"; } } } } } } } } } return 0; }
RETO 6 (Windows 7) #include <windows.h> int main(int argc,char* argv) { SetCursorPos(0, 780); mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, GetMessageExtraInfo()); SetCursorPos(320,700); mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, GetMessageExtraInfo()); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, GetMessageExtraInfo()); return 0; }
110 puntitos y espero el bonus por ser el primero en el 6 Saludos
|
|
|
43
|
Programación / Programación C/C++ / Re: RETOS C++
|
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 #include <QtGui> #include<QMessageBox> class window : public QMainWindow { Q_OBJECT public: window(); void constructWindow(); public slots: void compruebaSudoku(); private: QLineEdit *numero1,*numero2,*numero3,*numero4,*numero5,*numero6,*numero7,*numero8,*numero9,*numero10, *numero11,*numero12,*numero13,*numero14,*numero15,*numero16; QVBoxLayout *mainLayout; QHBoxLayout *primLayout,*segLayout,*terLayout,*cuarLayout; QPushButton *acceptButton; QWidget *myWindow; QMessageBox *finalizado,*error; };
Window.cpp #include "window.hpp" window::window() { numero1 = new QLineEdit; numero2 = new QLineEdit; numero3 = new QLineEdit; numero4 = new QLineEdit; numero5 = new QLineEdit; numero6 = new QLineEdit; numero7 = new QLineEdit; numero8 = new QLineEdit; numero9 = new QLineEdit; numero10 = new QLineEdit; numero11 = new QLineEdit; numero12 = new QLineEdit; numero13 = new QLineEdit; numero14 = new QLineEdit; numero15 = new QLineEdit; numero16 = new QLineEdit; mainLayout = new QVBoxLayout; primLayout = new QHBoxLayout; segLayout = new QHBoxLayout; terLayout = new QHBoxLayout; cuarLayout = new QHBoxLayout; finalizado = new QMessageBox; error = new QMessageBox; finalizado->setText("Sudoku Finalizado"); error->setText("El sudoku introducido no es valido o no es correcto"); acceptButton = new QPushButton("Aceptar"); myWindow = new QWidget; myWindow->setMaximumSize(200,200); myWindow->setMinimumSize(200,200); myWindow->setWindowTitle("Sudoku 4x4 Overxfl0w"); constructWindow(); QObject::connect(acceptButton,SIGNAL(clicked()),this,SLOT(compruebaSudoku())); myWindow->show(); } void window::constructWindow() { numero2->setText("4"); numero3->setText("2"); numero4->setText("3"); numero5->setText("3"); numero6->setText("2"); numero7->setText("1"); numero8->setText("4"); numero10->setText("3"); numero11->setText("4"); numero15->setText("3"); numero2->setReadOnly(true); numero3->setReadOnly(true); numero4->setReadOnly(true); numero5->setReadOnly(true); numero6->setReadOnly(true); numero7->setReadOnly(true); numero8->setReadOnly(true); numero10->setReadOnly(true); numero11->setReadOnly(true); numero15->setReadOnly(true); primLayout->addWidget(numero1); primLayout->addWidget(numero2); primLayout->addWidget(numero3); primLayout->addWidget(numero4); mainLayout->addLayout(primLayout); segLayout->addWidget(numero5); segLayout->addWidget(numero6); segLayout->addWidget(numero7); segLayout->addWidget(numero8); mainLayout->addLayout(segLayout); terLayout->addWidget(numero9); terLayout->addWidget(numero10); terLayout->addWidget(numero11); terLayout->addWidget(numero12); mainLayout->addLayout(terLayout); cuarLayout->addWidget(numero13); cuarLayout->addWidget(numero14); cuarLayout->addWidget(numero15); cuarLayout->addWidget(numero16); mainLayout->addLayout(cuarLayout); mainLayout->addWidget(acceptButton); myWindow->setLayout(mainLayout); } void window::compruebaSudoku() { if(numero1->text() == "1" && numero12->text() == "1" && numero16->text() == "2" && numero14->text() == "1" && numero9->text() == "2" && numero13->text() == "4") { finalizado->exec(); exit(0); } else error->exec(); }
main.cpp #include "window.hpp" int main(int argc, char *argv[]) { QApplication app(argc, argv); window window; return app.exec(); }
He usado Qt si ves que no puedes compilarlo, te paso el .exe compilado en estático.
|
|
|
45
|
Programación / Programación C/C++ / Re: Ayuda con un programa en lenguaje C if , if else dentro de un if else
|
en: 30 Septiembre 2012, 01:42 am
|
Me he fijado un poco y creo que se donde está el problema, la variable contador se inicializa con un valor 465 en el primer bucle cuando la variable que vale 12 empieza, se ejecuta otro bucle que empieza con valor 0, en la primera vuelta salta el primer else if y al tener valor mayor de 365 se ejecuta la primera asignación, contador = contador - 365 quedándose esta a 0, donde aquí es donde nosotros queremos comprobar el else if que da problemas y nos fijamos en una cosa. En su primera vuelta: if(contador>m[k] && contador==m2[k])
m[k] = 0 m2[k] = 10 contador = 0 Por tanto contador no es mayor que m[k] pero si menor o igual que m2[k], aquí está el problema. No se puede iniciar el condicional sin cumplir los 2 requisitos, eso nos indica el operador and cortocircuitado. Por tanto la condición sería que se ejecutase al cumplirse una de las dos premisas. if(contador>m[k] || contador==m2[k])
No conozco muy bien el objetivo de tu programa pero supongo que ese sería el fallo, suele pasar. Por otro lado te propongo mejorar la indentación es una manía personal y seguramente tu te aclares más de esa manera, pero siempre que hay problemas ayuda a indentificarlos, te dejo el code arreglado . #include<stdio.h> #include <iostream> using namespace std; int main(int argc,char* argv) { int i,k,A=0,m2[]={10,20,30,40,50,60,70,80,90,100,110,120,130}, m[]={0,10,20,30,40,50,60,70,80,90,100,110,120,},contador=375,Md=1; for(k=1;k<12;k++) { for(i=0;i<13;i++) { if(contador>m[k] && contador<=m2[k]) { contador=contador-m[k]; printf("\nEl disco de compresion %i del motor %i fallara el %i/%i/%i por horas",i+1,Md,contador,k+1,A); } if(contador==m[k]) { printf("\nEl disco de compresion %i del motor %i fallara el %i/%i/%i por horas",i+1,Md,1,k+1,A); } if(contador>365) { contador = contador - 365; if(contador>=1 && contador<=31) { printf("\nEl disco de compresion %i del motor %i fallara el %i/%i/%i por horas",i+1,Md,contador,1,A+1); } if (contador==m[k]) { printf("\nEl disco de compresion %i del motor %i fallara el %i/%i/%i por horas",i+1,Md,1,k+1,A+1); } if(contador>m[k] || contador==m2[k])/*<==contador=465-365=10>m[2] y <m2[2k] ==>*/ { contador=contador-m[k]; printf("\nEl disco de compresion %i del motor %i fallara el %i/%i/%i por horas",i+1,Md,contador,k+1,A+1); } } } } return 0; }
|
|
|
46
|
Programación / Programación C/C++ / Re: RETOS C++
|
en: 29 Septiembre 2012, 23:11 pm
|
Ultimo reto #include <stdio.h> #include <stdlib.h> int main() { int n; printf("Entrada: "); scanf("%d", &n); if(n > 0) { char *v = new char[2*n-1]; for(int i=0; i<2*n-1; i++) v[i] = ' '; int i=n-1, j=n-1; while(i >= 0) { v[i--] = '*'; v[j++] = '*'; printf("%s\n", v); } while(i != j) { v[++i] = ' '; v[--j] = ' '; printf("%s\n", v); } } return 0; } }
25 puntitos más bonus
|
|
|
47
|
Programación / Scripting / Re: [Duda] Python 2.7
|
en: 29 Septiembre 2012, 22:24 pm
|
Buenas a todos. Bueno, tengo una duda con python, soy bastante novato con este lenguaje y en momento de aburrimiento me he puesto a escribir un codigo que solicite un usuario y una contraseña, lo que me gustaria saber es como puedo hacer que al escribir la contraseña se cambie por asteriscos (*) para que no se pueda ver la contraseña que escribes, he mirado de buscarlo en google pero no se por donde buscar. Gracias. EDIT:He visto el modulo getpass pero no se si me serviria para lo que lo necesito,necesito introducir la contraseña para esto mailServer.login(" cuenta@correo.com","pass") y, no se si con un input bastaria, y si es asi para eso necesito los asteriscos, no se si me explico. Prueba con esto: import getpass pass = getpass.getpass("Password: ")
|
|
|
48
|
Programación / Programación C/C++ / Re: RETOS C++
|
en: 29 Septiembre 2012, 14:42 pm
|
RETO 10: #include <iostream> using namespace std; int main(int argc,char* argv) { string palabra,invertida=""; cout << "Inserta la palabra a invertir" << endl; cin >> palabra; for(int x = palabra.length()-1;x>=0;x--) { invertida = invertida + palabra[x]; } cout << invertida << endl; return 0; }
RETO 1 #include <iostream> #include <string.h> using namespace std; int main() { char palabra[100]; cin.getline(palabra,100); cout << strlen(palabra) << endl; return 0; }
RETO 2 #include <fstream> #include <iostream> using namespace std; int main(int argc, char* argv) { ifstream archivo("archivo.txt"); string texto; while(!archivo.eof()) { getline(archivo,texto); cout << texto << endl; } archivo.close(); return 0; }
RETO 3 #include <iostream> using namespace std; int main(int argc, char* argv) { int numeros[3]; cout << "Inserta 4 numeros" << endl; cin >> numeros[0] >> numeros[1] >> numeros[2] >> numeros[3]; if(numeros[0] > numeros[1] && numeros[0] > numeros[2] && numeros[0] > numeros[3]) { cout << "El mayor es: " << numeros[0] << endl; } else { if(numeros[1] > numeros[0] && numeros[1] > numeros[2] && numeros[1] > numeros[3]) { cout << "El mayor es: " << numeros[1] << endl; } else { if(numeros[2] > numeros[0] && numeros[2] > numeros[1] && numeros[2] > numeros[3]) { cout << "El mayor es: " << numeros[2] << endl; } else { if(numeros[3] > numeros[0] && numeros[3] > numeros[2] && numeros[3] > numeros[1]) { cout << "El mayor es: " << numeros[3] << endl; } } } } return 0; }
RETO 11 #include <iostream> #include <time.h> using namespace std; int main(int argc,char* argv) { int mesNacimiento,diaNacimiento; time_t fecha; struct tm *datos; time(&fecha); datos = localtime(&fecha); cout << "Inserta el mes y el dia de nacimiento separados por espacio" << endl; cin >> mesNacimiento >> diaNacimiento; if((mesNacimiento - (datos->tm_mon+1)) < 0) { cout << "Los meses que quedan para tu cumplea\xA4os son: " << (mesNacimiento - (datos->tm_mon+1)) + 12 << " los dias: " << ((mesNacimiento-(datos->tm_mon+1)) + 12) * 30 << " y las semanas: " << ((mesNacimiento-(datos->tm_mon+1)) + 12) * 4 << endl; } else { cout << "Los meses que quedan para tu cumplea\xA4os son: " << mesNacimiento - (datos->tm_mon+1) << " los dias: " << (mesNacimiento-(datos->tm_mon+1)) * 30 << " y las semanas: " << (mesNacimiento-(datos->tm_mon+1)) * 4 ; } return 0; }
|
|
|
|
|
|
|