Ir ao conteúdo
  • Cadastre-se

VisualG Como usar os PROCEDIMENTOS?


Posts recomendados

Bom dia ! 

Cheguei em uma parte do curso de algoritmo com uso de procedimento e queria saber se o exercício que fiz abaixo está correto :

OBS: Ele esta funcionando !

Obrigado pela atenção!

 

89) - Crie um programa que melhore o procedimento Gerador() da questão anterior para que o programador possa escolher uma entre três bordas:

Borda 1 - +-------=======------+

Borda 2 - ~~~~~~~~:::::::~~~~~~~

Borda 3 -  <<<<-------------->>>>>

 

algoritmo "Exercicio:89"
var
N : Inteiro
BD : caractere
Procedimento gerador()
inicio
      Escreval("  APRENDENDO PORTUGOL  ")
FimProcedimento
inicio

      EscrevaL(" ==========================")
      EscrevaL("|    ESCOLHA UMA BORDA     |")
      EscrevaL("| 1 +-------=======------+ |")
      EscrevaL("| 2 ~~~~~~~~:::::::~~~~~~~ |")
      EscrevaL("| 3 <<<<<<<<------->>>>>>> |")
      EscrevaL(" ==========================")
      Escreva("DIGITE UMA DAS opções: ")
      Leia(N)
      LimpaTela
      Escolha (N)
      caso 1
           BD <- ("+-------=======------+")
      caso 2
           BD <- (" ~~~~~~~~:::::::~~~~~~~")
      caso 3
           BD <- (" <<<<<<<<------->>>>>>>")
           
      FimEscolha
                EscrevaL(BD)
                gerador()
                EscrevaL(BD)
fimalgoritmo

 

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

4 horas atrás, OtteN disse:

Bom dia ! 

Cheguei em uma parte do curso de algoritmo com uso de procedimento e queria saber se o exercício que fiz abaixo está correto :

OBS: Ele esta funcionando !

Obrigado pela atenção!

mais ou menos. você não seguiu o enunciado, se eu entendi corretamente era pra você fazer algo assim no procedimento gerador

procedimento gerador(opcao:inteiro)
inicio
   escolha (opcao)
      caso 1
         escreval("+-------=======------+")
      caso 2
         escreval("~~~~~~~~:::::::~~~~~~~")
      caso 3
         escreval("<<<<-------------->>>>>")
      fimEscolha
fimProcedimento

e você fez fora dele no programa principal.

 

outra melhoria seria usar o próprio procedimento gerador para mostrar os gráficos ao invés de digitar varias vezes no meio do programa.

Exemplo

algoritmo "barras"

var
   opcao:inteiro

procedimento geradorBarras(opcao:inteiro)
inicio
   escolha (opcao)
      caso 1
         escreval("+-------=======------+")
      caso 2
         escreval("~~~~~~~~:::::::~~~~~~~")
      caso 3
         escreval("<<<<-------------->>>>>")
      fimEscolha
fimProcedimento

procedimento barraEspecial(tamanho:inteiro; borda_esquerda, borda_direita, meio:caractere)
var
   contador, q_caracteres:inteiro
inicio
   q_caracteres <- int(tamanho/3)
   para contador de 1 ate q_caracteres faca
      escreva(borda_esquerda)
   fimPara
   
   para contador de 1 ate q_caracteres faca
        escreva(meio)
   fimPara
   
   para contador de 1 ate q_caracteres faca
      escreva(borda_direita)
   fimPara
   escreval
fimProcedimento

procedimento barraSimples(tamanho:inteiro; barra:caractere)
var
   contador:inteiro
inicio
   para contador de 1 ate tamanho faca
      escreva(barra)
   fimPara
   escreval
fimProcedimento

inicio
   barraSimples(40, "=")
   escreval("       Escolha uma borda")
   escreva("1 ")
   geradorBarras(1)
   escreva("2 ")
   geradorBarras(2)
   escreva("3 ")
   geradorBarras(3)
   barraSimples(40, "=")
   escreva("Escolha uma das opções:")
   leia(opcao)
   
   escolha (opcao)
      caso 1
         geradorBarras(1)
      caso 2
         geradorBarras(2)
      caso 3
         geradorBarras(3)
      outroCaso
         barraEspecial(40, "!", "!", "?")
         escreval("        não temos essa opcao")
         barraEspecial(40, "!", "!", "?")
   fimEscolha
fimAlgoritmo

 

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

  • Membro VIP
Em 02/04/2022 às 10:44, OtteN disse:

89) - Crie um programa que melhore o procedimento Gerador() da questão anterior [...]


Para melhorar a questão anterior, precisaria verificar se a resposta da questão anterior está correta, concorda?... Poste o enunciado completo da questão 88 e a sua resposta. Primeiro atua nela, depois atua na melhoria...

 

Para adiantar... não deu para supor como estava antes, mas vamos nos basear que a função do procedimento seria exibir esse texto e com uma barra em cima e outra embaixo (ou que era só exibir o texto mesmo... tanto faz), ou seja, a "melhoria" seria apenas na questão de poder variar a barra (ou inserir barras e poder variar)...

 

Um suposto código original:

procedimento Gerador()
inicio
inicio
   escreval("=======================")
   escreval("  APRENDENDO PORTUGOL  ")
   escreval("=======================")
fimProcedimento

 

 

Daí, uma melhoria poderia ser assim:

 

algoritmo "Exercicio:89"

procedimento Gerador(op: inteiro)
var
   borda : caractere
inicio
   escolha (op)
   caso 1
      borda <- ("+-------=======------+")
   caso 2
      borda <- ("~~~~~~~~:::::::~~~~~~~")
   caso 3
      borda <- ("<<<<<<<<------->>>>>>>")
   fimEscolha

   escrevaL(borda)
   escrevaL("  APRENDENDO PORTUGOL  ")
   escrevaL(borda)
fimProcedimento

var
   opcao: inteiro

inicio
   escrevaL(" ==========================")
   escrevaL("|    ESCOLHA UMA BORDA     |")
   escrevaL("| 1 +-------=======------+ |")
   escrevaL("| 2 ~~~~~~~~:::::::~~~~~~~ |")
   escrevaL("| 3 <<<<<<<<------->>>>>>> |")
   escrevaL(" ==========================")
   escreva ("DIGITE UMA DAS opções: ")
   leia(opcao)
   limpaTela()
   Gerador(opcao)
fimalgoritmo

 

O gerador continuaria fazendo a mesma coisa (exibir um texto entre barras), só que agora com a possibilidade de escolher qual barra...

 

Tem várias formas... mas meio que depende do enunciado anterior... Outro exemplo:

 

procedimento Gerador(op: inteiro)
var
   bordas : vetor [1..3] de caractere
inicio
   bordas[1] <- ("+-------=======------+")
   bordas[2] <- ("~~~~~~~~:::::::~~~~~~~")
   bordas[3] <- ("<<<<<<<<------->>>>>>>")

   escrevaL(bordas[op])
   escrevaL("  APRENDENDO PORTUGOL  ")
   escrevaL(bordas[op])
fimProcedimento

 

 

Outra forma, aproveitando o código do @kgin:

 

procedimento Gerador(op: inteiro)
   funcao geradorBarras(opcao:inteiro): caractere
   inicio
      escolha (opcao)
      caso 1
         escreval("+-------=======------+")
      caso 2
         escreval("~~~~~~~~:::::::~~~~~~~")
      caso 3
         escreval("<<<<<<<<------->>>>>>>")
      fimEscolha
   fimFuncao
  
inicio
   escrevaL(geradorBarras(op))
   escrevaL("  APRENDENDO PORTUGOL  ")
   escrevaL(geradorBarras(op))
fimProcedimento

 

Como a geração de barras seria uma funcionalidade específica do procedimento, poderia deixar a função dentro do procedimento... reparou nesse detalhe? 🙂Se quiser colocar a função fora do procedimento vai funcionar da mesma forma...

 

Outra forma:

algoritmo "Exercicio:89"

funcao geradorBarras(opcao:inteiro): caractere
inicio
   escolha (opcao)
   caso 1
      escreval("+-------=======------+")
   caso 2
      escreval("~~~~~~~~:::::::~~~~~~~")
   caso 3
      escreval("<<<<------------->>>>>")
   fimEscolha
fimFuncao

procedimento Gerador(barra: caractere)
inicio
   escrevaL(barra)
   escrevaL("  APRENDENDO PORTUGOL  ")
   escrevaL(barra)
fimProcedimento

var
   opcao: inteiro

inicio
   escrevaL(" ==========================")
   escrevaL("|    ESCOLHA UMA BORDA     |")
   escrevaL("| 1 +-------=======------+ |")
   escrevaL("| 2 ~~~~~~~~:::::::~~~~~~~ |")
   escrevaL("| 3 <<<<<<<<------->>>>>>> |")
   escrevaL(" ==========================")
   escreva ("DIGITE UMA DAS opções: ")
   leia(opcao)
   limpaTela()
   Gerador(geradorBarras(opcao))
fimalgoritmo

 

Etc

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

  • 8 meses depois...
algoritmo "Procedimento repetir nomes"

var
Procedimento Gerador(msg: Caractere; qtd: Inteiro; opcao: inteiro)
var
   c : Inteiro
inicio
   escolha (opcao)
   caso 1
   escreval ("+-------=======------+")
   caso 2
   escreval ("~~~~~~~~:::::::~~~~~~~")
   caso 3
   escreval ("<<<<<<<<------->>>>>>>")
   fimescolha
   
   Para c <- 1 ate qtd faca
      EscrevaL(" ", msg)
   FimPara

    escolha (opcao)
   caso 1
   escreval ("+-------=======------+")
   caso 2
   escreval ("~~~~~~~~:::::::~~~~~~~")
   caso 3
   escreval ("<<<<<<<<------->>>>>>>")
   fimescolha
FimProcedimento
inicio
   Gerador("Aprendendo Portugol", 4, 2)

fimalgoritmo

 

  • Curtir 2
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!