Autor
|
Tema: C++ QR Code (Leído 13,309 veces)
|
lukaszg_15
Desconectado
Mensajes: 26
|
Estaudiando c++ me he encontrado con un problema que desconocia que se podia hacer es este : El código QR (abreviatura de Quick Response Code) fue creado en 1994 por una filial japonesa de Toyota que fabrica componentes de automóviles. Estos códigos permiten almacenar información sobre un producto codificándola en un cuadrado de NxN con píxeles que pueden ser blancos o negros. En su formato más pequeño, los códigos tienen 21x21 píxeles (versión 1), y en la Fundamentos de la Programación – Cuaderno de trabajo 6 4 más grande 177x177 (versión 40). Programe en C una aplicación que genere aleatoriamente códigos QR versión 1 y los muestre por pantalla utilizando, por ejemplo, asteriscos. Nota: utilice la función rand() de la biblioteca de C para generar los números aleatorios. Sé lo que es un odigo qr pero desconozco como se hace he buscado por internet pero solo salen paginas para descargar bibliotecas o algo asi, me encantaria poder averiguar como se hace eso, si alguno sabe de alguna pagina que explique esto o si me podriais explicar el ejercicio lo agradeceria mucho.
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
Te están pidiendo, simplemente, que generes matrices aleatorias de 21x21 con 0 y 1.
los 0 los representas con huecos y los 1 con asteriscos.
|
|
|
En línea
|
|
|
|
lukaszg_15
Desconectado
Mensajes: 26
|
aha me quedo mas tranquilo hehe, bueno conseguí hacer esto y me sale lo que quiero pero no sé como hacer para que los 1 sean asteriscos y los 0 espacios : #include<iostream> #include<iomanip> #include<stdlib.h> #include<time.h> using namespace std; int main ( ) { int qr[21]; int num,c; srand(time(NULL)); for(int i=0;i<=21;i++){ for(int c=0;c<=21;c++) { num=rand()%(1+1); cout<<"QR["<< i << "]["<< c <<"]["<< num <<"]"<<endl;}} system("pause"); return 0; }
|
|
|
En línea
|
|
|
|
engel lex
|
-error... esa matriz es de 22x22 -creas un "qr[21]" es entero (se supone que vas a guardar asteriscos y espacios) -nunca colocas nada en qr[21] -nunca imprimes la matriz, simplemente botas todo en vertical -por que usas rand()%(1+1), en lugar de rand()%2? -para que tantas librerias? solo necesitas una...
para escribir asteriscos en lugar de 1 y 0 usa if... arregla el resto...
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
lukaszg_15
Desconectado
Mensajes: 26
|
aha he arreglado algunos errores y he hecho un par de cosas que no se si estan bien pero no tengo ni idea de como convertir un 0 o un 1 en un asterisco o espacio, os dejo como lo he editado pero no se si esta bien y si ya me imprime la matriz, #include<iostream> using namespace std; int main ( ) { char qr[21][21]; int num,c,i; srand(time(NULL)); for(i=0;i < 21;i++){ for(c=0;c < 21;c++) { num=rand()%(2); qr[i][c] == num; cout<<"QR["<< i << "]["<< c <<"] = ["<< num <<"]" <<endl; }} system("pause"); return 0; }
|
|
« Última modificación: 30 Marzo 2014, 15:47 pm por lukaszg_15 »
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
#include<iostream> using namespace std; int main ( ) { char qr[21][21]; int num,c,i; srand(time(NULL)); for(i=0;i < 21;i++){ for(c=0;c < 21;c++) { num=rand()%(2); qr[i][c] == num; cout<<"QR["<< i << "]["<< c <<"] = ["<< (char)(num==0?'*':num==1?' ':num) <<"]" <<endl; }} system("pause"); return 0; }
(char)(num==0?'*':num==1?' ':num) Usando esos 2 operadores ternarios encadenados, compruebas en la misma linea si es 1 o 0, e imprimes su respectivo caracter. En caso de que no sea ni 1 ni 0, imprimirá el número que sea. Eso si quieres, lo puedes cambiar a Para que sea seguro que solo imprime asterisco y espacio.
|
|
« Última modificación: 30 Marzo 2014, 16:30 pm por ivancea96 »
|
En línea
|
|
|
|
lukaszg_15
Desconectado
Mensajes: 26
|
wow pedazo truco lo desconocia completamente, ahora me funciona todo perfecto y como quiero.
Muchas gracias a todos así da gusto estudiar, que aprendo mas aquí que en la uni hehe.
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
Y que tal con un array?? int main ( ) { char *chars = " *"; char qr[21][21]; int num,c,i; for(i=0;i < 21;i++){ for(c=0;c < 21;c++) { qr[i][c] == num; cout<<"QR["<< i << "]["<< c <<"] = ["<< chars[ num ] <<"]" <<endl; }} return 0; }
|
|
|
En línea
|
|
|
|
engel lex
|
lukaszg_15 yo creo que tu presentas eso con el operador "?" sin saber como se usa un if y te reprueban! XD por cierto... por que nadie imprime en horizontal? -.- y para que guardan en un array si no lo usan? D: aqui está formateado y todo #include<iostream> using namespace std; int main ( ) { char qr[21][21]; int num, c, i; cout << ' '; for(i = 0; i < 42; i++) cout << '-'; cout << endl; srand(time(NULL)); for(i = 0; i < 21; i++) { cout << '|'; for(c = 0; c < 21; c++) { num = rand() % (2); qr[i][c] == num; if(qr[i][c]==0){ cout << ' '; }else{ cout << '*'; } cout << ' '; } cout << '|' << endl; } cout << ' '; for(i = 0; i < 42; i++) cout << '-'; cout << endl; system("pause"); return 0; }
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
lukaszg_15
Desconectado
Mensajes: 26
|
teneis raozn puede que este intentando ir rapido hehe la verdad que no se como se usa y paraz que sirve el ? ahi.
Eferion si entendi tu codigo es declarar que vas a usar ' *' y luego llamarlos en el cout, me parece buena idea asi le doy mas uso a los array y queda mas bonito. Gracias por el aporte.
engel me podrias explicar como hiciste para que quede asi? la verdad me gusto muchisimo mas que en horizontal hehe, miro tu codigo pero no veo como lo hiciste para que quedase en filas y columnas, si tienes tiempo me lo podrias explicar? y otra cosa, dices que creo array pero no lo uso, a que te refieres? yo pensaba que lo estaba usando en el for hay algo mas que desconozca?
|
|
|
En línea
|
|
|
|
|
|