E aí [Música] E aí E aí Ah não já vimos então nas duas aulas anteriores como criar um procedimento e como criar um procedimento com parâmetros foi o que nós vimos na aula anterior então eu tenho aqui um simples procedimento para imprimir uma mensagem de boas-vindas na tela e esse procedimento está recebendo o nome do usuário ou o nome de uma pessoa como parâmetro só que nós fizemos a leitura desse nome aqui dentro da nossa função principal aí eu não poderia fazer um procedimento para essa leitura aqui sim nós poderíamos eu vou fazer ela que
abaixo nós já sabemos como fazer isso olha só e a nossa palavra reservada função e aí eu vou dar um nome para essa função por exemplo ler nome vou abrir e fechar o par de parênteses E aí nós teremos aqui um par de Chaves e agora eu posso fazer então a leitura do nome aqui dentro Vamos criar a nossa variável cadeia nome e aí vamos então fazer a leitura escreva "duplas digite seu nome vou colocar time contra barra e nenhum contra a barra te vou colocar aqui: espaços e agora a gente precisa então ler Leia
E aí eu quero salvar o que o usuário digitar na nossa variável nome pronto eu já fiz o meu procedimento como que a gente utiliza esse procedimento eu não vou mais utilizar essa lei e me aqui dentro da nossa função principal Basta fazer a chamada dessa nossa deste nosso procedimento aqui como que a gente faz isso le nome abre e fecha parêntese perceba que é exatamente o nome que a gente deu aqui aí eu não coloco nada aqui dentro não porque ele não recebe parâmetros eu coloquei aqui porque este meu procedimento está recebendo um parâmetro
será que vai funcionar do jeito que eu quero quando chegar aqui o que que vai acontecer ele vai imprimir Qual o nome o nome José ou nome que o usuário digitar vamos testar e eu vou apenas tirar esse espaço pronto eu vou rodar eu vou executar o meu programa e olha aqui digite o seu nome então nós estamos exatamente aqui porque eu fiz aqui na função início a chamada na linha 7 ler nome então ele dá uma pausa aqui procura o nosso procedimento ler nome e a recurso que tá aqui dentro então ele imprimiu essa
mensagem está aguardando até que um nome seja digitado eu vou digitar aqui o nome André vou pressionar em ti e olha o que que aconteceu Olá José seja muito bem-vindo ao nosso sistema Por que que ele continua imprimindo José por um motivo muito simples esta variável nome e esta variável nome são variáveis completamente diferentes e aí a gente chega no que é conhecido como escopo de variável O que que significa o quê a fazer essa palavra escopo de variável essa variável aqui ela só existe entre esse par de Chaves aqui olha ela pertence a nossa
função início Então ela só existe aqui dentro por isso que eu consegui criar outra variável aqui com o mesmo nome Se eu tentar criar outra variável aqui com o mesmo nome terceiro a gente vai dar problema cadeia nome o mariner e perceba que ele já subiu ou de vermelho e aí se você passar o mouse Olha o nome já foi declarado como variável na linha cinco então nós já temos uma variável com esse nome porém nós conseguimos criar uma variável com esse nome aqui na linha 13 no nosso procedimento ler nome por quê que isso
funcionou por causa do escopo da variável esta variável nome ela só existe dentro desse trecho aqui no programa esta variável nome ela só existe aqui dentro desse trecho do programa tanto que olha só eu vou chamar essa variável de nome um e eu vou chamar essa variável de nome dois então aqui eu vou alterar para 2 também esse aqui eu volto era um agora para te confirmar isso olha só para confirmar que esta variável nome um só existe aqui dentro Eu vou tentar imprimir essa variável aqui Oi, nome dois se eu fizer isso aqui qual
variável que eu estou imprimindo eu estou imprimindo esta variável aqui e aí ele tá reclamando se eu passar o mouse ele vai dizer que a variável o nome dois não foi inicializada então não tem nada nessa região de memória vamos inicializar ela então com vazio pronto e aí perceba que agora ele aceitou contudo se eu alterar para nome um ele não vai aceitar perceba olha só a variável nome um não foi declarada neste escopo o que que ele quer dizer com este escopo aqui dentro dentro desse par de chave ou dentro do meu procedimento ler
nome não existe nenhuma variável chamada nome um E aí eu vou alterar vou colocar nome aqui novamente e aqui também e Vamos alterar aqui também Oi e o mesmo vai acontecer se aqui dentro eu tentasse essa festa variável ele vai dizer que não existe E aí vamos voltar ao assunto principal desta aula agora nós queremos construir não procedimento mais uma função e agora você vai entender Qual é a diferença entre função e procedimento perceba que nós vimos nas aulas anteriores O que é um procedimento a gente cria um procedimento ele pode ou não receber parâmetro
ele faz alguma coisa e finaliza certo agora qual a diferença de um procedimento para uma função o que nós temos aqui também é um procedimento Ele não recebe nenhum parâmetro faz alguma coisa e finaliza com tudo eu não quero um procedimento Eu quero uma função porque eu quero que seja impresso aqui não o nome José mas o nome que o usuário digitou só que aí o que aconteceu o nosso programa rodou chegou aqui ler nome Ele veio para cá executou esse trecho ele fez a leitura de nome porém aonde está salvo o nome foi digitado
nesta variável e como nós acabamos de ver sobre escopo de variável essa variável é diferente dessa variável Então eu quero que esse nome seja retornado e seja salvo nesta variável Como que eu faço isso dois detalhes duas alterações então agora nós vamos transformar esse nosso procedimento em uma função primeiro detalhe eu acabei de ler um nome aqui certo então a gente vai agora retornar esse nome a nossa palavra reservada retorne E aí o que que eu quero retornar a minha variável ou o conteúdo da minha variável nome Ah mas ele tá reclamando porquê que um
por um detalhe muito simples em que a palavra função e o nome do meu procedimento ou da minha função eu preciso dizer qual é o tipo de se retorno o que que eu tô retornando é um número inteiro é um caracter é um número real é uma cadeia nesse caso aqui é uma cadeia certo então aqui eu vou colocar um espaço e vou escrever cadeia é o tipo do retorno perceba que o sublinhado sumiu então agora aqui nós continuamos com o procedimento e Aqui nós temos agora uma função Então olha a diferença da função para
o procedimento na função Eu tenho um tipo de retorno Qual é o tipo de retorno cadeia uma cadeia de caracteres Qual o meu retorno aqui percebe que não tem tá vazio e eu retorno alguma coisa aqui no final não eu não tô retornando nada e na minha função Eu tenho um retorno eu estou retornando para quem para quem chamar então se eu executar o meu programa Agora ele vai funcionar ainda não olha só eu vou executar o programa vou digitar que o meu nome Wagner vou pressionar em ti continua imprimindo José porque eu retornei um
homem porém olha só eu não capturei eu não salvei esse nome como que eu faço isso lembra de quando a gente utilizou aquela função sorteia para gerar números aleatórios para preencher o nosso vetor onde a gente tinha uma variável por exemplo num que recebia aí nós colocamos aqui o útil quero o nome da nossa biblioteca. Sorteia que tá aqui então perceba Esta função vai retornar um número e esse número vai ser salvo em uma variável o que nós temos que fazer aqui é exatamente a mesma coisa Esta função vai retornar um nome e eu quero
salvar esse nome na minha variável nome como que eu faço isso o nome da minha variável recebe o retorno da minha função então agora se eu executar o meu programa Olha o que que vai acontecer Wagner Gaspar E se eu pressionar entre agora nós temos a mensagem Olá Wagner Gaspar Então eu estou chamando uma função essa função vai fazer a leitura de um nome do teclado e vai retornar esse nome eu estou salvando o retorno dessa função na minha variável nome e agora sim percebeu estou alterando a minha variável então o José vai ser perdido
eu vou sobre a escrever eu vou pegar o nome que vai ser digitado aqui que está sendo retornado pela função e vou salvar vou sobre escrever o conteúdo dessa variável E aí quando eu passo essa variável para o meu procedimento eu estou passando agora com o valor alterado ou então apenas para recapitular procedimento não tem retorno aqui fica vazio nós não indicamos o tipo do retorno e ele finaliza tudo aqui dentro sem retornar nenhum valor uma função ela precisa indicar qual é o tipo do retorno e precisa retornar algum valor aqui OK aí se eu
fosse retornar um número inteiro Vou colocar aqui um número inteiro por exemplo 54 perceba que lhe indica um erro porque porque eu estou retornando número inteiro mas eu disse que o tipo de retorno é uma cadeia basta trocar inteiro Pronto agora ele vai aceitar e se fosse um número real. Cinco novamente eu preciso trocar de inteiro para real Ok então toda a função tem um retorno e eu preciso indicar qual é o tipo de se retorno eu vou dar aqui como fazer para desfazer vamos ficar com a nossa cadeia pronto se ficou Qualquer duvida postem
abaixo nos comentários que eu terei o maior prazer em responder e na próxima aula nós vamos ver como construir uma função que recebe parâmetros então deixa seu joinha nessa aula deixa seu like aí foi ajuda muito canal e se inscreva no canal para não perder e a próxima aula nos vemos lá