Aula 1.11: Procedimentos #LTCode

COMPARTILHAR:

Whatsapp Telegram Twitter Facebook Reddit

Aula 1.11 - Procedimentos, parâmetros, variável local e global

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:
Clique na imagem para ampliar.
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:
Clique na imagem para ampliar.
Agora vamos aprender a passagem por referência, acima você estava utilizando a passagem por parâmetro 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:
Clique na imagem para ampliar.
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

COMENTÁRIOS

Nome

#ann,25,#HK,30,#LTCode,130,Artigo - Diversos,156,Artigo - Games,201,Artigo - Tecnologia,615,autor-thomaz,7,Coluna - Alternative World,24,Coluna - Fail,12,Coluna - Tec Line,14,Criptomoeda,72,Curiosidades - Diversos,49,Curiosidades - Tecnologia,50,en,2,estudo,8,HN,12,logica,14,Pentest,23,Programar C,29,Programar POO,6,Programar Python,6,Programar Shell,25,Programar verilog,12,qradar,4,Raspberry Pi,15,Redes,3,root,117,Shorty Awards,1,Smartphones - Reviews,33,Teoria,10,Top Nostalgia,2,VPN,19,WhatsApp,46,
ltr
item
Limon Tec: Aula 1.11: Procedimentos #LTCode
Aula 1.11: Procedimentos #LTCode
Aula 1.11 - Procedimentos, parâmetros, variável local e global
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmI65og5X32bSLCmBz3uJnZlmDvzOFWZWoZzyvUhh2rtp8Hr_kolKy02pOjxpkThrz8uHaTu3skUdeDJlkFEKkC2a9EabpwPzbwJ-hm-po0QIaNeNvYm5CJw3k4SbN03V-d2h1dxrW2tz4/s640/ltcode.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmI65og5X32bSLCmBz3uJnZlmDvzOFWZWoZzyvUhh2rtp8Hr_kolKy02pOjxpkThrz8uHaTu3skUdeDJlkFEKkC2a9EabpwPzbwJ-hm-po0QIaNeNvYm5CJw3k4SbN03V-d2h1dxrW2tz4/s72-c/ltcode.jpg
Limon Tec
https://www.limontec.com/2017/05/aula-1-11-logica-de-programacao-ltcode.html
https://www.limontec.com/
https://www.limontec.com/
https://www.limontec.com/2017/05/aula-1-11-logica-de-programacao-ltcode.html
false
2157924926610706248
UTF-8
Carregar todos posts Não encontramos nenhum post VER TUDO Ler mais Responder Cancelar resposta Deletar Por Home PÁGINAS POSTS Ver tudo RECOMENDADO PARA VOCÊ LABEL ARQUIVO SEARCH TODOS POSTS Não encontramos nenhum post relacionado a sua requisição VOLTAR PÁGINA INICIAL Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Set Out Nov Dez apenas agora 1 minuto atrás $$1$$ minutes ago 1 hora atrás $$1$$ hours ago Ontem $$1$$ days ago $$1$$ weeks ago mais de 5 semanas atrás Seguidores Seguir ESTE CONTEÚDO ESTÁ BLOQUEADO PASSO 1: Compartilhe com seus amigos PASSO 2: Clique no link compartilhado Copiar Todo Código Selecionar Todo Código Todos códigos foram copiados para seu clipboard Não é possível copiar códigos / textos, por favor aperte [CTRL]+[C] (ou CMD+C no Mac) para copiar Tabela de conteúdo