Estruturas de Repetição 1 - Curso de Algoritmos #09 - Gustavo Guanabara — Transcript
Full transcript
- 0:04♫ Música de abertura ♫
- 0:21Olá, seja bem vindo a mais uma aula do seu curso de algoritmo.
- 0:24O meu nome é Gustavo Guanabara, eu sou seu professor...
- 0:26...e agora nós chegamos à nona aula.
- 0:28E esse momento é um momento em que as pessoas começam a se enrolar nos cursos de algoritmo.
- 0:32Quem ainda não tem muita experiência, começa a se enrolar um pouquinho, e eu vou tentar tornar isso mais simples.
- 0:38Agora, entramos no momento em que nós chegamos às nossas estruturas de repetição.
- 0:42E nós vamos começar bem devagarinho, com um exemplo bem simples.
- 0:46E mais simples é impossível!
- 0:47Eu vou mostrar pra você, o que eu consigo fazer.
- 0:49Olha só!
- 0:51Tá vendo?
- 0:53Troca!
- 0:54Viu?
- 0:55Não sei se você percebeu qual foi a jogada do negócio...
- 0:57...mas eu vou fazer de novo. Ó!
- 0:59Troca!
- 1:00É isso!
- 1:01É simples!
- 1:02Aprender estrutura de repetição
- 1:03é tão simples, quanto trocar.
- 1:05E essa brincadeira que eu fiz
- 1:06é pra você entender o seguinte:
- 1:07Eu vou querer fazer
- 1:08esse mesmo procedimento de troca
- 1:105 vezes!
- 1:11O meu primeiro passo é:
- 1:13contar até 5.
- 1:14E todo mundo sabe contar até 5!
- 1:15Mas, a cada vez que eu somar um dedo na minha mão,
- 1:17eu vou fazer a troca.
- 1:19Eu vou demonstrar pra você!
- 1:20E você vai entender do que eu to falando.
- 1:21Então...
- 1:22eu sei fazer, o procedimento de troca.
- 1:24Eu fiz aqui, 2 vezes.
- 1:25E se eu quiser fazer 5 vezes, dessa maneira?
- 1:28Troca!
- 1:29Troca!
- 1:30Troca!
- 1:31Troca!
- 1:32Troca!
- 1:33Viu como foi simples?
- 1:34Então, a cada vez que eu somei um dedo...
- 1:36Eu comecei com nenhum dedo. Fiz 1 dedo, 2, 3, 4 e 5.
- 1:41...e a cada vez que eu coloquei, eu fiz a troca.
- 1:43O procedimento é exatamente esse!
- 1:45Eu vou tentar descrever, isso tudo que eu acabei de fazer
- 1:48em forma de um algoritmo genérico.
- 1:50Então...
- 1:50...basicamente, a estrutura que eu criei foi a seguinte:
- 1:53Pra troca dos dois personagens eu fiz o seguinte algoritmo:
- 1:57Eu utilizei uma variável chamada 'mão'.
- 1:59Nesse caso aqui, como é um algoritmo genérico
- 2:00eu botei até acentuação.
- 2:02E eu começo então
- 2:03com a minha mão valendo zero.
- 2:05Isso significa que estou com a mão fechada.
- 2:07O próximo comando é o 'Enquanto'.
- 2:09Enquanto a mão for menor ou igual a 5, faça...
- 2:12Isso é: eu estou com zero, e zero é menor ou igual a 5.
- 2:16O próximo comando é o comando de troca.
- 2:19Isso vai fazer com que os personagens sejam trocados.
- 2:22Logo, em seguida, 'mão' recebe 'mão + 1'
- 2:25O que significa isso?
- 2:27'mão', que estava com zero, vai receber o 'mão',
- 2:30que é zero
- 2:31+ 1.
- 2:320 + 1 = 1
- 2:34Então, o novo valor para 'mão' é 1.
- 2:36Isso faz a seguinte alteração:
- 2:39Basta você verificar, que a minha mão, que estava lá em baixo, fechada...
- 2:42...agora está com número 1.
- 2:43O próximo comando é 'FimEnquanto'.
- 2:45Ao chegar nesse comando, ele vai procurar qual é o 'Enquanto' relativo a ele.
- 2:50No caso, é o único que a gente tem na tela.
- 2:51Então, ele vai voltar pra aquela linha.
- 2:53A minha mão, que estava com zero, agora está com 1.
- 2:56E eu vou verificar:
- 2:57Enquanto a minha 'mão' for menor ou igual a 5, faça:
- 3:00Nesse caso, a minha mão está com 1. E 1 é menor ou igual a cinco.
- 3:04Logo, o próximo comando...
- 3:06...vai ser executado.
- 3:07Troca!
- 3:09a troca foi feita
- 3:10logo em seguida
- 3:11a minha 'mão' recebe 'mão'
- 3:13que é 1, basta você verificar lá em baixo
- 3:15mais 1.
- 3:161 + 1... 2.
- 3:18'FimEnquanto'
- 3:19e mais uma vez, quando ele chega nessa estrutura
- 3:22ele volta pro Enquanto
- 3:23nesse meu caso, mais uma vez
- 3:25'mão', que está com 2 é menor ou igual a 5.
- 3:28Então ele vai fazer, novamente, esse
- 3:30bloco de 2 comandos:
- 3:31troca
- 3:32e 'mão' recebe 'mão' + 1.
- 3:33Deu pra entender a lógica da coisa? E se você prestar bem atenção
- 3:37você vai ver que essa minha rotina não vai executar 5 vezes e sim 6
- 3:40por que minha mão começou fechada.
- 3:41Mas o princípio da repetição está sendo exemplificado aqui.
- 3:44E nós já vimos repetição anteriormente, quando nós utilizamos o Scratch
- 3:47e fizemos o gato dar uma andada.
- 3:49Vamos ver mais um exemplo no Scratch
- 3:51que utilize estruturas de repetição.
- 3:53Então estou aqui com um projeto novo do Scratch.
- 3:56Eu vou mudar o palco aqui só pra fazer uma coisa.
- 3:59Mostrar algo novo
- 4:02Vou carregar esse fundo aqui, que já vem como padrão que é o
- 4:04x y grid (plano cartesiano)
- 4:06Ele vai ter lá um plano (x,y) pra você entender.
- 4:10O gato sempre vem parado no ponto (0,0).
- 4:13Então vamos...
- 4:14clicar 2 vezes no gato,
- 4:16vamos em Comandos
- 4:17e vamos lá nos controles.
- 4:19Quando a bandeira for clicada,
- 4:21eu vou fazer um movimento,
- 4:24que é
- 4:25o deslize
- 4:27para x , y.
- 4:28Então, aqui no caso, eu vou querer que o y
- 4:31vá até ao 100 aqui.
- 4:32Esse é o y.
- 4:33Eu vou até ao 100.
- 4:35Então em um segundo ele vai deslizar até ao 100.
- 4:38vou usar um 'Vá para' no início, para ele sempre ir para a posição(0,0). Então assim,
- 4:42independente da posição onde o gato esteja,
- 4:44ele vai pra (0,0).
- 4:46E, logo em seguida, ele desliza.
- 4:47Ao clicar na bandeira,
- 4:49ele vai deslizar.
- 4:50Esqueci de botar
- 4:5210 , não, 100.
- 4:54Clicando na bandeira de novo,
- 4:55ele leva um segundo
- 4:57pra subir.
- 4:58Vejo um segundo,
- 4:59vou botar 0...
- 5:01ponto...
- 5:022.
- 5:04Clicando na bandeira,
- 5:06ele subiu
- 5:07em dois décimos de segundo
- 5:08até ao y=100.
- 5:10Vou em seguida
- 5:11deslizar em +0, 2 segundos
- 5:15para (0,0).
- 5:18Então clicando na bandeira, ele sobe e desce.
- 5:21Então esse aqui, que é o bloco que eu vou destacar,
- 5:23é o procedimento
- 5:24que eu quero repetir.
- 5:26Vou vir aqui na área de Controle
- 5:28e vou mandar ele repetir
- 5:30dez vezes
- 5:31isso daqui.
- 5:33Então vou fazer ele subir
- 5:35e descer dez vezes.
- 5:37Vou clicar na bandeira,
- 5:39ele vai subir e descer exatamente dez vezes.
- 5:44E aí fica simples, né? Você entende que ele faz fazer um Repita e essa
- 5:48estrutura vai repetir dez vezes. No algorítmo é um pouquinho mais
- 5:51complexo porque precisa da coisa da mão
- 5:54precisa de contar quantas vezes você quer fazer algo. Mas algoritmos de
- 5:58repetição acontecem diariamente na sua vida também.
- 6:01Vamos ver mais alguns exemplos.
- 6:03A sintaxe do comando Enquanto no algoritmo é a seguinte:
- 6:06enquanto uma expressão for verdadeira
- 6:08faça um bloco
- 6:09e FimEnquanto.
- 6:10Então, ao entrar no Enquanto, a cada vez ele vai testar uma expressão
- 6:14se essa expressão for verdadeira
- 6:16ele executa um bloco, que pode ter quantos comandos você quiser,
- 6:19e ao atingir o FimEnquanto, ele vai voltar pro comando Enquanto.
- 6:23O nome desse processo
- 6:25é conhecido como looping
- 6:26e lembra o trajeto que os aviões fazem na hora de fazer um looping. Como eu
- 6:30falei
- 6:31estruturas de repetição acontecem no seu dia-a-dia.
- 6:33Vamos ver um exemplo simples.
- 6:35A sua mãe chega pra você e fala o seguinte:
- 6:38"enquanto não arrumar o quarto,
- 6:39ele fica de castigo". Então,
- 6:41enquanto você não arrumar o quarto,
- 6:43você vai ficar de castigo.
- 6:44Quando chegar o FimEnquanto, ele vai entrar em looping
- 6:46e vai verificar se você já arrumou o quarto.
- 6:49Enquanto não arrumar, você continua de castigo.
- 6:51Aí vamos supor que você arruma o seu quarto.
- 6:53quando ela chegar lá em cima para verificar,
- 6:55vai verificar que:
- 6:56você já arrumou
- 6:58e aí o looping é desfeito
- 6:59e os próximos comandos serão executados.
- 7:01O comando nesse caso
- 7:03seria você liberado
- 7:04pra fazer o que quiser saindo do castigo.
- 7:06Viu como é simples?! Então não necessariamente você precisa contar
- 7:10alguma coisa.
- 7:11A sua mãe pode te dar a ordem. Enquanto você não arrumar o quarto
- 7:14você não vai sair do castigo.
- 7:15E esse é um princípio muito importante da repetição.
- 7:18Você não precisa ter um limite específicado, mas nesses primeiros
- 7:20exercícios é melhor que a gente tenha esse limite.
- 7:23E eu sempre vou utilizar
- 7:24contadores, no caso aqui a minha mão, que utilizei pra contar
- 7:28quantas vezes eu quiser.
- 7:29Vamos a alguns exemplos práticos, pra você poder entender isso.
- 7:33Então, a primeira prática que eu proponho é contar de 0 a 10.
- 7:36Vamos ver como isso é feito utilizando Visualg.
- 7:39Então estou aqui com Visualg, um programa novo
- 7:41vou lhe chamar de...
- 7:43"conteAté10"
- 7:45e eu vou começar o meu programa.
- 7:47Eu vou precisar da minha variável
- 7:49vou chamar de 'mão',
- 7:50que é a mão que vai contar.
- 7:51Eu vou precisar de uma variável que conte os passos.
- 7:54Eu vou precisar de uma variável que conte. Então vou chamar ela
- 7:58de 'contador'.
- 7:59Então, a variável 'contador'
- 8:00vai começar a contagem. Então eu quero um contador de 0 até 10. Então primeiro,
- 8:05o meu contador começa com 0. Vou tem que vir aqui em cima declarar a variável
- 8:09.contador'.
- 8:10Como é um número
- 8:11vou declarar como 'Inteiro'.
- 8:13E vamos à estrutura de repetição.
- 8:15'Enquanto' o meu contador
- 8:18for menor (<)
- 8:19ou igual (=) a 10, porque eu quero contar até dez, faça
- 8:24Vou ter o 'FimEnquanto'.
- 8:26Sempre que eu abrir o 'Enquanto', eu vou fechar o 'Enquanto'.
- 8:30Sempre que eu abrir uma estrutura, e ela tiver fechamento,
- 8:33imediatamente eu vou tentar lembrar de fechar a essa estrutura.
- 8:36Dentro do 'Enquanto' vamos colocar
- 8:38'contador'
- 8:40que é o caso da mão, recebe (<-) o 'contador'
- 8:43mais um (+1).
- 8:44Isso é, ele começava com zero, depois vai passar
- 8:46depois da passar pra 1,
- 8:47pra 2, pra 3..e assim até 10.
- 8:52Em cada um dos passos
- 8:53vou dar um 'EscrevaL' ,
- 8:57vou mostrar o contador.
- 9:00simples. objetivo.
- 9:02Mais uma vez, em vez de eu executar
- 9:04clicando aqui em Executar, eu vou clicar no 'Executar com time' (tempo).
- 9:11Então o meu programa começa.
- 9:13Vou declarar a variável.
- 9:14O meu contador vai começar com zero e nós vamos ver a estrutura de
- 9:17repetição funcionando
- 9:19pra ver se ele vai contar
- 9:20de 0 até 10. Vamos lá?.....0....1...
- 9:27...2...
- 9:28...3...4...5...
- 9:31Note no canto esquerdo
- 9:34que a estrutura de repetição está acontecendo
- 9:36e a variável que tá lá em baixo contadora
- 9:38está modificando
- 9:39até 10
- 9:41mostrou 10 na tela
- 9:42e finalizou a execução.
- 9:45E agora, perceba um detalhe muito importante da variável contadora:
- 9:48a gente pensa que ela vai parar em 10,
- 9:50na verdade, o 10 vai ser exibido na tela. Mas a variável que conta vá até um valor a
- 9:54mais
- 9:55que no caso é o 11 pois eu estou somando mais um.
- 9:58Preste atenção
- 9:59no Visualg e você vai entender.
- 10:01Se você olhar na tela preta, você vai ver que teve a contagem de 0 a 10 que
- 10:04foi exatamente o que eu queria
- 10:06mas se você olhar
- 10:08aqui, na parte de baixo da esquerda,
- 10:09você vai ver que a variável contadora foi pra 11.
- 10:12Isso acontece porque, enquanto o contador for menor ou igual (<=) a10
- 10:16ele vai escrever na tela.
- 10:17Quando ele passar de 10,
- 10:19que, no nosso caso, somando +1 vai ser 11
- 10:21aí sim ele vai parar e vai finalizar o algoritmo.
- 10:25Só pra mostrar a finalização,
- 10:27vou colocar mais uma vez aqui
- 10:29fazer ele contar até 5
- 10:31e no final
- 10:31eu vou mandar escrever (EscrevaL)
- 10:35"Terminei
- 10:36de contar".
- 10:39vamos executar de novo
- 10:42a variável foi declarada.
- 10:44E agora vou começar a minha contagem de 0 a 5 nesse caso agora. 0...1...
- 10:522
- 10:533
- 10:554 vai parar
- 10:565
- 10:57e agora
- 10:58terminei de contar.
- 11:00Isso demonstra exatamente aqueles dois caminhos que eu mostre: o caminho do
- 11:03looping e o caminho de saída executando os comandos que estão logo abaixo
- 11:07Deu pra entender? Então faça os seus testes aí. Faça contar, por exemplo,
- 11:11de 10 a 0. Tenta contar
- 11:14de zero a cem
- 11:15ah.. pulando de 10 em 10.
- 11:17Então, faça os seus testes
- 11:19mostrando que você 'tá aprendendo as suas estruturas de repetição.
- 11:22depois que você fizer todos os seus testes, vamos pra nossa segunda prática, que
- 11:26começa agora.
- 11:28Então a primeira prática foi contar de 0 até 10. Ela foi cumprida.
- 11:31Vamos à segunda,
- 11:32que é contar de 10 até 0. E, nesse caso, eu vou utilizar o mesmo programa feito
- 11:37anteriormente, fazendo algumas alterações.
- 11:39Nesse caso,
- 11:40'conte até dez'
- 11:42o meu contador começa com 0
- 11:44e iria
- 11:45até 10.
- 11:47Somando +1 a cada interação.
- 11:49Vamos fazer agora ele conta de 10 a 0.
- 11:52Nesse meu o caso aqui,
- 11:53o meu contador começava com zero e agora ele vai ter que começar pelo 10.
- 11:57A cada interação, em vez de somar mais um, eu vou ter que tirar um.
- 12:01Enquanto o meu contador for maior ou igual (>=) a zero.
- 12:05ele vai mostrar o contador.
- 12:07Então perceba o seguinte:
- 12:08eu começo o contador com 10 enquanto ele for maior
- 12:12ou igual a zero, que é o valor final que eu quero, já que eu estou contando de forma
- 12:15retroativa
- 12:16ele vai mostrar
- 12:17e eliminar 1.
- 12:18No final,
- 12:19terminei de contar.
- 12:21Vamos executar
- 12:22e ver como é que isso funciona.
- 12:24Declarei a variável
- 12:26e vai começar a minha contagem.
- 12:28Começando
- 12:29por 10, 9, 8,
- 12:347
- 12:35perceba aí,
- 12:36a repetição.... você pode ver esse vídeo várias vezes.
- 12:39Perceba que a cada vez ele tira
- 12:41uma unidade
- 12:42da variável
- 12:43contadora
- 12:45até chegar a zero
- 12:46e terminar a contagem.
- 12:48Se eu, por acaso,
- 12:49quisesse começar de 10,
- 12:52e tirar duas unidades a cada vez,
- 12:54ele mostraria
- 12:56apenas os números pares
- 12:58de dez até zero.
- 13:00Então ele vai-me mostrar:
- 13:0110
- 13:02em seguida, 8
- 13:03depois 6
- 13:054
- 13:072
- 13:08finalmente, 0
- 13:10e termina a contagem.
- 13:12E não se esqueça que, como você 'tá vendo esse vídeo no YouTube, você pode
- 13:15pausar o vídeo, voltar, assistir mais de uma vez, pra você pode entender, fazer o
- 13:20exercício no seu computador e ver os resultados. Teste, experimente novos
- 13:25valores, experimente novas situações que você entre. E por falar em situação,
- 13:29vamos a terceira prática, que eu vou propor a voc, nessa primeira aula
- 13:32de estruturas de repetição.
- 13:34A terceira prática
- 13:35é contar de zero até onde o usuário quiser.
- 13:38E aí você pode me perguntar: "mas poxa Guanabara, como é que pedir pro usuário dizer
- 13:42até onde ele vai?"
- 13:43Lembra dos comandos 'Escreva' e 'Leia'?
- 13:45Todos os comandos que você viu até agora podem ser utilizados com estruturas
- 13:48de repetição. Não é porque você terminou a aula 8 que os comandos não vão
- 13:52funcionar na aula 9. Inclusive, podemos utilizar estruturas condicionais junto
- 13:56com estrutura e repetição.
- 13:58Então vamo' ver uma proposta, pra ver como é que ficaria o resultado dessa
- 14:00prática que eu acabei de dizer pra você.
- 14:03Então eu voltei aqui ao meu algoritmo pra contar de 0 a 10
- 14:06e vamos fazer alguma alteração aqui.
- 14:08No meu caso,
- 14:09esse programa está contando de 0 a 10.
- 14:11A minha proposta
- 14:13é contar de 0 até ao valor que o usuário quiser.
- 14:17Então eu vou declarar uma variável aqui
- 14:19chamada' valor'.
- 14:21Então vou declarar aqui uma variável valor'
- 14:23também do tipo 'Inteiro'.
- 14:25E essa variável 'valor'
- 14:26vai ser lida
- 14:27antes do 'Enquanto'.
- 14:28"Quer contar
- 14:30até quanto?"
- 14:33E eu vou ler 'valor'.
- 14:36que foi a variável que eu acabei de criar aqui em cima.
- 14:39Aqui, no nosso caso, ele vai somando mais um
- 14:42até chegar a dez. No meu caso,
- 14:44eu quero que ele comece com zero
- 14:45e somar mais um até chegar ao valor que o usuário digitar aqui. Então,
- 14:49basta colocar a variável 'valor'
- 14:51dentro da expressão.
- 14:53Vamos executar
- 14:54e ver se vai funcionar.
- 14:56Quero contar até 4.
- 14:58Ele contou de 0 a 4.
- 15:01Vamos a mais uma.
- 15:03Quero contar até
- 15:0518.
- 15:07Contou de 0 a 18.
- 15:08Ficou claro?
- 15:09São variações do mesmo tema.
- 15:11Por exemplo aqui: se não quiser contar de um em um, se eu quiser deixar o usuário
- 15:14decidir qual será o passo, qual será cada
- 15:17salto.
- 15:18Vamos fazer uma alteração.
- 15:19Então eu vou criar uma variável 'salto'
- 15:22e vou ler
- 15:24esse valor.
- 15:27"Qual será
- 15:29o valor do salto?"
- 15:35Leia (salto)
- 15:38e aqui, contador recebe 'contador + 1'.. No meu caso, vai ser 'contador + salto'.
- 15:44Executando...
- 15:45eu quero contar de zero a 10
- 15:48pulando de dois em dois.
- 15:51De zero a dez pulando de dois em dois.
- 15:53Se eu quiser aqui, mais uma vez,
- 15:56de zero a cem pulando de dez em dez,
- 16:00ele fez 10, 20, 30 até ao 100.
- 16:07Eu acho que agora ficou mais claro ainda, né?
- 16:10Mas mesmo assim você ainda pode praticar mais coisas, mais possibilidades.
- 16:14E perceba que as minhas leituras foram feitas antes do 'Enquanto'. Se eu colocar um
- 16:18'Leia' desse dentro 'Enquanto', ele vai ler
- 16:21várias vezes a mesma coisa.
- 16:23Como esse não é o meu objetivo,
- 16:25eu coloquei fora da estrutura.
- 16:27Mas você tem que ter claro na sua cabeça a posição onde os comandos vão estar.
- 16:31No algoritmo não existe fórmula. Não é porque eu utilizei as primeiras linhas
- 16:34'Escreva' e 'Leia' até agora, que todos os meus programas vão começar com elas. Nesse
- 16:38caso aqui não começa.
- 16:39Então você vai ter que utilizar a sua lógica, o seu raciocínio, pois algoritmo
- 16:43não é receita de bolo, apesar de receita de bolo ser um algoritmo.
- 16:47eu espero que você tenha entendido.
- 16:48Vamos ver então exatamente esse ponto que eu acabei de apontar
- 16:51que é a diferença entre ler fora do laço ou dentro do laço, fora da
- 16:55estrutura 'Enquanto' ou dentro da estrutura 'Enquanto'.
- 16:58A Prática 4 é um pouco diferente.
- 17:00Eu quero ler dez números e somá-los.
- 17:03Note aqui uma diferença: no exemplo anterior
- 17:05eu quis ler quantas vezes vai acontecer, quis ler uma vez só. Quantas
- 17:09vezes ia acontecer e repetir várias vezes quantas forem solicitadas. Agora eu já
- 17:13sei que são 10 repetições mas a cada repetição eu vou pedir um número e
- 17:18vou somar esses números. Vamos ver como isso funciona:
- 17:21Vou começar um programa novo
- 17:23ele vai se chamar somador numérico
- 17:26"somadorNumerico"
- 17:28e vou até lá.
- 17:30Eu quero um programa que repita dez vezes. Se ele vai repetir dez vezes eu vou
- 17:33ter que ter um contador
- 17:36que é 'Inteiro'
- 17:38esse meu contador
- 17:40vai começar com 1.
- 17:42Enquanto
- 17:44esse contador
- 17:45for menor ou igual a 10
- 17:47faça
- 17:49vou fazer
- 17:50Vou botar o 'FimEnquanto' aqui...
- 17:53vou ter que somar mais um
- 17:55no contador.
- 17:57Note que é a mesma estrutura que nós fizemos até então.
- 18:00A ideia do algoritmo não é escrever de cima pra baixo,
- 18:02é fazer ele funcionar.
- 18:04Então nesse caso aqui
- 18:05eu fiz um contador interagir por dez vezes.
- 18:08A cada vez que ele repetir
- 18:10eu vou ler um número.
- 18:11Então vou ter uma variável 'N'
- 18:13e vou ler essa variável.
- 18:16"Digite um valor:". Leia (N)
- 18:21Vamos executar e ver como é que funciona.
- 18:24Ele 'tá pedindo um valor.
- 18:25Eu vou digitar,
- 18:26ele pediu de novo.
- 18:27Vou digitar. ele vai pedir de novo.
- 18:30Ele vai fazer isso dez vezes.
- 18:32Vou fazer uma alteração aqui ó:
- 18:34só pra ficar mais bonitinho. "Digite o " vou botar "cont
- 18:40um ozinho com um ponto, valor.
- 18:45Então ele ficar lá ó:
- 18:47"Digite o primeiro valor:"
- 18:48o 2º
- 18:493º
- 18:50o 4º
- 18:51o 5º
- 18:52o 6º, 7º, 8º, o 9º
- 18:54e o 10º.
- 18:56Então, ele fez exatamente o que o solicitei.
- 18:58Só que agora,
- 18:59eu quero somar esses valores.
- 19:02Pra isso, eu vou ter uma variável Soma, que comece o meu programa
- 19:05valendo zero.
- 19:07Isso porque, no início o programa,
- 19:09eu somei nenhum valor,
- 19:10então a soma 'ta valendo zero.
- 19:12A cada vez que eu ler N,
- 19:14eu vou fazer com que esse N
- 19:15entra na soma.
- 19:16Então se eu li o valor três, ele vai pegar esse três, somar com o zero
- 19:21e fazer com que
- 19:22o resultado
- 19:23passe a valer S.
- 19:25Então na verdade o que eu quero fazer
- 19:26é fazer a soma
- 19:27somar com o valor N.
- 19:30Isso vai ser
- 19:31atribuído
- 19:33à própria variável Soma.
- 19:35Então: Soma recebe
- 19:36soma mais N.
- 19:37No final do algoritmo,
- 19:39eu vou mandar escrever
- 19:42"A soma
- 19:43de todos os valores foi"
- 19:48vou mandar mostrar, S.
- 19:52Vamos executar.
- 19:53Vou fazer o seguinte: vou diminuir aqui para 5 valores,
- 19:56só pra gente
- 19:57ter mais prática
- 19:58e menos repetição , menos
- 20:00menos demora no vídeo.
- 20:02Executar. Agora ele vai ler 5 valores apenas.
- 20:053
- 20:06com dois
- 20:075
- 20:09com 4, 9
- 20:11com 2, 11
- 20:13com 4, 15.
- 20:15Então quando eu apertar Enter,
- 20:16ele vai ter que somar, ele tem que mostrar o valor 15.
- 20:20A soma dos valores
- 20:21foi 15.
- 20:22Ficou claro?
- 20:23Eu vou mais uma vez avisar:
- 20:25se você não entendeu direito, assiste o vídeo de novo,
- 20:28pratique, mostre no seu computador.
- 20:31Pratique,
- 20:31digite o código no seu computador pra você poder entender o funcionamento
- 20:35desse algoritmo.
- 20:36Então o que eu fiz foi o seguinte: eu tinha a soma, a minha soma estava vazia
- 20:40eu li um número
- 20:41a minha soma é o que 'tá vazio mais o número que eu acabei de ler.
- 20:45depois que eu ler um segundo valor, a minha soma vai ser o que eu tenho, que é o S
- 20:49mais o número que eu li. Então a minha soma vai ser uma acumulação do que ela
- 20:54estava anteriormente. por isso a fórmula é
- 20:56S recebe S+N.
- 21:00E eu tenho uma proposta pra melhorar ainda mais essa prática 4:
- 21:03Além de somar os valores,
- 21:05eu tenho um adicional
- 21:06que é mostrar qual foi o maior valor digitado. Pra isso,
- 21:09eu vou precisar de uma outra variável.
- 21:11Eu vou voltar aqui ao meu programa,
- 21:14e vou digitar
- 21:15uma variável chamada 'maior'.
- 21:17Vai guardar o valor maior.
- 21:18O que eu vou fazer é:
- 21:20a cada vez que eu ler N,
- 21:21eu vou verificar
- 21:23se
- 21:23o N
- 21:24foi maior
- 21:25do que o maior valor que está guardado.
- 21:27Se for, então,
- 21:30o meu maior valor,
- 21:31passa a ser
- 21:32o número atual.
- 21:34Tem que ter o Fim de Se.
- 21:36E essa é a estrutura.
- 21:38Perceba o seguinte:
- 21:39eu acabei de ler um número, se esse número for maior do que o maior número
- 21:43que eu tenho, então
- 21:45o maior número passa a ser o N.
- 21:48que foi o número que eu acabei de digitar.
- 21:50Vamos executar,
- 21:52e ver funcionando.
- 21:543
- 21:556
- 21:565
- 21:579 e 1
- 21:59A soma foi 24
- 22:01e o maior valor digitado
- 22:03foi 9.
- 22:04Vamos verificar
- 22:05se realmente ele está guardado
- 22:07na variável maior.
- 22:09Olhando aqui no canto esquerdo,
- 22:10a minha variável maior
- 22:12está com nove
- 22:13que, realmente, foi o maior número de digitado entre 3 e 6 5 9 e 1.
- 22:19Podemos fazer aqui
- 22:20ele mostrar na tela
- 22:22um EscrevaL
- 22:25"o maior valor digitado foi", maior
- 22:32Vamos executar mais uma vez, fazer mais um exemplo...
- 22:35Entre 9
- 22:358, 1
- 22:374
- 22:38e 7
- 22:40mais uma vez o maior valor digitado foi 9
- 22:42pressionando Enter.
- 22:43A soma entre os valores foi 29,
- 22:45e o maior valor digitado foi 9.
- 22:48Ficou claro?
- 22:49Mais uma proposta que eu tenho: tente mostrar ,além do maior valor digitado, o
- 22:53menor valor digitado.
- 22:55Você vai ver
- 22:56como é fácil de fazer.
- 22:57E perceba que eu utilizei uma estrutura condicional dentro de uma estrutura de
- 23:01de repetição. Algorítmos mais complexos podem assustar
- 23:04mas eles não são difíceis de compreender
- 23:07se você praticar bastante.
- 23:08Vamos a mais um exercício.
- 23:11A última prática que eu vou propor aqui é a prática 5.
- 23:14E é fazer a conversão de moedas quatro vezes.
- 23:17E você deve lembrar do algoritmo da conversão de moedas que nós já
- 23:20fizemos em algumas aulas anteriores principalmente que era um problema da Creuza.
- 23:23Que era a nossa personagem fictícia, naquela nossa aula sobre exercícios.
- 23:27Vamos relembrar
- 23:28como foi feito aquele exercício.
- 23:30Então nesse caso aqui, eu tenho o algoritmo de conversor de moedas antigo
- 23:36que é o seguinte:
- 23:37o valor em reais, por exemplo, se eu tenho 100 reais,
- 23:39com a cotação do dólar a 2 e 20
- 23:43eu vou ter convertido 45 dólares e 45 cents.
- 23:47O problema é que agora eu quero fazer essa conversão
- 23:49quatro vezes. Pra isso
- 23:51eu vou ter uma variável contadora , que eu vou chamar de C,
- 23:54ela vai começar o meu programa valendo 1,
- 23:58e enquanto essa variável C
- 24:01for menor ou igual a 4,
- 24:03que é a quantidade de vezes que eu quero fazer,
- 24:06ele vai fazer esse bloco.
- 24:08Note que eu estou utilizando a indentação (organização dos comandos)
- 24:10pra fazer
- 24:12com que essa conversão toda ocorra
- 24:15dentro da estrutura 'Enquanto'.
- 24:18Mais uma vez dizendo, a indentação é opcional,
- 24:20mas ela é muito importante para os bons programadores.
- 24:23Falta ainda
- 24:24somar mais um no contador
- 24:27e vamos executar.
- 24:30Valor em reais: 50
- 24:33Deixa eu botar só um ' EscrevaL' aqui...
- 24:36para ficar mais fácil...
- 24:3850 reais
- 24:40vai dar 22 dólares.
- 24:4130 reais dá 13 dólares, 19 reais
- 24:45dá 8 dólares.
- 24:46500 reais
- 24:48dá 227 dólares.
- 24:50Então ele fez a conversão
- 24:51quatro vezes, exatamente como eu solicitei.
- 24:54E eu quero também propor uma alteração nessa 5ª prática, que é:
- 24:57Perguntar ao usuário quantas conversões serão realizadas. Não quero
- 25:01que sejam feitas quatro conversões, eu quero que o usuário digite quantas
- 25:04serã.o
- 25:05Pra fazer isso,
- 25:06vou criar uma variável...
- 25:08Nossa eu declarei C como 'Real'... vamos colocar C como 'Inteiro', né?
- 25:13E vou declarar uma variável uma variável Q
- 25:15que é a quantidade, 'Inteiro'.
- 25:18Vou solicitar aqui
- 25:20fora do 'Enquanto'
- 25:22se eu perguntar dentro, ele vai repetir 4 vezes, não é isso?
- 25:25Então vou botar aqui
- 25:27"Quantas vezes
- 25:29você quer converter?"
- 25:34O usuário vai digitar,
- 25:36vai ficar guardado na variável Q.
- 25:38Enquanto o C for menor ou igual ao Q, ele
- 25:41vai somar mais um e fazer a conversão. Vamos ver.
- 25:44Eu quero converter duas vezes apenas
- 25:471 e 8.
- 25:48ele fez somente duas vezes.
- 25:51Agora, eu vou querer fazer uma vez só
- 25:5450 reais
- 25:5622 dólares
- 25:57e finalizou execução do programa.
- 26:00Deu pra entender o conceito? Antes de terminar essa aula eu quero mostrar um
- 26:04problema que é muito comum quando você aprende estruturas de repetição, que
- 26:07que é quando o programa entra num looping infinito. Eu vou mostrar o problema e como
- 26:11resolver ele.
- 26:12Pra exemplificar,
- 26:14eu abri o meu primeiro exercício que é o
- 26:16contar de 0 até 10.
- 26:18E eu vou esquecer
- 26:19propositalmente
- 26:20a linha que soma mais um na variável contador. Eliminei ela.
- 26:24Vou executar
- 26:25em vez de clicar aqui no Executar vou clicar no Executar com timer.
- 26:29Vamos começar o programa.
- 26:34Ele mostrou 0, em seguida 0, em seguida 0,...
- 26:37mais 0...e zero...
- 26:40e vai fazer isso sempre.
- 26:42Isso acontece porque o seu programa entrou em looping. Poque o seu contador começou com zero
- 26:46e enquanto ele for menor que 10 ele escreve o contador mas não soma mais um nele
- 26:51e aí você vai pensar "Ah, mas é simples Guanabara, é só você vir aqui
- 26:54clicar nesse botão vermelho
- 26:56e fechar a janela.
- 26:58Quando você fizer isso
- 26:59você vai perceber que o programa continua em execução, independente aquilo que
- 27:02você queira
- 27:03mas não precisa se desesperar.
- 27:05Você tem como parar o programa
- 27:06clicando aqui em 'Algoritmo'
- 27:08logo em seguida 'Parar'.
- 27:11Se quiser,
- 27:11pode até clicar aqui também.
- 27:13Ou pressionar
- 27:14CTRL F2.
- 27:16Assim, o seu programa é finalizado
- 27:19e você pode seguir
- 27:20desenvolvendo.
- 27:21Existem alunos que entram num desespero tão grande que chegam a desligar a
- 27:25máquina achando que ela tinha travado.
- 27:27Mas não se preocupe,
- 27:28se seu programa entrar em looping,
- 27:29basta clicar em Algoritmo, Parar
- 27:32CTRL F2
- 27:33ou no botãozinho de parar.
- 27:34Pra finalizar essa aula, como sempre, eu vou deixar dois exercícios que eu vou mostrar
- 27:38pra você funcionando
- 27:39você vai ter que fazer na sua casa a partir de agora.
- 27:42O primeiro exercício sugerido é o seguinte: uma contagem inteligente.
- 27:46A contagem inteligente vai funcionar da seguinte maneira:
- 27:49se eu colocar de 1 a 6,
- 27:51ele vai contar
- 27:52de 1 a 6.
- 27:54Se eu puser
- 27:56de 8
- 27:57a 0,
- 27:58ele vai detectar que o início é maior do que o fim
- 28:01e vai mostrar
- 28:02uma contagem regressiva.
- 28:04Então o seu programa vai ser uma contagem inteligente. Se o menor valor estiver no início
- 28:07você faz uma contagem
- 28:09progressiva. Senão,
- 28:10você faz uma contagem regressiva.
- 28:12E só de falar essa frase, eu já te dei parte da resposta.
- 28:15O segundo e último exercício que eu proponho a você
- 28:18é o melhor aluno da turma.
- 28:20Vamos ver ele funcionando.
- 28:22Colocou lá
- 28:22Escola Santa Paciência, "Quantos alunos a turma tem?" Então, o primeiro passo de seu
- 28:26algoritmo vai ser perguntando
- 28:28quantos alunos têm dentro de uma turma.
- 28:29Vou colocar que tem quatro alunos, uma tuma bem pequena.
- 28:32O meu aluno 1
- 28:33tem o nome josé
- 28:35e a nota do José
- 28:37é 8.5.
- 28:39Tem um segundo aluno,
- 28:41que é o Paulo. O Paulo,
- 28:43tirou nota cinco e meia.
- 28:45E o último aluno, é a aluna Ana,
- 28:48que tirou 7.
- 28:49Entre esses três alunos, a maior nota foi a de José.
- 28:52Obviamente, nós já fizemos um programa para detectar qual o maior valor de digitado
- 28:56dentro de uma série.
- 28:57Só que acontece,
- 28:58Que eu não quero apenas o valor da nota de José.
- 29:01Eu quero fazer isso, ó
- 29:03tem mais um 4º aluno, eu esqueci...
- 29:05Então o Gustavo,
- 29:06tirou 0. Eh..
- 29:09No fim de quatro alunos, ele vai me mostrar qual é o melhor aluno da classe
- 29:13Olhando agora,
- 29:14você vê claramente que é o José. E eu quero que o seu algoritmo faça
- 29:17exatamente isso.
- 29:18O melhor aproveitamento foi de José.
- 29:20com a nota 8.5.
- 29:22E esse último exercício pode até assustar um pouco
- 29:24mas ele é bem mais simples do que se pode imaginar
- 29:26então praticando, exercitando e dando uma olhadinha na resposta
- 29:30caso você sinta alguma dificuldade, você vai conseguir fácil. Para conseguir a resposta é simples
- 29:35basta acessar cursoemvideo.com, fazer a inscrição no curso de algoritmo
- 29:39e ir até a aula 9
- 29:40e ver a resposta dos exercícios. Não se esqueça também
- 29:43de clicar aqui, e assinar o canal, pois todas as vezes que sair vídeo você será avisado
- 29:47e clicando aqui
- 29:48você vai ter acesso a todas as aulas de algoritmo
- 29:51passo a passo
- 29:52desde a primeira até a última.
- 29:54No caso do curso de algoritmo dê preferência por acessar o site
- 29:58www.cursoemvideo.com
- 30:00pois lá, você tem um material de apoio, se tem um material de download
- 30:03basta fazer uma inscrição, é simples, é rápido, não custa nada, é de graça
- 30:08e você vai ter acesso a todas as aulas com todo material de apoio
- 30:11queria mais uma vez agradecer a todo mundo que tá compartilhando, mostrando para os amigos
- 30:15o curso de algoritmo ele só cresce, está crescendo bastante, mas é tudo por culpa de vocês
- 30:20Um forte abraço, bons estudos, boas práticas e até lá!
- 30:24Olá! Seja bem vindo a mais uma aula!
- 30:30e eu vou apresentar para vocês um amigo meu
- 30:33aqui.
- 30:37Fazer a inscrição no vídeo...
- 30:39e mais simples é impossível, eu vou mostrar para vocês que eu consigo fazer mágica
- 30:42olha só
- 30:44tá vendo?
- 30:46Troca! (Som de grilos)
- 31:07tomara que esteja no mesmo lugar
- 31:08♫ Música encerramento ♫
About this transcript
This page contains the full transcript of Estruturas de Repetição 1 - Curso de Algoritmos #09 - Gustavo Guanabara by Curso em Vídeo, generated from the public captions YouTube serves with the video. The transcript has 5,086 words across 810 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.