Ir ao conteúdo

Posts recomendados

Postado

Boa tarde amigos,

 

Este meu programa está dando erro na linha 117 mostrando como erro de sintaxe. Mas não estou encontrando o que está errado e mesmo alterando de outras formas não está aceitando. 

 

O que está errado que não estou vendo? 

 

Código:

Spoiler

Algoritmo "Ordenação_Bubblesort"

// SA5 – Atividade 1 – Algoritmo de Ordenação - Bubblesort
// Aluno: Thiago Cuter dos Santos
// Prof. Gelson Luiz Moraes
// Turma da Manhã - Sábado SENAI 602
var

requisitos:caractere

inicio

//funcao texto():caractere

//escreval("A empresa R2D2 precisa resolver a seguinte situação:")
//escreval("o cliente possui um sistema de cadastro de senhas de chamados")
//escreval("dos usuários, as senhas numéricas são entre 0001")
//escreval("até 1024, sendo armazenados em uma estrutura homogênea")
//escreval("(vetor) na ordem de Pilha ou Fila.")
//escreval("")
//escreval("As buscas dentro do sistema de cadastros de senhas são frequentes")
//escreval("e quando atinge um número grande de usuários cadastrados, o sistema")
//escreval(" fica lento e às vezes trava.")

//fimfuncao

//funcao menu():caractere

//escreval("  CADASTRO DE SENHAS  ")
//escreval(" |==================| ")
//escreval("     1.CADASTRAR      ")
//escreval("     2.ORDENAR        ")
//escreval("     3.LISTAR         ")
//escreval("     4.SAIR           ")

//fimfuncao

Escreval("Gostaria de ver os requisitos do exercício que estão no site? S/N ")

leia(requisitos)

se (requisitos="S") ou (requisitos="s") entao

   //escreval(texto())
   
   escreval("A empresa R2D2 precisa resolver a seguinte situação:")
   escreval("o cliente possui um sistema de cadastro de senhas de chamados")
   escreval("dos usuários, as senhas numéricas são entre 0001")
   escreval("até 1024, sendo armazenados em uma estrutura homogênea")
   escreval("(vetor) na ordem de Pilha ou Fila.")
   escreval("")
   escreval("As buscas dentro do sistema de cadastros de senhas são frequentes")
   escreval("e quando atinge um número grande de usuários cadastrados, o sistema")
   escreval(" fica lento e às vezes trava.")

senao
   //escreval(menu())
   
   escreval("  CADASTRO DE SENHAS  ")
   escreval(" |==================| ")
   escreval("     1.CADASTRAR      ")
   escreval("     2.ORDENAR        ")
   escreval("     3.LISTAR         ")
   escreval("     4.SAIR           ")

 fimse

procedimento cadastrar()

var

inicio

   para i de 0 ate 4 faca
      escreva("Digite senha ", i+1, " ")
      leia(senha[i])

   fimpara

fimprocedimento

procedimento ordenar()

var

inicio

   para j de 0 ate 4 faca
      para i de 0 ate 3 faca
         se senha[i] > senha[i+1]entao
            aux <- senha[i]
            senha[i] <- senha[i+1]
            senha[i+1] <- aux
         fimse
      fimpara
   fimpara
   escreval("Vetor ordenado: ")
   listar()

fimprocedimento

procedimento listar()

var

inicio

   para i de 0 ate 4 faca
      escreva(senha[i])
   fimpara
   escreval
   escreval("<enter>")
   leia(x)

fimprocedimento

var

   senha:vetor[0..4] de inteiro
   i, j, aux, opc: inteiro
   x: caracter

inicio

   repita

      escreval("Cadastro de senhas")
      escreval("==================")
      escreval("1.Cadastrar")
      escreval("2.Ordenar")
      escreval("3.Listar")
      escreval("4.Sair")

      escreval(menu())

      leia(opc)
      escolha opc
      caso 1
         cadastrar()
      caso 2
         ordenar()
      caso 3
         listar()
      fimescolha
      limpatela
   ate(opc = 4)

Fimalgoritmo

 

 

  • Curtir 1
  • Membro VIP
Postado
2 horas atrás, Thiago Cuter Dos Santos disse:

Este meu programa está dando erro na linha 117 mostrando como erro de sintaxe. Mas não estou encontrando o que está errado e mesmo alterando de outras formas não está aceitando. 

 

O problema é que você está iniciando o programa no lugar errado... veja:

 

image.png

 

Daí, de um modo geral, você meio que estaria definindo outras coisas dentro do programa principal (entre o inicio e fimAlgoritmo), o que não funciona no VisualG.

 

Era para dar diversos outros erros, mas o interpretador ("compilador") do VisualG é bem limitado mesmo. Aí tem que ir identificando os problemas com a experiência mesmo.

 

 

@Thiago Cuter Dos Santos, sugiro ir fazendo o programa por etapas e ir testando a medida que vai implementando. A depender, vai salvando as versões diferentes.

 

Por exemplo:

algoritmo "Ordenação_Bubblesort"
// Disciplina  : SA5 – Atividade 1 – Algoritmo de Ordenação - Bubblesort
// Turma       : Turma da Manhã - Sábado SENAI 602
// Professor   : Gelson Luiz MoraesGelson Luiz Moraes
// Descrição   : Aqui você descreve o que o programa faz! (função)
// Autor(a)    : Thiago Cuter dos Santos
// Data atual  : 19/03/2021

procedimento cadastrar()
inicio
   escreval("Teste")
fimProcedimento

var
   opc: caractere
   aux: caractere //auxiliar utilizado para dar um pause

inicio
   repita
      escreval("Cadastro de senhas")
      escreval("==================")
      escreval("1.Cadastrar")
      escreval("2.Ordenar")
      escreval("3.Listar")
      escreval("4.Sair")
      escreval("")
      escreva ("=> ")
      leia(opc)

      escolha opc
      caso "1"
         cadastrar()
      caso "2"
         //ordenar()
      caso "3"
         //listar()
      fimEscolha
      leia(aux)
      limpaTela()
   ate(opc = "4")
fimAlgoritmo

 

Salva. Deixa lá a versão 1.

 

Nesse exemplo acima, tive o objetivo de apenas criar o menu... nesse processo, foi ocorrendo diversos problemas... mas fui testando e corrigindo. Por exemplo: defini o opc como caractere, mas o escolha estava comparando com números. O comportamento é estranho... identifiquei e ajustei para comparar com caracteres (usando as aspas duplas). Depois inseri um mecanismo para dar um "pause", no caso colocando para "ler alguma coisa", fazendo assim o VisualG parar antes de limpar a tela (ali no leia(aux)).

 

Daí vai implemento mais algumas coisas, por exemplo, o cadastrar mesmo:

 

procedimento cadastrar()
var
   i: inteiro
inicio
   para i de 0 ate 4 faca
      escreva("Digite a senha", i+1, ": ")
      leia(senhas[i])
   fimPara
fimProcedimento

var
   senhas: vetor[0..4] de inteiro
   opc: caractere
   aux: caractere //auxiliar utilizado para dar um pause

 

E vai testando, testando... até ficar de uma forma que fique agradável. Esse código acima não necessariamente surge de primeira. Vai fazendo os ajustes e vendo como ffca. Só depois, aí parte para fazer outra coisa.

 

Por aí vai.....  com o tempo, começa já fazer de uma forma relativamente boa e cada vez menos precisando fazer testes... mas no início, vá alterando e testando para ver como fica!!!

 

Sugiro fazer isso... refaça o código... pode usar o meu como referência ou mesmo ir copiando tudo... mas no mínimo reescreva!

 

Implemente o listar e somente o listar e posta o código aqui.

 

Qualquer dúvida é só postar.

  • Curtir 1
Postado

@Thiago Cuter Dos Santos   e essa tentativa de usar função , que você fez para texto e menu   , pode ser sim , mas precisa de uma variável para receber o retorno da função , mesmo que não retorne nada ,:

funcao texto : inteiro
inicio  
  escreval("A empresa R2D2 precisa resolver a seguinte situação:")
  escreval("o cliente possui um sistema de cadastro de senhas de chamados")
  escreval("dos usuários, as senhas numéricas são entre 0001")
  escreval("até 1024, sendo armazenados em uma estrutura homogênea")
  escreval("(vetor) na ordem de Pilha ou Fila.")
  escreval("")
  escreval("As buscas dentro do sistema de cadastros de senhas são frequentes")
  escreval("e quando atinge um número grande de usuários cadastrados, o sistema")
  escreval(" fica lento e às vezes trava.")
fimfuncao  
funcao menu : inteiro
inicio  
  escreval("  CADASTRO DE SENHAS   ")
  escreval(" |==================|  ")
  escreval("     1.CADASTRAR       ")
  escreval("     2.ORDENAR         ")
  escreval("     3.LISTAR          ")
  escreval("     4.SAIR DO PROGRAMA")
fimfuncao  
se requisitos = "S" entao  // visualG aceita maiusculas e minusculas e até o comando
                           // se maiusc(requisito) = "S" entao
  texto
senao
  menu
fimse

// e lá no bloco principal coloca a chamada das funções assim  :
// aux <- texto
// aux <- menu

 

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!