Ir ao conteúdo
  • Cadastre-se

C Filas de prioridade em C Trab Impossivel :(


Posts recomendados

5 minutos atrás, arfneto disse:

 

Eis o que acontece: o gcc não implementa timespec_get() e não tem essa constante, que vale 1...

 

O caminho curto é pegar a versão do seu enunciado e corrigir para ficar como essa que é melhor, eu acho. Vou ver se tem aqui... Um minuto

Teria que executar no Linux com o makefile?

 

Link para o comentário
Compartilhar em outros sites

20 minutos atrás, arfneto disse:

image.png.2000121e65b09923b973bd260003d2a3.png

 

por exemplo...

 

 

adicionado 2 minutos depois

 

E no seu código original você tem uma versão de clock_gettime() que compila no Windows? 

N, justamente essa parte que a gente n fez ainda porque realmente n tem no windows mas se no Linux o que você enviou funcionar eu posso tentar rodar ele no Linux tenho uma maquina aqui que tem linux só n sei usar direito mas sei que precisa de um makefile, e eu n achei os arquivos .h no GIT sera que ta faltando eles ou n ?


Estou com o Linux aqui tentei testar o programa no Linux e ele fla que n encontra o diretorio do windows.h creio que so exista no windows mas no windows n existe a funca do clock_gettime() n sei o que eu faço agr kkkkk

 

Link para o comentário
Compartilhar em outros sites

15 minutos atrás, Gabriel Tellaroli Ramos disse:

N, justamente essa parte que a gente n fez ainda porque realmente n tem no windows mas se no Linux o que você enviou funcionar eu posso tentar rodar ele no Linux tenho uma maquina aqui que tem linux só n sei usar direito mas sei que precisa de um makefile, e eu n achei os arquivos .h no GIT sera que ta faltando eles ou n

 

Mas o que eu escrevi roda sem problemas no windows. Se eu te mandar o executavel vai rodar ai. O problema é o gcc . Deixe ver no 8.20 se compila 

 

Como so tem um programa nao precisa de makefile.  basta usar gcc -o

Link para o comentário
Compartilhar em outros sites

7 minutos atrás, arfneto disse:

 

Mas o que eu escrevi roda sem problemas no windows. Se eu te mandar o executavel vai rodar ai. O problema é o gcc . Deixe ver no 8.20 se compila 

 

Como so tem um programa nao precisa de makefile.  basta usar gcc -o

S estou usando apenas o gcc -o e da esse erro do diretorio , vou tentar baixar essa versão do gcc mais atualizada porque daquele jeito selecionando o gcc++17 ou o gcc++11 n funcionou


EDIT:
Testei num compilador online e ele da esse erro de n achar o diretorio do windows.h também :)

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

@Gabriel Tellaroli Ramos Você está ciente de que seu professor está consultando nosso fórum para saber se o aluno copiou o pediu ajuda certo?

 

Em momento algum do tópico você apresentou um código. Sendo assim, qualquer um que postar um código aqui, sem ao menos você ter tentado primeiro, será apagado. Pois não permitimos respostas prontas.

 

Tente fazer seu trabalho e poste a SUA tentativa, e não código pronto do github como andaram postando aqui.

Link para o comentário
Compartilhar em outros sites

1 minuto atrás, DiF disse:

@Gabriel Tellaroli Ramos Você está ciente de que seu professor está consultando nosso fórum para saber se o aluno copiou o pediu ajuda certo?

 

Em momento algum do tópico você apresentou um código. Sendo assim, qualquer um que postar um código aqui, sem ao menos você ter tentado primeiro, será apagado. Pois não permitimos respostas prontas.

 

Tente fazer seu trabalho e poste a SUA tentativa, e não código pronto do github como andaram postando aqui.

Oi amigo estou tentando fazer o trab aqui se for preciso posto meu codigo sem problemas e outra o codigo que ele postou esta me ajudando a realizar o trabalho tanto que eu nem to conseguindo rodar o codigo no meu pc como voce pode observar, e acredito que n tenha problema nenhum o professor esta vendo pois estou pedindo ajuda como qualquer um que precisa ao fazer algo que n aprendeu ;) 

Segue meus codigos:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include "engine.h"
#include    "malloc.h"


char eventos_nome[9][24] =  {"Colisao", "Atualizacao tela", "Particulas",
                             "Logica do Jogo", "Teclado", "Inteligencia Artificial", "Mouse", "Simulacao Fisica",  "Internet"
                            };

int controlador = 0;

void inserir_infos(fila_prio * fp, int qnt_tempo)
{
    free(fp);
    srand((unsigned)time(NULL));
    int num_aleatorio;
    fp->tam = 0;
    for (int v = 1; v <= qnt_tempo; v++ )
    {
        printf("\nTempo #%d \n\n",v);
        int girar = rand() % 20;
        printf("Eventos gerados (%d):\n", girar);
        for (int i = 0; i < girar ; i++)
        {

            num_aleatorio = rand() % 9;
             /*fp->info[i].prioridade = ranking_prioridade(num_aleatorio);
             fp->info[i].grupo = ranking_grupo(num_aleatorio);
            //strcpy(fp[i].grupo, ranking_grupo(num_aleatorio));
             strcpy(fp->info[i].evento, eventos_nome[num_aleatorio]);
             fp->info[i].momento = i;
            fp->tam++;*/
            ajusta_fila(fp, num_aleatorio, i);
            //fp->info[i].momento = i;
            printf("Nome: %s | Prioridade : %d |Grupo : %c |Ordem : %d \n", eventos_nome[num_aleatorio], ranking_prioridade(num_aleatorio), ranking_grupo(num_aleatorio), i);

            //arrumar_infos(fp, )
        }
        //qsort(fp, girar, sizeof(fila_prio*), compara_eventos);
        printf("\nEventos Atendidos: \n");
        for (int i = 0; i < fp->tam ; i++)
        {
            printf("Nome: %s |Prioridade : %d |Grupo : %c |Ordem : %d\n", fp->info[i].evento, fp->info[i].prioridade, fp->info[i].grupo, fp->info[i].momento);
        }
        fp->tam = 0;
        free(fp);
    }
}

void Quick(fila_prio * fp, fila_prio * auxiliar, int inicio, int fim)
{

    int aux, i, j, meio;

    i = inicio;
    j = fim;

    meio = (int) ((i + j) / 2);
    //auxiliar->info = fp->info[meio];

    do
    {
        while ( (fp->info[i].grupo < fp->info[meio].grupo && fp->info[i].grupo == 97) || ( ( (fp->info[i].grupo == fp->info[meio].grupo) || (fp->info[i].grupo > 97) ) && (fp->info[i].prioridade < fp->info[meio].prioridade) )  )
        {
            printf("Prioridade : %d | Grupo : %c  |--------------| Prioridade : %d | Grupo : %c \n", fp->info[i].prioridade, fp->info[i].grupo, fp->info[meio].prioridade, fp->info[meio].grupo);
            i = i + 1; // maior
        }
        while ( fp->info[meio].grupo == 97 && (fp->info[j].grupo > fp->info[meio].grupo ) || ( ((fp->info[j].grupo == fp->info[meio].grupo) || (fp->info[j].grupo > 97)) && (fp->info[j].prioridade > fp->info[meio].prioridade) )  )
        {
            printf("Prioridade : %d | Grupo : %c  |--------------| Prioridade : %d | Grupo : %c \n", fp->info[i].prioridade, fp->info[i].grupo, fp->info[meio].prioridade, fp->info[meio].grupo);
            j = j - 1; // menor
        }

        if(i <= j)
        {
            auxiliar->info[0] = fp->info[i];
            fp->info[i] = fp->info[j];
            fp->info[j] = auxiliar->info[0];
            i = i + 1;
            j = j - 1;
        }
    }
    while(j > i);

    if(inicio < j)
        Quick(fp, auxiliar, inicio, j);
    if(i < fim)
        Quick(fp, auxiliar, i, fim);


}


void ajusta_fila(fila_prio * fp, int j, int x)
{
    int i = fp->tam-1;

    while ((i >= 0 && ranking_prioridade(j) < fp->info[i].prioridade && fp->info[i].grupo != 'a' && ranking_grupo(j) != 'a') || (i >= 0 && fp->info[i].grupo != 'a' && ranking_grupo(j) == 'a') || (i >= 0 && ranking_prioridade(j) < fp->info[i].prioridade && fp->info[i].grupo != 'a' && ranking_grupo(j) == 'a') || (i >= 0 && ranking_prioridade(j) < fp->info[i].prioridade && fp->info[i].grupo == 'a' && ranking_grupo(j) == 'a') || (i >= 0 && ranking_prioridade(j) == fp->info[i].prioridade && fp->info[i].grupo != 'a' && ranking_grupo(j) != 'a' && fp->info[i].momento > x) ) //|| (i >= 0 && fp->info[i].prioridade > ranking_prioridade(j) && fp->info[i].grupo != 'a' && ranking_grupo(j) == 'a' ))
    // while ( (fp->info[i].grupo < fp->info[meio].grupo && fp->info[i].grupo == 97) || ( ( (fp->info[i].grupo == fp->info[meio].grupo) || (fp->info[i].grupo > 97) ) && (fp->info[i].prioridade < fp->info[meio].prioridade) )  )
    {
        fp->info[i+1] = fp->info[i];
        i--;
    }

    strcpy(fp->info[i+1].evento, eventos_nome[j]);
    fp->info[i+1].grupo = ranking_grupo(j);
    fp->info[i+1].prioridade = ranking_prioridade(j);
    fp->info[i+1].momento = x;
    fp->tam++;
    }

void listar_FilaPrio(fila_prio * fp)
{
    printf("Tamanho %d \n",fp->tam);
    for (int i = 0; i <= sizeof(fp) ; i++)
    {
        printf("Nome: %s | Prioridade : %d | Grupo : %c \n", fp->info[i].evento, fp->info[i].prioridade, fp->info[i].grupo);
    }
}

int ranking_prioridade(int num)
{
    switch(num)
    {
    case 0:
    case 3:
    case 4:
        return 0;
        break;
    case 1:
    case 5:
    case 6:
        return 1;
        break;
    case 2:
    case 7:
    case 8:
        return 2;
        break;
    }
    return -1;
}

char ranking_grupo(int valor_at)
{
    //int indice = strcspn(eventos_nome, fp[valor_array].evento);
    //printf("%d e %d -> ",valor_array, valor_at);
    switch(valor_at)
    {
    case 0:
    case 1:
    case 2:
        //fp[valor_array].grupo = 'a';
        //printf("A");
        return 'a';
        break;
    case 3:
    case 5:
    case 7:
        //printf("B");
        // fp[valor_array].grupo = 'b';
        return 'b';
        break;
    case 4:
    case 6:
    case 8:
        // printf("C");
        // fp[valor_array].grupo = 'c';
        return 'c';
        break;
    }
    return -1;
}
#include	<stdio.h>
#include	<stdlib.h>
#include	<string.h>
#include    "malloc.h"
#include	"engine.h"


int	main(int argc, char** argv)
{

    fila_prio * fp[100];
    fila_prio * auxiliar[100];
    int op;
    int valor_roda;
    char nome_string[30];

    do {
        printf("\n\n\tLISTA ORDENADA\n");
        printf("\t<1> Inserir\n");
        printf("\t<4> Imprimir\n");
        printf("\t<0> Sair do programa\n");
        printf("\tOpcao: ");
        scanf("%d", &op);
        switch (op) {
            case 1:
                printf("\tFatias de tempo :");
                scanf("%d", &valor_roda);
                inserir_infos(fp, valor_roda);
                    break;
            case 4: printf("\n\tConteudo da lista: ");
                    listar_FilaPrio(fp);
                    break;
            case 0: break;
            default: printf("\n\tOpcao invalida!\n");
        }
    } while (op != 0);
	return 0;
}	// end main()
	// end testa_rotina()
#ifndef ENGINE_H_INCLUDED
#define ENGINE_H_INCLUDED

#include	<stdio.h>
#include	<stdlib.h>
#include	<string.h>
#include <time.h>
#define MAX 100


typedef struct fpa_info
{
    char evento[21]; // nome do evento
    char grupo; // 'a', 'b' ou 'c'
    int prioridade; // 0: alta, 1: média, 2: baixa
    int momento;
    unsigned long timestamp; // tempo em nanosegundos
} fpa_info;

typedef struct
{
    int tam;
    struct fpa_info info[MAX];
} fila_prio;


void inserir_infos(fila_prio *, int);
void ajusta_fila(fila_prio *, int, int);
int ranking_prioridade(int);
char ranking_grupo(int);


#endif // ENGINE_H_INCLUDED


 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

entendo. tem uma situação curiosa aqui: o gcc no windows não compila as rotinas de manipulação da console, funções básicas da API em windows.h. Ok. Basta apagar aquilo. Mas o gcc não oferece clock_gettime() e não aceita timespec_get() que seria o equivalente no Windows. Então fica difícil :)

 

Se for para o Linux aí deve rodar apenas apagando o conteudo de cls(); e usando clock_gettime no lugar de timespec_get() na linha 139

Link para o comentário
Compartilhar em outros sites

6 minutos atrás, arfneto disse:

entendo. tem uma situação curiosa aqui: o gcc no windows não compila as rotinas de manipulação da console, funções básicas da API em windows.h. Ok. Basta apagar aquilo. Mas o gcc não oferece clock_gettime() e não aceita timespec_get() que seria o equivalente no Windows. Então fica difícil :)

 

Se for para o Linux aí deve rodar apenas apagando o conteudo de cls(); e usando clock_gettime no lugar de timespec_get() na linha 139

Esse codigo que eu postei aparentemente consegue resolver o trab, se você puder testar ele também, eu e meu grupo estamos testando aqui e esta funcionando.

obs: selecionar (1) inserir e informar as fatias de tempo:

Irei testar o seu no linux fazendo essa alteração pra ve se funciona ;)

Edit:
Testei o seu aqui e aparetemente ele funcionou mas esta dando um erro de segmentação a partir da Terceira fatia de tempo ;)

Link para o comentário
Compartilhar em outros sites

12 minutos atrás, Gabriel Tellaroli Ramos disse:

Esse codigo que eu postei aparentemente consegue resolver o trab, se você puder testar ele também, eu e meu grupo estamos testando aqui e esta funcionando.

obs: selecionar (1) inserir e informar as fatias de tempo:

Irei testar o seu no linux fazendo essa alteração pra ve se funciona ;)

Edit:
Testei o seu aqui e aparetemente ele funcionou mas esta dando um erro de segmentação a partir da Terceira fatia de tempo ;)

 

Pois é. No windows roda com 60 intervalos e os mesmos vetores... Precisa testar

Eu abri o WSL aqui para compilar no Linux

Vou ver esse seu código. mas como compilou clock_gettime()?

adicionado 1 minuto depois

image.png.7b1fdef2879aef4b299441386c19add5.png

 

Eu já tinha testado sem a pausa e com um número ignorante de eventos. O normal para isso dar pau é a alocação e liberação de memória porque aloca muitas coisas. E aí dá pau logo no início.

 

MAs não testei assim muito

Link para o comentário
Compartilhar em outros sites

agora, arfneto disse:

 

Pois é. No windows roda com 60 intervalos e os mesmos vetores... Precisa testar

Eu abri o WSL aqui para compilar no Linux

Vou ver esse seu código. mas como compilou clock_gettime()?

N, na vdd fizemos de maneira que n precisa pegar o tempo em que foi gerado pois ele vai armazenar no vetor conforme vai sendo gerado então atribuímos um contador para verificar a posição em que ele foi gerado e verificamos a partir dai...

Link para o comentário
Compartilhar em outros sites

image.png.60251c6be23d20069920fddd989b9e55.png

 

Mas eu tinha rodado com 1000 ciclos. Sem pausa é claro :) 

adicionado 3 minutos depois
agora, Gabriel Tellaroli Ramos disse:

N, na vdd fizemos de maneira que n precisa pegar o tempo em que foi gerado pois ele vai armazenar no vetor conforme vai sendo gerado então atribuímos um contador para verificar a posição em que ele foi gerado e verificamos a partir dai...

 

Sim. É assim na prática. como o cara que pega uma senha na entrada do sistema. O timestamp está lá mas para auditoria. Eu ia deixar assim inicialmente mas deixei mais parecido com o enunciado e mudei só o formato para pareer um timestamp de verdade, com as frações de segundo e tal. 

 

Basta trocar a declaração do Evento e usar um static int como acumulador e colocar o valor depois da data e vai tudo rodar, mas aí é desistir :) 

Link para o comentário
Compartilhar em outros sites

7 minutos atrás, arfneto disse:

image.png.60251c6be23d20069920fddd989b9e55.png

 

Mas eu tinha rodado com 1000 ciclos. Sem pausa é claro :) 

adicionado 3 minutos depois

 

Sim. É assim na prática. como o cara que pega uma senha na entrada do sistema. O timestamp está lá mas para auditoria. Eu ia deixar assim inicialmente mas deixei mais parecido com o enunciado e mudei só o formato para pareer um timestamp de verdade, com as frações de segundo e tal. 

 

Basta trocar a declaração do Evento e usar um static int como acumulador e colocar o valor depois da data e vai tudo rodar, mas aí é desistir :) 

Kkkkk é então a maneira que a gente encontrou foi essa meio que foi um improviso mas esta funcionando.

você chegou a testar o meu codigo? Funcionou ? O que você acha ?

adicionado 0 minutos depois

@arfneto Makefile.txt
Esse seria o makefile ??? 

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, Gabriel Tellaroli Ramos disse:

Kkkkk é então a maneira que a gente encontrou foi essa meio que foi um improviso mas esta funcionando.

você chegou a testar o meu codigo? Funcionou ? O que você acha ?

adicionado 0 minutos depois

@arfneto Makefile.txt
Esse seria o makefile ??? 

 

Serio que você mandou um anexo txt de 5 linhas para eu abrir em outro programa ?

 

Pode ser assim, mas não precisa. Só tem uma linha afinal. Mas se o enunciado pede assim está bem. Não deixe de testar. apenas tecle make -n e ele mostra o que faria e você testa 


char* get_time(char* timestamp)
{
	static int fracao = 1000;
	time_t agora_mesmo  =time(&agora_mesmo);
	struct tm* tabela = localtime(&agora_mesmo);
	char dmahms[50];
	strftime(dmahms, sizeof(dmahms), "%y/%m/%d %H:%M:%S", tabela);
	sprintf(timestamp, "%s.%d", dmahms, fracao);
	fracao += 1;
	return timestamp;
};	// get_time()

 

Usando essa versão pode rodar no infeliz do gcc o programa original
 

image.thumb.png.dec8a5554b8c33a752b23f304c3fadba.png

 

Não muda muito mas não gosto de perder. Deve ter um substituto para clock_gettime() no gcc no windows ou uma combinação que permita compilar.... 

 

Vou rodar o outro aqui...

 

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, arfneto disse:

 

Serio que você mandou um anexo txt de 5 linhas para eu abrir em outro programa ?

 

Pode ser assim, mas não precisa. Só tem uma linha afinal. Mas se o enunciado pede assim está bem. Não deixe de testar. apenas tecle make -n e ele mostra o que faria e você testa 



char* get_time(char* timestamp)
{
	static int fracao = 1000;
	time_t agora_mesmo  =time(&agora_mesmo);
	struct tm* tabela = localtime(&agora_mesmo);
	char dmahms[50];
	strftime(dmahms, sizeof(dmahms), "%y/%m/%d %H:%M:%S", tabela);
	sprintf(timestamp, "%s.%d", dmahms, fracao);
	fracao += 1;
	return timestamp;
};	// get_time()

 

Usando essa versão pode rodar no infeliz do gcc o programa original
 

image.thumb.png.dec8a5554b8c33a752b23f304c3fadba.png

 

Não muda muito mas não gosto de perder. Deve ter um substituto para clock_gettime() no gcc no windows ou uma combinação que permita compilar.... 

 

Vou rodar o outro aqui...

 

Perdão pelo anexo kkkkk é costume, n cheguei a testar o make file porque estou desenvolvendo no windows mesmo mas acredito que esteja funcionando, eu acho ruim o professor cobrar algo que n funcione no windows quando a maioria se n todos os alunos usam o windows.

Link para o comentário
Compartilhar em outros sites

7 minutos atrás, Gabriel Tellaroli Ramos disse:

Perdão pelo anexo kkkkk é costume, n cheguei a testar o make file porque estou desenvolvendo no windows mesmo mas acredito que esteja funcionando, eu acho ruim o professor cobrar algo que n funcione no windows quando a maioria se n todos os alunos usam o windows

 

Não é que não funcione no windows. Apenas o gcc portado para Windows tem problemas com isso que a gente não conseguiu resolver e tem centenas de posts relcamando disso desde antes de 2010 pelos foruns na internet. 

 

Viu como o programa ficou igualzinho sem a clock_gettime()? Apenas a fração do segundo vem de outra fonte

 

Essa tela acima já é da versão que compila no gcc

adicionado 0 minutos depois

Estou tentando montar seu programa. São 3 arquivos?

adicionado 1 minuto depois

mas eu nao achei os limites ainda porque eu tinha juntado tudo

Link para o comentário
Compartilhar em outros sites

6 minutos atrás, arfneto disse:

 

Não é que não funcione no windows. Apenas o gcc portado para Windows tem problemas com isso que a gente não conseguiu resolver e tem centenas de posts relcamando disso desde antes de 2010 pelos foruns na internet. 

 

Viu como o programa ficou igualzinho sem a clock_gettime()? Apenas a fração do segundo vem de outra fonte

 

Essa tela acima já é da versão que compila no gcc

Estou tentando testar o makefile mas n consigo a principio ele esta correto né??

 

adicionado 9 minutos depois
15 minutos atrás, arfneto disse:

 

Não é que não funcione no windows. Apenas o gcc portado para Windows tem problemas com isso que a gente não conseguiu resolver e tem centenas de posts relcamando disso desde antes de 2010 pelos foruns na internet. 

 

Viu como o programa ficou igualzinho sem a clock_gettime()? Apenas a fração do segundo vem de outra fonte

 

Essa tela acima já é da versão que compila no gcc

adicionado 0 minutos depois

Estou tentando montar seu programa. São 3 arquivos?

adicionado 1 minuto depois

mas eu nao achei os limites ainda porque eu tinha juntado tudo

S são 3 arquivos :

engine.c
engine.h
main.c

Link para o comentário
Compartilhar em outros sites

parece que sim

 

em geral você escreve resumido, tipo .c .o com uns atalhos e isso se aplica a todos os arquivos. Mas para esse caso você pode escrever assim mesmo.

Para testar isso você só vai fazendo as coisas normais e roda make -n para ver o que ele faria...

Veja que se você está contando com um engine.exe ou um engine no final ele deve aparecer de algum modo certo?

 

engine: main.o engine.o
  cc -o engine main.o engine.o

 

engine.o: engine.c engine.h

  cc -c engine.c 

 

main.o: main.c engine.h engine.c

    cc -c main.c

 

algo assim

 

Ainda não consegui rodar o programa em meu computador. erro de parametros em fila_prio()

 

Você programou um quicksort() de novo? Não confiou nos caras?

 

adicionado 1 minuto depois

quanto  você altera o header por exemplo o make tem que gerar tudo de novo

quando você altera um .o tem que chamar o linker

e por ai vai

adicionado 2 minutos depois

meu programa rodou com o gcc no windows com a nova rotina :) 

vamos ver no linux

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, arfneto disse:

parece que sim

 

em geral você escreve resumido, tipo .c .o com uns atalhos e isso se aplica a todos os arquivos. Mas para esse caso você pode escrever assim mesmo.

Para testar isso você só vai fazendo as coisas normais e roda make -n para ver o que ele faria...

Veja que se você está contando com um engine.exe ou um engine no final ele deve aparecer de algum modo certo?

 

engine: main.o engine.o
  cc -o engine main.o engine.o

 

engine.o: engine.c engine.h

  cc -c engine.c 

 

main.o: main.c engine.h engine.c

    cc -c main.c

 

algo assim

 

Ainda não consegui rodar o programa em meu computador. erro de parametros em fila_prio()

 

Você programou um quicksort() de novo? Não confiou nos caras?

 

adicionado 1 minuto depois

quanto  você altera o header por exemplo o make tem que gerar tudo de novo

quando você altera um .o tem que chamar o linker

e por ai vai

N etendi mt bem, mas ja enviei tudo espero só n tirar 0 kkkk porque realmente fiquei um tempão pra conseguir resolver eu e meu amigo no caso né, e vou tentar dormir um pouco agr porque amanha(hoje no caso) ainda tenho que acordar cedo kkkkkkkk Obrigado pela atenção mais uma vez sou mt grato ;) Boa Noite

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!