Criei um programação no DEV C++ onde são criadas 10 matrizes 10x10 referentes aos 1000 LEDS que existem no cubo, preciso fazer um algoritmo para o computador entender que todos os pontos das matrizes são LEDS e que se estão com valor 1 o led tem q ligar e que se estão com valor 0 tem q apagar, me ajudem por favor, isto é urgente. Vou deixar a programação feita no DEV C++ e os prints das matrizes que são criadas com o programa.
#include <stdio.h> // biblioteca padrão de entrada e saída
#include <stdlib.h> // biblioteca padrão
#include <fcntl.h> // biblioteca controle de arquivos para ler a porta serial
#include <conio.h> // Biblioteca para funções como getch() e funções graficas
#include <math.h>
#include<windows.h>
#include <time.h>
//------------------------------------------------------------------------------
//VARIAVEIS
HANDLE hCom;
DCB dcb;
int porta=1; // Ponteiro para porta cerial
char dado[5]; // Variavel para recebimento de dado
char Serial_Port[4]; // Variavel para a seleção da porta a ser utilizada
char SelecionarForma;
char continua;
int matriz[10][10][10]; //DECLARA MATRIZ DE 10 LINHAS E 10 COLUNAS
char send [14];
int i,j,k;
int v1,v2,v3;
int a,b,c,d,r;
//------------------------------------------------------------------------------
//CONFIGURA PORTA SERIAL.
int ConfiguraControle(void)
{
if(!GetCommState(hCom, &dcb))
{
return(0);
}
dcb.BaudRate = CBR_9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
if( SetCommState(hCom, &dcb) == 0 )
{
return(0);
}
return (1);
}
//------------------------------------------------------------------------------
//Abre a Porta Serial COMx
int AbrirPorta(char *NomePorta)
{
hCom = CreateFile(
NomePorta,
GENERIC_READ | GENERIC_WRITE,
0, // dispositivos comm abertos com acesso exclusivo
NULL, // sem atributos de segurança
OPEN_EXISTING, // deve usar OPEN_EXISTING
0, //Entrada e saída sem ovelap.
NULL // hTemplate deve ser NULL para comm
);
if(hCom == INVALID_HANDLE_VALUE)
{
return(0);
}
return (1);
}
//------------------------------------------------------------------------------
//FUNÇÃO DO PLANO
int Plano()
{
printf("Digite os coeficientes do plano \na:");
scanf("%i", &a);
printf("\nb:");
scanf("%i", &b);
printf("\nc:");
scanf("%i", &c);
printf("\nd:");
scanf("%i", &d);
printf("\n\n");
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<10;k++)
{
if( a*i + b*j + c*k + d == 0 )
{
matriz[i][j][k]=1;
printf("1");
}
else
{
matriz[i][j][k]=0;
printf("0");
}
}
printf("\n");
}
printf("\n\n\n");
}
}
//------------------------------------------------------------------------------
//FUNÇÃO DA RETA
void Reta()
{
printf("Digite os coeficientes da reta\na:");
scanf("%i", &a);
printf("\nb:");
scanf("%i", &b);
printf("\nc:");
scanf("%i", &c);
printf("\nv1:");
scanf("%i", &v1);
printf("\nv2:");
scanf("%i", &v2);
printf("\nv3:");
scanf("%i", &v3);
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<10;k++)
{
if( (((i-a)/v1) == ((j-b)/v2)) && (((j-b)/v2) == ((k-c)/v3)) )
{
matriz[i][j][k]=1;
printf("1");
}
else
{
matriz[i][j][k]=0;
printf("0");
}
}
printf("\n");
}
printf("\n\n\n");
}
}
//------------------------------------------------------------------------------
//FUNÇÃO DA ESFERA
void Esfera()
{
printf("Digite o raio da esfera");
printf("\nr:");
scanf("%i", &r);
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<10;k++)
{
if( ( (i*i) + (j*j) + (k*k) ) <= r*r )
{
matriz[i][j][k]=1;
printf("1");
}
else
{
matriz[i][j][k]=0;
printf("0");
}
}
printf("\n");
}
printf("\n\n\n");
}
}
//------------------------------------------------------------------------------
//ROTINA PRINCIPAL
int main(int argc, char *argv[])
{
// Recebe a por5ta que deve conectar
printf("\n\nEntre com o nome da porta a ser utilizada : (EX: COM1,COM2 ...)\n\n");
scanf("%s",Serial_Port);
AbrirPorta(Serial_Port);
ConfiguraControle();
CloseHandle(hCom);
porta = open(Serial_Port, O_RDWR); //abrir porta COMX
// Trata erro na abertura da porta
if (porta == -1)
{
printf("\n\nImpossivel abrir a porta. Ou porta não encontrada!\n\n");
}
else
{
// Se tudo ocorreu nos conformes limpa a tela e escreve o cabeçalho no arquivo
// E informa que a porta selecionada foi conectada com sucesso
system("cls");
printf("\nPorta %s Conectada\n\n",Serial_Port);
}
sleep(1000);
//---------------------MENU DE FUNÇÕES------------------------------------------
do
{
printf("Selecione a forma geometrica desejada" "\n");
SelecionarForma = getche();
if(SelecionarForma=='p')
{
Plano();
}
if(SelecionarForma=='r')
{
Reta();
}
if(SelecionarForma=='e')
{
Esfera();
}
printf("Executar Novamente (s/n)\n\n");
continua = getch();
}
while((continua=='s')||(continua=='S'));
//------------------------------------------------------------------------------
system("PAUSE");
return 0;
}