Como criar uma função que recebe parâmetros em Portugol? | aula 106

3.23k views3672 WordsCopy TextShare
Programe seu futuro
Já vimos na aula anterior o que diferencia uma função de um procedimento. Uma função possui retorno ...
Video Transcript:
tá dando continuidade ao nosso curso vamos nessa aula aprender como criar uma função que recebe parâmetros Eu sou Professor Wagner Gaspar E você está no canal programa e seu futuro seja muito bem vindo a nossa aula 106 do nosso curso de algoritmos e lógica de programação i [Música] E aí e nós estamos Aprendendo agora nessa parte no curso já chegando ao final como construir os ossos pequenos bloquinhos chamados funções e procedimento nessa aula então vamos ver como construir uma função que vai receber parâmetros e para ilustrar essa situação Vamos pensar no seguinte problema nós queremos
identificar se o usuário precisa se a lista ou não E aí na realidade brasileira nós sabemos que todos Jovem do sexo masculino ao completar 18 anos ele precisa fazer o alistamento obrigatório então perceba que nós temos duas situações para verificar o sexo se é do sexo masculino e a idade se ele possui 18 anos sempre possui menos de 18 anos ele não precisa se ela está esse ele possui mais de 18 anos significa que ele já se alistou Então vamos construir vamos elaborar a minha aqui dentro da nossa função início só para gente ver aí
como seria esse programa aqui dentro nós teremos então uma variável idade tipo inteiro identificador da variável idade e agora nós precisamos também de uma variável para o sexo então caracter e aí eu vou chamar de sexo nós precisamos pedir para o usuário digitar essas informações certo então nossa função de saída inscreva E aí eu vou pedir para o usuário Digite sua idade em seguida o usuário vai então digitar idade dele Leia e para onde que eu vou ler onde eu vou salvar essa informação na nossa variável idade feito isso nós precisamos fazer exatamente os mesmos
Passos porém que o sexo Então escreva "duplas e digite F para feminino ou m para o masculino perceba que aqui eu coloquei apenas duas opções por usuários Mas se você quiser você pode colocar F minúsculo ou F maiúsculo e minúsculo ou m maiúsculo eu aqui vou verificar apenas com os caracteres FM minúsculo Ok e agora leia e aonde que eu vou salvar essa informação na nossa variável sexo nós já temos tudo que nós precisamos para dizer se este usuário é obrigado a se alistar ou não nós já temos a idade e nós já temos o
sexo O que que a gente precisa fazer agora nós precisamos testar então é a nossa condicional se eu vou fazer algum teste aqui dentro e aí nós teremos aqui o senão que vai ser executado quando esse teste for falso o que que eu vou verificar bom como nós já aprendemos lá nas aulas dos operadores lógicos Prime eu vou verificar o sexo porque se o teste do sexo por falsa ou seja se não for do sexo masculino eu nem preciso verificar o restante concorda então Sexo é igual e aí eu quero verificar se o sexo é
igual ao carácter m minúsculo Como que eu faço isso isso aqui não vai funcionar Ok porque ele vai procurar por uma variável chamada Emi não tem variável falar da Emily para que isso aqui se torne o carácter e me que que eu tenho que fazer a aspa dupla envolvendo aí a nossa letra M Agora sim eu estou verificando se o conteúdo da variável sexo = m minúsculo Ok se é esse teste for verdadeiro Então nós vamos fazer o restante e idade = 18 se estes dois testes forem verdadeiros Então vamos lá como que é a
sequência da execução eu o o que o operador lógico e E aí como nós já vimos lá nas aulas dos operadores lógicos este teste doce só vai ser verdadeiro se os dois testes que eu estou fazendo aqui forem verdadeiros ou seja sexo igual a m tem que ser verdadeiro e dá de volta 18 também tem que ser verdadeiro e então eu vou fazer o quê tá aqui dentro agora o que que vai acontecer se esse teste for falso sexo = M falso ele nem vai fazer o restante porque o operador Lógico eu Os dois têm
que ser verdadeiro Ok se esse aqui já deu falso então não importa o resultado de idade igual a de noite o teste no se vai ser falso Ok então ele já vai vir aqui para o final e aí então vamos completar aqui o nosso código inscreva Então se o nosso se for verdadeiro sexo = M idade igual a 18 eu vou colocar que eu vou saltar uma linha no eu não vou colocar uma tabulação E aí eu vou escrever alistamento obrigatório o alistamento obrigatório pronto contudo se você for falso e escreva eu vou colocar aqui
o texto dispensado faltar uma linha no início e no final tabulação e aí eu vou colocar o texto aqui agora é dispensado pronto vamos ver se o nosso programinha tá funcionando eu vou então executar o meu programa e aqui no console nós já temos Então o texto Digite sua idade Vou digitar aqui 25 e f para feminino ou m para masculino vou digitar M E aí ele foi para dispensado porque mesmo sendo masculino ele tem 25 anos Então significa que ele já fez esse alistamento eu vou executar novamente vou programa eu vou digitar agora idade
18 sexo feminino também está dispensado agora eu vou novamente executar digitando 18 cm alistamento obrigatório então perceba Aqui nós já constatamos que o nosso programa tá funcionando perfeito Ok como que a gente transforma e só que agora em uma função perceba que o coração do nosso problema ou o a parte principal do nosso problema é esse trecho aqui entre as linhas 14 a 19 é Aonde eu pego as informações que eu tenho de sexo idade e verifico É obrigatório o alistamento ou não então é este trecho aqui que a gente de cá dentro da nossa
função eu então eu vou vir aqui em cima da nossa função início e vou criar aqui uma função essa minha função ela vai retornar 0 ou 10 significa que o alistamento não é obrigatório ou seja está dispensado e um significa que o alistamento é obrigatório esse retorno sou eu que tô define no você pode especificar qual retorno que você quer para função Ok então 0 ou 1 é tipo inteiro então tipo do retorno inteiro e aí eu vou dar agora um identificador um nome para essa minha função eu vou chamar essa função de alistamento ali
está ou toa alistamento E aí nós precisamos indicar que agora dentro desse par de parênteses quais os parâmetros que essa função vai receber por isso que eu mencionei que agora a gente vai criar uma função com parâmetros para saber o alistamento é obrigatório ou não para o usuário eu preciso de duas informações a idade e o sexo e eu estou lendo essas informações aqui dentro então eu preciso passar essas informações para minha função como que eu faço isso eu estou aqui definir um cabeçalho que a gente chama também de assinatura da minha função eu preciso
especificar o que que ela vai receber então ela vai receber um número inteiro e inteiro e aí eu preciso dar um nome para esse número por exemplo pode ser Raid eu vou usar aqui como abreviação de idade e eu também vou receber um caractere então tipo karakter e qual o nome eu vou simplesmente chamar de S sexo e o ruim então colocar aqui agora o pai de Chaves então todo o código da minha função vai estar aqui dentro desse par de Chaves perceba que o nome da minha função aqui o identificador ficou sublinhado porque eu
disse que a minha função tem um retorno esse retornado tipo inteiro mas até agora eu não especifiquei nenhum retorno Calma que nós vamos fazer isso que que eu vou fazer aqui agora olha só nós vamos ter aqui uma alteração eu vou copiar ou melhor eu vou recortar contra o X recortei todo esse trecho de código daqui e eu vou colar control V de dentro só que agora eu preciso alterar as minhas variáveis Olha só eu disse que a minha idade eu estou recebendo a minha idade aqui com o nome aí então eu vou trocar a
idade por aí perceba que ele já reconheceu e Sexo a variável sexo não existe aqui dentro tem que existe aqui a nossa variável S então eu também vou trocar aqui agora olha só eu não quero imprimir essa mensagem aqui eu quero retornar Eu não disse que a minha função vai ter um retorno então eu vou colocar aqui me retorne um isso aqui significa significa que o usuário deve se alistar então isso aqui é o que a gente pode chamar de verdadeiro então 10 vai significar falso e um vai significar verdadeiro usuário deve se ele está
agora isso nosso teste por falso eu então vou também retirar o nosso inscreva e vou acrescentar aqui retorne 0 O que significa falso ou dizendo em outras palavras significa crio usuário está mudou alistamento então perceba Preste bastante atenção na estrutura eu usei a palavra reservada função essa minha função nós já Vimos a diferença entre função e procedimento procedimento por mais que a gente chama de função um procedimento ele não tem retorno perceba por mais que a gente chama de função início na verdade isso aqui é um procedimento percebeu Tenho apenas a palavra reservada a função
e um identificador um nome significa que ela não retorna nada se você olhar aqui no corpo do nosso procedimento início não tem a palavra reservada retorne Então essa é a principal diferença entre uma função e um procedimento Então temos aqui a palavra reservada função temos o tipo de retorno a minha função retornar um chip teu número inteiro temos o identificador da nossa função ou o nome da nossa função e dentro do par de parênteses eu tenho aqui a identificação de quantos e quais parâmetros a minha função vai receber perceba que o meu procedimento início ele
não recebe nada por isso que tá aqui tá vazio nosso par de parênteses aqui não tem nada aqui dentro ela minha função alistamento recebe dois parâmetros quais são uai.de uma variável s o ai dia do tipo inteiro vai ser a nossa cidade e a nossa variável Essa é do tipo caracter vai ser o sexo do usuário eu estou então verificando-se o conteúdo da variável s = m e esse o conteúdo da variável a dia é igual a 18 se esse teste for verdadeiro ou retorno um ou seja significa que o usuário é obrigado a Kelly
está se esse teste for Fall o ou ele é do sexo feminino ou ele possui uma idade diferente de 18 anos então eu retorno Zero Isso aqui significa que o alistamento não é obrigatório a eu fiz a minha a função só que seu executar o meu programa Agora eu simplesmente vou ler a idade sexo percebeu não utilizei a minha função ainda como que eu utilizo a minha função muito simples nós já utilizamos diversas funções nos nossos algoritmos inclusive nós estamos utilizando aqui perceba escreva Leia basta dizer o nome Qual que é o nome alistamento só
que eu disse que a minha função alistamento recebe dois parâmetros perceba a função o alistamento espera dois parâmetros mas não foi passado nenhum por isso que está sublinhado em vermelho qual que é o primeiro você tem que prestar bastante atenção aqui o primeiro a número inteiro ou seja aí dá o usuário então eu vou mandar aqui a idade do usuário Qual que é o segundo é um cara que quer é o sexo então eu vou mandar aqui o sexo a mas espera aí na minha função eu tô recebendo uma variável chamada Edir e outra chamada
s mas aqui eu tô mandando de idade sexo isso funciona como assim funciona e aqui é o que a gente chama de passagem de parâmetro por valor porque por valor eu tenho aqui dentro do meu procedimento início uma variável chamada idade e uma variável chamada sexo hummm hummm hummm eu estou passando essas variáveis para minha função alistamento eu não estou passando o nome dessa variável eu estou passando valor Então olha só Imagine que o usuário digitou para a idade 25 quando eu estou passando para minha função alistamento idade eu não estou passando o nome Eu
tô passando conteúdo da variável idade Então o que eu estou mandando aqui no nosso exemplo seria o número 25 se o usuário digitou sexo feminino digito efe o que eu tô mandando aqui não é o nome da variável eu conteúdo seria aí no nosso exemplo efe aí quando chega aqui na linha 5 eu estou recebendo inteiro e eu estou recebendo um caracter o 25 que usuário passou aqui eu vou receber aqui vou acessar esse 25 através do identificador Raid Ou seja eu tenho aqui outra é do tipo inteiro chamada Eyed e qual conteúdo é o
conteúdo que foi passado aqui no nosso exemplo aqui hipotético 25 a mesma coisa para nossa variável S eu tenho aqui dentro da minha função alistamento uma variável chamada essa qual o conteúdo dessa variável s f que foi passado aqui então quando o nosso programa estiver executando a nossa função nós teremos na memória do computador quatro variáveis a variável idade e Sexo que pertencem ao procedimento início e a variável Ai d&s que pertencem a nossa função alistamento Ok então é por isso que o nome aqui pode ser um nome completamente diferente desse nome aqui porém apenas
isso aqui não vai resolver muita coisa para gente porque observa o que que eu estou fazendo na linha 24 eu chamei a porém eu disse que a função tem retorno ela vai retornar 1 ou 0 eu tô salvando esse retorno não perceba que eu não salvei esse retorno em nenhum lugar eu não estou utilizando esse retorno E aí novamente tem algumas variações Tem várias coisas que você pode fazer aqui você pode criar uma variável por exemplo r e atribui a si retorno essa variável mas eu não vou fazer isso eu vou colocar chamada da nossa
função dentro de um se Nossa eu posso fazer isso sim você pode fazer isso olha só tô colocando aqui um se E aí eu disse que o retorno da nossa função vai ser 0 ou 1 certo quando que o usuário é obrigado a se ele está quando o retorno foi um certo então eu vou comparar seu retorno é igual a um Olha só se o retorno foi igual a um eu vou colocar aqui agora se inscreva eu até podia ter deixado aqui aquele texto vou saltar duas linhas Vou colocar aqui um contra/te E aí eu
vou escrever alistamento obrigatório contudo esse nosso teste como nós já vimos todo o teste pode ser verdadeiro ou falso nós temos então aqui o nosso se não eu vou copiar e se inscreva e com trouxe vou colocar ele aqui embaixo control v e agora eu vou escrever aqui alistamento não obrigatório E aí se eu executar o meu programa você vai perceber que ele vai funcionar normalmente percebeu vou executar que meu programa eu vou digitar idade 18 sexo feminino testei balizamento não obrigatório eu vou executar novamente e agora idade 18 sexo masculino alistamento obrigatório contudo a
gente pode ainda melhorar mais ainda esse nosso programa E aí presta atenção nos vários detalhes nas várias formas diferentes que você tem para resolver esse problema essa é a parte curiosa e interessante da programação você pode fazer exatamente a mesma coisa que diversas formas diferentes eu já disse que aqui você poderia ter capturado o retorno da função salvado em uma variável E aí você faria um teste essa variável é igual a um então nós está muito obrigatório se não dispensado nós podemos ainda melhorar perceba que eu estou fazendo detalhe Olha só eu tenho essa função
agora então Imagine que eu vou fazer aí eu eu vou precisar utilizar a função várias vezes basta chamar do jeito que eu chamei aqui ok ah mas eu estou lendo a idade e o sexo do usuário aqui dentro da minha função bem e aí eu estou passando para mim a função alistamento Será que não tem uma forma diferente para fazer isso tem nós podemos criar funções para pedir para o usuário digitar um a idade e outro para o usuário digitar o sexo como que a gente faz isso vamos fazer aqui uma função pedindo para os
vários digitar idade então função Qual que é o tipo da idade a gente vai retornar essa idade inteiro então retorno e eu vou chamar essa função de ler idade preciso receber algum parâmetro não não preciso então o par de parênteses Ali vai ficar vazio e aqui dentro agora olha o que que eu vou fazer eu preciso de uma variável do tipo inteiro que eu vou chamar de idade e agora eu vou fazer exatamente o que tem aqui eu vou recortar esse trecho contra o X e vou colocar aqui dentro Tem como tu ver Digite sua
idade eu vou colocar um contra a barra aí né aqui para essa informação não ficar enrolada com algo que já tenha sido impresso na tela eu fiz a leitura para nossa variável idade o que é que tá faltando aqui agora me retorne retorne quem a idade corrida então perceba eu estou pedindo uma informação para os usuários estou lendo aqui para nossa variável idade e eu estou retornando a cidade como que eu capturo como que eu faço isso aqui agora aqui no meu programa porque eu não tenho mais a idade muito simples olha só eu não
tenho uma variável idade aqui perceba essas variáveis são diferentes essa variável idade ela só existe aqui dentro da do procedimento início esta variável idade Só existe aqui dentro da função nele idade mais à frente nós teremos uma aula sobre e ficou pouco de variável e a isso vai ficar mais claro ok mas por enquanto Basta fazer o seguinte a minha a variável idade recebe o retorno da minha função ler idade perceba eu estou chamando a minha função ler idade não é preciso passar nada entre o Pati parênteses porque ela não recebe nada aqui dentro eu
vou pedir para os vários digitar idade eu vou fazer a leitura da idade eu vou retornar essa idade e aí quando eu retorno aonde que eu vou salvar na minha variável idade aqui dentro do meu procedimento início vamos fazer o mesmo para o sexo Olha só eu vou criar aqui outra função função que que ela vai retornar ela vai retornar um caractere então o caracter e agora eu vou chamar essa função de ler sexo novamente ela não vai receber nada então o nosso par de parênteses vai ficar vazio e aqui dentro agora o que que
eu vou colocar aqui exatamente o que está aqui não na nossa função início no nosso procedimento início contra o X eu vou recortar esse trecho e eu vou colocar ele aqui dentro porém percebeu não tenho nenhuma variável aqui para fazer a leitura de um caractere Então vamos criar um caracter sexo eu vou pedir o novamente eu vou saltar uma linha aqui eu vou pedir para o usuário digitar F ou M vou fazer a leitura e aí o que que tá faltando retorne sexo Pronto já fiz uma função para ler sexo agora novamente eu vou voltar
aqui no Man eu preciso fazer a leitura bom então a minha variável sexo aqui dentro do procedimento início recebe ler sexo pronto não percebeu tem uma variável que lê e retorna a idade do usuário eu tenho uma variável leque 7 que lei retorno o sexo do usuário e agora eu já tinha variável que vai dizer se o usuário é obrigado se ela está ou não vamos testar o nosso programa novamente eu vou então executar novamente o programa eu vou digitar novamente idade 18 sexo feminino então alistamento não obrigatório eu vou executar novamente o programa idade
18 sexo masculino alistamento obrigatório então perceba que nós vemos algumas variações desse simples exercícios ler idade sexo e dizer se o usuário é obrigado a se ela está ou não E aí para isso nós resolvemos todo o problema dentro o procedimento início e depois nós somos quebrando em pequenas partes fizemos uma função que diz se Para uma determinada idade um determinado sexo se esse usuário é obrigado a se ela está ou não nós fizemos uma função para ler a idade nós fizemos uma função para ler sexo e agora dentro do Meio nós estamos apenas utilizando
Essas funções então aí eu quero ler a idade de vários usuários você pode utilizar uma repetição ou você pode fazer várias leituras em sequência que abaixo ler idade ler idade Toda vez que você chamar essa função você vai estar executando o trecho que está aqui dentro da função percebi o seguinte Olha nós não estamos utilizando aqui o procedimento escreva toda vez que utiliza o procedimento escrevo eu estou imprimindo algo na tela então toda vez que utilizar a função meia-idade vai ser solicitado uma o console vai ser digitado a cidade então é cidade vai ser retornada
aqui para nossa vale a verdade o mesmo para um sexo será pedido o sexo do usuário ao digitar e pressionar entre esse caractere então será salvo aqui na nossa variável sexo e aí já deixa o celular aqui nessa aula deixa seu like ele vai isso ajuda muito o canal e lógico se inscreva se você não é inscrito ainda do mais um grande abraço e até a nossa próxima aula
Copyright © 2024. Made with ♥ in London by YTScribe.com