Ir ao conteúdo

VisualG Esperava encontrar o então


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Gente, tudo bem??
Eu estou iniciando em lógica de programação.

Estou fazendo o curso do Curso em vídeo (famosa plataforma de cursos online) e estou na aula 14 do curso de lógica de programação que usa o Visualg.

Esta dando o erro "Esperava encontrar o então", porém eu o mencionei no código.

Alguém poderia me ajudar??

obrigado!!

Meu código: 

algoritmo "cinema"
var
   c, n: inteiro
   cadeira: vetor [1..10] de inteiro
   resposta: caractere
procedimento mesas(a: inteiro)
var cprocedimento: inteiro
inicio

   para cprocedimento<- a ate 10 faca
      se (cadeira[c] = a) então
         Escreva("[---]")
      senao
         Escreva("[B", a,"]")
      fimse
   fimpara
   escreval("--------------------------")
fimprocedimento

inicio
   n<- 1
   mesas(n)
   c<- 1
   enquanto c<=10 faca
      Escreva("Reservar a cadeira: B")
      Leia(cadeira[c])
      Escreval("você quer continuar escolher outra? [S/N]")
      Leia(resposta)
      se (resposta = "S") então
         c<- c + 1
      limpatela
      mesas(n)
      senao
         c<- 11
      fimse
   fimenquanto


fimalgoritmo

 

  • Curtir 1
  • Amei 1
Postado

Ele está indicando o erro na linha acima.

27 minutos atrás, eubastos disse:
para cprocedimento<- a ate 10 faca

o correto é para <variável> de <valor-inicial> ate <valor-limite> [passo <incremento>] faca

falta a palavra de atribuição de no lugar de <- (comando de atribuição de variável)

 

manual visualG

  • Obrigado 2
  • Solução
Postado

@eubastos    você está usando essa variáveL "c" para controlar a saída do Loop "enquanto" ,  mas não precisa pois você pode usar um comando que já foi criado no visualG para fazer exatamente isso , que é o comando "interrompa" , semelhante ao break da libguaGem C , cuja função é interromper um Loop ou laço "enquanto / fimenquanto" ou "para / fimpara" ,   

           organizar o código , deixando espaço entre os comandos e símbolos , e também identando , facilita a leitura e entendimento do mesmo ,  e para identar automaticamente use o atalho ctrl + g , e para substituir palavras como esse então por "então sem TiL" use ctrl + u e coloque o que vai escrever ,  e quanto a esse erro "esperava encontrar então"  ele é clássico , e geralmente não tem nada a ver com o dito então , e sim em alguma outra parte do código , e nesse caso o erro seria por que você criou a variáveL "cprocedimento" e na hora de usar como referência das posições do vetor "cadeira" , você colocou erroneamente a variável "c" que também existe nesse seu código , mas está sendo usada para outra função e o visualG 3.0.6.5 aceita sim esses dois modos de uso no loop "para / fimpara" , pode usar tanto esse símbolo  "<-"   quanto esse outro modo "de" .

e seu código com algumas modificações ficaria assim   :

algoritmo "cinema"
var
   c, n     : inteiro
   cadeira  : vetor [1..10] de inteiro
   resposta : caractere
procedimento mesas(a: inteiro) // procedimento com parAmetro
var
   cprocedimento : inteiro
inicio                                      // o VsisualG aceita os dois modos
   para cprocedimento <- a ate 10 faca      // com "de" ou com "<-"
      se (cadeira[cprocedimento] = a) então // a posicAo no vetor
         Escreva("[---]")                   // eh "cprocedimento" e não "c"
      senao
         Escreva("[B", a,"]")
      fimse
   fimpara
   escreval("--------------------------")
fimprocedimento
//-----------  o Programa  Inicia Aqui    ---------------
inicio
   n <- 1    // deixe um espaCo para facilitar a LeituRa
   mesas(n)
   c <- 1
   enquanto c <= 10 faca
      Escreva("Reservar a cadeira: B")
      Leia(cadeira[c])
      Escreval("você quer continuar escolher outra? [S/N]")
      Leia(resposta)
      se (resposta = "S") então
         c <- c + 1
         limpatela
         mesas(n)
      senao
         interrompa  // interrompe o laCo
      fimse
   fimenquanto
fimalgoritmo

 

  • Obrigado 1
Postado

@kgin obrigado, irmão 

Não sabia que podia usar o "de", no meu caso não é esse o erro.

Mas obgdao!!

 

@devair1010 Vdd, irmão!!

Meu erro naquele caso era realmente colocar c ao invés de cprocedimento.

Resolveu meu problema! Mas apareceu outros kkkkkkkkk

algoritmo "cinema"
var
   c, n: inteiro
   cadeira: vetor [1..10] de inteiro
   resposta: caractere


procedimento titulo(b: inteiro)
inicio
   para b<- 1 ate 10 faca
      Escreva("[B", b,"]")
   fimpara
fimprocedimento

procedimento mesas(a: inteiro)
var cprocedimento: inteiro
inicio

   para cprocedimento<- a ate 10 faca
      se ( cadeira[c] = cprocedimento) então
         Escreva("[---]")
      senao
            Escreva("[B", cprocedimento,"]")
      fimse
   fimpara
   c<- c+ 1
   escreval("--------------------------")
fimprocedimento

inicio
   n<- 1
   titulo(n)
   c<- 1
   enquanto c<=10 faca
      Escreva("Reservar a cadeira: B")
      Leia(cadeira[c])
      Escreval("você quer continuar escolher outra? [S/N]")
      Leia(resposta)
      se (resposta = "S") então
         limpatela
         mesas(n)
      senao
         interrompa  //interrompe o loop
      fimse
   fimenquanto


fimalgoritmo

Meu novo código esta assim.

 

Vamos supor que eu reserve a cadeira 2 e Digito S para continuar

O prompt vai ficar assim:2024-02-23.thumb.png.6a803d73433451d42c601372dd0b5638.png

 

Ignore a segunda tela pfv kkkkk

 

Se eu cadastrar mais uma cadeira o objetivo é que ela também fique pontilhada, mas com a primeira que eu cadastrei também continuando pontilhada. porém se eu cadastrar outra retorna assim: 2024-02-23(5).thumb.png.014454cdc76e06b72385960b5321b559.png

 

você sabe como resolver isso??

Obrigadão!!!

 

  • Curtir 1
Postado

@devair1010 Achei a solução!

 

algoritmo "LugaresCinema"
// =============================================================
// Algoritmo para reservar lugares em uma sala de cinema.
//
// AUTOR: Gustavo Guanabara
// Curso COMPLETO disponivel GRATIS no site www.cursoemvideo.com
// =============================================================
var
   B: vetor[1..19] de Caractere
   l, cad: Inteiro
   r: Caractere
   
Procedimento MostraFileira()
var i: Inteiro
inicio
   Para i <- 1 ate 10 faca
      Se (B[i] = "") então
         Escreva ("[ B", i:2, " ]")
      senao
         Escreva ("[ --- ]")
      FimSe
   FimPara
   EscrevaL()
   EscrevaL("------------------------------------------------------------------------")
FimProcedimento

inicio
   Repita
      LimpaTela
      MostraFileira()
      Escreva("Reservar a cadeira: B")
      Leia(cad)
      Se (B[cad]="") então
         B[cad] <- "X"
         EscrevaL("Cadeira B", cad, " RESERVADA!")
      Senao
         EscrevaL("ERRO: Lugar Ocupado!")
      FimSe
      Escreva("Quer reservar outro? [S/N] ")
      Leia(r)
   Ate (r = "N")
fimalgoritmo
  • Amei 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...

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!