1 / 29

Aula 06 Comandos de Repetição for

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I – BCC701 www.decom.ufop.br/moodle. Aula 06 Comandos de Repetição for. Andréa Iabrudi andrea.iabrudi@iceb.ufop.br. O Comando while. while < condição > < bloco while> end.

aiko-tran
Download Presentation

Aula 06 Comandos de Repetição for

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I – BCC701 www.decom.ufop.br/moodle Aula 06Comandos de Repetiçãofor Andréa Iabrudi andrea.iabrudi@iceb.ufop.br

  2. O Comando while • while <condição> • <bloco while> • end • Execução do comando while: • primeiro, a condiçãoéavaliada • se a condição for verdadeira, então o bloco de comandosdentro do while éexecutado, e volta-se aopasso 1. • se a condição for falsa, o comando while termina, e a execuçãoprossegue a partir do comandoimediatamentesubsequenteaocomando while.

  3. Fatorial • Faça um programaqueleia um valor inteironãonegativon e imprima o fatorial de n.

  4. Fatorial - usandowhile n = input(“n = “) k = 1; fat = 1; whilek <= n fat = fat * k; k = k + 1; end O número de iteraçõeséconhecido a priori = n Emcadapasso do loop, multiplicamosfatpork e incrementamosk

  5. Comandofor • Quando o número de iterações de um loop éconhecido a priori, podemosusaruma forma mais simples de comando de repetição: • for i = <incio>:<incr>:<fim> • <bloco for> • end iévariável de controle do for

  6. Comandofor for i = <incio>:<incr>:<fim> <bloco for> end • O comando for éexecutado do seguintemodo: • o valor de <início>éatribuídoàvariáveli • testa-se se i <= <fim> • se for, o <bloco for> éexecutado, a variáveliéincrementada de <incr> e volta-se aopasso 2 • se não for, o comando for termina

  7. Fatorial – usandofor • n = input(“n = “) fat = 1; for k = 1:n fat = fat * k; end n = input(“n = “) k = 1; fat = 1; whilek <= n fat = fat * k; k = k + 1; end compare as duasformas

  8. Exercício 1 • Qualseriamosvaloresimpressospelosseguintestrechos de programas? for i= 3:3:10 printf(“%g\n”,i) end for i= 7:-2:1 printf(“%g\n”,i) end for i= 10:5 printf(“%g\n”,i) end for i= 7:-2:8 printf(“%g\n”,i) end

  9. Número de iterações do for for i = <incio>:<incr>:<fim> <bloco for> end • Qualé o número de iterações do comando? int((fim – inicio)/incr) + 1)

  10. Exercício2 • Escreva um programaqueleia um vetor e imprima a soma e o produto de todososelementosdessevetor. • O cálculo da soma e do produto dos elementos do vetordeveserfeitousando-se o comandofor

  11. Exercício2 – solução • v= input(“VETOR: “) soma = 0;produto = 1; for k = 1:length(v) soma = soma+v(k); produto = produto * v(k) end printf(“soma = %g\n”,soma) • printf(“produto = %g\n”,produto)

  12. Soma e produtodos elementos de umamatriz • SabemosqueScilabprovêfunçõesparacomputar a soma e o produto de vetoresoumatrizes. • Agora vocêsabecomoessasfunçõespodemserimplementadas, usando-se um comandofor • EmScilab, essasfunçõessãoimplementadasemparalelo, o queresultaemcódigomaiseficiente do que a implementaçãousando o for

  13. Exercício3 • Escreva um trecho de programaparacalcular o elementomáximo de um vetorv e a posiçãoemqueesseelementoocorre no vetor, usando o comandofor

  14. Exercício3 – solução maximo = -%inf; pos = 0; for k = 1:length(v) ifv(k) > maximothen maximo = v(k); pos = k end end

  15. Máximo e mínimo de umamatriz • SabemosqueScilabprovêfunçõesparacomputar o máximo e o mínimo de umamatriz. • EmScilab, essasfunçõessãoimplementadasemparalelo, o queresultaemcódigomaiseficiente do que a implementaçãousando o for

  16. Comandosforaninhados for i = 1:3 for j = 1:2 printf("i=%g, j=%g\n",i,j) end end O queéimpressopeloprogramaabaixo? i=1, j=1 i=1, j=2 i=2, j=1 i=2, j=2 i=3, j=1 i=3, j=2

  17. Tabuada de Multiplicação • Obter a tabuada de multiplicação: 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81

  18. Tabela de Multiplicação– foraninhados Corpo do loop externo: imprimeumalinha Corpo do loop interno: imprimeumacoluna de umalinha

  19. Tabela de Multiplicação • Ao executar este programa verificamos entretanto que sua saída está ininteligível: 12345678924681012141618369121518212... • Esquecemos de: • Mudar de linha, com o \n, e • Dentro de cada linha, imprimir cada valor com um número fixo de colunas

  20. Tabela de Multiplicação Fora do loop interno!

  21. Tabela de Senos • Produzirumatabelacomoesta, com xvariando de 0 a 2π, com intervalos de 0.2 UFMG DCC001 2013-1

  22. Tabela de Senos1ª tentativa UFMG DCC001 2013-1

  23. Tabela de Senos2ª Tentativa UFMG DCC001 2013-1

  24. Tabela de Senos2ª Tentativa UFMG DCC001 2013-1

  25. Tabela de Senos UFMG DCC001 2013-1

  26. Controlando colunas e decimais com o formato %f printf("\n%3.1f %7.4f",x, sin(x)) 3 colunas, 1 casa decimal 7 colunas, 4 casas decimais UFMG DCC001 2013-1

  27. Tabela de senosSoluçãousandovetores // Tabela da função Seno // Impressão do cabeçalho printf("\nx seno(x)") // Impressão das linhas da tabela xs= 0:0.2:2*%pi sinxs = sin(xs) printf("\n%3.1f %7.4f",[xs’sinxs’])

  28. Números de Fibonacci • A sequência de números de Fibonacci1é: 0 1 1 2 3 5 8 13 21 34 55 … • Essasequência tem inúmerasaplicaçõesemmatemática e computação e ocorre com frequênciaemfenômenos da natureza. • Para saber mais, veja http://en.wikipedia.org/wiki/Fibonacci_number

  29. Sequência de Fibonacci Ladrilhamento de Fibonacci: quadradoscujosladossãonúmeros de Fibonacci. Aproximaçãopara a espiraláurea, criadadesenhando arcos circularesconectando cantos opostos de quadrados do labrilhamento de Fibonacci 1,1,2,3,5,8,13,21,34. Espiraláureaéumaespirallogaritmicacujofator de crescimentoé a razãoáurea. A razãoáureaé a raiz da equação x2 = x + 1

More Related