📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

AULA 6 - APRENDENDO A PROGRAMAR - ESTRUTURA DE REPETIÇÃO "REPITA" NO VISUALG

Tiago A. Silva16:48

Transcription

Olá pessoas, professor Thiago aqui para mais uma vídeoaula, né? Estamos dando andamento aqui no nosso curso de algoritmos. Nós já estamos no assunto estruturas de repetição e hoje a gente vai estudar uma estrutura de repetição chamada repita.

O repita, ele vai ter uma diferença muito marc em relação à nossa última estrutura que foi o para, onde a gente vai perceber o seguinte: o para ele tinha o final pré-determinado. No caso da nossa estrutura repita, a coisa talvez não é bem assim, porque existem situações onde a gente não tem necessariamente um final pré-determinado, né? E isso vai depender da iteração do usuário junto ao algoritmo, junto à aplicação. Então, como que ele vai funcionar? Como que eu declaro? Como que eu faço? Vamos dar uma olhada aqui que é facinho, tem que certeza que você vai gostar.

Não se esqueça, antes de prosseguir aqui com a nossa aula, de verificar se você tá inscrito aqui no canal, se você já deu o seu like e, claro, ir colocando aí as tuas dúvidas nos comentários, porque de repente eu não respondo, mas alguém pode responder, ou eu respondo depois. Então, sempre deixa aqui a tua contribuição, é muito importante divulgar o trabalho. Tudo bem? E compartilha com o teu colega que tá estudando o algoritmo também, que eu tenho certeza que vai ser útil.

Então, vamos começar o seguinte: como que eu declaro repita, né? Temos aqui o nosso algoritmo pré-declarado, né? Então, vamos lembrar, sempre começamos o algoritmo dentro do início, né? A gente já aprendeu isso algumas aulas. E aí, a nossa estrutura vai ser assim, ó: repita, e aí eu vou ter o bloco de código, né? E eu vou ter instrução até dessa maneira. Control G para ficar mais fácil de você entender.

E aí, percebo o seguinte, ó: o repita, ele vai ter um até. O até, ele vai ter ali, entre os parênteses que eu coloquei, o critério de parada. Como que a gente pode definir isso daqui, ó? Vamos declarar uma variável aqui, ó, chamada repetir mais, e essa variável vai ser do tipo caracter. Essa variável, ela vai funcionar para nós para a gente sempre perguntar pro usuário se ele quer repetir mais uma vez.

Então, olha que legal que dá pra gente fazer. Você vai chegar aqui dentro do repita, né? E aqui o nosso conceito de estar dentro, ele foge um pouquinho do padrão que a gente tá acostumado, né? Lembra lei da da da nossa aula sobre o se, se não, e o fim se? Eu sempre te disse, ó, conselho jeito de estar dentro, né? A gente aprendeu isso, né? Está depois do início da declaração e antes do fim dela pré-determinado. Aqui muda um pouquinho, porque estar dentro do repita significa estar após a palavra repita e antes da palavra até.

Então, quando eu coloco aqui, ó, escreval, tô aqui na linha nove, a linha nove está dentro do repita. Então, vamos colocar aqui: "Repetiu". Muito bem. Aí a gente vai vir aqui, ó, dar outro escreval. Lembra, eu posso dar mais de um comando dentro, eu não preciso colocar só escreval, posso colocar outras estruturas de repetição aqui dentro também, posso colocar estruturas de controle. Isso aí vai do seu gosto. Inclusive, se você assistiu aquela aula sobre a estrutura de decisão escolha, vou deixar o Card dela aqui em cima, dá pra gente trazer o escolha aqui para dentro para validar aquela questão da opção válida, lembra que é faz um tempinho já? Não, tempinho não, gravei tudo hoje, mas você vai poder dar uma relembrada aí em como que funciona.

Então, ó: "Repetiu". Aí eu vou perguntar agora pro usuário: "Repetir mais uma vez?". E aí, vamos colocar aqui, ó: "sim ou não?". E aí, se eu pedir pra pessoa digitar, preciso pegar o que ela digitou. Então, a variável leia aqui vai ser a nossa variável repetir mais. E aí, a questão é a seguinte: como que vai ficar o critério de parada dessa repetição? Então, eu vou repetir até que a minha variável repetir mais seja igual a "n". Então, a pessoa não quero repetir mais.

Então, veja meu algoritmo aqui na linha 10, perguntou pro usuário: "Repetir mais sim ou não?". Se ele apertar o "s", não faz diferença nenhuma, vai continuar repetindo. Agora, se o usuário apertar "n" e apertar o enter, que que vai acontecer? A minha variável repetir mais vai passar a valer "n", e aí eu vou repetir até que repetir mais seja igual a "n". Então, quando chegou no até, que atendeu a minha condição, eu saio da repetição.

Para a gente ter uma noção boa que saiu, né, do laço de repetição, a gente pode vir aqui, ó, colocar um escreval. Vamos colocar aqui, ó: "Saiu do repita". Você sempre pode fazer isso. Poderia fazer isso lá no no para também, não tem problema, né? Assim você vai ver com mais clareza que o código ficou repetindo por um período e depois cessou as repetições.

Então, aqui, veja como que isso aqui vai funcionar para nós, ó. Vou fazer uma vez rodando o algoritmo normalmente, mas você pode fazer usando aquele recurso lá do rodar passo a passo, sem problema. Então, tira aqui da frente da cabeçona, vamos ver. E tá aqui, ó. Muito bem. Tá perguntando aqui para mim, ó: "Repetir mais uma vez?". Repara aqui na área das variáveis, quanto que vale a nossa variável repetir mais? Tá vazia, né? Tá entre aspas ali, não tem nada entre as aspas, significa que está vazia. Uma variável do tipo caracter, por isso que ela não começou como zero, começou como vazio. Lembra disso?

Então, vamos lá: "Repetir mais uma vez?". Sim. Apertar o "s" aqui. Ah, Thiago, mas você apertou o "S" maiúsculo, "S" minúsculo, né? Vai fazer diferença? Não, não vai, porque lembra, a nossa repetição, ela só vai parar quando a pessoa apertar o "n" minúsculo. Então, olha só, tô aqui de novo, e vai, vai, vai repetindo o código. Isso aqui vai continuar para sempre até eu apertar o "n", igual eu fiz agora. Apertei o "n". Muito bem. Agora: "Saiu do repita". Fim do programa.

Então, veja o seguinte: aqui eu não tenho final pré-determinado. Aqui eu já consigo ver como que o meu repita pode se adaptar às escolhas do usuário. Lembra que eu falei para você, sempre temos ferramentas para cada situação. Então, você tem que escolher a ferramenta mais apropriada para a situação que você está resolvendo.

Então, aqui, né, como que a gente gente poderia fazer? Como que nós poderíamos melhorar aqui? Eu deixei acumulando as coisinhas aqui bonitinhas para você ver as repetições acontecendo, mas nós poderíamos fazer aqui, ó, aquele exemplo do escolha, lembra? Vamos fazer o seguinte, ó: eu vou vir aqui, eu vou salvar esse exercício aqui, "repita_d_mais". Eu vou abrir aquele exercício nosso anterior, né, do escolha caso. Tá aqui, né, bonitinho. Que que isso aqui não tinha apagado? Isso aqui não voltou para cá. Tudo bem. Salva aqui, tá salvo legalzinho, né? Lembra desse exercício? Vamos copiá-lo aqui, Ctrl C. Vamos criar um novo, Ctrl V. Muito bem. Escolha caso. Vamos colocar aqui o repita antes para a gente saber: "repita_escolha_caso".

Então, como que vai funcionar isso daqui? Olha que interessante. Temos aqui o nosso menu de navegação e para refrescar tua memória, né? O que que acontecia antes? A gente vem aqui, ó, "rodar algoritmo", ele vai vir para cá bonitinho, e eu coloco, por exemplo, uma opção inválida, né? Quais são as opções válidas aqui para cair em cada um dos casos? Um, dois ou três. Se eu vier aqui colocar a opção "sim", o que que vai acontecer comigo? Vai dar "opção inválida". E aí acabou. Acabou o algoritmo. Eu não dou oportunidade do meu usuário escolher uma opção correta.

Então, eu poderia fazer da seguinte maneira: eu posso envolver o código que eu quero repetir dentro do repita. E aqui, eu vou dar um passinho um pouquinho maior com vocês. Eu vou vir aqui e eu vou colocar o repita aqui em cima, olha só: repita. Todo repita precisa ter o seu até. Vamos colocar aqui, ó, o até. Eu ainda não sei a condição de parada, a gente não conversou disso, então vou deixar o parênteses ali sem nada. Você sabe que eu gosto da identação para quê? Para você perceber o código que está dentro do laço. Então, Ctrl G. Olha como fica fácil de você dar uma visualizada nisso, ó. O conceito de estar dentro, reforce ele comigo, ó: todo esse código aqui da linha 8 até a linha 23 está dentro do laço de repetição repita.

Então, esse código vai ficar aparecendo pro usuário, né? E aí, o que que acontece? O resto que nós sabíamos permanece a mesma coisa, né? Os casos aqui, ó, estão dentro do escolha, né? Vamos dar um tzin aqui para ficar mais nítido isso, né? Eu prefiro, né? E aí você já tá compreendendo quem está dentro de quem aqui. Só que aí, a questão que você quer saber agora é a seguinte: qual que vai ser o critério de parada do nosso repita?

Calma, não se assuste. Eu sei que você piscou e eu apareci com uma roupa diferente, mas é porque eu tive que fazer um corte aqui na aula, porque naquele momento que eu ia explicar a condição de parada aqui do Repita, eu tinha outro compromisso e precisei parar a videoaula rapidão para poder atender. Eu tinha esquecido, tinha uma reunião online. Mas ó, na data de hoje, eu tô voltando aqui pra gente finalizar o nosso assunto, não deixar a peteca cair. Muito bem.

Então, você acabou de ouvir a minha explicação a respeito de estar dentro do repita, e agora falta som a gente definir por quanto tempo que a gente vai repetir esse menu pro usuário. Veja, eu já apresentei as opções pro usuário e já pedi para ele fazer aqui para mim, ó, a escolha. Então, ele vai aqui vir para mim, vai falar, ó: "quero um, dois ou três". Se ele escolher qualquer uma dessas opções, para mim, tá tudo certo. Agora, eu quero que você raciocine o seguinte: qual o intervalo de número que eu quero que a pessoa aperte? Maior do que zero e menor ou igual a três. Então, eu posso fazer isso. Lembra lá que a gente usou o operador lógico "e" lá dentro dentro do "se"? Mas lá era uma estrutura de decisão. Thiago, posso usar aqui na estrutura de repetição dentro do repita? Você pode, porque lembra, todo repita tem que ter o seu até.

Nós temos aqui, ó, na linha 24, o até com a seguinte condição, ó: a repetição, ela vai acontecer a opção for menor do que zero e for menor do que três. Como que isso funciona? Vamos testar para entender. Vamos vir aqui em "Run", vamos rodar o algoritmo. Dea ele aqui de trás. Vamos lá. Vamos colocar uma opção inválida: quatro. Coloquei o quatro. "Opção inválida. Por favor, faça de novo." Então, o que que eu tô reforçando aqui? A pessoa não digitou uma opção certa. Então, vai digitar uma opção. Menos um. Opção inválida também. O que que ela tem que digitar para poder dar certo aqui? Ela vai digitar um, ou dois, ou três.

Então, nós podemos vir e fazemos isso aqui, ó. A gente vem aqui, vai digitar o três. Três. Vamos acompanhar o seu pedido. E aí, o nosso algoritmo meio que acabou. Ele acabou porque a pessoa já acabou de digitar. Agora, uma coisa que a gente pode pensar é que eu posso deixar o usuário preso na repetição somente enquanto ele for digitar, né? Então, esse bloco de código aqui do escolha caso, a gente poderia deixar do lado de fora da repetição, que não mudaria nada do nosso algoritmo. Vamos fazer esse teste. Ó, eu não quero confundir a sua cabeça, mas eu quero que você abra a sua mente para o que que nós efetivamente devemos deixar dentro da estrutura de repetição. Veja, acompanha aqui comigo o raciocínio.

Eu vou deixar o usuário preso aqui na estrutura de repetição, ou seja, esse código que tá selecionado é estrutura de repetição e o conteúdo dela. O conteúdo da estrutura de repetição são essas linhas aqui que estão selecionadas. O que que eu estou fazendo aqui, ó? Eu estou falando pro algoritmo exibir na tela as opções e eu estou esperando aqui na linha 12 que o usuário digite a opção para mim. O até, ele vai garantir, né? Essa estrutura aqui, a repetição, ela vai acontecer até que a opção seja maior do que zero e menor ou igual a três. Ou seja, apertei um, saio da repetição. Apertei dois, saio da repetição. Apertei o três, saio da repetição. Apertei o quatro. Vamos ver por que que o quatro não dá certo. Quatro atende essa primeira condição? Atende. Isso aqui dá verdadeiro. Quatro é maior do que zero. Só que temos o operador lógico "e", então a outra condição também tem que dar verdadeiro. Então, vamos lá pro seguinte, ó: quatro é é menor ou igual a três? Verdadeiro ou falso? Isso é falso. Então, essa daqui, ela vai dar falso. O operador "e" exige que as duas condições sejam verdadeiras. Então, eu vou ter que repetir mais uma vez. Aí o até é invalidar. Então, volta lá para cima e vai repetir mais uma vez até que o meu usuário digite a opção correta.

Eu sei que pode parecer um pouquinho confuso, mas você precisa muito fazer o exercício e fazer as suas experimentações. Eu usei esse exemplo aqui com a estrutura escolha, que a gente já tinha falado anteriormente, porque é um exemplo que vai, vai muito bem, né? Se você já programa, você tá pensando aqui que essa estrutura é análoga a outras repetições. Aqui tem um porém, porque a estrutura repita, ela meio que não vai aparecer nas linguagens que derivam ali do C. Então, na próxima vídeoaula, a gente vai ver outras estruturas de repetição, a gente vai ver o faça enquanto e o enquanto. E aí, eu acredito que as coisas vão ficar mais bem amarradinhas.

Porém, mais uma vez, quero te convidar a fazer aquela reflexão: cada estrutura de repetição, ela é uma ferramenta, e aí você precisa aplicá-la de acordo com a tua necessidade na situação mais apropriada. Bom, eu espero que você tenha gostado dessa videoaula. Não se esquece de se inscrever aqui no canal, marcar a notificação, compartilhar, deixar um comentário aqui, é muito importante. A gente vai se falando e até a próxima.