Códigos a traspasar desde C a Visual Basic

Tengo un pequeño gran problema
Necesito pasar este código de c a visual basic pero ay algunas cosas que no se como representarlas en VB.
#include <stdio.h>
enum bool {FALSE, TRUE};
typedef enum bool boolean;
void ensayar(int i, boolean *q, int col[], boolean fila[], boolean diagb[], boolean diagc[]);
int main(void)
{
int i;
boolean q;
int col[8];
boolean fila[8],diagb[15], diagc[15];
for (i = 0; i < 8; i++) fila = TRUE;
for (i = 0; i < 15; i++) diagb = diagc = TRUE;
ensayar(0,&q,col,fila,diagb,diagc);
if (q) {
printf("
Solucion:");
for (i = 0; i < 8; i++) printf(" %d", col);
} else printf("
No hay solucion");
return 0;
}
void ensayar(int i, boolean *q, int col[], boolean fila[], boolean diagb[], boolean diagc[])
{
int j;
j = 0;
*q = FALSE;
do {
if (fila[j] && diagb[i+j] && diagc[7+i-j]) {
col = j; fila[j] = diagb[i+j] = diagc[7+i-j] = FALSE;
if (i < 7) { /* encuentra solucion? */
ensayar(i+1,q,col,fila,diagb,diagc);
if (!*q)
fila[j] = diagb[i+j] = diagc[7+i-j] = TRUE;
} else *q = TRUE; /* encuentra la solucion */
}
j++;
} while (!*q && j < 8);
}
Me puedes ayudar a descifrar este código perteneciente al problema de las 8 reinas

1 respuesta

Respuesta
1
Empecemos:
void ensayar(int i, ...
lo puedes cambiar por:
sub ensayar(i as integer, ...
*q
esto es algo mas complejo puesto que es un puntero, pero en este programa se utiliza para poder cambiar el valor de la variable q que se pasa por parametros, lo unico que tienes que hacer es indicar lo siguiente en la declaración de la función:
sub ensayar(i as integer, byref q as boolean, ...
int = integer
typedef no lo tienes que convertir, simplemente donde ponga boolean utiliza Boolean en Visual Basic.
Indicame exactamente que no entiendes, no te puedo resolver el problema completo por que no tengo mucho tiempo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas