-
Posts
3.288 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que Ansi C postou
-
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
Não, não, está comentando de outra situação, que não é que se encontra no enunciado do exercício. E sim, penso que a maioria entendeu o que tentou explicar e as diferenças dos diferentes retornos da função. Sim, sim, sabemos o que tem no enunciado para a partir disso racionalizar um programa, ao menos uma solução que funcione num caso específico sem se preocupar se o tal "usuário" vai teclar com bund4 ou bater com teclado na cabeça, ou digitará além do permitido, ou quais enganos de poderiam afetar a resposta, ou quais situações fora do escopo normal de leitura da função fgets. Não, não... eu não preciso que diga nada sobre abrir fluxos ou traga outras complicações para o que já está por demais discutido. Vamos usar redirecionamento na linha de comando, na forma correta, e avaliar o newLine (no padrão Windows). Vejam abaixo, usei um programa dessa discussão e um arquivo digitado com newLine. Resultado 2 letras ou 2 char. Por ora isso é tudo que precisamos para escrever uma solução. A situação [aquela definida pelo enunciado] Como pretende ler os dados? Redirecionando o fluxo de entrada no Windows Supondo que o arquivo tem 10 palavras e cada palavra de no máximo 30 caracteres [conforme enunciado], e estão separadas por ENTER Desse jeito: canelas-sassafrasinho-do-campo cabecas-duras-focinhos brocas-do-coleto-do-algodoeiro borboleta-amarela-da-mamoneira bicos-de-brasa-de-testa-branca bico-grosso-da-garganta-branca besouros-amarelos-do-eucalipta beija-flores-de-orelha-violeta beija-flor-de-gravata beija-flor-azul-de-rabo-branco O vetor vai precisar de no máximo capacidade suficiente para 30 caracteres ou letras + o separador de palavras. main.c #include <stdio.h> #include <string.h> int func( void ){ char palavra[33] = { 0 }; fgets( palavra , 33 , stdin ); if (palavra[0]) printf( "Leu %zd letras.\n" , strlen( palavra ) - 2 ); return 0; } int main( void ){ for (int i = 0 ; i < 10 ; ++i){ func( ); } return 0; } Ilustração Um padrão Windows que difere do padrão (Norma) do C não dificulta em nada a solução, em específico, para leitura com redirecionamento. Veja o texto da normal Numa situação normal a função não mais captura dados, após encontrar o caractere de nova linha ou atingir o limite especificado pela variável com valor do tamanho. Tradução Eletrônica: Descrição No portal: https://www.cplusplus.com/reference/cstdio/fgets/ Aqui a discrição é um pouco mais clara, principalmente, com o significa de retido: Um caractere de nova linha faz com que fgets pare, porém, é um caractere válido pela função e incluído na ‘string’ copiada para str. Ou seja, a função para de lê de duas maneiras: quando atinge o limite estipulado e quando o caractere de nova linha é lido, o que vier primeiro em caso de sucesso. Portanto, o caractere de nova linha é considerado um caractere válido pela função, havendo espaço ele será copiado para o vetor com os outros isso pode estar afetando seus "contadores", caro usuário. -
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
Fiz o teste para um só palavra sem dar NL no arquivo. Ele não aparece, porque não tem. Legal Dar um Enter lá, e pronto ele aparece junto a última letra. acetilparaetoxilfeniluretanico[CRFL] Ainda não entendi porque 32 ou 33 caracteres não resolve esse problema. Se tem que resolver com fgets então: Captura-se a linha com 32 ou 33 caracteres, pois sabemos que se não for assim vai ter que liberar esses não uteis para o resultado de outra maneira. Já sabe que 2 deles é newLine então subtraia do resultado do retorno da strlen. -
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
....*....1....*....2....*....3 1...*....0....*....0....*....0 Digite uma frase com ate 30 letras: Leu 30 letras. A frase: 97 99 101 116 105 108 112 97 114 97 101 116 111 120 105 108 102 101 110 105 108 117 114 101 116 -61 -94 110 105 99 A frase: acetilparaetoxilfeniluretânic ....*....1....*....2....*....3 1...*....0....*....0....*....0 Digite uma frase com ate 30 letras: Leu 3 letras. A frase: 111 13 10 A frase: o ....*....1....*....2....*....3 1...*....0....*....0....*....0 Digite uma frase com ate 30 letras: Leu 30 letras. A frase: 97 108 102 97 102 97 115 45 100 101 45 115 101 109 101 110 116 101 115 45 101 115 112 105 110 104 111 115 97 115 A frase: alfafas-de-sementes-espinhosas ....*....1....*....2....*....3 1...*....0....*....0....*....0 Digite uma frase com ate 30 letras: Leu 2 letras. A frase: 13 10 A frase: ....*....1....*....2....*....3 1...*....0....*....0....*....0 Digite uma frase com ate 30 letras: Leu 30 letras. A frase: 97 110 100 111 114 105 110 104 97 115 45 100 101 45 112 101 115 99 111 -61 -89 111 45 118 101 114 109 101 108 104 A frase: andorinhas-de-pescoço-vermelh ....*....1....*....2....*....3 1...*....0....*....0....*....0 Digite uma frase com ate 30 letras: Leu 3 letras. A frase: 111 13 10 A frase: o ....*....1....*....2....*....3 1...*....0....*....0....*....0 Digite uma frase com ate 30 letras: Leu 30 letras. A frase: 98 97 108 97 110 -61 -89 97 45 114 97 98 111 45 100 101 45 103 97 114 103 97 110 116 97 45 112 114 101 116 A frase: balança-rabo-de-garganta-pret ....*....1....*....2....*....3 1...*....0....*....0....*....0 Digite uma frase com ate 30 letras: Leu 3 letras. A frase: 97 13 10 A frase: a ....*....1....*....2....*....3 1...*....0....*....0....*....0 Digite uma frase com ate 30 letras: Leu 30 letras. A frase: 98 101 105 106 97 45 102 108 111 114 45 97 122 117 108 45 100 101 45 114 97 98 111 45 98 114 97 110 99 111 A frase: beija-flor-azul-de-rabo-branco ....*....1....*....2....*....3 1...*....0....*....0....*....0 Digite uma frase com ate 30 letras: Leu 2 letras. A frase: 13 10 A frase: output.txt main.c #include "stdio.h" #include "string.h" int func( void ){ char pal[31] = { 0 }; printf("\ ....*....1....*....2....*....3\n\ 1...*....0....*....0....*....0\n\ Digite uma frase com ate 30 letras: "); char* p = fgets(pal, 31, stdin); printf("\tLeu %zd letras. A frase:\n", strlen(pal)); for (int i = 0; i < strlen(pal); i += 1) printf("%d ", pal[i]); printf("\nA frase: "); puts(p); return 0; } int main( void ){ for(int i = 0 ; i < 10 ; ++i){ func( ); } return 0; } O caractere newLine (que nos arquivos do Windows é; CRLF) sendo capturado. Porque arquivos gerados no Windows tem um padrão. [] Função fgets para no LF, conforme a normal (padrão) -
Existe um controle de produtos vendidos? Pode ser um vetor, cujo valores são códigos de produtos vendidos, e daí eles se repetem dentro, basta ordenar para saber a quantidade de cada. Ou um vetor de vendidos, cujo os índices são relacionados ao códigos dos produtos, e cada em cada índice é a quantidade de vendas respectivamente. p. Ex. Código 100 por exemplo, é associado ao índice 0 desse vetor, então o valor no índice 0 é a quantidade de vendas do produto de código 100. Isso faz sentido? De qualquer maneira, acho que é assim que se resolve essa questão.
-
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
Não sei qual dos programas desses (na discussão) me permitiria testar um arquivo naquele formato padrão da função fgets. Por quê? Eu não preciso provar nada a ninguém @arfneto , muito menos para um estranho que frequenta o mesmo fórum de discussão. Não é você que decide o que é objetivo ou não. Mas está livre para deixar sua OPINIÃO, como sempre fez. Além disso, não seguirei sua recomendação porque poderia está resolvendo o exercício por ele (o autor do tópico) sem haver necessidade para tanto, mas não me importo que outros o faça, cada qual usa o fórum do seu modo, e isso é super normal. [] -
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
esse não é o texto na norma (padrão). Só especulação, o enunciando garante que a palavra tem no máximo 30 caracteres, mas não diz nada sobre exceções do tipo que leva o usuário a cometer erros, nem se que sabe ao certo se O usuário é humano, a entrada pode bem vir formada de outra sistema. Decerto a palavra tem no máximo 30... isso é garantido por razão do enunciado Exemplo: castanhas-subterrâneas-maiores acetilparaetoxilfeniluretânico capins-finos-de-folha-comprida canelas-sassafrasinho-do-campo cabeças-duras-focinhos-de-rato brocas-do-coleto-do-algodoeiro borboleta-amarela-da-mamoneira bicos-de-brasa-de-testa-branca bico-grosso-da-garganta-branca besouros-amarelos-do-eucalipta beija-flores-de-orelha-violeta beija-flor-de-gravata-vermelha beija-flor-azul-de-rabo-branco @arfneto Quais dos programas testamos um arquivo assim? -
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
O exercício está situado em três etapas a primeira é Ler os 5 nomes de máximo 70 caracteres (está garantido de que não haverá entradas de nomes acima de 70 caracteres). Você pode escrever essa entrada "analiticamente", passo a passo um comando para cada nome, ou fazer com está fazendo, porém, a estrutura deve cuidar apenas da Leitura, Ler ou (Entrada) p. Ex: char nomes[5][71]; /**! * Entrada dos Nomes * * Querendo descreva o que acontece abaixo, ou não. */ for( int i = 0 ; i < 5 ; i = 1 + i ){ printf( "Digite seus dois primeiros nomes (no máximo 70 caracteres): " ); scanf( " %70[^\n]" , &nomes[i][0] ); } Converter (processo) e Imprimir (saída) podem ou não estarem no mesmo ‘loop’, penso que se entende mais quando estão cada qual no seu. Já a entrada, essa realmente me parece ser solitária. [] -
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
-
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
Lendo ou relendo só esse trecho, porque é tudo que existe do enunciado, alguém pode se pergunta qual é o separado das palavras? Toda resposta é o máximo 30 caracteres ou a linha, o que vier primeiro. Ou seja, usualmente para toda situação em que a palavra tem menos de 30 caracteres está capturando a nova linha, exceto quando a palavra tem os exatos 30 caracteres. Na expressão que realiza a contagem, pode ou não contar o newline com um digitável, depende do que está escrito no enunciado, mas o caractere precisa ser capturado. Por esse motivo Nada no enunciado leva a acreditar que essa não é uma situação normal e que os dados fornecidos, sendo as palavras no limite do máximo, estarão fora do limite do que estipula o exercício. São hipóteses que o usuário criou para justificar sua opinião. Se tratando de exercício, a menos que se prenuncie contrário; os dados fornecidos são ideais (sem falhas). -
Javascript Feedback de questão JavaScript ( Dier se está certo ou errada)
Ansi C respondeu ao tópico de Daniel Inácio em Web e banco de dados
É porque identificação deve ser única, você poderia identificar cada input radio sequencialmente de 'r1' até 'r5' também, depois usar um loop para resgatar o valor em cada um deles, ou escrever a verificação um a um que também é bom. -
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
A capacidade do vetor ainda não é o bastante para comprimento da ‘string’ Capacidade = comprimento (70) + 1; do contrário, para todos os casos que há espaço na posição máxima (70) o algoritmo falha Se usar o seguinte comando que captura a linha ou 69 caracteres, o que ocorrer primeiro. Independe..., siga o enunciado capturando o máximo 70 caracteres ou a linha. fgets( pal , 71 , stdin ); [] -
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
OK Como disse antes, é melhor com enunciado completo. Sim, mais como falei, e vou falar outras vezes caso não tenha entendido da primeira. Eu até gosto de argumentos, porém nesse caso penso ser melhor o enunciado completo do autor da dúvida. Só para confirmar se um caractere a mais ou a menos faz diferença. No aguardo [] -
C Como eu faço para printar em ordem crescente os vetores?
Ansi C respondeu ao tópico de BrunoBisppo em C/C#/C++
Uns IDE tem esse recurso, incluindo uns ‘na ‘internet’’ exemplo: https://www.onlinegdb.com/, cujo nome já diz tudo. É legal. [] -
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
Melhor com enunciado completo. Essa é só a sua opinião [] -
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
Sugiro que escreva o enunciado completo da questão. Note que: Uma palavra tem no máximo 30 caracteres (imprimíveis e não) ou termina antes de 30 com nova linha (do inglês: new line). Não é capacidade desse vetor é 32. char palavra[ 32 ]; Suponha que o usuário digite o máximo andorinhas-de-pescoço-vermelho\n ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~ | | + -- -- -- --> A Palavra tem no máximo 30 caracteres (Sem espaço) andorinhas de pescoço vermelho\n ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~ | | + -- -- -- --> A Palavra tem no máximo 30 caracteres (Com espaço) Com e sem espaços foram digitados 31 caracteres. Por isso é melhor que post o enunciado completo, seguido de nova tentativa de resposta. [] -
Faz como o usuário assim explica, e faz também combinando o múltiplo de 3 vizinho do limite inferior. O resto do algoritmo se resume a adições sucessivas 3 até o extremo superior. Ilustração Números múltiplos de 3 entre -4 e 32 : -3, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30 Durante a Entrada X <-- (-4) Y <-- (32) No Processo RESULTADOS POSSIVEIS <----- resto <-- (X%3) ^ ^ | | ENQUANTO (X%3) FACA X += 1; /**< complementar */ -2 --> complementar +2 para 3 ------ PARA X < Y FACA X = 3 + X: ESCREVER( X ) -1 --> complementar +1 para 3 ------ 0 --> Divisivel inteiro ----------- 1 --> complementar +2 para 3 ------ 2 --> complementar +1 para 3 ------ | ---> aproximação + porque a série é crescente. Saída Os tais limites são X e Y conforme o enunciado Quando dizem ENTRE dois extremos, querem dizer intervalos abertos ]X, Y[, não incluir nem X, nem Y. Exceto se for enunciado da seguinte maneira: "Intervalo entre x e y.., inclusive". A diferença está na saída (resposta), já o algoritmo muda bem pouquinho, decerto não fará diferença para a opinião de seu professor. Apenas responda. []
-
@skyneGKL As informações na matriz(6, 6) me parecem irracionais, eu não consegui encontrar significado. E mais, as postagens posteriores não foram o suficiente para ajudar na minha interpretação, também. Resta seu algoritmo. O nome adequado do vetor é cidades .cada valor no elemento/subscrito dele é uma cidade, cada par de valor é o índice no subscrito da matriz que representa a distância entre elas. Dessa maneira. Cada valor em 'distancias' é uma distância acessível por um par de cidades. A trajetória percorrida é a soma das distâncias entre cada cidade do vetor cidades. O laço se repete 5 vezes acumulando 5 valores de distância. Filézinho! Pode acontecer uma variação de resposta em que a matriz real e lógica diferem em composição para coincidir os índices sem operações extras, ou seja, o índice 1 da matriz real é também o índice 1 da lógica, apenas para evitar operações aritméticas de adaptação. int distancias[][7] = { {0, 0, 0, 0, 0, 0, 0}, {0, 1, 2, 3, 4, 5, 6}, {0, 1, 2, 3, 4, 5, 6}, {0, 1, 2, 3, 4, 5, 6}, {0, 1, 2, 3, 4, 5, 6}, {0, 1, 2, 3, 4, 5, 6}, {0, 1, 2, 3, 4, 5, 6}, }; Uma linha e uma coluna extra ignorada para satisfazer a condição de não adaptar os índices do vetor cidades. Do contrário, terão que ser adaptados os índices do vetor durante entrada, na composição de vetores em C. Índice: 0 1 2 3 4 5 Cidade: 2 3 1 4 5 0 []
-
C dificuldade em completar exercício em C
Ansi C respondeu ao tópico de Helio Junnior Sartor Dalmolin em C/C#/C++
Se o enunciado pede que comunique com o usuário com mensagem do tipo Digitar/Entrar com x números, nós escrevemos. Quando enuncia Leia ou Ler, escreve-se mensagem apenas de resposta ou resultado ou retorno, ou saída e de entrada é facultativo. E esse é o caso: é só ler, não é Digitar ou Entrar, então sem mensagem na categoria de Apenas deixe o programa esperando os dados, sem avisar, e depois copie os 20 números e em seguida cole no prompt. A alternativa é redirecionar o fluxo de entrada por linha de comando usando a combinação: nome_do_programa < numeros_do_teste.dat Ilustração É um programa que lê e imprime os números até o fim da lista depois encerra. Encerra porque quando a função encontra o fim do fluxo (fim do arquivo) o valor em número é 0 terminado o laço. #include <stdio.h> int main( ){ int numero = 0; while (scanf( "%d", &numero ), numero != 0 ) { printf( "%d ", numero ); numero = 0; } return 0; } Essa lista: 65 96 15 10 26 15 69 25 59 62 04 21 74 21 71 68 53 50 67 31 94 51 30 63 79 53 76 13 72 34 85 68 34 72 47 24 31 25 55 Indiretamente isso ajuda a entender melhor sua entrada de dados. Vejamos: Precisa de um contador para saber quantos números já pegou e não está além da capacidade do vetor e verificar também se valor em número é menor que 1 (negativo ou zero) então se pelo menos um desses casos se confirmar o ‘loop’ WHILE é interrompido. [] -
Entrada Saída Rapidamente eu diria que a maioria dos usuários usou tabela hash para resolver. São duas informações, a primeira entrada é capacidade (N + 1) do vetor (tabela hash) e a segunda quantidade de chaves (índices para o vetor). Analisando essas informações, diria que o vetor (tabela hash) tema capacidade igual a 7 A quantidade de chaves é 10, ou seja, serão 10 entradas antes de fim. Sempre que houver colisões, ou seja, o subscrito da tabela retorna um valor diferente de 0 incremente o contador, que no contexto do problema representa o acumulo de bilhetes falsos, ou não original. Caso não haja colisão, ou seja o subscrito retorne 0, então esse é um bilhete original e precisa ser atribuído valor 1 no subscrito. Segue a ilustração 6 10 | 6 1 3 6 6 4 2 3 1 2 | | | | | | | | | | hash[7] = {0}; | | | | // todos os subscritos são 0. | | | | hash[6] tem valor? 0 então atribuir 1 hash[1] tem valor? 0 então atribuir 1 hash[3] tem valor? 0 então atribuir 1 hash[6] tem valor? 1 então colisão incrementar contador ... A resposta final é 4 colisões: (6)x2, (3)x1, (2)x1 [ ]
-
Com relação à saída, cada o programa deve imprimir UMA linha. Esse comando aqui, imprime duas linhas, a segunda tem o ENTER ('\n')
-
Javascript (Function) Verificação de campos preenchidos retornar ação anterior
Ansi C respondeu ao tópico de Mizrain Phelipe Sá em Web e banco de dados
Penso que se contar quantos campos estão preenchidos poderia usar a métrica no SWITCH e resolve seu problema. function progressBarInq( ){ let progressBar0 = document.getElementById( "InqProgress0" ); let progressBar25 = document.getElementById( "InqProgress25" ); let progressBar50 = document.getElementById( "InqProgress50" ); let progressBar75 = document.getElementById( "InqProgress75" ); let progressBar100 = document.getElementById( "InqProgress100" ); let verInq01 = document.getElementById( "InqueritoCircunscricaoPolicial" ); let verInq02 = document.getElementById( "NumeroDoIP" ); let verInq03 = document.getElementById( "DataDoRelatorio" ); let verInq04 = document.getElementById( "NumeroDoProcesso" ); progressBar0.style.display = "none"; progressBar25.style.display = "none"; progressBar50.style.display = "none"; progressBar75.style.display = "none"; progressBar100.style.display = "none"; var status = 0; if (verInq01.value) status = status + 1; if (verInq02.value) status = status + 1; if (verInq03.value) status = status + 1; if (verInq04.value) status = status + 1; switch (status) { case 4: progressBar100.style.display = "block"; break; case 3: progressBar75.style.display = "block"; break; case 2: progressBar50.style.display = "block"; break; case 1: progressBar25.style.display = "block"; break; default: progressBar0.style.display = "block"; break; } } progressBarInq( ); -
C# Provavel erro de logica - estrutura de repetição
Ansi C respondeu ao tópico de Victor Hugo Barbosa Silva em C/C#/C++
Concordo e não deixaria de concordar porque sei que o problema do sinal e todo mais é confuso para maioria que está só começando. E sei também que isso não dura, depois de algumas horas, semanas ou meses em contado com a linguagem eles compreendem. [] Pois é: não tem.... Compare essa série do enunciado com isso que eu mostrei Na primeira imagem temos a lista (5) dos termos do polinômio de Mclaurin Na segunda imagem vem polinômio semelhante, qual a diferença? O termo n = 0, está resolvido e o limite finito. Simplificando para perceber que da série os 4 primeiros termos agora terá o seguinte aspecto ; nota-se que o sinal varia junta a constante x^2 O primeiro é -x^2 O segundo é O primeiro (vezes) -x^2 ... A pergunta do sinal tem uma resposta salvando a potência anterior. 4: +(x^8) <-- -(x^6) * -(x^2) ^ -----------| | 3: -(x^6) <-- +(x^4) * -(x^2) ^ -----------| | 2: +(x^4) <-- -(x^2) * -(x^2) ^ -----------| | 1: -(x^2) <-- (1) * -(x^2) @arfneto Post #10 compartilha uma codificação de exemplo, nela a alternância do sinal é feita por outra expressão, precisamente por uma variável equivalente à expressão (-1)^n do polinômio -
Javascript Condicionais de if como fazer?
Ansi C respondeu ao tópico de SampaoliDexter em Web e banco de dados
Pode dividir? A idade dividida por 16 será igual 1 ou maior se tem valor igual ou maior que 16. A idade dividida por 18 será igual 1 ou maior se tem valor igual ou maior que 18. Estamos interessando nos casos em que o quociente é 1 == para 16 Estamos interessando nos casos em que o quociente é 1 <= para 18 var idade_do_cidadao = 17; if (1 == ((idade_do_cidadao/16)|0)) { console.log("Seu voto é opcional"); } if (1 <= ((idade_do_cidadao/18)|0)) { console.log("Você é obrigado a votar"); } Como ainda estou aprendo, pode ser que tenha codificado algo errado. [ ] sorry. -
C A expressão deve conter tipo ponteiro para objeto
Ansi C respondeu ao tópico de Daniel Pio em C/C#/C++
Sim, esse é o modo bom de avisar. Saberia no ato que (valor) subscrito não é array, consequentemente o segundo subscritor é o errado. [] -
C# Provavel erro de logica - estrutura de repetição
Ansi C respondeu ao tópico de Victor Hugo Barbosa Silva em C/C#/C++
Não é o mesmo que tem aqui na imagem? Tem.. 1. Aqui 2. Aqui 3. Aqui @Victor Hugo Barbosa Silva Tudo do mesmo usuário! Quatro (4x) vezes para nunca esquecer, ou dizer que ninguém avisou. []
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