o Olá Nesta aula nós vamos ver dois conceitos extremamente importantes na programação de computadores o conceito de variável global escopo de variável então se você quer aprender mais sobre isso chega mais quê nessa aula 107 do nosso curso de algoritmos e lógica de programação eu vou te mostrar um pouquinho a respeito disso eu sou o Professor Wagner Gaspar seja muito bem vindo ao canal programa e seu futuro e E aí E aí e Aqui nós temos dois conceitos extremamente importante variável global escopo de variável vamos entender cada um de forma separada porque eles são extremamente
importante Vamos então focar aqui no nosso primeiro conceito variável Global O que que é uma variável Global até o momento toda vez que a gente criou uma variável ou essa variável estava dentro do nosso procedimento início ou ela estava dentro de algum outro procedimento ou dentro de alguma função que a gente criou então quando eu faço algo desse tipo aqui olha inteiro x = 10 e aí é que eu vou simplesmente imprimir na tela o valor dessa nossa variável então o partir em uma forma mais eu vou saltar uma linha vou imprimir o valor da
variável x E aí eu quero então saltar e pronto eu vou aqui colocar X de dentro de início pronto sendo esse tom meu programa Olha só eu tenho aqui cheia dentro de início o valor de x é dez nós dizemos que essa variável é uma variável local e o quê que isso significa é exatamente o que o termo local quer dizer significa que essa variável Só existe aqui dentro do nosso procedimento início então se eu criar um procedimento aqui em cima a função eu vou chamar de imprimir e passar esse meu x ou tentar imprimir
esse meu x aqui olha o que que vai acontecer eu vou colocar aqui ou na verdade eu vou copiar e eu vou copiar esse trecho aqui escreva control c Vou colocar daqui contra ouvir só que agora eu não estou dentro de início eu estou dentro de imprimir então imprimir Quando eu for tentar fazer isso aqui perceba que ele já subiu no OLX de vermelho porque ao passar o mouse olha só a variável x não foi declarada neste escopo E aí perceba que nós já chegamos aí no nosso segundo conceito escopo de variável O que quer
dizer escopo de variável a minha variável x ela é local ela só existe aqui dentro Esse é o escopo da minha variável X por isso que quando eu tento imprimir a minha variável x aqui dentro do procedimento imprimir é a minha variável x fica sublinhada de vermelho e aparece essa mensagem a variável x não foi declarada neste escopo que escopo tem este escopo este procedimento que está entre a linha cinco até a linha 7 Ele tá dizendo basicamente que a variável x não existe aqui ele não sabe quem é a variável x de novo porque
porque a variável x pertence ao escopo no procedimento início ou seja dizendo em outras palavras ela só existe aqui dentro e aí como nós já vimos nas aulas de procedimentos e funções e eu quero imprimir aqui dentro do procedimento imprimir o conteúdo da variável x que que eu tenho que fazer eu preciso passar como parâmetro essa variável assim e o pai escreva não e imprimir Então eu chamei o procedimento imprimir e agora eu preciso mandar o X para lá porém nós teremos aí um erro porque que nós teremos um erro um erro percebo aqui eu
não disse aqui que o meu procedimento imprimir recebe alguém então agora eu estou mandando x certo qual o tipo de X inteiro x Pronto agora x existe aqui dentro mas olha só esse X é diferente desse x Uai como assim Wagner Lembra no na aula anterior onde nós tínhamos idade do usuário dentro do nosso procedimento início e nós tínhamos a idade do usuário emlyn ler idade são duas variáveis diferentes então aqui dentro de início eu tenho a variável x x tem um conteúdo das quando eu estou passando x e o meu procedimento imprimir eu não
estou passando nome x eu estou passando com é tudo da minha variável x Qual que é o conteúdo da minha variável X é 10 Então eu estou passando aqui o conteúdo deixe quando chega aqui Opa eu estou recebendo um número inteiro Que número é esse o 10 então ele vai criar uma variável para salvar esse número lembro se eu tenho o número eu quero trabalhar com esse número eu preciso de uma região de memória se eu quero salvar esse número numa região de memória Como que eu faço isso eu preciso criar uma variável E aí
ele vai criar outra variável Qual o nome dessa variável x também Nossa mas é possível duas variáveis com o mesmo nome sim é possível apenas aí escopo diferente lembrando o que que ela escopo é o espaço é o local onde eu estou utilizando a variável esta variável x pertence ao escopo da função início esta variável x pertence ao escopo da função imprimir bom então por isso que é possível duas variáveis diferentes com o mesmo nome esta variável x só é visível aqui dentro esta variável x só é visível aqui dentro e aí para simplificar eu
prefiro sempre utilizar nomes diferentes então eu vou vir aqui e vou trocar por y só que aí eu também preciso trocar aqui perceba assim não dá o mesmo problema quem é x aqui no escopo do procedimento imprimir não existe nenhuma variável x ah mas tem um aqui no início Mas esta variável X no nosso procedimento início só é visível dentro deste escopo então eu vou trocar aqui para Y pronto resolvemos o problema então eu sempre prefiro utilizar nomes diferentes posso usar nomes iguais pode mas isso pode induzir ao erro pode te induzir a imaginar que
esse X é o mesmo daqui quando não é OK e o meu programa agora olha o que que a gente vai ter eu vou executar e nós temos agora duas mensagens aí perceba que eu esqueci de trocar aqui no texto não é X + É Y Então esta primeira impressão dentro de imprimir foi impresso aqui o valor desta variável Y esta segunda mensagem x dentro de início 10 foi a impressão desta variável aqui e aí para confirmar que são duas variáveis diferentes eu vou trocar novamente aqui vou colocar aqui x e aqui x tendência é
que tá o programa ele vai funcionar normalmente percebeu porém Olha o que que nós temos aqui dentro Eu tenho o meu programa o meu programa tem um procedimento chamado imprimir e dentro desse procedimento eu tenho uma variável chamada x Qual o tipo dessa variável inteiro dentro do meu procedimento início eu e tem uma olhada no x Qual o tipo dessa variável também é inteiro então percebo eu tenho duas variáveis com o mesmo nome o mesmo tipo porém elas estão em escopo diferente essa daqui está dentro de imprimir essa daqui está dentro de início OK agora
vamos voltar ao conceito de global perceba que eu falei falei falei mas até agora eu não falei nada de variável Global O que que é uma variável global é uma variável que vai pertencer ao escopo Geral do nosso programa O quê que significa isso eu consigo acessar Ela tanto aqui dentro de imprimir quanto aqui dentro de início Olha só eu vou criar aqui fora perceba que eu estou e fora de qualquer um dos nossos procedimentos eu estou fora de imprimir eu estou fora de início eu vou criar aqui uma variável do tipo inteiro chamada L
eu vou dizer que essa variável recebe o valor 50 Nossa eu posso fazer isso sim você pode e olha o que que aconteceu no meu programa eu tenho uma variável ela e vai ficar Confuso com i.a. então vamos trocar vamos chamar de m que aí a gente não confunde pronto dentro do meu programa eu tenho uma variável chamada a m do tipo inteiro Qual os corpo dela Global escopo Global porque perceba ela não está dentro de imprimir e ela não está dentro de início a está fora ela é Global ela pertence ao meu programa inteiro
e aí Olha só eu vou trocar aqui para m e agora eu vou imprimir aqui o valor da variável m e ele aceitou e me não ficou sublinhado em vermelho mas eu não tenho aqui dentro nenhuma variável chamada a Emily na verdade eu não vou alterar esse aqui não eu vou reescrever essa linha porque ela vai ser útil então eu vou reescrever ela aqui e pronto e agora eu vou imprimir Então a nossa variável m Oi e aí Olha que interessante não ficou sublinhado vermelho porque não tem nenhuma variável e me aqui porém m é
Global se eu comentar que olha o que que vai acontecer ou pagode eu não tenho mais nenhuma variável e me nem aqui no escopo de imprimir e nem nos corpo Global OK agora eu também vou colar é aquela linha aqui e aqui também eu vou imprimir m é só que aqui agora início control c control V então perceba que novamente a que não ficou sublinhado em vermelho Esse é o executar o meu programa Tudo vai funcionar perfeitamente perceber eu vou executar que o meu programa E aí eu tenho um Y dentro de imprimir 10 que
é a nossa variável x que eu passei como parâmetro foi impresso m com o valor 50x dentro de início 10.com dentro do meu procedimento início com o valor 50 também essa é a diferença entre uma variável local e uma variável Global perceba X é uma variável local o escopo de x é o procedimento início e aqui eu tinha mudado para Y vamos voltar aqui para y o y também é uma variável local ela só existe no escopo do procedimento imprimir porém a nossa variável o m ela é Global perceba a gente consegue ver isso claramente
aqui nessa árvore nós temos o procedimento imprimir com a variável local Y temos o procedimento início com a variável local x.com não está dentro de nenhum deles perceba que o m está fora está dentro do nosso programa então Amy é Global E aí nós precisamos tomar muito cuidado ao trabalhar com variáveis globais sabe porque olha só eu vou fazer algo aqui lembra o que que faz o esse incremento de nós vimos já na parte teórica e prática do nosso curso eu estou fazendo um é mais mais no nosso Y eu estou mandando conteúdo 10 certo
então 10 mais um vai ser 11 então eu vou imprimir 11 aqui será que o nosso x vai ser alterado vamos ver o que que vai acontecer como todos tem como trabalhar em No início eu vou tirar esse contra a barra ainda aqui para as nossas mensagens ficarem juntinhos eu tô ocupando muito espaço aqui no console pronto vou fazer isso aqui também Opa o m não pronto se eu executar agora perceba que nós temos Então as mensagens juntinhas vou deixar apenas aqui neste último pronto aí olha só quando chegou aqui Y dentro de imprimir foi
impresso 11 eu mandei aqui 10 chegou aqui Y é 10/10 mais um 11 eu imprimi 11 Será que alterou o valor de X vamos ver aqui x dentro do início de início 10 então quando eu imprimi x aqui continuou sem é porque como eu já mencionei essa passagem de parâmetro que nós fizemos aqui é uma passagem de parâmetro por valor o que significa isso eu não estou passando o nome x Eu estou passando o conteúdo DX Qual que é o conteúdo de x é 10 então quando chega aqui é criada outra variável chamada y e
essa variável recebe o conteúdo 10 quando eu faço o incremento aqui eu estou fazendo incremento de quem da variável Y então o conteúdo da variável Y vai para 11 mas a minha variável x aqui dentro da função do procedimento início continua inalterado lembra são duas funções diferentes agora olha isso aqui e se eu fizer isso aqui na verdade e o imprimir aqui a minha variável o m Se eu fizer isso aqui e o que que você acha que vai acontecer quando eu imprimi o m aqui no nosso procedimento início vai imprimir 50 51 que que
vai acontecer eu vou executar o programa vamos avaliar o resultado Olha só nós já Vimos que aqui dentro do procedimento imprimir imprimir 11 porque o implementei antes de imprimir e m dentro de imprimir então aqui na linha 10 eu imprimi Amy Qual o valor de m 50 em seguida imprimir eu incrementei m50 mais um vai para 51 E agora o que que vai acontecer na nossa no nosso procedimento início perceba x dentro de início continua sendo das como nós já vimos XY mesmo que eu tivesse aqui outro x são duas variáveis diferentes percebam uma tá
dentro de imprimir outra tá dentro de início então imprimir 10 porém Olha só m dentro de início O opa então o m foi alterado sim a minha variável Global ela tem essa característica se você altera ela aqui dentro de qualquer função ou procedimento ela é alterada por escopo Global do seu programa Ok então você precisa tomar muito cuidado precisa ter muita atenção quando você está utilizando variáveis globais imagina que você quisesse fazer alguma operação aqui com a variável com o valor da variável 1 m mas você não queria alterar o valor da variável em Global
Como que você poderia fazer isso muito simples inteiro cria uma outra variável temporária aqui dentro por exemplo inteiro cópia E aí nós podemos fazer cópia recebeu o valor de m e aí você faz aqui o incremento de a cópia mais mais agora olha o que que vai acontecer se eu executar o meu programa nós temos 50 em qualquer lugar tanto dentro de imprimir contra o dentro de início e aí por quê que isso aconteceu é porque eu fiz uma cópia de ela então perceba a operação de incremento foi feito em cima da variável cópia que
só existe aqui dentro Olha só e imprimir agora possui as variáveis locais y e cópia então foi esta variável que eu implementei a minha variável e me continua com o meu valor inalterado o valor 50 OK qualquer dúvida já sabe deixa nos comentários que eu terei o maior prazer em ajudar e já deixa o seu like aí vai deixa seu like isso é muito importante para o canal e lógico se inscreva se você não é inscrito ainda no mais um grande abraço Bons estudos e até a nossa próxima aula