Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
glaukito

C++ Opção sair ou contiuar. como fazer?

Recommended Posts

boa noite!

estou com o seguinte problema:

o programa solicita 2 valores, e pergunta qual é o resultado (a operação matemática é escolhida randomicamente). preciso que após cada resposta o programa pergunte ao usuário se ele quer continuar ou sair.

creio que devo usar um "do", mas não estou sabendo como fazer.

 

desde já grato pela atenção.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
#include <time.h>
#include <conio.h> 
#include <cstdlib>
#include <ctime>

/*Em grupos de até três integrantes, desenvolver um programa em C que um utilizador informe
nome e então escolha 2 números (os operandos) entre 0 e 20. Depois de os mostrar
ao utilizador, pergunte ao utilizador aleatoriamente, o valor do produto, da adição, da multiplicação,
da subtração, ou da divisão. Ao fim de N tentativas ou do utilizador informar que deseja sair do programa,
o computador indicar o número de vezes que o utilizador acertou o resultado e o número de vezes que errou o resultado.

Algumas exigências mínimas que devem compor o trabalho:

O programa ao iniciar deve perguntar o nome do usuário; ok
O programa deve pedir que o usuário digite dois valores; ok
O programa deve perguntar ao utilizador aleatoriamente o valor do produto, da adição, da multiplicação, da subtração, ou da divisão dos dois valores informados. ok
Ao final de cada tentativa o usuário deve ser perguntado se deseja tentar novamente ou sair do programa
Se o usuário informar que deseja continuar o programa repete todos os passos após a pergunta do nome.
Se o usuário informar sair, o programa deve o computador indicar o número de vezes que o utilizador acertou o resultado e o número de vezes que errou o resultado.
Caso o usuário não queria sair, ao final de N vezes (a escolha dos desenvolvedores) o programa deve encerrar e indicar o número de vezes que o utilizador acertou o resultado e o número de vezes que errou o resultado.
O desenvolvedor deve utilizar o máximo de conteúdo aprendido na disciplina (IF, ELSE, WHILE, DO WHILE, FOR, FUNÇÕES, VETORES e MATRIZES ...)*/

float calc (float num1, float num2){
	
	int op;
	float result, respUsu;
	
	srand(time(NULL));
    op= (rand() % 3)+1;
	
	switch (op){

		case 1:
			
			printf ("qual é o resultado da soma dos valores? ");
			scanf ("%f", &respUsu);
			
			result= num1+num2;
			
			return result;
			
			break;

		case 2:	
			
			printf ("qual é o resultado da subtração dos valores? ");
			scanf ("%f", &respUsu);
			
			result= num1-num2;
			
			return result;
			
			break;
			
		case 3:	
		
			printf ("qual é o resultado da multiplicação dos valores?");
			scanf ("%f", &respUsu);

			result= num1*num2;
			return result;
			break;
		
		case 4:	
		
			printf ("qual é o resultado da divisão dos valores?");
			scanf ("%f", &respUsu);

			result= num1/num2;
			return result;
				
		default:
			printf ("*****!!!!");		
	}
}
	
int main (void){
	
	setlocale (LC_CTYPE, "Portuguese");
	
	char n=20, nome[n], final;
	float num1, num2, result;
	int i, j, op;
	
	printf ("digite seu nome: ");
	scanf ("%s", &nome);
	
	printf ("digite o primeiro valor: ");
	scanf ("%f", &num1);
	
	printf ("digite o segundo valor: ");
	scanf ("%f", &num2);
	
	for (i=0; i<=100; i++){
		
		result= calc(num1, num2);
	
		printf ("%f\n", result);
		
	}
}

  

  • Obrigado 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@glaukito    é o do / while mesmo , ele seria assim  :

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
#include <time.h>
#include <conio.h> 
#include <cstdlib>
#include <ctime>
#include <ctype.h>

float calc (float num1, float num2){
	
	int op;
        char resp;
	float result, respUsu;
	
	srand(time(NULL));
    do{
        op= (rand() % 3)+1;
	
	switch (op){

		case 1:
			
			printf ("qual é o resultado da soma dos valores? ");
			scanf ("%f", &respUsu);
			
			result= num1+num2;
			
			return result;
			
			break;

		case 2:	
			
			printf ("qual é o resultado da subtração dos valores? ");
			scanf ("%f", &respUsu);
			
			result= num1-num2;
			
			return result;
			
			break;
			
		case 3:	
		
			printf ("qual é o resultado da multiplicação dos valores?");
			scanf ("%f", &respUsu);

			result= num1*num2;
			return result;
			break;
		
		case 4:	
		
			printf ("qual é o resultado da divisão dos valores?");
			scanf ("%f", &respUsu);

			result= num1/num2;
			return result;
				
		default:
			printf ("*****!!!!");		
	}
        printf("Quer Continuar  S/N ");
        scanf("%c",&resp);
    }while(toupper(res) != 'N');
}
	
int main (void){
	
	setlocale (LC_CTYPE, "Portuguese");
	
	char n=20, nome[n], final;
	float num1, num2, result;
	int i, j, op;
	
	printf ("digite seu nome: ");
	scanf ("%s", &nome);
	
	printf ("digite o primeiro valor: ");
	scanf ("%f", &num1);
	
	printf ("digite o segundo valor: ");
	scanf ("%f", &num2);
	
	for (i=0; i<=100; i++){
		
		result= calc(num1, num2);
	
		printf ("%f\n", result);
		
	}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@glaukito Olá. Eu já daria a resposta abaixo. 

Coloquei depois de dada uma resposta. Tal como você falou

Ficou assim:

 

char menu() {

    char resp;

    printf("Quer Continuar? [s/n]: ");
    scanf("%c", &resp);
    limpa_linha();

    return resp;
}

E aí no main faz isso:

do {

    result = calc(num1, num2);

    printf ("%.2f\n", result);

    op = menu();

} while (op != 'n');

Também recomendo, para evitar problemas por ser feitas várias leituras do teclado, usar a função abaixo:

void limpa_linha() {
    scanf("%*[^\n]");
    scanf("%*c");
}

E aí chama essa função após cada scanf. Dessa forma você limpa o stdin, e aí evita q 'sujeira no buffer' atrapalhe as leituras seguintes. Vê se é isso q você quer

 

Também é preciso ajustar o operação que gera de forma aleatória a pergunta. Seria isso:

op = (rand() % 4) + 1;

O comando rand() % 3 vai gerar números 'aleatórios' de 0 a 2, com + 1 ficaria de 1 a 3 (!?)

Seria de 1 a 4!

 

Se quiser passo o código todo, ok?

adicionado 38 minutos depois

@devair1010 Olá. Perceba o seguinte: Você colocou o menu q solicita p o usuário se ele deseja ou não continuar depois da função retornar o resultado da operação. Logo, dessa forma, o fluxo do programa não vai chegar até o menu  :(

 

Editado por giu_d
corrigir comentário
  • Curtir 2
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

-------------------------------------------------------------------

Programação procedural é do bem!

Hoje há uma qualidade que dou atenção de mais 

em  meus códigos, a generalidade; que resulta

na  analise e reusabilidade isso é bom ツ


O professores Allen Downey [no Python],

Donald Knuth um dos maiores gigantes da

programação, se não mais importante na Ciência

da Programação; denunciam os abusos que 

comentemos ao exibir um código muito

específico, e também pouco ou nada literário.

 

Rescrevendo o código, mais literário,

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
#include <time.h>
#include <conio.h>

/* Em grupos de até três integrantes, desenvolver um programa em C
que um utilizador:
  
1) Informe nome e então escolha 2 números(os operandos)
entre 0 e 20.
2) Depois de os mostrar ao utilizador,
3) pergunte ao utilizador aleatoriamente, o valor do produto,
da adição, da multiplicação,da subtração, ou da divisão.
4) Ao fim de N tentativas ou do utilizador informar que deseja sair
do programa;
4.1) o computador indicar o número de vezes que o utilizador
acertou o resultado e o número de vezes que errou o resultado.

Algumas exigências mínimas que devem compor o trabalho:

[✓] O programa ao iniciar deve perguntar o nome do usuário;
[✓] O programa deve pedir que o usuário digite dois valores;
[✓] O programa deve perguntar ao utilizador aleatoriamente o valor
do produto, da adição, da multiplicação, da subtração, ou da
divisão dos dois valores informados;
[ ] Ao final de cada tentativa o usuário deve ser perguntado se
deseja tentar novamente ou sair do programa;
[ ] Se o usuário informar que deseja continuar o programa repete
todos os passos após a pergunta do nome;
[ ] Se o usuário informar sair, o programa deve o computador
indicar o número de vezes que o utilizador acertou o resultado e o
número de vezes que errou o resultado;
[ ] Caso o usuário não queria sair, ao final de N vezes
(a escolha dos desenvolvedores) o programa deve encerrar e indicar
o número de vezes que o utilizador acertou o resultado e o número
de vezes que errou o resultado;
[ ] O desenvolvedor deve utilizar o máximo de conteúdo aprendido na
disciplina (IF, ELSE, WHILE, DO WHILE, FOR, FUNÇÕES, VETORES e
MATRIZES ...); */

/* -------------------------------------------------FUNC_CALCULAR--
 *
 * Realiza as 4- operações básicas da aritmética elementar
 * [somar, subtrair, dividir, multiplicar]
 *
 * Parâmetro
 *    oper_1: float
 *        operando do lado esquerdo da operação
 *    oper_2: float
 *        operando do lado direito da operação
 *    operador: int
 *        símbolo da operação ou Índice{ 1:'+', 2:'-', 3:'*', 4:'/' }
 *
 * Retorna
 *    float
 *    Resultado da operação.
 *
 * Possivéis Erros
 *    Atribuir operandos ou operação invalida.
 */
float func_calcular( float oper_1, float oper_2, int operador )
{/* Realizar operações básicas da matemática */

    float result; /* resultado ou retorno da função */


    /* OPERAÇÃO */
    switch( operador ){

        case 1: case '+': /* SOMAR */
            result= oper_1 + oper_2;
            return result;

        case 2: case '-': /* SUBTRAIR */
            result= oper_1-oper_2;
            return result;

        case 3: case '*': /* MULTIPLICAR */
            result= oper_1 * oper_2;
            return result;

        case 4: case '/': /* DIVIDIR */
            result= oper_1 / oper_2;
            return result;

        default: /* Tratamento de erros */
            printf( "%s\n","Func: Calcular ...");
            printf( "Runtime erro: %s ","Operador Invalido!" );
            exit(EXIT_FAILURE); /* Com erro, finalizar programa */
    }
}

/* ----------------------------------------------------------MAIN--
 *
 * Primeira chamada na arrancando do sistema.
 */
int main ( void )
{/* Função princial */
    setlocale( LC_CTYPE, "Portuguese" ); /* Definir padrões I/O
    Definir padrões de Entrada e Saída */

    char  n= 20, /* É o número de Vezes? */
          nome[120]= {0}, /* Nome do usuário */
          *operacao[]=  { "Operação",
                          "soma",
                          "subtração",
                          "multiplicação",
                          "divisão" }, /* List. Operações */
          final; /* Não sei o que é isso !? */
    float oper_1, /* Operando num1 */
          oper_2, /* Operando num2 */
          result; /* Resposta do usuário */
    int   i, /* Contador i? */
          j, /* Contador j? */
          acertos= 0, /* Núm. de Acertos */
          op;/* Sinal do Operador */


    printf( "Digite seu nome: " );
    scanf( "%s",&nome );


    printf( "Digite o primeiro valor: " );
    scanf( "%f",&oper_1 );

    printf( "digite o segundo valor: " );
    scanf( "%f",&oper_2 );

    srand( time(0) ); /* Semear valor randomizante */
    op= (rand() % 4) + 1; /* Selecionar Operador */

    printf( "\n%s %s %s",
        "Qual é o resultado da",operacao[op],"dos valores?" );
    scanf( "%f",&result );

    /* Testar se respondeu corretamente */
    if( result == func_calcular(oper_1,oper_2,op) ){

        acertos++; /* Adicionar +1 acerto */
    }
    return 0;
    /* Fim do programa */
}

-------------------------------------------------------------------

Na leiguice há esperança, depois que maus

hábitos se consolidam, se torna mais difícil.

 

Alguns programadores são contra, porque gostam

de resumir, principalmente aquilo que para eles é

óbvio não necessita documentar. 

São os péssimos e  prepotentes.

 

 

 

@glaukito

Bons Códigos.

 

Editado por AnsiC
Fazendo do português algo mais legível
  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adendo:

30 minutos atrás, AnsiC disse:

case 1: case '+': /* Operação SOMA *

 

A operação chama-se "adição" :D. Soma está para adição, assim como produto está para multiplicação.

 

Outra coisa, antes da divisão, é necessário verificar se o denominador é diferente de 0, pois o computador não entende essa divisão... lembrando que se o numerador for diferente de 0, não é possível dividir por zero.

 

  • Curtir 1
  • Haha 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@AnsiC

 

48 minutos atrás, AnsiC disse:

@glaukito

Bons Códigos.

 

Também estou vendo isso. E o  cara chegou há pouco tempo aqui!  :thumbsup:

 

Editado por giu_d
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Simon Viegas disse:

A operação chama-se "adição" :D. Soma está para adição, assim como produto está para multiplicação.

Corrigido para "SOMAR" :D ou ou efetuar a operação da "soma"

soma_sinonimo_de_adicao.png

obrigado!

 

 
1 hora atrás, Simon Viegas disse:

Outra coisa, antes da divisão, é necessário verificar se o denominador é diferente de 0, pois o computador não entende essa divisão... lembrando que se o numerador for diferente de 0, não é possível dividir por zero.

@glaukitoOlha o tratamento dos operandos ... Junte também ao limite. Só que no caso do limite [0,20] um novo método, que não func_calcular, caso coloque a verificação dos limites na função de calculo tirará sua generalidade. Isso não é bom; segundo os grandes programadores.

 

 

1 hora atrás, giu_d disse:

Também estou vendo isso. E o  cara chegou há pouco tempo aqui!

E você, deu-lhe boas dicas :thumbsup:

Editado por AnsiC
  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre:

1 hora atrás, AnsiC disse:

Corrigido para SOMAR.

 

Sinônimo é diferente de "necessariamente a mesma coisa". Tem gente que chama "gabinete do computador" de "CPU", por exemplo... nem por isso aquilo é um.

:)

 

Foi apenas reforçar esse engano (senso comum). O nome da operação na matemática é adição mesmo. Soma é o resultado da adição... Ex.: a soma de 2+4 é 6, assim como o produto de 2*4 é 8.

 

Em fim, "soma" é o termo vulgar, que vai acabar significando a mesma coisa, já que "todo mundo entende".

 

Para mim, seria como chamar multiplicação de produto, divisão de quociente, ou subtração de diferença.

 

Outro exemplo:

eficácia.png

 

Seria a eficácia a mesma coisa que a eficiência? rs

 

adicionado 13 minutos depois

Só para reforçar a minha interpretação: é possível chamar de "soma", "junção", "conta de mais" etc, mas o termo matemático é um só: Adição... ou seja, ao se referir "operação", teria que usar adição mesmo. Pelo menos assim entendo.

Editado por Simon Viegas
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas 

5 minutos atrás, Simon Viegas disse:

Para mim, seria como chamar multiplicação de produto, divisão de quociente, ou subtração de diferença.

Para você, e para quem mais? Quem mais faz questão disso!

 

7 minutos atrás, Simon Viegas disse:

Em fim, "soma" é o termo vulgar, que vai acabar significando a mesma coisa, já que "todo mundo entende".

Sou estudante de física de uma boa instituição, com bons Doutores, bons Mestres, nenhum deles fazem tanta distinção de soma e adição da maneira que faz tu. Jamais ocorrerá á homens e mulheres tão inteligentes, atacar coisa tão pequena. Eu sei adição é operação, bem como nós sabemos que soma é seu sinônimo, está nos livros, nos dicionário em toda parte, na fala inclusive na fala do brasileiro. O Brasil é grande, ao contrario de você, para nos outros soma tem mesmo sentido!

 

Sua a língua é viva, como ser vivo também se transforma, e não importa o que achemos dela.

 

 

11 minutos atrás, Simon Viegas disse:

Seria a eficácia a mesma coisa que a eficiência? rs

Não entendi porque responder isso é importante.

 

É Totalmente fora do tema e você na qualidade de moderador deveria saber que é contra as regras do fórum discussões off tópico, seja um moderador melhor. 

 

Não faço questão nenhum de mudar a tua maneria de pensar, 207 bilhões de brasileiros com a vulgar mania de falar estão pouco se lixando da vulgaridade da coisa . Assumo que errei! Nem sei o que significa sinônimo, isso te fará sentir melhor tenho certeza.

 

Tchau, tenho que tomar balho agora!

  • Curtir 1
  • Obrigado 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@glaukito Olá. Gostei do código e resolvi dar um 'tapinha' nele. Só q não está completo, com todas as funcionalidades.

Tem o seguinte ponto no código q notei: Se você escolher os números 5 e 3 (por exemplo) vai ficar difícil verificar se a resposta da divisão está correta. Não deu p identificar o por que do problema ainda

Vou postar o código, mas antes uma observação: Seria importante você entender tudo q está sendo feito no código. Também tem a questão de q no código são feitas várias leituras do teclado, e devido a isso recomendo fazer uso da função limpa_linha com mencionei acima para limpar o stdin.

Segue o código:

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
#include <string.h>

int acertos = 0;

void limpa_linha() {
    scanf("%*[^\n]");
    scanf("%*c");
}

int verificarResposta(float a, float b) {

    char valor1[10], valor2[10];

    sprintf(valor1, "%.2f", a);

    sprintf(valor2, "%.2f", b);

    if (!strcmp(valor1, valor2)) {
        printf("\nAcertou!\n");
        acertos++;
    } else {
        printf("\nErrou!\n");
    }
}

void exibirResposta(float a) {
    printf("\nsua resposta: %.2f\n", a);
}

char menu() {

    char resp;

    printf("deseja continuar? [s/n]: ");
    scanf("%c", &resp);
    limpa_linha();

    return resp;
}

float calc (float num1, float num2) {

    float result, respUsu;
    char op;

    srand(time(NULL));

    op = (rand() % 4) + 1;
 
    switch (op) {

        case 1:
            printf ("resultado da soma dos valores: ");
            scanf ("%f", &respUsu);
            limpa_linha();

            result = num1 + num2;

            verificarResposta(result, respUsu);

            exibirResposta(respUsu);

            return result;
            break;
        case 2:
            printf ("resultado da subtração dos valores: ");
            scanf ("%f", &respUsu);
            limpa_linha();

            result = num1 - num2;

            verificarResposta(result, respUsu);

            exibirResposta(respUsu);

            return result;
            break;
       case 3:
            printf ("resultado da multiplicação dos valores: ");
            scanf ("%f", &respUsu);
            limpa_linha();

            result = num1 * num2;

            verificarResposta(result, respUsu);

            exibirResposta(respUsu);

            return result;
            break;
       case 4:
            printf ("resultado da divisão dos valores: ");
            scanf ("%f", &respUsu);
            limpa_linha();

            result = num1 / num2;

            verificarResposta(result, respUsu);

            exibirResposta(respUsu);

            return result;
            break;
    }
}

int main (void) {

    setlocale (LC_CTYPE, "Portuguese");

    char nome[40];
    float num1, num2, result;
    char op;
    int qtdeResp = 0;

    printf ("digite seu nome: ");
    scanf ("%[^\n]", nome);
    limpa_linha();

    do {
        system("cls");

        do {
            printf ("digite o primeiro valor: ");
            scanf ("%f", &num1);
            limpa_linha();

        } while (num1 > 20 || num1 < 1);

        do {
            printf ("digite o segundo valor: ");
            scanf ("%f", &num2);
            limpa_linha();

        } while (num2 > 20 || num2 < 1);

        printf("\n");

        result = calc(num1, num2);

        printf ("\nresposta correta: %.2f\n\n", result);

        qtdeResp++;

        op = menu();

    } while (op != 'n');

    printf("\nNome do jogador(a): %s\n\n", nome);
    printf("Quantidade de respostas: %d\n\n", qtdeResp);
    printf("Quantidade de acertos: %d\n", acertos);

    return 0;
}

Só q tô achando muita moleza para vocês eu passar o código quase pronto hehe

Abraço!

Editado por giu_d
Correção no código
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

boa noite gente boa!

 

muuuuuito obrigado por todos os comentários, vocês realmente me ajudaram muito.

 

aquele abraço!

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@giu_d

 

última pergunta... o que essa parte do código está fazendo? principalmente essa parte: printf(valor1, "%c.2f", a);

int verificarResposta(float a, float b) {

    char valor1[10], valor2[10];

    sprintf(valor1, "%.2f", a);

    sprintf(valor2, "%.2f", b);
}

 

  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@glaukito Olá. Já esperava q você fosse perguntar isso. Na verdade o q está acontecendo no código é q não tá fechando a comparação de valores com casas decimais para o cálculo da divisão.

Faça o seguinte no código:

printf ("resultado da divisão dos valores: ");
scanf ("%f", &respUsu);
limpa_linha();

result = num1 / num2;

if (respUsu == result) // essa comparação aqui não fecha para o caso do resultado ser 1.25 por exemplo e o usuário digitar 1.25
    printf("Acertou!")
else
    printf("Errou!")

Faça o teste p ver. Não entendi o por quê disso. Mas para contornar esse problema o que eu faço é copiar para uma string o valor formatado de a e o valor formatado de b com duas casas decimais apenas e aí comparar as strings.

Pérai q fiquei sem internet hehe. Deu 'zica' aqui

Creio q o problema é com respeito as casas decimas para o tipo de dado float, que, por padrão, são 6

 

Editado por giu_d
corrigir comentário
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×