Ir ao conteúdo
  • Cadastre-se

brunoalv182

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

posts postados por brunoalv182

  1. @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
  2. 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

     

    • Curtir 1
  3. 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
  4. 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
  5. 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

    • Curtir 1

Sobre o Clube do Hardware

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

Direitos autorais

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

×
×
  • Criar novo...

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!