A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I.

Apresentações semelhantes


Apresentação em tema: "Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I."— Transcrição da apresentação:

1 Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I – BCC701

2 Execução do comando while: 1.primeiro, a condição é avaliada 2.se a condição for verdadeira, então o bloco de comandos dentro do while é executado, e volta-se ao passo 1. 3.se a condição for falsa, o comando while termina, e a execução prossegue a partir do comando imediatamente subsequente ao comando while. while end

3 Faça um programa que leia um valor inteiro não negativo n e imprima o fatorial de n. 3

4 n = input(n = ) k = 1; fat = 1; while k <= n fat = fat * k; k = k + 1; end Em cada passo do loop, multiplicamos fat por k e incrementamos k O número de iterações é conhecido a priori = n

5 Quando o número de iterações de um loop é conhecido a priori, podemos usar uma forma mais simples de comando de repetição: 5 for i = : : end i é variável de controle do for

6 6 for i = : : end O comando for é executado do seguinte modo: 1.o valor de é atribuído à variável i 2.testa-se se i 3.se for, o é executado, a variável i é incrementada de e volta-se ao passo 2 4.se não for, o comando for termina

7 n = input(n = ) fat = 1; for k = 1:n fat = fat * k; end n = input(n = ) k = 1; fat = 1; while k <= n fat = fat * k; k = k + 1; end compare as duas formas

8 Qual seriam os valores impressos pelos seguintes trechos de programas? 8 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 Qual é o número de iterações do comando? 9 for i = : : end int((fim – inicio)/incr) + 1)

10 Escreva um programa que leia um vetor e imprima a soma e o produto de todos os elementos desse vetor. O cálculo da soma e do produto dos elementos do vetor deve ser feito usando-se o comando for 10

11 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 Sabemos que Scilab provê funções para computar a soma e o produto de vetores ou matrizes. Agora você sabe como essas funções podem ser implementadas, usando-se um comando for Em Scilab, essas funções são implementadas em paralelo, o que resulta em código mais eficiente do que a implementação usando o for 12 sum(M) soma de todos os elementos de M prod(M) produto de todos os elementos de M

13 Escreva um trecho de programa para calcular o elemento máximo de um vetor v e a posição em que esse elemento ocorre no vetor, usando o comando for 13

14 maximo = -%inf; pos = 0; for k = 1:length(v) if v(k) > maximo then maximo = v(k); pos = k end

15 Sabemos que Scilab provê funções para computar o máximo e o mínimo de uma matriz. Em Scilab, essas funções são implementadas em paralelo, o que resulta em código mais eficiente do que a implementação usando o for 15 [m,p] = max(M) m é o máximo de M e p é a posição em que ele ocorre [m,p] = min(M) m é o míximo de M e p é a posição em que ele ocorre

16 for i = 1:3 for j = 1:2 printf("i=%g, j=%g\n",i,j) end 16 O que é impresso pelo programa abaixo? 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 Obter a tabuada de multiplicação:

18 // tabela de multiplicação for linha = 1:9 for coluna = 1:9 printf("%g",linha*coluna); end Corpo do loop externo: imprime uma linha Corpo do loop interno: imprime uma coluna de uma linha

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

20 // Tabuada de multiplicação for linha = 1:9 for coluna = 1:9 printf("%3g",linha*coluna); end printf("\n"); end Fora do loop interno!

21 UFMG DCC xseno(x) Produzir uma tabela como esta, com x variando de 0 a 2 π, com intervalos de 0.2

22 UFMG DCC // Tabela da função Seno for x = 0:0.2:2*%pi printf("%g %g",x, sin(x)) end -->

23 UFMG DCC // Tabela da função Seno for x = 0:0.2:2*%pi printf("\n %g %g",x, sin(x)) end

24 UFMG DCC

25 UFMG DCC // Tabela da função Seno // Impressão do cabeçalho printf("\n x seno(x)") // Impressão das linhas da tabela for x = 0:0.2:2*%pi printf("\n%3.1f %7.4f",x, sin(x)) end

26 printf("\n%3.1f %7.4f",x, sin(x)) 3 colunas, 1 casa decimal 7 colunas, 4 casas decimais UFMG DCC

27 // Tabela da função Seno // Impressão do cabeçalho printf("\n x 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]) 27

28 A sequência de números de Fibonacci 1 é: … Essa sequência tem inúmeras aplicações em matemática e computação e ocorre com frequência em fenômenos da natureza. Para saber mais, veja 28

29 29 Ladrilhamento de Fibonacci: quadrados cujos lados são números de Fibonacci. Aproximação para a espiral áurea, criada desenhando arcos circulares conectando cantos opostos de quadrados do labrilhamento de Fibonacci 1,1,2,3,5,8,13,21,34. Espiral áurea é uma espiral logaritmica cujo fator de crescimento é a razão áurea. A razão áurea é a raiz da equação x 2 = x + 1


Carregar ppt "Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I."

Apresentações semelhantes


Anúncios Google