Ir ao conteúdo
  • Cadastre-se

Portugol troca pares gerando erro


Posts recomendados

como resolvo esse problema no visual g esta dando erro quando testa. da erro "se (tamanho (palavra mod 2 = 0)) entao" aqui

Var
palavra: caractere
aux: caractere
t:inteiro
c, i :inteiro

Inicio

t <- 0

aux <- ""
leia (palavra)
se (tamanho (palavra mod 2 = 0)) entao
t <- palavra
senao
t <- tamanho(palavra) -1
fimse
enquanto t > 0 faça
aux <- palavra[c]
palavra [c] <- (palavra [c+1])
palavra [c+1] <- aux
t < t-2
c <- c+2
c <- -1
fimenquanto
escreval (palavra)

Fimalgoritmo

 

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

@claudiocj       você não postou o enunciado desse exercício , mas pelo seu código parece que o que você quer é inverter as letras da palavra digitada , mas no visualg a string não é armazenada em vetor como na linguagem  c / c++ ,  então para você acessar cada caractere da string você precisa usar o comando  copia , e para saber o tamanho da string você usa o comando  compr ,  e com isso copia a string do final para o começo ,  então seu código pode ser assim 

Algoritmo "Inverter palavra"
Var
  palavra,aux : caractere
  t,c,i       : inteiro
Inicio
  escreva("Digite Uma Palavra  ")
  leia(palavra)
  t <- compr(palavra)  // O Tamanho é compr
  enquanto t > 0 faca  //letra ç
    aux <- aux + copia(palavra;t;1)//copia hum caractere começando da posição t
    t <- t-1
  fimenquanto
  palavra := aux
  escreval(palavra)
Fimalgoritmo

:

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

  • Membro VIP

Olá.

 

1#

Como citado por @devair1010, o comando correto ser comp(), em vez de tamanho().

 

 

 

2#

Sobre o erro:

15 horas atrás, claudiocj disse:

como resolvo esse problema no visual g esta dando erro quando testa. da erro "se (tamanho (palavra mod 2 = 0)) entao" aqui

 

O comando se/entao funciona analisando o valor lógico que está em entre o se e o entao. Algo assim:

se (<"a resultante do que estiver aqui for VERDEIRO">) entao
	<"faço o quê está dentro se">

 

Lá no seu código, você utilizou:

15 horas atrás, claudiocj disse:

(tamanho (palavra mod 2 = 0))

 

Certo? como tem um "()" dentro do outro, faz-se os internos primeiro... logo:

 (palavra mod 2 = 0)

Creio eu que você já saiba como funciona essa estrutura... então, "isso" vai resultar em VERDADEIRO ou FALSO. Logo, seria algo como:

(tamanho (<"VERDAEIRO ou FALSO">))

 

Oras! o que seria "tamanho de VERDADEIRO"? Entende?  A expressão não faz sentido... (pelo menos para Visualg). :)

 

obs.: lembrando que o comando correto é comp(), e não tamanho().

 

 

 

3#

Analisando, supostamente você queria algo assim:

se (compr(palavra) mod 2 = 0) entao

Ou seja, primeiro pega o comprimento de palavra, depois calcula o resto da divisão por 2, depois compara com 0. Tudo isso vai resulta em VERDADEIRO ou FALSO. Logo, com uma sintaxe válida.

 

RESUMINDO: se o número for par, eu uso o tamanho da palavra, se não for (é ímpar), subtraio em 1 para o resultado ficar par.

 

 

***

 

Por ai vai...

 

No aguardo.

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

16 horas atrás, Simon Viegas disse:
Spoiler

Olá.

1#

Como citado por @devair1010, o comando correto ser comp(), em vez de tamanho().

 

 

 

2#

Sobre o erro:

 

O comando se/entao funciona analisando o valor lógico que está em entre o se e o entao. Algo assim:



se (<"a resultante do que estiver aqui for VERDEIRO">) entao
	<"faço o quê está dentro se">

 

Lá no seu código, você utilizou:

 

Certo? como tem um "()" dentro do outro, faz-se os internos primeiro... logo:



 (palavra mod 2 = 0)

Creio eu que você já saiba como funciona essa estrutura... então, "isso" vai resultar em VERDADEIRO ou FALSO. Logo, seria algo como:



(tamanho (<"VERDAEIRO ou FALSO">))

 

Oras! o que seria "tamanho de VERDADEIRO"? Entende?  A expressão não faz sentido... (pelo menos para Visualg). :)

 

obs.: lembrando que o comando correto é comp(), e não tamanho().

 

 

 

3#

Analisando, supostamente você queria algo assim:



se (compr(palavra) mod 2 = 0) entao

Ou seja, primeiro pega o comprimento de palavra, depois calcula o resto da divisão por 2, depois compara com 0. Tudo isso vai resulta em VERDADEIRO ou FALSO. Logo, com uma sintaxe válida.

 

RESUMINDO: se o número for par, eu uso o tamanho da palavra, se não for (é ímpar), subtraio em 1 para o resultado ficar par.

 

 

***

 

Por ai vai...

 

No aguardo.

 

Então, mesmo usando esse comando compr, não passa desse ponto. Tentei usar o Portugol, mas não conheço muito bem.

 

erro.png

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

22 minutos atrás, devair1010 disse:

@claudiocj    essa linha do jeito que você colocou não funciona mesmo não ,  experimente colocar assim  :


se compr(palavra) mod 2 = 0 entao

 

corrigi e o erro passou para baixo.

erro.png

adicionado 1 minuto depois

como ficaria se eu usasse vetor tem como ?

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

@claudiocj    nesse caso vcê precisa colocar no vetor de caractere todas as letras da palavra , então seria assim  :

Algoritmo "vetor de caractere"
Var
  vet : vetor[1..100] de caractere
  palavra : caractere
  j,k : inteiro
Inicio
  escreva("Digite Uma Palavra ")
  leia(palavra)
  k := compr(palavra)
  para j de 1 ate k faca
    vet[j] := copia(palavra;j;1)
  fimpara
  escreval(vet[2])
  escreval(vet[5])
Fimalgoritmo

 

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

3 minutos atrás, devair1010 disse:

@claudiocj    nesse caso vcê precisa colocar no vetor de caractere todas as letras da palavra , então seria assim  :


Algoritmo "vetor de caractere"
Var
  vet : vetor[1..10] de caractere
  palavra : caractere
  j,k : inteiro
Inicio
  palavra := "qualquer"
  para j de 1 ate 8 faca
    vet[j] := copia(palavra;j;1)
  fimpara
  escreval(vet[2])
  escreval(vet[5])
Fimalgoritmo

 

certo se a pessoa digitar uma palavra acima de 10 carácter o acontece?

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

@claudiocj    eh nesse caso daria erro , então para resolver  você pode colocar o valor que você quiser no vetor até 100 ou mais aí não daria problema .  então depois que a pessoa digitar a palavra você pega o tamanho dela usando o comando compr para usar no loop para indo de 1 até o tamanho da palavra e  coloca ela no vetor e depois pode fazer do jeito que está no seu código mesmo que funcionará bem .

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

11 horas atrás, devair1010 disse:

@claudiocj    eh nesse caso daria erro , então para resolver  você pode colocar o valor que você quiser no vetor até 100 ou mais aí não daria problema .  então depois que a pessoa digitar a palavra você pega o tamanho dela usando o comando compr para usar no loop para indo de 1 até o tamanho da palavra e  coloca ela no vetor e depois pode fazer do jeito que está no seu código mesmo que funcionará bem .

ixii agora fundiu meu cérebro kkkkk.. 

vou postar aqui o que eu quero pra ver se fica melhor a compreensão.

 

 

Em PETEQS uma string pode ser tratada como um vetor de caracteres. Observe por
exemplo a função inverte(entradas: frase) a seguir que recebe uma string como
parâmetro e retorna uma nova string que é o inverso da string original.

função inverte(entradas: frase)
início
resultado  frase
para i  1 até tamanho(frase)/2 faça
aux  frase
resultado  frase[tamanho(frase)-i+1]
resultado[tamanho(frase)-i+1]  aux
próximo i
fim

Na construção desse algoritmo, foi usada a função tamanho(entradas: frase) que
retorna o número de caracteres em uma string.
Considere o seguinte exemplo de uso:

programa exemplo
início
imprima inverte("exemplo")
imprima inverte("reviver")
fim

A saída do programa seria:

olpmexe
reviver


Sua tarefa: Escreva o algoritmo da função trocaPares(entradas: frase) que
recebe uma string como parâmetro e retorna uma nova string em que os pares de letras
consecutivas na string original são invertidas. Se a string de entrada tiver um número
ímpar de letras, a última letra deve permanecer inalterada. A seguir, você pode ver um
exemplo de teste da função:

programa exemplo
início
imprima trocaPares("exemplo")
imprima trocaPares("decantador")
imprima trocaPares("entre paredes")
fim

A saída do programa seria:

xemelpo
edactndaro
nert eapereds 

 

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

  • Membro VIP

Olá.

 

1#

Sobre:

10 horas atrás, claudiocj disse:

Em PETEQS uma string pode [...]

 

Seu algoritmo é para ser feito em PETEQS, correto? mas acontece que você está utilizando o Visualg. 😅

 

O Visualg NÃO SABE INTERPRETAR PETSQS. O Visualg tem uma "pseudolinguagem" própria.. usa meio que uma tentativa da tradução da linguagem Pascal.

 

Já o PETEQS utiliza uma outra "pseudolinguagem", ou seja, para "compilar" ou "rodar" um código em PETEQS, você precisará de um programa que reconheça essa linguagem (que não é o caso do VIsualg).

 

RESUMINDO:

A sintaxe do PETEQS e a sintaxe usada no Visualg tem lá as suas semelhanças... sobretudo que estão em PORTUGUÊS... mas uma coisa é uma coisa, outra coisa é outra coisa.

 

 

Eu não conheço muito bem o PETEQS. Pesquisando rapidamente encontrei um "interpretador" em JavaScript... (usa um navegador de internet, como o Chrome). Só abrir o arquivo "index.html".

 

Link:

https://github.com/LeonNasc/ipeteqsJS

 

Essa versão é online:

https://leonnasc.github.io/ipeteqsJS/

 

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

como faço para usar esse mesmo conceito só que usando par de letras,

segue o código:

algoritmo "ordenação"
var
vet: vetor [1..4] de inteiro
i, j,aux : inteiro

inicio
      Para i <- 1 ate 4 faca
           escreva("Digite um Valor: ")
           Leia (vet [i])
     FimPara

     para i <- 1 ate 3 faca
          para j <- i+1 ate 4 faca
              se(vet[i] > vet[j]) Entao
              aux <- vet[i]
              vet[i] <- vet[j]
              vet[j]<- aux
              FimSe
          FimPara
     FimPara
     para i <- 1 ate 4 faca
     escreva("{",vet[i],"}")
     Fimpara
fimalgoritmo

 

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

  • Membro VIP

Olá.

 

Sobre:

10 horas atrás, claudiocj disse:

como faço para usar esse mesmo conceito só que usando par de letras,

segue o código:


algoritmo "ordenação"
var
vet: vetor [1..4] de inteiro
i, j,aux : inteiro

inicio
      Para i <- 1 ate 4 faca
           escreva("Digite um Valor: ")
           Leia (vet [i])
     FimPara

     para i <- 1 ate 3 faca
          para j <- i+1 ate 4 faca
              se(vet[i] > vet[j]) Entao
              aux <- vet[i]
              vet[i] <- vet[j]
              vet[j]<- aux
              FimSe
          FimPara
     FimPara
     para i <- 1 ate 4 faca
     escreva("{",vet[i],"}")
     Fimpara
fimalgoritmo

 

Que conceito?  (obs.: é uma pergunta retórica, não é para responder :))

 

Mas então, uma coisa de cada vez... primeiro resolva essa questão do PETSQS x Visualg. Teoricamente você está misturando uma coisa com a outra!

 

 

Sobre o algoritmo, você está ainda nessa etapa:

Em 26/10/2018 às 21:19, claudiocj disse:

Escreva o algoritmo da função trocaPares(entradas: frase) que recebe uma string como parâmetro e retorna uma nova string em que os pares de letras consecutivas na string original são invertidas. Se a string de entrada tiver um número
ímpar de letras, a última letra deve permanecer inalterada.

 

 

No aguardo.

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

  • Membro VIP

@Maysa Ester,

 

1#
Sobre:

10 horas atrás, Maysa Ester disse:

Era isso que você queria Simon?

 

Não. Creio que esse código seja o mesmo postado por @claudiocj:

Em 26/10/2018 às 21:19, claudiocj disse:

função inverte(entradas: frase)
início
resultado  frase
para i  1 até tamanho(frase)/2 faça
aux  frase
resultado  frase[tamanho(frase)-i+1]
resultado[tamanho(frase)-i+1]  aux
próximo i
fim

 

Esse trecho é apenas um exemplo que foi utilizado no enunciado:

Em 26/10/2018 às 21:19, claudiocj disse:

Observe por exemplo a função inverte(entradas: frase) a seguir [...]

 

 

 

2#

O problema que foi proposto foi como comentado:

12 horas atrás, Simon Viegas disse:
Em 26/10/2018 às 21:19, claudiocj disse:

Escreva o algoritmo da função trocaPares(entradas: frase) que recebe uma string como parâmetro e retorna uma nova string em que os pares de letras consecutivas na string original são invertidas. Se a string de entrada tiver um número ímpar de letras, a última letra deve permanecer inalterada.

 

 

Ou seja, terás que implementar a função trocaPares(), e utilizá-la de acordo como foi pedio.

 

 

 

3#

@Maysa Ester e @claudiocj, sugiro o seguinte: implemente um código completo que utiliza essa função trocaPares(), ou seja, tudo que precisa já está no próprio enunciado, falta apenas montar tudo em um código só.

 

Lembrando que esse algoritmo foi proposto em PETEQS. Logo não dá para usar o Visualg!

 

 

***

 

Qualquer dúvida é só perguntar!

 

No aguardo.

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

  • Membro VIP
9 horas atrás, claudiocj disse:

pessoal agradeço a ajuda, mas não tenho ideia de como fazer isso eu queria que fosse assim a pessoal digitasse um palavra "exemplo" e ela fosse trocando de par em par e se for impar a quantidade de letras manteria o no final.

o EXEMPLO FICANDO ASSIM "XEMELPO" ENTENDI.

 

Você está com dúvida em qual parte?

 

Poste o código completo com o exemplo já feito para ter uma base!!!... ou seja, utilizando o inverte(). Essa função já está pronta... é só usar. No caso, se informar exemplo, deverá retornar olpmexe.

 

Depois vemos como ajustar para "troca em pares".

 

 

No aguardo.

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

Em 06/11/2018 às 09:21, Simon Viegas disse:

 

Você está com dúvida em qual parte?

 

Poste o código completo com o exemplo já feito para ter uma base!!!... ou seja, utilizando o inverte(). Essa função já está pronta... é só usar. No caso, se informar exemplo, deverá retornar olpmexe.

 

Depois vemos como ajustar para "troca em pares".

 

 

No aguardo.

Algoritmo "troca"
Var
   palavra,troca: caractere
   t:inteiro
    v :inteiro
  funcao trocaPares (v:inteiro):caractere
  var
   c:inteiro
   palavra, aux:caractere
  inicio
  v <- compr(palavra)
  enquanto v > 0 faca  //letra ç
    aux <- aux + copia(palavra;v;1)
    v <- v-1
  fimenquanto
  palavra := aux
    retorne palavra
  fimfuncao

Inicio
escreva("Digite uma palavra: ")
   leia (palavra)
   escreval("Palavra Trocada é: ", troca)
Fimalgoritmo

fiz assim só não funciona.

eu fiquei ate perdido já, queria testar no visualg ou no portugol esse algaritimo de troca de letras não inverte.

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

@claudiocj    alguns erros ; não chamou a função trocaPares ,  e na função está recebendo um dado do tipo inteiro mas precisa ser caractere , então seu código pode ser assim  :

Algoritmo "troca"
Var
  palavra,troca : caractere
  t,v           : inteiro
funcao trocaPares (palavra : caractere) : caractere
var
  c  : inteiro
  aux: caractere
inicio
  v <- compr(palavra)
  enquanto v > 0 faca
    aux <- aux + copia(palavra;v;1)
    v <- v-1
  fimenquanto
  palavra := aux
  escreval(aux)
  retorne palavra
fimfuncao
Inicio
escreva("Digite uma palavra: ")
   leia(palavra)
   escreval("Palavra Trocada é: ",trocaPares(palavra))//chamada da fução
Fimalgoritmo

 

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

  • Membro VIP

@claudiocj, olá.

 

1#

SOBRE A DISTINÇÃO DAS COISAS

 

Citando:

12 horas atrás, claudiocj disse:

Código:

Spoiler


Algoritmo "troca"
Var
   palavra,troca: caractere
   t:inteiro
    v :inteiro
  funcao trocaPares (v:inteiro):caractere
  var
   c:inteiro
   palavra, aux:caractere
  inicio
  v <- compr(palavra)
  enquanto v > 0 faca  //letra ç
    aux <- aux + copia(palavra;v;1)
    v <- v-1
  fimenquanto
  palavra := aux
    retorne palavra
  fimfuncao

Inicio
escreva("Digite uma palavra: ")
   leia (palavra)
   escreval("Palavra Trocada é: ", troca)
Fimalgoritmo

fiz assim só não funciona.

eu fiquei ate perdido já, queria testar no visualg ou no portugol esse algaritimo de troca de letras não inverte.

 

Precisamos separar as coisas, veja:

- Portugol é uma coisa.

- PETEQS é uma outra coisa;

- Visualg é ainda uma outra coisa diferente;

 

Poderíamos dizer que o Portugol é um nome dessas pseudo-linguagens que são em português, beleza?

 

No caso, o PETEQS utiliza "uma espécie" desse tal de Portugol. Ela tem uma sintaxe própria!

 

Já o Visualg, é uma "ferramenta de edição e compilação de código". Ela também utiliza um Portugol, mas tem uma SINTAXE TOTALMENTE DIFERENTE. Ou seja, o "Portugol" do Visualg NÃO É IGUAL ao Portugol do PETEQS. 

 

Temos ainda um "sistema" chamado Portugol Studio. Este também utiliza o tal do Portugol, só que, advinha? utiliza uma outra sintaxe. 

 

etc.

 

 

Logo:

13 horas atrás, claudiocj disse:

queria testar no visualg ou no portugol

 

Pode ficar confuso, pois o Visualg já está em um Portugol.

 

 

 

RESUMIDAMENTE
Não devem-se misturar uma coisa com a outra. Se está estudando PETEQS, tem que fazer o algoritmo nessa pseudo-linguagem.

 

De maneira prática poderíamos dizer algo assim:

Ou o código vai ser feito em PETEQS;

Ou o código vai ser feito em Visualg;

Ou o código vai ser feito em Portugol Studio.

 

Todos 3 são em Portugol, mas cada um com sua sintaxe própria; e que não funcionam entre si... são PSEUDO-LINGUAGENS DISTINTAS.

 

 

 

2#

SOBRE A ESTRUTURA DO CÓDIGO BASEADO NO CÓDIGO ORIGINAL ("EM VISUALG")

 

Deu uma reconfigurada no código baseado nas alterações do @devair1010:

algoritmo "inverte"
var
   frase :caractere

funcao inverte (frase:caractere):caractere
   var
      v   :inteiro
      aux :caractere
   inicio
   aux <- ""                        //inicializa a variável
   v <- compr(frase)                //obtém última posição da frase
   enquanto v > 0 faca
      aux <- aux + copia(frase;v;1) //vai concatenando letra a letra (da direita para esquerda)
      v <- v-1                      //atualiza para próxima posição
   fimEnquanto
   retorne aux                      //retorna a "frase invertida" na própria função
fimFuncao

inicio
escreva ("Digite uma palavra: ")
leia(frase)
escreval("Palavra invertida ficou: ",inverte(frase))
fimAlgoritmo

 

Deixei comentários em cada linha para tentar explicar como cada uma está funcionando.

 

 

 

3#

SOBRE A FUNÇÃO EM PETEQS x VISUALG

Como já citado algumas vezes, ele quer o código em PETEQS. Desta forma, os códigos que foram dados lá no enunciado:

 

Em 26/10/2018 às 21:19, claudiocj disse:

função inverte(entradas: frase)
início
resultado  frase
para i  1 até tamanho(frase)/2 faça
aux  frase
resultado  frase[tamanho(frase)-i+1]
resultado[tamanho(frase)-i+1]  aux
próximo i
fim

 


programa exemplo
início
imprima inverte("exemplo")
imprima inverte("reviver")
fim

 

 

Funcionam lá no PETEQS, mas não funcionam em Visualg...

 

 

Nesse caso, é necessário fazer algumas adaptações. Poderia ficar algo assim:



algoritmo "inverte"
var
   frase :caractere

funcao inverte(frase:caractere):caractere
   var
      aux :caractere
      i   :inteiro
   inicio
   aux <- "" //inicializa a variável
   para i de 1 ate compr(frase) faca
      aux <- aux + copia(frase;compr(frase)-i+1;1) //vai concatenando letra a letra (da direita para esquerda)
   fimPara
   retorne aux //retorna a "frase invertida" na própria função
fimFuncao

inicio
escreval(inverte("exemplo"))
escreval(inverte("reviver"))
fimAlgoritmo

 

Veja, além de alguns comandos serem diferentes entre Visualg e PETEQS, no Visualg não dar para "acessar as posições das letras na frase", vide.:

frase[3]
//no PETEQS, essa comando significaria que está acessando a 3 letra da frase, ou seja, o tipo equivalente ao "caractere" no PETEQS funciona como se fosse uma vetor. 
  
//Entretanto, isso não funciona no Visualg. Lá não dá para acesasr uma posição específica assim. Desta forma, utilizaram o copia() como alternativa para resolver o problema.

 

Vejam que no código em PETEQS a função inverte vai apenas até a metade do tamanho, pois lá está "invertendo as letras para as posições simétricas". 

 

Já no Visualg, como não dá para acessar as posições, foi mais interessante "copiar cada posição de trás para frente".

 

No final, ambos vão trazer o mesmo resultado final (que é a frase invertida), entretanto estão utilizando algoritmo diferentes, ou seja, apesar de aparentar ser igual, está utilizando outra estrutura!!!

 

 

 

4#

SOBRE O QUE FALTA FAZER
Então, esse código no 3# seria basicamente o código "exemplo" que foi dado no enunciado em PETEQS "convertido" para Visualg.

 

 

Como quer fazer em Visualg mesmo, agora só resolver o problema em si: obs.: (já ajustei o texto para fazer em Visualg!)

Em 26/10/2018 às 21:19, claudiocj disse:

Sua tarefa: Escreva o algoritmo da função trocaPares(frase: caractere):caractere que
recebe uma frase (caractere) como parâmetro e retorna uma nova frase (caractereem que os pares de letras
consecutivas na frase original são invertidas.
Se a frase de entrada tiver um número
ímpar de letras, a última letra deve permanecer inalterada. A seguir, você pode ver um
exemplo de teste da função:


inicio
escreval(trocaPares("exemplo"))
escreval(trocaPares("decantador"))
escreval(trocaPares("entre paredes"))
fimAlgoritmo

 

 

Ou seja, vai apagar a função inverte() e vai implementar a função trocaPares(). Na hora de usar, vai usar trocaPares().

 

 

***

 

 

Qualquer dúvida/crítica/sugestão é só postar.

 

 

No aguardo.

  • 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...