YouTube2Text

Estruturas de Repetição 1 - Curso de Algoritmos #09 - Gustavo Guanabara — Transcript

by Curso em Vídeo · 5,086 words · 810 segments · language en · Watch on YouTube

Full transcript

  1. 0:04♫ Música de abertura ♫
  2. 0:21Olá, seja bem vindo a mais uma aula do seu curso de algoritmo.
  3. 0:24O meu nome é Gustavo Guanabara, eu sou seu professor...
  4. 0:26...e agora nós chegamos à nona aula.
  5. 0:28E esse momento é um momento em que as pessoas começam a se enrolar nos cursos de algoritmo.
  6. 0:32Quem ainda não tem muita experiência, começa a se enrolar um pouquinho, e eu vou tentar tornar isso mais simples.
  7. 0:38Agora, entramos no momento em que nós chegamos às nossas estruturas de repetição.
  8. 0:42E nós vamos começar bem devagarinho, com um exemplo bem simples.
  9. 0:46E mais simples é impossível!
  10. 0:47Eu vou mostrar pra você, o que eu consigo fazer.
  11. 0:49Olha só!
  12. 0:51Tá vendo?
  13. 0:53Troca!
  14. 0:54Viu?
  15. 0:55Não sei se você percebeu qual foi a jogada do negócio...
  16. 0:57...mas eu vou fazer de novo. Ó!
  17. 0:59Troca!
  18. 1:00É isso!
  19. 1:01É simples!
  20. 1:02Aprender estrutura de repetição
  21. 1:03é tão simples, quanto trocar.
  22. 1:05E essa brincadeira que eu fiz
  23. 1:06é pra você entender o seguinte:
  24. 1:07Eu vou querer fazer
  25. 1:08esse mesmo procedimento de troca
  26. 1:105 vezes!
  27. 1:11O meu primeiro passo é:
  28. 1:13contar até 5.
  29. 1:14E todo mundo sabe contar até 5!
  30. 1:15Mas, a cada vez que eu somar um dedo na minha mão,
  31. 1:17eu vou fazer a troca.
  32. 1:19Eu vou demonstrar pra você!
  33. 1:20E você vai entender do que eu to falando.
  34. 1:21Então...
  35. 1:22eu sei fazer, o procedimento de troca.
  36. 1:24Eu fiz aqui, 2 vezes.
  37. 1:25E se eu quiser fazer 5 vezes, dessa maneira?
  38. 1:28Troca!
  39. 1:29Troca!
  40. 1:30Troca!
  41. 1:31Troca!
  42. 1:32Troca!
  43. 1:33Viu como foi simples?
  44. 1:34Então, a cada vez que eu somei um dedo...
  45. 1:36Eu comecei com nenhum dedo. Fiz 1 dedo, 2, 3, 4 e 5.
  46. 1:41...e a cada vez que eu coloquei, eu fiz a troca.
  47. 1:43O procedimento é exatamente esse!
  48. 1:45Eu vou tentar descrever, isso tudo que eu acabei de fazer
  49. 1:48em forma de um algoritmo genérico.
  50. 1:50Então...
  51. 1:50...basicamente, a estrutura que eu criei foi a seguinte:
  52. 1:53Pra troca dos dois personagens eu fiz o seguinte algoritmo:
  53. 1:57Eu utilizei uma variável chamada 'mão'.
  54. 1:59Nesse caso aqui, como é um algoritmo genérico
  55. 2:00eu botei até acentuação.
  56. 2:02E eu começo então
  57. 2:03com a minha mão valendo zero.
  58. 2:05Isso significa que estou com a mão fechada.
  59. 2:07O próximo comando é o 'Enquanto'.
  60. 2:09Enquanto a mão for menor ou igual a 5, faça...
  61. 2:12Isso é: eu estou com zero, e zero é menor ou igual a 5.
  62. 2:16O próximo comando é o comando de troca.
  63. 2:19Isso vai fazer com que os personagens sejam trocados.
  64. 2:22Logo, em seguida, 'mão' recebe 'mão + 1'
  65. 2:25O que significa isso?
  66. 2:27'mão', que estava com zero, vai receber o 'mão',
  67. 2:30que é zero
  68. 2:31+ 1.
  69. 2:320 + 1 = 1
  70. 2:34Então, o novo valor para 'mão' é 1.
  71. 2:36Isso faz a seguinte alteração:
  72. 2:39Basta você verificar, que a minha mão, que estava lá em baixo, fechada...
  73. 2:42...agora está com número 1.
  74. 2:43O próximo comando é 'FimEnquanto'.
  75. 2:45Ao chegar nesse comando, ele vai procurar qual é o 'Enquanto' relativo a ele.
  76. 2:50No caso, é o único que a gente tem na tela.
  77. 2:51Então, ele vai voltar pra aquela linha.
  78. 2:53A minha mão, que estava com zero, agora está com 1.
  79. 2:56E eu vou verificar:
  80. 2:57Enquanto a minha 'mão' for menor ou igual a 5, faça:
  81. 3:00Nesse caso, a minha mão está com 1. E 1 é menor ou igual a cinco.
  82. 3:04Logo, o próximo comando...
  83. 3:06...vai ser executado.
  84. 3:07Troca!
  85. 3:09a troca foi feita
  86. 3:10logo em seguida
  87. 3:11a minha 'mão' recebe 'mão'
  88. 3:13que é 1, basta você verificar lá em baixo
  89. 3:15mais 1.
  90. 3:161 + 1... 2.
  91. 3:18'FimEnquanto'
  92. 3:19e mais uma vez, quando ele chega nessa estrutura
  93. 3:22ele volta pro Enquanto
  94. 3:23nesse meu caso, mais uma vez
  95. 3:25'mão', que está com 2 é menor ou igual a 5.
  96. 3:28Então ele vai fazer, novamente, esse
  97. 3:30bloco de 2 comandos:
  98. 3:31troca
  99. 3:32e 'mão' recebe 'mão' + 1.
  100. 3:33Deu pra entender a lógica da coisa? E se você prestar bem atenção
  101. 3:37você vai ver que essa minha rotina não vai executar 5 vezes e sim 6
  102. 3:40por que minha mão começou fechada.
  103. 3:41Mas o princípio da repetição está sendo exemplificado aqui.
  104. 3:44E nós já vimos repetição anteriormente, quando nós utilizamos o Scratch
  105. 3:47e fizemos o gato dar uma andada.
  106. 3:49Vamos ver mais um exemplo no Scratch
  107. 3:51que utilize estruturas de repetição.
  108. 3:53Então estou aqui com um projeto novo do Scratch.
  109. 3:56Eu vou mudar o palco aqui só pra fazer uma coisa.
  110. 3:59Mostrar algo novo
  111. 4:02Vou carregar esse fundo aqui, que já vem como padrão que é o
  112. 4:04x y grid (plano cartesiano)
  113. 4:06Ele vai ter lá um plano (x,y) pra você entender.
  114. 4:10O gato sempre vem parado no ponto (0,0).
  115. 4:13Então vamos...
  116. 4:14clicar 2 vezes no gato,
  117. 4:16vamos em Comandos
  118. 4:17e vamos lá nos controles.
  119. 4:19Quando a bandeira for clicada,
  120. 4:21eu vou fazer um movimento,
  121. 4:24que é
  122. 4:25o deslize
  123. 4:27para x , y.
  124. 4:28Então, aqui no caso, eu vou querer que o y
  125. 4:31vá até ao 100 aqui.
  126. 4:32Esse é o y.
  127. 4:33Eu vou até ao 100.
  128. 4:35Então em um segundo ele vai deslizar até ao 100.
  129. 4:38vou usar um 'Vá para' no início, para ele sempre ir para a posição(0,0). Então assim,
  130. 4:42independente da posição onde o gato esteja,
  131. 4:44ele vai pra (0,0).
  132. 4:46E, logo em seguida, ele desliza.
  133. 4:47Ao clicar na bandeira,
  134. 4:49ele vai deslizar.
  135. 4:50Esqueci de botar
  136. 4:5210 , não, 100.
  137. 4:54Clicando na bandeira de novo,
  138. 4:55ele leva um segundo
  139. 4:57pra subir.
  140. 4:58Vejo um segundo,
  141. 4:59vou botar 0...
  142. 5:01ponto...
  143. 5:022.
  144. 5:04Clicando na bandeira,
  145. 5:06ele subiu
  146. 5:07em dois décimos de segundo
  147. 5:08até ao y=100.
  148. 5:10Vou em seguida
  149. 5:11deslizar em +0, 2 segundos
  150. 5:15para (0,0).
  151. 5:18Então clicando na bandeira, ele sobe e desce.
  152. 5:21Então esse aqui, que é o bloco que eu vou destacar,
  153. 5:23é o procedimento
  154. 5:24que eu quero repetir.
  155. 5:26Vou vir aqui na área de Controle
  156. 5:28e vou mandar ele repetir
  157. 5:30dez vezes
  158. 5:31isso daqui.
  159. 5:33Então vou fazer ele subir
  160. 5:35e descer dez vezes.
  161. 5:37Vou clicar na bandeira,
  162. 5:39ele vai subir e descer exatamente dez vezes.
  163. 5:44E aí fica simples, né? Você entende que ele faz fazer um Repita e essa
  164. 5:48estrutura vai repetir dez vezes. No algorítmo é um pouquinho mais
  165. 5:51complexo porque precisa da coisa da mão
  166. 5:54precisa de contar quantas vezes você quer fazer algo. Mas algoritmos de
  167. 5:58repetição acontecem diariamente na sua vida também.
  168. 6:01Vamos ver mais alguns exemplos.
  169. 6:03A sintaxe do comando Enquanto no algoritmo é a seguinte:
  170. 6:06enquanto uma expressão for verdadeira
  171. 6:08faça um bloco
  172. 6:09e FimEnquanto.
  173. 6:10Então, ao entrar no Enquanto, a cada vez ele vai testar uma expressão
  174. 6:14se essa expressão for verdadeira
  175. 6:16ele executa um bloco, que pode ter quantos comandos você quiser,
  176. 6:19e ao atingir o FimEnquanto, ele vai voltar pro comando Enquanto.
  177. 6:23O nome desse processo
  178. 6:25é conhecido como looping
  179. 6:26e lembra o trajeto que os aviões fazem na hora de fazer um looping. Como eu
  180. 6:30falei
  181. 6:31estruturas de repetição acontecem no seu dia-a-dia.
  182. 6:33Vamos ver um exemplo simples.
  183. 6:35A sua mãe chega pra você e fala o seguinte:
  184. 6:38"enquanto não arrumar o quarto,
  185. 6:39ele fica de castigo". Então,
  186. 6:41enquanto você não arrumar o quarto,
  187. 6:43você vai ficar de castigo.
  188. 6:44Quando chegar o FimEnquanto, ele vai entrar em looping
  189. 6:46e vai verificar se você já arrumou o quarto.
  190. 6:49Enquanto não arrumar, você continua de castigo.
  191. 6:51Aí vamos supor que você arruma o seu quarto.
  192. 6:53quando ela chegar lá em cima para verificar,
  193. 6:55vai verificar que:
  194. 6:56você já arrumou
  195. 6:58e aí o looping é desfeito
  196. 6:59e os próximos comandos serão executados.
  197. 7:01O comando nesse caso
  198. 7:03seria você liberado
  199. 7:04pra fazer o que quiser saindo do castigo.
  200. 7:06Viu como é simples?! Então não necessariamente você precisa contar
  201. 7:10alguma coisa.
  202. 7:11A sua mãe pode te dar a ordem. Enquanto você não arrumar o quarto
  203. 7:14você não vai sair do castigo.
  204. 7:15E esse é um princípio muito importante da repetição.
  205. 7:18Você não precisa ter um limite específicado, mas nesses primeiros
  206. 7:20exercícios é melhor que a gente tenha esse limite.
  207. 7:23E eu sempre vou utilizar
  208. 7:24contadores, no caso aqui a minha mão, que utilizei pra contar
  209. 7:28quantas vezes eu quiser.
  210. 7:29Vamos a alguns exemplos práticos, pra você poder entender isso.
  211. 7:33Então, a primeira prática que eu proponho é contar de 0 a 10.
  212. 7:36Vamos ver como isso é feito utilizando Visualg.
  213. 7:39Então estou aqui com Visualg, um programa novo
  214. 7:41vou lhe chamar de...
  215. 7:43"conteAté10"
  216. 7:45e eu vou começar o meu programa.
  217. 7:47Eu vou precisar da minha variável
  218. 7:49vou chamar de 'mão',
  219. 7:50que é a mão que vai contar.
  220. 7:51Eu vou precisar de uma variável que conte os passos.
  221. 7:54Eu vou precisar de uma variável que conte. Então vou chamar ela
  222. 7:58de 'contador'.
  223. 7:59Então, a variável 'contador'
  224. 8:00vai começar a contagem. Então eu quero um contador de 0 até 10. Então primeiro,
  225. 8:05o meu contador começa com 0. Vou tem que vir aqui em cima declarar a variável
  226. 8:09.contador'.
  227. 8:10Como é um número
  228. 8:11vou declarar como 'Inteiro'.
  229. 8:13E vamos à estrutura de repetição.
  230. 8:15'Enquanto' o meu contador
  231. 8:18for menor (<)
  232. 8:19ou igual (=) a 10, porque eu quero contar até dez, faça
  233. 8:24Vou ter o 'FimEnquanto'.
  234. 8:26Sempre que eu abrir o 'Enquanto', eu vou fechar o 'Enquanto'.
  235. 8:30Sempre que eu abrir uma estrutura, e ela tiver fechamento,
  236. 8:33imediatamente eu vou tentar lembrar de fechar a essa estrutura.
  237. 8:36Dentro do 'Enquanto' vamos colocar
  238. 8:38'contador'
  239. 8:40que é o caso da mão, recebe (<-) o 'contador'
  240. 8:43mais um (+1).
  241. 8:44Isso é, ele começava com zero, depois vai passar
  242. 8:46depois da passar pra 1,
  243. 8:47pra 2, pra 3..e assim até 10.
  244. 8:52Em cada um dos passos
  245. 8:53vou dar um 'EscrevaL' ,
  246. 8:57vou mostrar o contador.
  247. 9:00simples. objetivo.
  248. 9:02Mais uma vez, em vez de eu executar
  249. 9:04clicando aqui em Executar, eu vou clicar no 'Executar com time' (tempo).
  250. 9:11Então o meu programa começa.
  251. 9:13Vou declarar a variável.
  252. 9:14O meu contador vai começar com zero e nós vamos ver a estrutura de
  253. 9:17repetição funcionando
  254. 9:19pra ver se ele vai contar
  255. 9:20de 0 até 10. Vamos lá?.....0....1...
  256. 9:27...2...
  257. 9:28...3...4...5...
  258. 9:31Note no canto esquerdo
  259. 9:34que a estrutura de repetição está acontecendo
  260. 9:36e a variável que tá lá em baixo contadora
  261. 9:38está modificando
  262. 9:39até 10
  263. 9:41mostrou 10 na tela
  264. 9:42e finalizou a execução.
  265. 9:45E agora, perceba um detalhe muito importante da variável contadora:
  266. 9:48a gente pensa que ela vai parar em 10,
  267. 9:50na verdade, o 10 vai ser exibido na tela. Mas a variável que conta vá até um valor a
  268. 9:54mais
  269. 9:55que no caso é o 11 pois eu estou somando mais um.
  270. 9:58Preste atenção
  271. 9:59no Visualg e você vai entender.
  272. 10:01Se você olhar na tela preta, você vai ver que teve a contagem de 0 a 10 que
  273. 10:04foi exatamente o que eu queria
  274. 10:06mas se você olhar
  275. 10:08aqui, na parte de baixo da esquerda,
  276. 10:09você vai ver que a variável contadora foi pra 11.
  277. 10:12Isso acontece porque, enquanto o contador for menor ou igual (<=) a10
  278. 10:16ele vai escrever na tela.
  279. 10:17Quando ele passar de 10,
  280. 10:19que, no nosso caso, somando +1 vai ser 11
  281. 10:21aí sim ele vai parar e vai finalizar o algoritmo.
  282. 10:25Só pra mostrar a finalização,
  283. 10:27vou colocar mais uma vez aqui
  284. 10:29fazer ele contar até 5
  285. 10:31e no final
  286. 10:31eu vou mandar escrever (EscrevaL)
  287. 10:35"Terminei
  288. 10:36de contar".
  289. 10:39vamos executar de novo
  290. 10:42a variável foi declarada.
  291. 10:44E agora vou começar a minha contagem de 0 a 5 nesse caso agora. 0...1...
  292. 10:522
  293. 10:533
  294. 10:554 vai parar
  295. 10:565
  296. 10:57e agora
  297. 10:58terminei de contar.
  298. 11:00Isso demonstra exatamente aqueles dois caminhos que eu mostre: o caminho do
  299. 11:03looping e o caminho de saída executando os comandos que estão logo abaixo
  300. 11:07Deu pra entender? Então faça os seus testes aí. Faça contar, por exemplo,
  301. 11:11de 10 a 0. Tenta contar
  302. 11:14de zero a cem
  303. 11:15ah.. pulando de 10 em 10.
  304. 11:17Então, faça os seus testes
  305. 11:19mostrando que você 'tá aprendendo as suas estruturas de repetição.
  306. 11:22depois que você fizer todos os seus testes, vamos pra nossa segunda prática, que
  307. 11:26começa agora.
  308. 11:28Então a primeira prática foi contar de 0 até 10. Ela foi cumprida.
  309. 11:31Vamos à segunda,
  310. 11:32que é contar de 10 até 0. E, nesse caso, eu vou utilizar o mesmo programa feito
  311. 11:37anteriormente, fazendo algumas alterações.
  312. 11:39Nesse caso,
  313. 11:40'conte até dez'
  314. 11:42o meu contador começa com 0
  315. 11:44e iria
  316. 11:45até 10.
  317. 11:47Somando +1 a cada interação.
  318. 11:49Vamos fazer agora ele conta de 10 a 0.
  319. 11:52Nesse meu o caso aqui,
  320. 11:53o meu contador começava com zero e agora ele vai ter que começar pelo 10.
  321. 11:57A cada interação, em vez de somar mais um, eu vou ter que tirar um.
  322. 12:01Enquanto o meu contador for maior ou igual (>=) a zero.
  323. 12:05ele vai mostrar o contador.
  324. 12:07Então perceba o seguinte:
  325. 12:08eu começo o contador com 10 enquanto ele for maior
  326. 12:12ou igual a zero, que é o valor final que eu quero, já que eu estou contando de forma
  327. 12:15retroativa
  328. 12:16ele vai mostrar
  329. 12:17e eliminar 1.
  330. 12:18No final,
  331. 12:19terminei de contar.
  332. 12:21Vamos executar
  333. 12:22e ver como é que isso funciona.
  334. 12:24Declarei a variável
  335. 12:26e vai começar a minha contagem.
  336. 12:28Começando
  337. 12:29por 10, 9, 8,
  338. 12:347
  339. 12:35perceba aí,
  340. 12:36a repetição.... você pode ver esse vídeo várias vezes.
  341. 12:39Perceba que a cada vez ele tira
  342. 12:41uma unidade
  343. 12:42da variável
  344. 12:43contadora
  345. 12:45até chegar a zero
  346. 12:46e terminar a contagem.
  347. 12:48Se eu, por acaso,
  348. 12:49quisesse começar de 10,
  349. 12:52e tirar duas unidades a cada vez,
  350. 12:54ele mostraria
  351. 12:56apenas os números pares
  352. 12:58de dez até zero.
  353. 13:00Então ele vai-me mostrar:
  354. 13:0110
  355. 13:02em seguida, 8
  356. 13:03depois 6
  357. 13:054
  358. 13:072
  359. 13:08finalmente, 0
  360. 13:10e termina a contagem.
  361. 13:12E não se esqueça que, como você 'tá vendo esse vídeo no YouTube, você pode
  362. 13:15pausar o vídeo, voltar, assistir mais de uma vez, pra você pode entender, fazer o
  363. 13:20exercício no seu computador e ver os resultados. Teste, experimente novos
  364. 13:25valores, experimente novas situações que você entre. E por falar em situação,
  365. 13:29vamos a terceira prática, que eu vou propor a voc, nessa primeira aula
  366. 13:32de estruturas de repetição.
  367. 13:34A terceira prática
  368. 13:35é contar de zero até onde o usuário quiser.
  369. 13:38E aí você pode me perguntar: "mas poxa Guanabara, como é que pedir pro usuário dizer
  370. 13:42até onde ele vai?"
  371. 13:43Lembra dos comandos 'Escreva' e 'Leia'?
  372. 13:45Todos os comandos que você viu até agora podem ser utilizados com estruturas
  373. 13:48de repetição. Não é porque você terminou a aula 8 que os comandos não vão
  374. 13:52funcionar na aula 9. Inclusive, podemos utilizar estruturas condicionais junto
  375. 13:56com estrutura e repetição.
  376. 13:58Então vamo' ver uma proposta, pra ver como é que ficaria o resultado dessa
  377. 14:00prática que eu acabei de dizer pra você.
  378. 14:03Então eu voltei aqui ao meu algoritmo pra contar de 0 a 10
  379. 14:06e vamos fazer alguma alteração aqui.
  380. 14:08No meu caso,
  381. 14:09esse programa está contando de 0 a 10.
  382. 14:11A minha proposta
  383. 14:13é contar de 0 até ao valor que o usuário quiser.
  384. 14:17Então eu vou declarar uma variável aqui
  385. 14:19chamada' valor'.
  386. 14:21Então vou declarar aqui uma variável valor'
  387. 14:23também do tipo 'Inteiro'.
  388. 14:25E essa variável 'valor'
  389. 14:26vai ser lida
  390. 14:27antes do 'Enquanto'.
  391. 14:28"Quer contar
  392. 14:30até quanto?"
  393. 14:33E eu vou ler 'valor'.
  394. 14:36que foi a variável que eu acabei de criar aqui em cima.
  395. 14:39Aqui, no nosso caso, ele vai somando mais um
  396. 14:42até chegar a dez. No meu caso,
  397. 14:44eu quero que ele comece com zero
  398. 14:45e somar mais um até chegar ao valor que o usuário digitar aqui. Então,
  399. 14:49basta colocar a variável 'valor'
  400. 14:51dentro da expressão.
  401. 14:53Vamos executar
  402. 14:54e ver se vai funcionar.
  403. 14:56Quero contar até 4.
  404. 14:58Ele contou de 0 a 4.
  405. 15:01Vamos a mais uma.
  406. 15:03Quero contar até
  407. 15:0518.
  408. 15:07Contou de 0 a 18.
  409. 15:08Ficou claro?
  410. 15:09São variações do mesmo tema.
  411. 15:11Por exemplo aqui: se não quiser contar de um em um, se eu quiser deixar o usuário
  412. 15:14decidir qual será o passo, qual será cada
  413. 15:17salto.
  414. 15:18Vamos fazer uma alteração.
  415. 15:19Então eu vou criar uma variável 'salto'
  416. 15:22e vou ler
  417. 15:24esse valor.
  418. 15:27"Qual será
  419. 15:29o valor do salto?"
  420. 15:35Leia (salto)
  421. 15:38e aqui, contador recebe 'contador + 1'.. No meu caso, vai ser 'contador + salto'.
  422. 15:44Executando...
  423. 15:45eu quero contar de zero a 10
  424. 15:48pulando de dois em dois.
  425. 15:51De zero a dez pulando de dois em dois.
  426. 15:53Se eu quiser aqui, mais uma vez,
  427. 15:56de zero a cem pulando de dez em dez,
  428. 16:00ele fez 10, 20, 30 até ao 100.
  429. 16:07Eu acho que agora ficou mais claro ainda, né?
  430. 16:10Mas mesmo assim você ainda pode praticar mais coisas, mais possibilidades.
  431. 16:14E perceba que as minhas leituras foram feitas antes do 'Enquanto'. Se eu colocar um
  432. 16:18'Leia' desse dentro 'Enquanto', ele vai ler
  433. 16:21várias vezes a mesma coisa.
  434. 16:23Como esse não é o meu objetivo,
  435. 16:25eu coloquei fora da estrutura.
  436. 16:27Mas você tem que ter claro na sua cabeça a posição onde os comandos vão estar.
  437. 16:31No algoritmo não existe fórmula. Não é porque eu utilizei as primeiras linhas
  438. 16:34'Escreva' e 'Leia' até agora, que todos os meus programas vão começar com elas. Nesse
  439. 16:38caso aqui não começa.
  440. 16:39Então você vai ter que utilizar a sua lógica, o seu raciocínio, pois algoritmo
  441. 16:43não é receita de bolo, apesar de receita de bolo ser um algoritmo.
  442. 16:47eu espero que você tenha entendido.
  443. 16:48Vamos ver então exatamente esse ponto que eu acabei de apontar
  444. 16:51que é a diferença entre ler fora do laço ou dentro do laço, fora da
  445. 16:55estrutura 'Enquanto' ou dentro da estrutura 'Enquanto'.
  446. 16:58A Prática 4 é um pouco diferente.
  447. 17:00Eu quero ler dez números e somá-los.
  448. 17:03Note aqui uma diferença: no exemplo anterior
  449. 17:05eu quis ler quantas vezes vai acontecer, quis ler uma vez só. Quantas
  450. 17:09vezes ia acontecer e repetir várias vezes quantas forem solicitadas. Agora eu já
  451. 17:13sei que são 10 repetições mas a cada repetição eu vou pedir um número e
  452. 17:18vou somar esses números. Vamos ver como isso funciona:
  453. 17:21Vou começar um programa novo
  454. 17:23ele vai se chamar somador numérico
  455. 17:26"somadorNumerico"
  456. 17:28e vou até lá.
  457. 17:30Eu quero um programa que repita dez vezes. Se ele vai repetir dez vezes eu vou
  458. 17:33ter que ter um contador
  459. 17:36que é 'Inteiro'
  460. 17:38esse meu contador
  461. 17:40vai começar com 1.
  462. 17:42Enquanto
  463. 17:44esse contador
  464. 17:45for menor ou igual a 10
  465. 17:47faça
  466. 17:49vou fazer
  467. 17:50Vou botar o 'FimEnquanto' aqui...
  468. 17:53vou ter que somar mais um
  469. 17:55no contador.
  470. 17:57Note que é a mesma estrutura que nós fizemos até então.
  471. 18:00A ideia do algoritmo não é escrever de cima pra baixo,
  472. 18:02é fazer ele funcionar.
  473. 18:04Então nesse caso aqui
  474. 18:05eu fiz um contador interagir por dez vezes.
  475. 18:08A cada vez que ele repetir
  476. 18:10eu vou ler um número.
  477. 18:11Então vou ter uma variável 'N'
  478. 18:13e vou ler essa variável.
  479. 18:16"Digite um valor:". Leia (N)
  480. 18:21Vamos executar e ver como é que funciona.
  481. 18:24Ele 'tá pedindo um valor.
  482. 18:25Eu vou digitar,
  483. 18:26ele pediu de novo.
  484. 18:27Vou digitar. ele vai pedir de novo.
  485. 18:30Ele vai fazer isso dez vezes.
  486. 18:32Vou fazer uma alteração aqui ó:
  487. 18:34só pra ficar mais bonitinho. "Digite o " vou botar "cont
  488. 18:40um ozinho com um ponto, valor.
  489. 18:45Então ele ficar lá ó:
  490. 18:47"Digite o primeiro valor:"
  491. 18:48o 2º
  492. 18:493º
  493. 18:50o 4º
  494. 18:51o 5º
  495. 18:52o 6º, 7º, 8º, o 9º
  496. 18:54e o 10º.
  497. 18:56Então, ele fez exatamente o que o solicitei.
  498. 18:58Só que agora,
  499. 18:59eu quero somar esses valores.
  500. 19:02Pra isso, eu vou ter uma variável Soma, que comece o meu programa
  501. 19:05valendo zero.
  502. 19:07Isso porque, no início o programa,
  503. 19:09eu somei nenhum valor,
  504. 19:10então a soma 'ta valendo zero.
  505. 19:12A cada vez que eu ler N,
  506. 19:14eu vou fazer com que esse N
  507. 19:15entra na soma.
  508. 19:16Então se eu li o valor três, ele vai pegar esse três, somar com o zero
  509. 19:21e fazer com que
  510. 19:22o resultado
  511. 19:23passe a valer S.
  512. 19:25Então na verdade o que eu quero fazer
  513. 19:26é fazer a soma
  514. 19:27somar com o valor N.
  515. 19:30Isso vai ser
  516. 19:31atribuído
  517. 19:33à própria variável Soma.
  518. 19:35Então: Soma recebe
  519. 19:36soma mais N.
  520. 19:37No final do algoritmo,
  521. 19:39eu vou mandar escrever
  522. 19:42"A soma
  523. 19:43de todos os valores foi"
  524. 19:48vou mandar mostrar, S.
  525. 19:52Vamos executar.
  526. 19:53Vou fazer o seguinte: vou diminuir aqui para 5 valores,
  527. 19:56só pra gente
  528. 19:57ter mais prática
  529. 19:58e menos repetição , menos
  530. 20:00menos demora no vídeo.
  531. 20:02Executar. Agora ele vai ler 5 valores apenas.
  532. 20:053
  533. 20:06com dois
  534. 20:075
  535. 20:09com 4, 9
  536. 20:11com 2, 11
  537. 20:13com 4, 15.
  538. 20:15Então quando eu apertar Enter,
  539. 20:16ele vai ter que somar, ele tem que mostrar o valor 15.
  540. 20:20A soma dos valores
  541. 20:21foi 15.
  542. 20:22Ficou claro?
  543. 20:23Eu vou mais uma vez avisar:
  544. 20:25se você não entendeu direito, assiste o vídeo de novo,
  545. 20:28pratique, mostre no seu computador.
  546. 20:31Pratique,
  547. 20:31digite o código no seu computador pra você poder entender o funcionamento
  548. 20:35desse algoritmo.
  549. 20:36Então o que eu fiz foi o seguinte: eu tinha a soma, a minha soma estava vazia
  550. 20:40eu li um número
  551. 20:41a minha soma é o que 'tá vazio mais o número que eu acabei de ler.
  552. 20:45depois que eu ler um segundo valor, a minha soma vai ser o que eu tenho, que é o S
  553. 20:49mais o número que eu li. Então a minha soma vai ser uma acumulação do que ela
  554. 20:54estava anteriormente. por isso a fórmula é
  555. 20:56S recebe S+N.
  556. 21:00E eu tenho uma proposta pra melhorar ainda mais essa prática 4:
  557. 21:03Além de somar os valores,
  558. 21:05eu tenho um adicional
  559. 21:06que é mostrar qual foi o maior valor digitado. Pra isso,
  560. 21:09eu vou precisar de uma outra variável.
  561. 21:11Eu vou voltar aqui ao meu programa,
  562. 21:14e vou digitar
  563. 21:15uma variável chamada 'maior'.
  564. 21:17Vai guardar o valor maior.
  565. 21:18O que eu vou fazer é:
  566. 21:20a cada vez que eu ler N,
  567. 21:21eu vou verificar
  568. 21:23se
  569. 21:23o N
  570. 21:24foi maior
  571. 21:25do que o maior valor que está guardado.
  572. 21:27Se for, então,
  573. 21:30o meu maior valor,
  574. 21:31passa a ser
  575. 21:32o número atual.
  576. 21:34Tem que ter o Fim de Se.
  577. 21:36E essa é a estrutura.
  578. 21:38Perceba o seguinte:
  579. 21:39eu acabei de ler um número, se esse número for maior do que o maior número
  580. 21:43que eu tenho, então
  581. 21:45o maior número passa a ser o N.
  582. 21:48que foi o número que eu acabei de digitar.
  583. 21:50Vamos executar,
  584. 21:52e ver funcionando.
  585. 21:543
  586. 21:556
  587. 21:565
  588. 21:579 e 1
  589. 21:59A soma foi 24
  590. 22:01e o maior valor digitado
  591. 22:03foi 9.
  592. 22:04Vamos verificar
  593. 22:05se realmente ele está guardado
  594. 22:07na variável maior.
  595. 22:09Olhando aqui no canto esquerdo,
  596. 22:10a minha variável maior
  597. 22:12está com nove
  598. 22:13que, realmente, foi o maior número de digitado entre 3 e 6 5 9 e 1.
  599. 22:19Podemos fazer aqui
  600. 22:20ele mostrar na tela
  601. 22:22um EscrevaL
  602. 22:25"o maior valor digitado foi", maior
  603. 22:32Vamos executar mais uma vez, fazer mais um exemplo...
  604. 22:35Entre 9
  605. 22:358, 1
  606. 22:374
  607. 22:38e 7
  608. 22:40mais uma vez o maior valor digitado foi 9
  609. 22:42pressionando Enter.
  610. 22:43A soma entre os valores foi 29,
  611. 22:45e o maior valor digitado foi 9.
  612. 22:48Ficou claro?
  613. 22:49Mais uma proposta que eu tenho: tente mostrar ,além do maior valor digitado, o
  614. 22:53menor valor digitado.
  615. 22:55Você vai ver
  616. 22:56como é fácil de fazer.
  617. 22:57E perceba que eu utilizei uma estrutura condicional dentro de uma estrutura de
  618. 23:01de repetição. Algorítmos mais complexos podem assustar
  619. 23:04mas eles não são difíceis de compreender
  620. 23:07se você praticar bastante.
  621. 23:08Vamos a mais um exercício.
  622. 23:11A última prática que eu vou propor aqui é a prática 5.
  623. 23:14E é fazer a conversão de moedas quatro vezes.
  624. 23:17E você deve lembrar do algoritmo da conversão de moedas que nós já
  625. 23:20fizemos em algumas aulas anteriores principalmente que era um problema da Creuza.
  626. 23:23Que era a nossa personagem fictícia, naquela nossa aula sobre exercícios.
  627. 23:27Vamos relembrar
  628. 23:28como foi feito aquele exercício.
  629. 23:30Então nesse caso aqui, eu tenho o algoritmo de conversor de moedas antigo
  630. 23:36que é o seguinte:
  631. 23:37o valor em reais, por exemplo, se eu tenho 100 reais,
  632. 23:39com a cotação do dólar a 2 e 20
  633. 23:43eu vou ter convertido 45 dólares e 45 cents.
  634. 23:47O problema é que agora eu quero fazer essa conversão
  635. 23:49quatro vezes. Pra isso
  636. 23:51eu vou ter uma variável contadora , que eu vou chamar de C,
  637. 23:54ela vai começar o meu programa valendo 1,
  638. 23:58e enquanto essa variável C
  639. 24:01for menor ou igual a 4,
  640. 24:03que é a quantidade de vezes que eu quero fazer,
  641. 24:06ele vai fazer esse bloco.
  642. 24:08Note que eu estou utilizando a indentação (organização dos comandos)
  643. 24:10pra fazer
  644. 24:12com que essa conversão toda ocorra
  645. 24:15dentro da estrutura 'Enquanto'.
  646. 24:18Mais uma vez dizendo, a indentação é opcional,
  647. 24:20mas ela é muito importante para os bons programadores.
  648. 24:23Falta ainda
  649. 24:24somar mais um no contador
  650. 24:27e vamos executar.
  651. 24:30Valor em reais: 50
  652. 24:33Deixa eu botar só um ' EscrevaL' aqui...
  653. 24:36para ficar mais fácil...
  654. 24:3850 reais
  655. 24:40vai dar 22 dólares.
  656. 24:4130 reais dá 13 dólares, 19 reais
  657. 24:45dá 8 dólares.
  658. 24:46500 reais
  659. 24:48dá 227 dólares.
  660. 24:50Então ele fez a conversão
  661. 24:51quatro vezes, exatamente como eu solicitei.
  662. 24:54E eu quero também propor uma alteração nessa 5ª prática, que é:
  663. 24:57Perguntar ao usuário quantas conversões serão realizadas. Não quero
  664. 25:01que sejam feitas quatro conversões, eu quero que o usuário digite quantas
  665. 25:04serã.o
  666. 25:05Pra fazer isso,
  667. 25:06vou criar uma variável...
  668. 25:08Nossa eu declarei C como 'Real'... vamos colocar C como 'Inteiro', né?
  669. 25:13E vou declarar uma variável uma variável Q
  670. 25:15que é a quantidade, 'Inteiro'.
  671. 25:18Vou solicitar aqui
  672. 25:20fora do 'Enquanto'
  673. 25:22se eu perguntar dentro, ele vai repetir 4 vezes, não é isso?
  674. 25:25Então vou botar aqui
  675. 25:27"Quantas vezes
  676. 25:29você quer converter?"
  677. 25:34O usuário vai digitar,
  678. 25:36vai ficar guardado na variável Q.
  679. 25:38Enquanto o C for menor ou igual ao Q, ele
  680. 25:41vai somar mais um e fazer a conversão. Vamos ver.
  681. 25:44Eu quero converter duas vezes apenas
  682. 25:471 e 8.
  683. 25:48ele fez somente duas vezes.
  684. 25:51Agora, eu vou querer fazer uma vez só
  685. 25:5450 reais
  686. 25:5622 dólares
  687. 25:57e finalizou execução do programa.
  688. 26:00Deu pra entender o conceito? Antes de terminar essa aula eu quero mostrar um
  689. 26:04problema que é muito comum quando você aprende estruturas de repetição, que
  690. 26:07que é quando o programa entra num looping infinito. Eu vou mostrar o problema e como
  691. 26:11resolver ele.
  692. 26:12Pra exemplificar,
  693. 26:14eu abri o meu primeiro exercício que é o
  694. 26:16contar de 0 até 10.
  695. 26:18E eu vou esquecer
  696. 26:19propositalmente
  697. 26:20a linha que soma mais um na variável contador. Eliminei ela.
  698. 26:24Vou executar
  699. 26:25em vez de clicar aqui no Executar vou clicar no Executar com timer.
  700. 26:29Vamos começar o programa.
  701. 26:34Ele mostrou 0, em seguida 0, em seguida 0,...
  702. 26:37mais 0...e zero...
  703. 26:40e vai fazer isso sempre.
  704. 26:42Isso acontece porque o seu programa entrou em looping. Poque o seu contador começou com zero
  705. 26:46e enquanto ele for menor que 10 ele escreve o contador mas não soma mais um nele
  706. 26:51e aí você vai pensar "Ah, mas é simples Guanabara, é só você vir aqui
  707. 26:54clicar nesse botão vermelho
  708. 26:56e fechar a janela.
  709. 26:58Quando você fizer isso
  710. 26:59você vai perceber que o programa continua em execução, independente aquilo que
  711. 27:02você queira
  712. 27:03mas não precisa se desesperar.
  713. 27:05Você tem como parar o programa
  714. 27:06clicando aqui em 'Algoritmo'
  715. 27:08logo em seguida 'Parar'.
  716. 27:11Se quiser,
  717. 27:11pode até clicar aqui também.
  718. 27:13Ou pressionar
  719. 27:14CTRL F2.
  720. 27:16Assim, o seu programa é finalizado
  721. 27:19e você pode seguir
  722. 27:20desenvolvendo.
  723. 27:21Existem alunos que entram num desespero tão grande que chegam a desligar a
  724. 27:25máquina achando que ela tinha travado.
  725. 27:27Mas não se preocupe,
  726. 27:28se seu programa entrar em looping,
  727. 27:29basta clicar em Algoritmo, Parar
  728. 27:32CTRL F2
  729. 27:33ou no botãozinho de parar.
  730. 27:34Pra finalizar essa aula, como sempre, eu vou deixar dois exercícios que eu vou mostrar
  731. 27:38pra você funcionando
  732. 27:39você vai ter que fazer na sua casa a partir de agora.
  733. 27:42O primeiro exercício sugerido é o seguinte: uma contagem inteligente.
  734. 27:46A contagem inteligente vai funcionar da seguinte maneira:
  735. 27:49se eu colocar de 1 a 6,
  736. 27:51ele vai contar
  737. 27:52de 1 a 6.
  738. 27:54Se eu puser
  739. 27:56de 8
  740. 27:57a 0,
  741. 27:58ele vai detectar que o início é maior do que o fim
  742. 28:01e vai mostrar
  743. 28:02uma contagem regressiva.
  744. 28:04Então o seu programa vai ser uma contagem inteligente. Se o menor valor estiver no início
  745. 28:07você faz uma contagem
  746. 28:09progressiva. Senão,
  747. 28:10você faz uma contagem regressiva.
  748. 28:12E só de falar essa frase, eu já te dei parte da resposta.
  749. 28:15O segundo e último exercício que eu proponho a você
  750. 28:18é o melhor aluno da turma.
  751. 28:20Vamos ver ele funcionando.
  752. 28:22Colocou lá
  753. 28:22Escola Santa Paciência, "Quantos alunos a turma tem?" Então, o primeiro passo de seu
  754. 28:26algoritmo vai ser perguntando
  755. 28:28quantos alunos têm dentro de uma turma.
  756. 28:29Vou colocar que tem quatro alunos, uma tuma bem pequena.
  757. 28:32O meu aluno 1
  758. 28:33tem o nome josé
  759. 28:35e a nota do José
  760. 28:37é 8.5.
  761. 28:39Tem um segundo aluno,
  762. 28:41que é o Paulo. O Paulo,
  763. 28:43tirou nota cinco e meia.
  764. 28:45E o último aluno, é a aluna Ana,
  765. 28:48que tirou 7.
  766. 28:49Entre esses três alunos, a maior nota foi a de José.
  767. 28:52Obviamente, nós já fizemos um programa para detectar qual o maior valor de digitado
  768. 28:56dentro de uma série.
  769. 28:57Só que acontece,
  770. 28:58Que eu não quero apenas o valor da nota de José.
  771. 29:01Eu quero fazer isso, ó
  772. 29:03tem mais um 4º aluno, eu esqueci...
  773. 29:05Então o Gustavo,
  774. 29:06tirou 0. Eh..
  775. 29:09No fim de quatro alunos, ele vai me mostrar qual é o melhor aluno da classe
  776. 29:13Olhando agora,
  777. 29:14você vê claramente que é o José. E eu quero que o seu algoritmo faça
  778. 29:17exatamente isso.
  779. 29:18O melhor aproveitamento foi de José.
  780. 29:20com a nota 8.5.
  781. 29:22E esse último exercício pode até assustar um pouco
  782. 29:24mas ele é bem mais simples do que se pode imaginar
  783. 29:26então praticando, exercitando e dando uma olhadinha na resposta
  784. 29:30caso você sinta alguma dificuldade, você vai conseguir fácil. Para conseguir a resposta é simples
  785. 29:35basta acessar cursoemvideo.com, fazer a inscrição no curso de algoritmo
  786. 29:39e ir até a aula 9
  787. 29:40e ver a resposta dos exercícios. Não se esqueça também
  788. 29:43de clicar aqui, e assinar o canal, pois todas as vezes que sair vídeo você será avisado
  789. 29:47e clicando aqui
  790. 29:48você vai ter acesso a todas as aulas de algoritmo
  791. 29:51passo a passo
  792. 29:52desde a primeira até a última.
  793. 29:54No caso do curso de algoritmo dê preferência por acessar o site
  794. 29:58www.cursoemvideo.com
  795. 30:00pois lá, você tem um material de apoio, se tem um material de download
  796. 30:03basta fazer uma inscrição, é simples, é rápido, não custa nada, é de graça
  797. 30:08e você vai ter acesso a todas as aulas com todo material de apoio
  798. 30:11queria mais uma vez agradecer a todo mundo que tá compartilhando, mostrando para os amigos
  799. 30:15o curso de algoritmo ele só cresce, está crescendo bastante, mas é tudo por culpa de vocês
  800. 30:20Um forte abraço, bons estudos, boas práticas e até lá!
  801. 30:24Olá! Seja bem vindo a mais uma aula!
  802. 30:30e eu vou apresentar para vocês um amigo meu
  803. 30:33aqui.
  804. 30:37Fazer a inscrição no vídeo...
  805. 30:39e mais simples é impossível, eu vou mostrar para vocês que eu consigo fazer mágica
  806. 30:42olha só
  807. 30:44tá vendo?
  808. 30:46Troca! (Som de grilos)
  809. 31:07tomara que esteja no mesmo lugar
  810. 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.