9-matlab - laços de repetição

16
Prof. Fernando Almeida

Upload: fernando-de-carvalho

Post on 11-Nov-2015

72 views

Category:

Documents


7 download

DESCRIPTION

matlab

TRANSCRIPT

  • Prof. Fernando Almeida

  • Laos Outra forma de alterar o fluxo de um programa A execuo e um ou um grupo de comandos repetida diversas

    vezes, sucessivamente Cada sequncia de execuo (repetio) do lao denominada

    passo A cada passo, ao menos uma varivel modificada dentro do lao for-end

    O nmero de repeties conhecido desde o incio do lao while-end

    O nmero de repeties no conhecido de antemo e o lao repetido at que uma condio especfica de parada seja satisfeita

    Comando break Ambos os tipos de lao podem ser finalizados a qualquer momento

  • Laos for-end A execuo de um ou um grupo de comandos

    repetido um nmero de vezes predeterminado

    for k = f : s : t.....................

    end

    Um grupo de comandos MATLAB

    ndice mudo do loop

    Valor de k no primeiro passo

    O incremento em k aps cada passo

    Valor de k no ltimo passo

  • Laos for-end - Exemplofor k = 1 : 3 : 10

    x = k^2end

    Iterao k x1 1 12 4 163 7 494 10 100

    >> for k=1:3:10x=k^2end

    x =1

    x =16

    x =49

    x =100

  • Atividades for-end1) a) k = 1:2:3 | b) k = 25:-5:10 | c) k = 3:72) Faa um algoritmo que mostre todos os nmeros

    inteiros de 1 a 50.3) Faa um algoritmo que leia um nmero N, some

    todos os nmeros inteiros de 1 a N, e mostre o resultado obtido

    4) Escreva um algoritmo que leia um conjunto de 5 nmeros inteiros positivos e determine o maior deles.

    5) Faa um algoritmo que gere a seguinte srie: 10, 20, 30, 40, ..., 990, 1000

  • Atividades (for-end) (1)1. Faa um programa que imprima o total da sequncia: 1,

    1/2, 1/3 [...], 1/202. Faa um programa para imprimir os nmeros pares entre

    100 e 13. Faa um algoritmo que some os nmeros de 1 a 10,

    apresentando as somas parciais e, no final, o total. A impresso deve seguir o padro abaixo: 3 (soma do nmero 1 com o nmero 2) 6 (soma parcial com o nmero 3) [...] 55 (soma parcial com o nmero 10) Soma total = 55

  • Atividades (for-end) (2)4. Faa um programa para ler e escrever dados de uma

    turma de 3 alunos. O programa deve pedir dados como nome, idade, sexo. O programa deve imprimir os dados do aluno mais velho.

    5. Faa um programa que receba um nmero e realize as seguintes operaes:

    a) Caso o nmero seja maior do que 5, some 100 a este nmerob) Caso o nmero seja menor do que 5, multiplique 50 a esse

    nmeroc) Caso o nmero seja igual a 5, diminua 5 deste nmerod) O programa deve repetir 5 vezes

  • Laos while-end Utilizado quando o nmero de repeties no

    conhecido No possui um campo especificando o nmero de

    repeties (antes de inici-lo) O processo se repete at que uma certa condio seja

    satisfeita

    while expresso condicional.....................

    end

    Um grupo de comandos MATLAB

  • Laos while-end - Exemplox = 1while x> x=1;>> while x
  • Observaes A expresso condicional no comando while deve

    incluir ao menos uma varivel As variveis na expresso condicional devem ter sido

    inicializadas Ao menos uma varivel na expresso condicional deve

    ser modificada dentro do lao Em algum momento a expresso deve-se tornar falsa

    Altere a expresso do exemplo anterior para x >= 0.5 Loops infinitos so considerados erros comuns

    Ctrl+C ou Ctrl+Break (sai do loop)

  • Atividades while-end1. Faa um algoritmo que mostre todos os nmeros

    inteiros de 1 a 50.2. Faa um algoritmo que leia um nmero N, some

    todos os nmeros inteiros de 1 a N, e mostre o resultado obtido

    3. Faa um algoritmo que gere a seguinte srie: 10, 20, 30, 40, ..., 990, 1000

  • Laos aninhados e ninhos de sentenas condicionais Laos e sentenas condicionais podem ser aninhadas

    entre si Um loop ou uma sentena condicional pode ser

    inicializada (e terminada) dentro de outro loop ou sentena condicional

    No h limite para o nmero de laos e sentenas condicionais que podem ser aninhadas

    Toda estrutura if-case-for-while deve terminar em um comando end correspondente

  • Estrutura de ninhos de loops

    for k = 1 : nfor h = 1 : m

    .......

    .......end

    end

    Um grupo de comandos MATLAB

    Lao aninhado

    Lao

  • Comandos break E continue Comando break

    Provoca a sada imediata do lao Quando o MATLAB encontra um comando break dentro

    do lao, o programa salta para o comando end desse lao Inserido dentro de um loop aninhado, causa a sada

    apenas deste loop Provoca o trmino imediato da execuo de uma rotina

    ou funo Geralmente aparece dentro de sentenas condicionais

  • Comandos break E continue Comando continue

    Utilizado dentro de um lao, for ou while, de maneira a parar o passo atual e iniciar o prximo passo no processo de looping

    Geralmente, o comando continue entra como parte de uma sentena condicional

    Quando o MATLAB encontra um comando continue, deixa de executar o restante do lao atual, saltando para o comando end no final do lao, para ento iniciar um novo passo.

  • Atividades Escreva uma rotina para encontrar o menor nmero

    inteiro mpar divisvel por 3, cuja terceira potncia maior que 4000.

    Utilize apenas um lao no programa O lao deve iniciar em 1 e parar quando o nmero for

    encontrado Em seguida, o programa deve imprimir uma

    mensagem O nmero requerido : Imprima o nmero

    Pg 218 exe. 13