28 maio 2017

Aula 1.11: Procedimentos #LTCode

Este artigo faz parte do projeto #LTCode

Na aula anterior, você aprendeu a estrutura de repetição para...faça. Bom, vamos utilizar ela para aprender sobre procedimentos. Confira o algoritmo abaixo:

Algoritmo "soma"
Var
    n1, n2, resultado : Real
    soma : Inteiro //essa variável controlará a repetição
Inicio
    Escreval ("Este programa soma dois números")
    Escreval ("Resultado da ultima soma: ",resultado)
    Para soma de 1 ate passo faca //repetirá esse bloco 3 vezes
        Escreva  ("Digite um número: ")
        Leia (n1)
        Escreva  ("Digite outro número: ")
        Leia (n2)
        resultado <- n1 + n2
    Limpatela //limpa a tela do programa
    Escreval ("Este programa soma dois números")
    Escreval ("Resultado da ultima soma: ",resultado)
    fimpara
    Limpatela
    Escreval ("Este programa soma dois números")
    Escreval ("Resultado da ultima soma: ",resultado)
Fimalgoritmo

Copie o algoritmo acima e cole no seu Visualg para conferir seu funcionamento, bom vocês devem ter notado que ao rodar o algoritmo o programa solicita que digite um número e em seguida outro, depois de dar enter a tela é limpada, e é exibido o resultado da soma que você fez e então ele solicita outros números para realizar a soma, e depois isso se repete mais uma vez e por fim exibe o resultado da ultima soma finalizando o algoritmo. 

Bom, como perceberam no código você escreveu "Limpatela" duas vezes"Escreval ("Este programa soma dois números")" e "Escreval ("Resultado da ultima soma: ",resultado)" três vezes, isso é redundante e deixa seu algoritmo pesado. Para resolver este problema utilizaremos do comando "procedimento". Procedimento é um subprograma que não retorna nenhum valor, portanto deve ser declarado depois das variáveis e antes do início do programa. Confira:

Algoritmo "soma"
Var
    n1, n2, resultado : Real
    soma : Inteiro //essa variável controlará a repetição
Procedimento cabecalho() //nome do procedimento
Inicio //inicio do procedimento
    Limpatela //limpa a tela do programa
    Escreval ("Este programa soma dois números")
    Escreval ("Resultado da ultima soma: ",resultado)   
fimprocedimento //fim do procedimento
Inicio
    cabecalho() //chamada para o procedimento
    Para soma de 1 ate passo faca //repetirá esse bloco 3 vezes
        Escreva  ("Digite um número: ")
        Leia (n1)
        Escreva  ("Digite outro número: ")
        Leia (n2)
        resultado <- n1 + n2
    cabecalho() //chamada para o procedimento
    fimpara
    cabecalho() //chamada para o procedimento   
Fimalgoritmo

Como podem observar, o algoritmo ficou menor e toda vez que aparece "cabecalho()" o algoritmo chama o procedimento. Bom o "cabecalho()" pode ser qualquer outro nome desde que obedece as mesmas regras de nomenclatura das variáveis, coloquei este para fazer referência ao cabeçalho que será exibido.

Vamos agora ver um procedimento com parâmetros. Um procedimento com parâmetros é nada mais que um procedimento que recebe um valor e utiliza durante sua execução. Confira o exemplo abaixo:

Algoritmo "par-ou-impar"
Var
    n : Inteiro
Procedimento parouimpar(valor: Inteiro) //'valor' vai receber o valor de 'n'
Inicio //inicio do procedimento
    Se (valor%2 = 0entao //confere se o resto da divisão de 'valor' por 2 é zero
        Escreval ("O número", valor, " é par")
    Senao
        Escreval ("O número", valor, " é ímpar")
    fimse
fimprocedimento //fim do procedimento
Inicio
    Escreva  ("Digite um número: ")
    Leia (n)
    parouimpar(n) //chamada para o procedimento   
Fimalgoritmo

Bom quando você rodar o algoritmo ele pedirá para você digitar um número e em seguida ele vai ler este número, depois ele vai ir para a seção do inicio do procedimento, o número que foi armazenado na variável 'n' vai então passar para o parâmetro 'valor' para que então se inicie o procedimento. No procedimento vai checar se o resto da divisão de 'valor' por 2 é igual a zero caso contrário este número é ímpar.

Note que os valores utilizados na parte do procedimento são valores que podem ser utilizados apenas dentro do procedimento, ou seja se você chamar o parâmetro fora do procedimento você vai receber um error. Confira a imagem abaixo:
Você vai receber este error pois a variável 'valor' não foi encontrada, 'valor' é variável apenas de procedimento, uma variável local, pois você declarou ele lá em "Procedimento parouimpar(valor: Inteiro)" ou seja é um parâmetro, se você chamar ele fora do procedimento vai dar error pois ela não é uma variável global como 'n'. Para manter o aspecto desejado basta não chamar 'valor' como ilustra a imagem abaixo, no lugar é chamado o procedimento apenas:
Agora vamos aprender a passagem por referência, acima você estava utilizando a passagem por valor ou seja o valor de 'n' era copiado para o parâmetro 'valor', agora com a passagem por referência, o parâmetro terá uma referência automática ao valor da variável original, sendo assim qualquer alteração no parâmetro 'valor' vai afetar a variável original 'n'. Confira um exemplo abaixo:
Como podem observar, a variável 'a' e 'b' passam seu valor para o parâmetro 'x' e 'y' respectivamente pois no parâmetro 'soma' temos escrito 'var' antes de 'x, y'. Depois é então feito a soma 'x + 1' e 'y + 2'... como 'x' e 'y' é referência de 'a' e 'b' então o valor de 'a' e 'b' também sofrem alteração no resultado final. Sendo assim se 'a' valia 1, 'x' passou a valer 1, mas como no procedimento 'soma' foi somado '+1' em 'x' então o valor de 'a' passou a ser '2', o mesmo ocorre com 'b' tendo seu resultado final como '4'.

É isso, espero que tenham entendido e até a próxima aula!

>> Próxima aula, clique aqui (em breve)  


⇒Confira nosso curso hacker gratuito e também o de programação >>clicando aqui<<

Doe bitcoin: 1LQvNXRAUSbm39Fzg6o8rkQsebLrQkTpt

Please Donate To Bitcoin Address: [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]

Publicidade:



Related Posts Plugin for WordPress, Blogger...