Aula 06 Comandos de Repetição for

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Programação de Computadores
Estruturas de Controle
Nilo Menezes – Lógica de Programação –
UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL
Exercicio 1 Dados três valores X, Y e Z, Faça um programa em C para verificar se eles podem ser os comprimentos dos lados de um triângulo e, se forem,verificar.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 4.
Introdução aos Computadores e Programação DI-FCT-UNL-2004/2005 Introdução 1.1 Octave Introdução.
Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Introdução 1.1 Octave Introdução.
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Claudio Esperança Python: Comandos Básicos. Primeiros passos em programação Até agora só vimos como computar algumas expressões simples Expressões são.
Colônia de Formigas (Ant Colony Optimization)
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Inteligência Computacional para Otimização Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto
Introdução à Otimização
BCC101 – Matemática Discreta
Reconhecimento de Padrões EigenFaces
Maximização de Funções usando Simulated Annealing
Inteligência Computacional para Otimização
FACENS – Engenharia da Computação Lógica Computacional I
THOBER CORADI DETOFENO, MSC. Aula 07
Estrutura de Repetição
Rodrigo de Toledo (original: Claudio Esperança)
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
Lógica de Programação Módulo II
Aula 07 Comandos de Repetição while e for
Aula 03 Revisão de Expressões Comando de Seleção
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Aula 01 Variáveis, Expressões, Atribuição, E/S
PROGRAMAÇÃO I UNIDADE 1.
Introdução à Programação
Linguagem de Programação II Parte IV
Linguagem de Programação I Parte III
Princípio de Prova por Indução
BCC /01 Funções. Material Didático Unificado. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência.
Aula 02 Variáveis, Matrizes, Gráficos
Funções Universidade Federal de Ouro Preto - UFOP
Aula Teórica 03 Comandos Condicionais (Decisão) Semana 03
Material Didático Unificado.
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
Material Didático Proposto
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
Recursividade Programação II.
ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL
PROGRAMAÇÃO I UNIDADE 4.
Leonardo Pisano Bogollo
Ilydio Pereira de Sá – USS / UERJ
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004
Prof. Reginaldo Ré Universidade Tecnológica Federal do Paraná – Campus Campo Mourão COINT - Coordenação.
Linguagem de Programação JAVA
Algoritmos e Estruturas de Dados I – Recursão
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
BCC 101 – Matemática Discreta I
POTENCIAÇÃO E FUNÇÃO EXPONENCIAL
Introdução a Algoritmos
POTENCIAÇÃO E RAIZ QUADRADA DE NÚMEROS RACIONAIS
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
DCC 001 Programação de Computadores 2° Semestre de 2011
Algoritmos e Estruturas de Dados I – Estrutura de Repetição
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo.
Introdução à Programação
Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I.
INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL Professora: Fabíola Gonçalves. UFU Universidade Federal de Uberlândia.
ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1.
1 CCO 016 FUNDAMENTOS DE PROGRAMAÇÃO Universidade Federal de Itajubá Prof. Dr. Edison Oliveira de Jesus.
Grupos de Slides No 5. Prof. SIMÃO
Algoritmos Grupos de Slides No 6. Prof. SIMÃO Estrutura de Repetição “faça até” do until Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof. Luis Alberto.
Algoritmos Grupos de Slides No 7. Prof. SIMÃO Estrutura de Repetição “para - passo”” for Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof. Luis Alberto.
Transcrição da apresentação:

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 Execução do comando while: primeiro, a condição é avaliada se a condição for verdadeira, então o bloco de comandos dentro do while é executado, e volta-se ao passo 1. 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 <condição> <bloco while> end

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

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

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

Comando for for i = <incio>:<incr>:<fim> <bloco for> end O comando for é executado do seguinte modo: o valor de <início> é atribuído à variável i testa-se se i <= <fim> se for, o <bloco for> é executado, a variável i é incrementada de <incr> e volta-se ao passo 2 se não for, o comando for termina

Fatorial – usando for 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

Exercício 1 for i = 3:3:10 printf(“%g\n”,i) end for i = 7:-2:1 Qual seriam os valores impressos pelos seguintes trechos 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

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)

Exercício 2 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

Exercício 2 – 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)

Soma e produto dos elementos de uma matriz 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 sum(M) soma de todos os elementos de M prod(M) produto de todos os elementos de M

Exercício 3 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

Exercício 3 – solução maximo = -%inf; pos = 0; for k = 1:length(v) if v(k) > maximo then maximo = v(k); pos = k end

Máximo e mínimo de uma matriz 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 [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

Comandos for aninhados O que é impresso pelo programa abaixo? i=1, j=1 for i = 1:3 for j = 1:2 printf("i=%g, j=%g\n",i,j) end i=1, j=2 i=2, j=1 i=2, j=2 i=3, j=1 i=3, j=2

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

Tabela de Multiplicação – for aninhados 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

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

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

Tabela de Senos x seno(x) 0.0 0.0000 0.2 0.1987 0.4 0.3894 0.6 0.5646 Produzir uma tabela como esta, com x variando de 0 a 2π, com intervalos de 0.2 x seno(x) 0.0 0.0000 0.2 0.1987 0.4 0.3894 0.6 0.5646 0.8 0.8415 UFMG DCC001 2013-1

Tabela de Senos 1ª tentativa // Tabela da função Seno for x = 0:0.2:2*%pi printf("%g %g",x, sin(x)) end --> 0 00.2 0.1986690.4 0.3894180.6 0.5646420.8 0.7173561 0.841471 UFMG DCC001 2013-1

Tabela de Senos 2ª Tentativa // Tabela da função Seno for x = 0:0.2:2*%pi printf("\n %g %g",x, sin(x)) end UFMG DCC001 2013-1

Tabela de Senos 2ª Tentativa 0 0 0.2 0.198669 0.4 0.389418 0.6 0.564642 0.8 0.717356 1 0.841471 1.2 0.932039 UFMG DCC001 2013-1

Tabela de Senos // 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 UFMG DCC001 2013-1

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

Tabela de senos Solução usando vetores // 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’])

Números de Fibonacci A sequência de números de Fibonacci1 é: 0 1 1 2 3 5 8 13 21 34 55 … 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 http://en.wikipedia.org/wiki/Fibonacci_number

Sequência de Fibonacci 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 x2 = x + 1