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:  
brunoalv182

Problema com vetor visualg

Recommended Posts

Eai pessoal, tudo bem?

 

Preciso fazer um programa que cadastre pessoas e que essas pessoas possam cadastrar suas contas no programa, para que no final vejam os seus gastos.

 

Estou bem no começo do projeto, e sou iniciante em programação.

Quando coloco pra rodar o algoritmo ele diz que está faltando um "ate", só que até agora nao consegui achar aonde está faltando, poderiam me ajudar?

 

 

algoritmo "Trabalho"
// Função :
// Autor :
// Data : 26/05/2014
// Seção de Declarações
var
a1,a2,a3,a4 :inteiro
a5, i : caractere
moradores: vetor[1..10] de caracter
contas: vetor[1..10, 1..10] de caracter inteiro
sair: inteiro
inicio
// Seção de Comandos
Escreva ("Menu principal")
Escreva ("1. Cadastrar Moradores")
Escreva ("2. Cadastrar contas")
Escreva ("3. Mostrar Moradores Menores de idade")
Escreva ("4. Sair ")
leia (a1)
     //incluindo moradores
     escolha a1
          para a1=1 faca
             Escreva ("Insira o nome do morador:")
                     leia (moradores)
         fimpara
//comando para sair
ate a1=4
fimalgoritmo

 

 

desde já agradeço

Editado por dif
Melhorar o título e inserir o código com o botão CODE <>
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@brunoalv182 Bem, faz muito tempo que não uso Pseudocódigo...

To achando Java,C++ e C# mas claro q isso kkkkkkk

 

Pelo que eu li, você criou um loop infinito:

                         Para a1=1 faça;

 

Ou seja, se o usuário digitar 1 ele repetira o comando.

Acho que deveria ser assim, eu acho:

                    SE a1=1 faça;

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@brunoalv182     o até está faltando ali no comando para,  e o comando escolha só funciona 

se você colocar o comando Caso para que ele saiba o que fazer.   Então modifiquei seu código

acrescentando o comando Caso e coloquei o comando Para também.   Assim ele vai funcionar

mas ainda falta muita coisa para terminar seu programa.  e o então tem que ser sem TIL .  Experimente assim:

Algoritmo "Cadastro"
Var
a1,a2,a3,a4,x,y :inteiro
a5, i,cad     : caractere
moradores: vetor[1..10] de caracter
contas: vetor[1..10, 1..10] de caracter inteiro
sair: inteiro
Inicio
x:=1
cad:="s"
repita
  Escreval ("      Menu principal")
  Escreval ("1. Cadastrar Moradores")
  Escreval ("2. Cadastrar contas")
  Escreval ("3. Mostrar Moradores Menores de idade")
  Escreval ("4. Sair ")
  a1:=0
  leia (a1)
     //incluindo moradores
     escolha a1
       caso 1
         //cadastrar moradores
         enquanto cad <> "n" faca
           escreval("digite o nome do morador e tecle enter")
           leia (moradores[x])
           escreval("cadastrar outro morador  S  N")
           leia(cad)
           x:=x+1
           se x > 10 então
             escreval("Só podes Cadastrar 10 Moradores")
             cad:="n"
           fimse
         fimenquanto
         limpatela
       caso 2
         //cadastrar contas
       caso 3
         //mostrar moradores menoresde idade
         limpatela
         para y de 1 ate 10 faca
           escreval(y," morador ",moradores[y])
         fimpara
         escreval("           tecle enter")
         leia(a2)
         limpatela
     fimescolha
ate a1=4
       //    para a1=1 faca
       //    Escreva ("Insira o nome do morador:")
       //              leia (moradores)
       //  fimpara
       //comando para sair
//ate a1=4
Fimalgoritmo

 

Editado por devair1010
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 17 horas atrás, devair1010 disse:

    @brunoalv182     o até está faltando ali no comando para,  e o comando escolha só funciona 

    se você colocar o comando Caso para que ele saiba o que fazer.   Então modifiquei seu código

    acrescentando o comando Caso e coloquei o comando Para também.   Assim ele vai funcionar

    mas ainda falta muita coisa para terminar seu programa.  e o então tem que ser sem TIL .  Experimente assim:

    
    Algoritmo "Cadastro"
    Var
    a1,a2,a3,a4,x,y :inteiro
    a5, i,cad     : caractere
    moradores: vetor[1..10] de caracter
    contas: vetor[1..10, 1..10] de caracter inteiro
    sair: inteiro
    Inicio
    x:=1
    cad:="s"
    repita
      Escreval ("Menu principal")
      Escreval ("1. Cadastrar Moradores")
      Escreval ("2. Cadastrar contas")
      Escreval ("3. Mostrar Moradores Menores de idade")
      Escreval ("4. Sair ")
      a1:=0
      leia (a1)
         //incluindo moradores
         escolha a1
           caso 1
             //cadastrar moradores
             enquanto cad <> "n" faca
               escreval("digite o nome do morador e tecle enter")
               leia (moradores[x])
               escreval("cadastrar outro morador  S  N")
               leia(cad)
               x:=x+1
               se x > 10 então
                 escreval("Só podes Cadastrar 10 Moradores")
                 cad:="n"
               fimse
             fimenquanto
           caso 2
             //cadastrar contas
           caso 3
             //mostrar moradores menoresde idade
             limpatela
             para y de 1 ate 10 faca
               escreval(y," morador ",moradores[y])
             fimpara
           fimescolha
    ate a1=4
           //    para a1=1 faca
           //    Escreva ("Insira o nome do morador:")
           //              leia (moradores)
           //  fimpara
           //comando para sair
    //ate a1=4
    Fimalgoritmo

     

    Muito obrigado cara, tanto você quanto as outras dicas me ajudaram a sair dessa parte.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá @brunoalv182,

     

    Caso necessário, poste seu código atual para darmos uma analisada.

     

    Sobre o código, alguns pontos:

     

    Como está definido o uso dessas variáveis?

    Em 03/10/2016 às 02:00, devair1010 disse:
    
    Var
      a1,a2,a3,a4,x,y :inteiro
      a5, i,cad     : caractere
      moradores: vetor[1..10] de caracter
      contas: vetor[1..10, 1..10] de caracter inteiro
      sair: inteiro

     

     

    Sugiro utilizar nomenclaturas mais sugestíveis, por exemplo, em relação ao "a1", pelo que vi do uso dela, poderia utilizar algo como "menu", ou "opcao" ou "op" etc. Veja, se as outras estiverem relacionadas as "alternativas do menu", elas não precisam ser declaradas... utilizam-se apenas uma variável, e o "conteúdo" delas que seria "1" ou "2" ou "3" ou "4" (ou outra)...

     

    Em relação a "contas"... por quê o primeiro tem "caracter inteiro" ? não tenho certeza, mas acho que para "matrizes" (vetores com 2 ou mais coordenadas) utilizam uma tipo só mesmo...

     

    No aguardo.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Algoritmo "Cadastro"
    Var
    
    menu,a2,a3,a4,x,y:inteiro
    a5, i,cad, prod,l   : caractere
    moradores: vetor[1..10] de caracter
    cont: vetor[1..10, 1..10] de caractere inteiro
    sair: inteiro
    Inicio
    x:=1
    cad:="s"
    repita
      Escreval ("Menu principal")
      Escreval ("1. Cadastrar Moradores")
      Escreval ("2. Cadastrar contas")
      Escreval ("3. Mostrar Moradores Menores de idade")
      Escreval ("4. Exportar para TXT")
      Escreval ("5. Sair ")
      menu:=0
      leia (menu)
         //incluindo moradores
         escolha menu
           caso 1
             //cadastrar moradores
             enquanto cad <> "n" faca
               escreval("digite o nome do morador e tecle enter")
               leia (moradores[x])
               escreval("cadastrar outro morador  S  N")
               leia(cad)
               x:=x+1
               se x > 10 então
                 escreval("Só podes Cadastrar 10 Moradores")
                 cad:="n"
               fimse
             fimenquanto
               caso 2
             //cadastrar contas
             enquanto prod <> "n" faca
                      y:= y+1
                      escreval ("Digite o nome da conta que deseja cadastrar")
                      leia (cont[x])
                      escreval ("Digite o valor da conta")
                      leia (cont[y])
                      escreval("Deseja cadastrar mais uma conta? S N")
                      leia (prod)
                      x:= x+1
                       se x > 10 então
                         escreval("Só podes cadastrar 10 contas")
                         prod:="n"
                      fimse
             fimenquanto
           caso 3
             //mostrar moradores menoresde idade
             limpatela
             para y de 1 ate 10 faca
                  escreval(y," morador ",moradores[y])
               fimpara
               caso 4
                    //salvar resultados em txt
           fimescolha
    ate menu=5
           //    para a1=1 faca
           //    Escreva ("Insira o nome do morador:")
           //              leia (moradores)
           //  fimpara
           //comando para sair
    //ate a1=4
    Fimalgoritmo

    A ajuda de vocês realmente ajudou, agora só está faltando duas coisas, a primeira, somar todos os valores das contas e depois salvar em txt, até agora nao consegui, ainda estou tentando.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Acho que o pior de tudo é que depois vou ter que fazer esse mesmo programa em C, se já estou apanhando agora, imagine em c.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá @brunoalv182.

     

    Antes de somar as contas, é necessário armazená-las corretamente. Abaixo dou algumas sugestões de como melhorar o seu código.

    Obs.: Sugiro diminuir a quantidade de cadastro no início. Ex. para 2 moradores e 3 contas.

     

     

    Você precisa primeiramente arrumar as suas variáveis (mais abaixo já dou uma sugestão).

    - Nomenclatura mais sugestível

    A orientação é que as variáveis tenham nomes mais próximos dos seus usos.

    - Variáveis declaradas e não usadas

    Algumas das suas variáveis não estão sendo usadas no código, que é o caso da a2, a3, a4 e a5. Devem ser apagadas!

    - Reutilização de variáveis

    Geralmente as variáveis que verificam se deseja continuar podem ser reutilizadas. Haja vista que essas respostas não precisam ficar armazenadas após serem verificadas.

    - Declaração correta das variáveis

    Você declarou:

    16 horas atrás, brunoalv182 disse:
    
    cont: vetor[1..10, 1..10] de caractere inteiro

     

    Os vetores só tem "UM tipo", que no seu contexto seria inteiro (ou real, se for considerar as frações). Você declarou como caractere inteiro.

    Nesse caso, as coordenadas têm 2 posições, o que fica caracterizado uma MATRIZ (de duas coordenadas), mas essas  coordenadas apontam para UMA única posição da matriz. Não tem mistério. Veja:

     

    Vamos imaginar o vetor de um coordenada:

    16 horas atrás, brunoalv182 disse:

    moradores: vetor[1..10] de caracter

    Essa estrutura comportar-se como um conjunto de 10 variáveis, ou seja, como se estivesse declarando moradores1, moradores2, moradores3 etc. A diferença que pode acessar as posições (as variáveis) mais facilmente. (o que você já faz no seu código)

     

    A diferença de contas é que ela tem 2 coordenadas, logo, para acessá-las seriam necessárias 2 valores.

    Ex.:

    contas[3,5]

     

    Para demonstração, veja esse exemplo:

         contas   :vetor[1..3, 1..5] de inteiro

    Chamemos a primeira coordenada de linha, e a segunda de coluna. Logo, para cada linha, temos 5 colunas, o que totalizam 15 variáveis!!! Entende?

     

    Contextualizando, poderíamos dizer que as linhas representam os moradores e as colunas as contas dos respectivos moradores. Se eu quero a 4a conta do morador 2, acessaria como: contas[2,4].

     

    Abaixo uma base de como pode reorganizar as variáveis:

    Var
      //VARIÁVEIS AUXILIARES
      menu      :caracter //utilizado no menu principal
      continuar :caracter //para verificar se deseja continuar ou não
      totalM    :inteiro  //total de moradores cadastrados
      posM      :inteiro  //posição do morador na matriz
      posC      :inteiro  //posição da conta do morador na matriz
      
      //VARIÁVEIS PARA ARMAZENAMENTO
      moradores:vetor[1..10] de caracter       //cadastro dos nomes dos moradores
      contas   :vetor[1..10, 1..10] de inteiro //cadastro das contas dos moradores*
       {contas[x,y];
          x=posição do morador (ex.: morador da posição 2 em "moradores",
        terá suas contas na posção 2 em contas)
          y=contas do morador. Cada posição será uma conta, ou seja, cada morador
        pode ter até 10 contas}

    Daí, na hora de cadastrar as contas, precisa saber em qual posição está o morador antes. Logo, primeiro pergunta qual é o morador (posição) e após o valor das contas...

     

    As contas seriam inseridas assim:

    contas[posM,posC]

    O posM é informado pelo usuário (ou o código acha usando o nome*) e o posC vai de 1 a 10. Ai você vê como vai gerenciar... se vai cadastrar os 10 de uma vez ou se vai cadastrando aos poucos.

     

    Lembrando que você pode inicialmente diminuir a quantidade de cadastras (ex.: 2 moradores com 3 contas cada)

     

     

    No aguardo.

     

     

     

     

     

    Editado por Simon Viegas
    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Citação:

    Spoiler
    2 horas atrás, Simon Viegas disse:

    Olá @brunoalv182.

     

    Antes de somar as contas, é necessário armazená-las corretamente. Abaixo dou algumas sugestões de como melhorar o seu código.

    Obs.: Sugiro diminuir a quantidade de cadastro no início. Ex. para 2 moradores e 3 contas.

     

     

    Você precisa primeiramente arrumar as suas variáveis (mais abaixo já dou uma sugestão).

    - Nomenclatura mais sugestível

    A orientação é que as variáveis tenham nomes mais próximos dos seus usos.

    - Variáveis declaradas e não usadas

    Algumas das suas variáveis não estão sendo usadas no código, que é o caso da a2, a3, a4 e a5. Devem ser apagadas!

    - Reutilização de variáveis

    Geralmente as variáveis que verificam se deseja continuar podem ser reutilizadas. Haja vista que essas respostas não precisam ficar armazenadas após serem verificadas.

    - Declaração correta das variáveis

    Você declarou:

    Os vetores só tem "UM tipo", que no seu contexto seria inteiro (ou real, se for considerar as frações). Você declarou como caractere inteiro.

    Nesse caso, as coordenadas têm 2 posições, o que fica caracterizado uma MATRIZ (de duas coordenadas), mas essas  coordenadas apontam para UMA única posição da matriz. Não tem mistério. Veja:

     

    Vamos imaginar o vetor de um coordenada:

    Essa estrutura comportar-se como um conjunto de 10 variáveis, ou seja, como se estivesse declarando moradores1, moradores2, moradores3 etc. A diferença que pode acessar as posições (as variáveis) mais facilmente. (o que você já faz no seu código)

     

    A diferença de contas é que ela tem 2 coordenadas, logo, para acessá-las seriam necessárias 2 valores.

    Ex.:

    
    
    contas[3,5]

     

    Para demonstração, veja esse exemplo:

    
    
         contas   :vetor[1..3, 1..5] de inteiro

    Chamemos a primeira coordenada de linha, e a segunda de coluna. Logo, para cada linha, temos 5 colunas, o que totalizam 15 variáveis!!! Entende?

     

    Contextualizando, poderíamos dizer que as linhas representam os moradores e as colunas as contas dos respectivos moradores. Se eu quero a 4a conta do morador 2, acessaria como: contas[2,4].

     

    Abaixo uma base de como pode reorganizar as variáveis:

    
    
    Var
      //VARIÁVEIS AUXILIARES
      menu      :caracter //utilizado no menu principal
      continuar :caracter //para verificar se deseja continuar ou não
      totalM    :inteiro  //total de moradores cadastrados
      posM      :inteiro  //posição do morador na matriz
      posC      :inteiro  //posição da conta do morador na matriz
      
      //VARIÁVEIS PARA ARMAZENAMENTO
      moradores:vetor[1..10] de caracter       //cadastro dos nomes dos moradores
      contas   :vetor[1..10, 1..10] de inteiro //cadastro das contas dos moradores*
       {contas[x,y];
          x=posição do morador (ex.: morador da posição 2 em "moradores",
        terá suas contas na posção 2 em contas)
          y=contas do morador. Cada posição será uma conta, ou seja, cada morador
        pode ter até 10 contas}

    Daí, na hora de cadastrar as contas, precisa saber em qual posição está o morador antes. Logo, primeiro pergunta qual é o morador (posição) e após o valor das contas...

     

    As contas seriam inseridas assim:

    
    
    contas[posM,posC]

    O posM é informado pelo usuário (ou o código acha usando o nome*) e o posC vai de 1 a 10. Ai você vê como vai gerenciar... se vai cadastrar os 10 de uma vez ou se vai cadastrando aos poucos.

     

    Lembrando que você pode inicialmente diminuir a quantidade de cadastras (ex.: 2 moradores com 3 contas cada)

     

     

    No aguardo.

     

     

     

     

     

    Agradeço mais uma vez a ajuda do forum, arrumei as nomenclaturas, mas ai por alguma motivo o algoritmo para de funcionar.

    E quando eu coloco um vetor de "inteiro" ele também para de funcionar, só volta a funcionar se eu colocar de "caractere inteiro"

     

     

    e em relação ao cadastro das contas no vetor e salva-las, também não consegui.

     

    /cadastrar contas
             enquanto continuar <> "n" faca
    
                      escreval ("Digite o nome da conta que deseja cadastrar")
                      leia (contas[posM])
                      escreval ("Digite o valor da conta")
                      leia (contas[posC])
                      escreval("Deseja cadastrar mais uma conta? S N")
                      leia (continuar)
                      x:= x+1
                       se x > 10 então
                         escreval("Só podes cadastrar 10 contas")
                         continuar:="n"
                      fimse
    
             fimenquanto

     

    Editado por Simon Viegas
    Inserir SPOILER na citação
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites


    Olá @brunoalv182.

     

    Contas é uma matriz de duas coordenadas. Você só está passando uma. Por favor, releia a minha postagem anterior.

     

     

    adicionado 4 minutos depois

    PS: cole seu código inteiro, que aproveitamos para revisar.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @Simon Viegas Olá

     

    Então, eu li umas 5x haha, o problema é que quando eu mudo não funcionar.

     

    Deixa eu explicar melhor

     

    A matriz de contas é de duas cordeadas, a primeira posM (moradores) e a segunda é posC (contas).

    Mas além do valor de contas, eu preciso por o nome da conta, então seria três coordenadas?

     

    Eu estou relendo meu material inteiro sobre vetores e matrizes pra tentar entender o que estou fazendo de errado.

    Peço desculpas se meu erro é muito fácil de se perceber, mas ainda não percebi uashasuhas.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Ai que está... o nome dos moradores já está em moradores. O nome do morador 1 está na posição 1, do morador 2, está na posição 2... e assim por diante.

     

    Já o vetor contas servirá para armazenar as contas desses moradores. As contas do morador 1 está na posição 1, do morador 2 está na posição 2... e assim por diante. Vamos imaginar que é apenas um conta por morador:

    moradores:vetor[1..10] de caracter
    contas   :vetor[1..10] de inteiro

    ou seja, o nome do morador fica no primeiro vetor, e a conta do morador fica no segundo. Para posições iguais, terá dados para o mesmo morador. Beleza? Esses vetores também são matrizes, no caso ambas são matriz linha. Como uma matriz 1x10.

     

    Ex.:

    escreval("Digite o nome do morador")
    leia (moradores[totalM])
    escreval("Digite o valor da conta")
    leia (contas[totalM])

    Veja que está cadastrando dados usando a mesma posição como referência para ambos os valores! Supondo totamM vale 3 naquele momento, o morador 3 terá seu nome e sua conta na posição 3 respectivamente nos vetores.

     

    Mas ai, você precisa que um mesmo morador tenha mais de uma conta!!! E agora? Ai entra o vetor de 2 coordenadas.

    3 horas atrás, Simon Viegas disse:
    
    //VARIÁVEIS PARA ARMAZENAMENTO
    moradores:vetor[1..10] de caracter //cadastro dos nomes dos moradores
    contas   :vetor[1..10, 1..10] de inteiro //cadastro das contas dos moradores*

     

     

    Conta agora tem DUAS COORDENADAS, no caso como uma matriz 10x10. A moradores tem apenas uma linha! essa linha tem 10 posições, onde cada uma delas armazenará um nome, certo?

     

    Já em contas, temos 10 linhas e cada linha com 10 colunas!!!

     

    Podemos imaginar os vetores assim:

    moradores =
    ["João","Maria","Bruno","Simon"," "," "," "," "," "," ",]
    
    contas =
    [415,345,100,230,242,425,524,324,425,320] //linha um é referente a posição um do outro vetor, logo de João
    [430,340,450,860,240,680,350,620,723,560] //linha dois de Maria (que tá na posição 2)
    [0,0,0,0,0,0,0,0,0,0] //linha 3 de Bruno
    [0,0,0,0,0,0,0,0,0,0] //linha 4 de Simon
    [0,0,0,0,0,0,0,0,0,0] //e assim por diante
    [0,0,0,0,0,0,0,0,0,0]
    [0,0,0,0,0,0,0,0,0,0]
    [0,0,0,0,0,0,0,0,0,0]
    [0,0,0,0,0,0,0,0,0,0]
    [0,0,0,0,0,0,0,0,0,0]

    Daí, na hora de cadastrar as contas, precisa saber para qual morador está cadastrando. No caso, a posição que ele está.

     

    Vamos supor que quer cadastrar as contas de Bruno. Ele está na posição 3, logo posM tem que valer 3 ("posição do morador"). Cadastrando as contas em ordem, posC começaria com 1 e iria aumentando de um em um.

    leia(posM,posc);

     

     

    ***********

     

     

    Tente fazer o seguinte!!! Cadastre apenas uma conta para cada morador.

    Veja, precisa saber a POSIÇÃO do morador, e não "nome da conta".  Armazena a posição em posM, e ler o valor da conta:

    leia(posM,1); //posM será posição do morador, e esse 1 é a posição dessa única conta desse morador)

    Ai poste o seu código completo aqui.

     

     

    No aguardo.

    • Curtir 2

    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

    ×