programação em matlab - autenticação · instituto superior técnico, dep. de engenharia...
Post on 23-Sep-2018
215 Views
Preview:
TRANSCRIPT
Instituto Superior Técnico,
Dep. de Engenharia Mecânica - ACCAII
Programação em MATLAB
• Estruturas de Repetição
• Ciclo FOR
• Ciclos FOR encadeados
• Pré-alocação de variáveis
• Combinar ciclos FOR com a instrução IF
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Estruturas de repetição no MATLAB
2
• Estruturas de repetição disponíveis no MATLAB:
• Estruturas de repetição:
• instrução for
• O ciclo FOR permite que uma sequência de instruções seja executada mais do que uma vez.
• O ciclo FOR repete um bloco de instruções um determinado número de vezes. Esse número de vezes é especificado antes do ciclo ser executado.
• instrução while
• O ciclo WHILE repete o bloco de instruções enquanto a condição associada for verdadeira.
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Instrução for
3
Descrição: Repete um bloco de instruções um número específico de vezes.
Sintaxe: for variable = expression
statement_1
.
.
statement_n
end
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Instrução for exemplo1
4
>> exemplo1
1 ao quadrado = 1
2 ao quadrado = 4
3 ao quadrado = 9
4 ao quadrado = 16
5 ao quadrado = 25
6 ao quadrado = 36
7 ao quadrado = 49
8 ao quadrado = 64
9 ao quadrado = 81
10 ao quadrado = 100
>>
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Instrução for
5
FLUXOGRAMA:
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Instrução for exemplo2
6
Problema: Escreva uma função que retorne o valor do somatório de i = 1 até i = n
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Instrução for exemplo2
7
Problema: Escreva uma função que retorne o valor do somatório de i = 1 até i = n
>> somatorio(5)
ans =
15
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Instrução for exemplo3
8
Problema: Escreva uma função que retorne o factorial de n (ou seja: n!) >> fact(0)
ans =
1
>> fact(1)
ans =
1
>> fact(2)
ans =
2
>> fact(4)
ans =
24
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
As funções sum e factorial
>> sum([1 2 3 4 5])
ans =
15
As funções sum e factorial estão pré-definidas no MATLAB:
>> factorial(4)
ans =
24
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
A pré-alocação de um array
A pré-alocação de espaço em memória para um array
permite uma maior eficiência na execução!
PORQUÊ ?
Concatenação:
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
A pré-alocação de um array
Pré-alocação:
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
A pré-alocação de um array
>> somaAcumulada([1 2 3 4])
ans =
1 3 6 10
Exemplo de execução:
>> somaAcumulada2([1 2 3 4])
ans =
1 3 6 10
Mais eficiente em termos de tempo de
cálculo
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Combinando ciclos com decisões
Problema: Escreva uma função que recebe um vector e que devolve o seu valor mínimo.
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Combinando ciclos com decisões
>> minimo([53 45 3 45 2 44])
ans =
2
Exemplo de execução:
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Ciclos FOR encadeados
• O corpo de instruções de um ciclo FOR pode conter outro ciclo FOR;
• Quando tal acontece, diz-se que se possui ciclos FOR encadeados;
• Os ciclos FOR encadeados são geralmente utilizados para aceder a estruturas de dados com mais de que uma dimensão. Por exemplo, uma matriz.
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Ciclos FOR encadeados
Problema:
Escreva uma função que receba uma matriz com valores
aleatórios entre zero e um, que devolva uma matriz constituída
por zeros e uns.
A função deve converter os valores entre [0 ,0.5[ em zero, e os valores entre [0.5,1] em um.
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Ciclos FOR encadeados
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Ciclos FOR encadeados
>> >> A=rand(3,4)
A =
0.9572 0.1419 0.7922 0.0357
0.4854 0.4218 0.9595 0.8491
0.8003 0.9157 0.6557 0.9340
>> B=binariza(A)
B =
1 0 1 0
0 0 1 1
1 1 1 1
Exemplo de execução:
Miguel Pedro Silva – José Borges Computação e Programação 2009 / 2010
Referências
19
• Capítulo 4 de Stormy Attaway (2009), “Matlab: A Practical Introduction to Programming and Problem Solving”, Elsevier.
top related