Ir ao conteúdo
  • Cadastre-se

VisualG Calcular os métros quadrados de um condominio


Visitante
Ir à solução Resolvido por devair1010,

Posts recomendados

Sou leigo em programação, estou tentando criar um código de shopping center: Uma loja possui: código (inteiro), nome (caractere), área (float), tipo (inteiro) e condomínio (float). O código representa o código da loja, onde este código deve ser único, ou seja, não pode haver duas lojas com o mesmo código. O nome representa o nome da loja. A área representa a área (m2) que a loja ocupa no shopping. E o condomínio representa o valor do condomínio que a loja pagará ao shopping. O programa deverá armazenar os dados das lojas em matrizes para depois calcular o valor do condomínio por m². O valor do condomínio depende da área e do tipo da loja.

 

algoritmo "SHOPPING CENTER"

var
   nome: caractere
   cod : inteiro
   area : float
   opc : caractere
   tip: inteiro
   condominio : float

   //tela de menu
procedimento menu()
inicio
   repita
      limpaTela
      escreval ("________________SHOPPING CENTER________________")
      escreval ()
      escreval ("          1- Cadastrar loja                    ")
      escreval ("          2- Consultar loja                    ")
      escreval ("          3- Listagem de todas as lojas        ")
      escreval ("          0- Sair                              ")
      leia (opc)
      escolha (opc)
      caso "1"
         limpaTela
         cadastrar_loja()
      caso "2"
         limpaTela
         consultar_loja()
      caso "3"
         limpaTela
         listagem_lojas()
      caso "0"
         limpaTela
         sair()

      fimEscolha

      //cadastro de loja
procedimento cadastro()
inicio
   repita
      limpaTela
      escreval ("Código:            ")
      escreval ("Nome:              ")
      escreval ("Área:              ")
      escreval ("Tipo: (1-Confecções, 2-Alimentação, 3-Livros, 4-Serviços):")
      escreval ()
      escreval ("Cadastrar outra (1-Sim/0-Não)?")

Alguém pode me ajudar a completar este código ou precisa corrigir?

Link para o comentário
Compartilhar em outros sites

@Reinaldo_Lopes     você  não colocou alguns comandos , como  aqui no "repita" , que precisa do "ate" , e o "procedimento"  que precisa do "fimprocedimento" ,  e se você que armazenar vários dados seria bom mesmo usar um vetor ou melhor ainda uma matriz ,  e para não perder o que foi cadastrado  pode usar "arquivo" ,  e seu código corrigido ficou assim  :

algoritmo "SHOPPING CENTER"
var
  vector          : vetor[1..100] de inteiro
  m_nome          : vetor[1..100,1..5] de caractere // matriz de nomes
  nome,resp       : caractere
  tip,cod , opc   : inteiro
  area,condominio : real
  contador , a    : inteiro
procedimento menu     // tela de menu
inicio
  limpatela
  escreval ("________________SHOPPING CENTER________________")
  escreval (                                                 )
  escreval ("         0 - Sair                              ")
  escreval ("         1 - Cadastrar loja                    ")
  escreval ("         2 - Consultar loja                    ")
  escreval ("         3 - Listagem de todas as lojas        ")
  leia (opc)
  limpatela
fimprocedimento
procedimento listagem_lojas
inicio
  escreval  (" está no listagem loja"     )
  escreval
  para a de 1 ate contador faca
    escreval( a,"ª Loja     "             )
    escreval("Código -----: ",m_nome[a,1] )
    escreval("Bome -------: ",m_nome[a,2] )
    escreval("Área -------: ",m_nome[a,3] )
    escreval("Tipo -------: ",m_nome[a,4] )
    escreval
  fimpara
  escreval
  escreval("Total De Lojas Cadastradas -> ", contador)
  escreval
  escreval("   Tecle Enter")
  leia( resp )
fimprocedimento
procedimento sair
inicio
  escreval
  escreval("    Saindo Do Programa . . . !")
fimprocedimento
procedimento cadastrar_loja // cadastro de loja
inicio
  escreval(" está no cadastrar loja")
  repita
    contador := contador + 1
    escreva ("Código --------: " )
    leia    ( m_nome[contador,1] )
    escreva ("Nome ----------: " )
    leia    ( m_nome[contador,2] )
    escreva ("Área ----------: " )
    leia    ( m_nome[contador,3] )
    escreval(" 1 - Confecções  " )
    escreval(" 2 - Alimentação " )
    escreval(" 3 - Livros      " )
    escreval(" 4 - Serviços    " )
    escreva ("Tipo de 1 a 4 -: " )
    leia    ( m_nome[contador,4] )
    escreva ("Cadastrar outra S / N ")
    leia(resp)
  ate resp = "n"
fimprocedimento
procedimento consultar_loja
inicio
  escreval(" está no consultar loja Tecle Enter")
  leia( resp )
fimprocedimento
//   -----------------  Início do programa   -----------------
inicio
  repita
    menu
    escolha( opc )
    caso 0
      sair
    caso 1
      cadastrar_loja
    caso 2
      consultar_loja
    caso 3
      listagem_lojas
    outrocaso
      escreval("Opção Inválida . . . !")
    fimEscolha
  ate opc = 0
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Reinaldo_Lopes, uns detalhes... se atentando apenas no código original... Segue:

 

Em 16/02/2023 às 16:04, Reinaldo_Lopes disse:
area : float


Não existe float no VisualG, mas sim o real.

 

 

 

 

Em 16/02/2023 às 16:04, Reinaldo_Lopes disse:
      caso "1"
         limpaTela
         cadastrar_loja()


Se está invocando um método cadastrar_loja(), deve exisitr um método com o mesmo nome. Ou muda o nome do procedimento para cadastrar_loja(), ou invoca como tá: cadastro().

 

Dica: a medica que for implementando, já vá testando. Não tente fazer tudo de uma vez. Por exemplo, se a tela de cadastro (que está antes) não estaria rodando, como iria já implementar uma consulta?

 

Em relação ao código do @devair1010, sugeriria um ajuste na nomenclaturas da variável. Por exemplo:

 

21 horas atrás, devair1010 disse:
m_nome          : vetor[1..100,1..5] de caractere // matriz de nomes

 

Como visto no restando do código, essa matriz não é só para armazenar nomes... 🙂

 

Sugeriria algo como:

   cad_shopping    : vetor[1..10, 1..4] de caractere
                        //[posição, (código, nome, área e tipo)]

 

 

 

Qualquer coisa é só postar!

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

  • 3 semanas depois...

@Simon Viegas e @devair1010 , o programa está funcionando, porém quando eu cadastro a(s) loja(s), simplesmente o programa não consegue consultar a(s) loja(s). Eu só preciso corrigir esse pequeno erro.

 

algoritmo "SHOPPING CENTER"
var
  vector:           vetor[1..100] de inteiro
  m_nome:           vetor[1..100,1..5] de caractere // matriz de nomes
  nome,resp:        caractere
  tip,cod , opc:    inteiro
  area,condominio:  real
  contador , a:     inteiro
procedimento menu     // tela de menu
inicio
  limpatela
  escreval ("________________SHOPPING CENTER________________")
  escreval (                                                 )
  escreval ("___________Digite a opção desejada_____________")
  escreval (                                                 )
  escreval ("         1 - Cadastrar loja                    ")
  escreval ("         2 - Consultar loja                    ")
  escreval ("         3 - Listagem de todas as lojas        ")
  escreval ("         4 - Sair                              ")
  leia (opc)
  limpatela
fimprocedimento
procedimento listagem_lojas
inicio
  escreval  (" Está no listagem loja"     )
  escreval
  para a de 0 ate contador faca
    escreval( a,"ª  Loja     "                )
    escreval("Código:         ",m_nome: [a,0] )
    escreval("Nome:           ",m_nome: [a,1] )
    escreval("Área:           ",m_nome: [a,2] )
    escreval("Tipo:           ",m_nome: [a,3] )
    escreval
  fimpara
  escreval
  escreval("Total De Lojas Cadastradas -> ", contador)
  escreval
  escreval("   Tecle Enter")
  leia( resp )
fimprocedimento
procedimento sair
inicio
  escreval
  escreval("    Saindo Do Programa . . . !")
fimprocedimento
procedimento cadastrar_loja // cadastro de loja
inicio
  escreval(" Está no cadastrar loja")
  repita
    contador := contador + 1
    escreva ("Código: " )
    leia    ( m_nome[contador,1] )
    escreva ("Nome: " )
    leia    ( m_nome[contador,2] )
    escreva ("Área: " )
    leia    ( m_nome[contador,3] )
    escreval(" 1 - Confecções  " )
    escreval(" 2 - Alimentação " )
    escreval(" 3 - Livros      " )
    escreval(" 4 - Serviços    " )
    escreva ("Tipo de 1 a 4 -: " )
    leia    ( m_nome[contador,4] )
    escreva ("Cadastrar outra? 0-SIM / 1-NÃO ")
    leia(resp)
  ate resp = "1"
fimprocedimento
procedimento consultar_loja
inicio
  escreval(" Está no consultar loja Tecle Enter")
  leia( resp )
fimprocedimento
//   -----------------  Início do programa   -----------------
inicio
  repita
    menu
    escolha( opc )
    caso 1
      cadastrar_loja
    caso 2
      consultar_loja
    caso 3
      listagem_lojas
    caso 4
      sair
    outrocaso
      escreval("Opção Inválida . . . !")
    fimEscolha
  ate opc = 4
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

@Reinaldo_Lopes   você criou uma matriz "m_nome" com 100 linha por cinco colunas ,  onde os dados armazenados nela serão considerados como caracteres ,  começando de 1 até 100  e de 1 até 5 ,  e cadastrou os dados na posição começando de 1 até 4 e na hora de listar os dados , você colocou para escrever o que está na posição zero , que nem existe , até 3 

para a de 0 ate contador faca
  escreval( a,"ª  Loja"                )
  escreval("Código --: ",m_nome: [a,0] ) // não existe essa posiCAo ( 0 , 0 )
  escreval("Nome ----: ",m_nome: [a,1] ) // no loop a var "a" vale zero no inIcio
  escreval("Área ----: ",m_nome: [a,2] ) // e não pode ter dois_pontos aqui 
  escreval("Tipo ----: ",m_nome: [a,3] ) // tabulaCAo organiza dados
  escreval
fimpara

pode refazer a matriz "m_nome" para ter o zero , sim !

 m_nome : vetor[0..100,0..5] de caractere // matriz de nomes
                                          // 100 Linhas
                                          // 5 Colunas

e alterar também na hora de cadastrar

procedimento cadastrar_loja // cadastro de loja
inicio
  escreval(" Está no cadastrar loja")
  repita
    escreva ("Código: " )
    leia    ( m_nome[contador,0] )
    escreva ("Nome: " )
    leia    ( m_nome[contador,1] )
    escreva ("Área: " )
    leia    ( m_nome[contador,2] )
    escreval(" 1 - Confecções  " )
    escreval(" 2 - Alimentação " )
    escreval(" 3 - Livros      " )
    escreval(" 4 - Serviços    " )
    escreva ("Tipo de 1 a 4 -: " )
    leia    ( m_nome[contador,3] )
    contador := contador + 1
    escreva (" Cadastrar outra ? 0 - SIM / 1 - NÃO")
    leia(resp)
  ate resp = "1"
fimprocedimento

 

Link para o comentário
Compartilhar em outros sites

  • Solução

@Reinaldo_Lopes     veja se seu código segue esse exemplo 

algoritmo "SHOPPING CENTER"
var
  vector         : vetor[0..100] de inteiro
  cad_shopping   : vetor[0..100,0..5] de caractere // matriz de nomes
  nome,resp      : caractere
  tip,cod , opc  : inteiro
  area,condominio: real
  contador , a   : inteiro
//   ----------------------------------------------------------
procedimento menu     // tela de menu
inicio
  limpatela
  escreval ("________________SHOPPING CENTER________________")
  escreval (                                                 )
  escreval ("___________Digite a opção desejada_____________")
  escreval (                                                 )
  escreval ("         1 - Cadastrar loja                    ")
  escreval ("         2 - Consultar loja                    ")
  escreval ("         3 - Listagem de todas as lojas        ")
  escreval ("         4 - Sair                              ")
  leia     (              opc                                )
  limpatela
fimprocedimento
//   ----------------------------------------------------------
procedimento listagem_lojas
inicio
  escreval  (" Está no listagem loja"   )
  escreval
  para a de 0 ate contador faca
    escreval( a,"ª  Loja     "          )
    escreval("Código --: ", cad_shopping [a,0] )
    escreval("Nome ----: ", cad_shopping [a,1] )
    escreval("Área ----: ", cad_shopping [a,2] )
    escreval("Tipo ----: ", cad_shopping [a,3] )
    escreval
  fimpara
  escreval
  escreval("Total De Lojas Cadastradas -> ", contador)
  escreval
  escreval("   Tecle Enter"                          )
  leia    (    resp                                  )
fimprocedimento
//   ----------------------------------------------------------
procedimento sair
inicio
  escreval
  escreval("    Saindo Do Programa . . . !")
fimprocedimento
//   ----------------------------------------------------------
procedimento cadastrar_loja // cadastro de loja
inicio
  escreval(" Está no cadastrar loja")
  repita
    escreva ("Código: "                 )
    leia    ( cad_shopping [contador,0] )
    escreva ("Nome: "                   )
    leia    ( cad_shopping [contador,1] )
    escreva ("Área: "                   )
    leia    ( cad_shopping [contador,2] )
    escreval(" 1 - Confecções  "        )
    escreval(" 2 - Alimentação "        )
    escreval(" 3 - Livros      "        )
    escreval(" 4 - Serviços    "        )
    escreva ("Tipo de 1 a 4 -: "        )
    leia    ( cad_shopping [contador,3] )
    contador := contador + 1
    escreva ("Cadastrar outra ? 0 - SIM / 1 - NÃO")
    leia    ( resp                      )
  ate resp = "1"
fimprocedimento
//   ----------------------------------------------------------
procedimento consultar_loja
inicio
  escreval(" Está no consultar loja Tecle Enter")
  leia    (  resp                               )
fimprocedimento
//   -----------------  Início do programa   -----------------
inicio
  repita
    menu
    escolha( opc )
    caso 1
      cadastrar_loja
    caso 2
      consultar_loja
    caso 3
      listagem_lojas
    caso 4
      sair
    outrocaso
      escreval("Opção Inválida . . . !")
    fimEscolha
  ate opc = 4
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
33 minutos atrás, JorgeGus disse:

O procedimento consultar_loja não deveria exibir as informações da loja?

 

Sim... basta implementar o que falta. Ali estaria só um esboço inicial.

 

Sobre a organização geral, uma dica seria criar uma procedimento especificamente para imprimir uma loja:

procedimento imprimir_loja()
inicio
   escreval("Código --: ", cad_shopping[a, 0])
   escreval("Nome ----: ", cad_shopping[a, 1])
   escreval("Área ----: ", cad_shopping[a, 2])
   escreval("Tipo ----: ", cad_shopping[a, 3])
fimProcedimento

 

Assim, quando precisar, só invocar o procedimento. Exemplo:

procedimento listagem_lojas()
inicio
   escreval(" Está no listagem loja")
   escreval()
   
   para a de 0 ate contador-1 faca
      escreval(a, "ª  Loja     ")
      imprimir_loja()
      escreval()
   fimpara
   
   escreval()
   escreval("Total De Lojas Cadastradas -> ", contador:1)
   escreval
   escreval("   Tecle Enter")
   leia(resp)
fimProcedimento

 

Vantagens: a impressão fica padronizada e quando precisar ajustar alguma coisa, só precisaria ajustar uma vez lá no procedimento (em vez de ajustar um a um em cada vez que tem essa estrutura).

 

O mesmo princípio daria para fazer para "aguardar o ENTER".

procedimento aguardar_enter()
inicio
   escreval()
   escreval("   Tecle Enter")
   leia(resp)
fimProcedimento

 

  • Curtir 1
  • Obrigado 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...

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!