Ir ao conteúdo

VisualG Calcular os métros quadrados de um condominio


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

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?

Postado

@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

 

  • Membro VIP
Postado

@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
  • 3 semanas depois...
Postado

@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

 

Postado

@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

 

Postado

@devair1010 O problema ainda não foi resolvido. Quando eu cadastro as lojas o programa não salva e não mostra a listagem das lojas cadastradas, simplesmente dá erro. Como faço pra corrigir?

  • Solução
Postado

@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

 

  • Membro VIP
Postado
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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!