Ir ao conteúdo

Posts recomendados

Postado

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
Postado
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
  • Membro VIP
Postado
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
  • 8 meses depois...
Postado
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

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!