Ir ao conteúdo
  • Cadastre-se

VisualG Esperava encontrar o então


Ir à solução Resolvido por devair1010,

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

  • Solução

@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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!