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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  LLenado De Matriz QR EN C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: LLenado De Matriz QR EN C  (Leído 1,906 veces)
NericSain

Desconectado Desconectado

Mensajes: 14


Ver Perfil
LLenado De Matriz QR EN C
« en: 9 Diciembre 2017, 07:49 am »

Hola para todos  :) :) :), hoy tengo muchas dudas y acepto respuestas,propuestas y sugerencias con mucho animo.
mi problema es el sig.
tengo que llenar ciertas partes de una matriz de 21x21 con la información en binario de los datos que ingrese el usuario por pantalla.
mi problema es que no se como hacer lo que en la sig. foto explico mejor:
http://es.zimagez.com/zimage/img201712090001.php

Ahora, en mi programa en c, ya hice la decodifican de los caracteres a decimal, y a binario; es decir, que ya tengo un array por cada carácter con unos y ceros, pero todavía, no se como pasar esa información, a la matriz, que ademas tengo que llenar en un un sentido, como tipo espiral serpiente, mas o menos de esta manera:
http://es.zimagez.com/zimage/qrcd.php

Estoy muy atorado, atareado, molesto,cansado y estezado, por favor ojala alguien me escuche, es un proyecto muy importante, de verdad les agradecería. saludos y help me!!, help me!!! :-\ :-\ :-(

MOD: No escribir todo en mayúsculas.


« Última modificación: 9 Diciembre 2017, 22:56 pm por MCKSys Argentina » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: LLenado De Matriz QR EN C
« Respuesta #1 en: 10 Diciembre 2017, 16:18 pm »

A ver, si el problema se limita a mover un valor a una determinada posición en un array bidimensional... pués es bastante obvio:

Sea z el valor a colocar en la cordenada x,y:
Código:
Array(y,x) = z
Si el array es unidimensional no es mucho más complejo, sabiendo el 'ancho' de la diemsnión...
Código:
Array((y*ancho) + x) = z

La letra P, tiene dos bits a 1, el 64 y el 16, porque 64+16=80, el resto son 0.
Luego quiere decir que necesitas un bucle de 8 ciclos (porque 8 bits tiene  un byte), alojado dentro de otro bucle cuya cantidad de ciclos sean los caracteres.
Así que en pseudocodigo sería algo como:

Código:
entero i, j, k
byte letra

Bucle j por cada letra en Palabra
    i=1
    Bucle para k de 0 a 7
        bit= (letra and i)  //entiendo que si el bit está a 0, se consigna un 0.
        letra /=2      
        llamada a funcion Posicionar(k, bit)
        i +=i // así va tomando valores 1,2,4,8,16...
    Fin bucle
Fin bucle
Tu problema luego se resume en que no hay una única forma d eposicionar en el array... "x" e "y", se modifican de forma diferente a cada caso... luego necesitas una función para cada caso, y posiblemente eso suponga que el bucle externo, no pueda ser un bucle y deba ser código lineal...

Código:
letra= palabra.char(0)
  i=1
  bucle para k de 0 a 7
     bit= (letra and i)  //entiendo que si el bit está a 0, se consigna un 0.
     letra /=2
     llamada a función x001(k,bit)
     i +=i // así va tomando valores 1,2,4,8,16...
  fin bucle

letra= palabra.char(1)
  i=1
  bucle para k de 0 a 7
     bit= (letra and i)  //entiendo que si el bit está a 0, se consigna un 0.
     letra /=2
     llamada a función x002(k,bit)
     i +=i // así va tomando valores 1,2,4,8,16...
  fin bucle

letra= palabra.char(2)
  i=1
  bucle para k de 0 a 7
     bit= (letra and i)  //entiendo que si el bit está a 0, se consigna un 0.
     letra /=2
     llamada a función x003(k,bit)
     i +=i // así va tomando valores 1,2,4,8,16...
  fin bucle
...etc...

Y dichas funciones, como puedes apreciar reciben dos parámetros, el valor del bit y el índice del bit... el índice es necesario para reposicionar el par de cordenadas X e Y, al punto correcto...
Ejemplo para una de ellas:

Código:
entero x, y //declaradas al nivel del módulo, no dentro de una función, pues sus valores deben permanecer inalteradas tras salir de la función.
Funcion PosicionarCuadrante1119(entero indice, entero bit)
    Si (indice=0) luego  //Reset X e Y al inicio del cuadrante
       x= 19
       y= 11
    Sino
       Si (x=20) luego
           x= 19
           y +=1
       Sino
          x +=1   // x= 20
       Fin si
    Fin si

    Array(x,y) = bit
Fin funcion
Como hay diferentes cuadrantes, y cada uno tiene sus propias cordenadas, las diferencias entre cada función se limitan a señalar correctamente los valores X e Y a cada caso...

...resumiendo, nada de otro mundo... nada que con un mínimo de atención pueda conseguir cualquiera...
queda a tu esfuerzo el resto de funciones, la llamada como: "PosicionarCuadrante1119", se aplica al cuadrante que apuntas en la inagen con una llave, más exactamente al cuadrante que comienza en Y=11 y x=19... (de ahí el nombre). Puede haber más cuadrantes que se 'rellenen' del mismo modo, por lo que también queda a tu esfuerzo simplificar el código (esto es, reunir todas las que se rellenan igual en una sola)... y así tendrías solo una función por cada forma distinta de llenar un cuadrante y para todos los cuadrantes que se rellenan igual, se diferenciarían sólo en los valores iniciales de sus cordenadas. Ya está todo dicho...


« Última modificación: 10 Diciembre 2017, 16:37 pm por NEBIRE » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Llenado Combo Dinamico problemas
PHP
eduardsoft 0 2,185 Último mensaje 13 Junio 2007, 01:57 am
por eduardsoft
Aparecer textbox conforme llenado de datos
.NET (C#, VB.NET, ASP)
043h68 4 5,921 Último mensaje 22 Diciembre 2008, 16:54 pm
por 043h68
Problema en llenado de matriz
Scripting
VonN 3 6,428 Último mensaje 7 Julio 2009, 16:39 pm
por Novlucker
Llenado de Datagridview columnas y filas
.NET (C#, VB.NET, ASP)
mgarcia9483 0 2,313 Último mensaje 19 Agosto 2014, 02:57 am
por mgarcia9483
Ayuda! Duda de llenado aleatorio de matriz
Programación C/C++
Kihby 0 1,566 Último mensaje 11 Noviembre 2015, 02:38 am
por Kihby
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines