Octave Variáveis, Matrizes e Séries Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.1 Variáveis (1) Nome que se atribui (através do operador =) a um valor, por forma a este poder ser utilizado mais tarde. O seu nome pode conter qualquer sequência de letras, números ou underscore (_). Não pode ser iniciado por um número. A utilização de letras minúsculas ou maiúsculas é relevante, isto é, a variável “a” pode conter um valor e a “A” um outro. Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.2 Variáveis (2) A uma variável pode também ser atribuido o valor de outra variável. Atenção: Atribuição≠ Igualdade octave:40> a = 2 a=2 octave:41> a = 10 a=10 octave:42> b = a b=10 octave:43> a = 3 a=3 octave:44> b b=10 octave:45> a == b ans = 0 octave:46> a = 10 a=10 octave:47> a == 10 ans = 1 octave:47> a == b ans = 1 Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 = Atribuição (Afirmação) == Teste de Igualdade (Pergunta) Variáveis, matrizes e séries 2.3 Gestão das variáveis who – lista as variáveis já definidas. clear – remove variáveis. octave:43> who *** local user variables: a b octave:44>clear a octave:45>who *** local user variables: b Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.4 Exemplos de Matrizes “Jogo do Galo” X 0 X 0 X 0 X 0 0 Posição de valores na Matriz (1,1) = X ; (2,3) = 0 ; (3,1) = X Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.5 Exemplos de Matrizes “A Batalha Naval” Matriz de 10 linhas por 10 colunas, [10,10] “Posição de Peças” (2,8) ; (9,10) ; (1,5) Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.6 Matrizes (1) , representa nova coluna. ; representa nova linha. octave:3>a= [ 1,1,2 ; 3,5,8 ; 13,21,34 ] a= 1 1 2 3 5 8 13 21 34 variável a passa a representar a matriz: Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.7 Matrizes (2) Definir uma matriz como retorno de uma função. b=rand(3,2) ;(A função retorna valores aleatórios entre 0 e 1 ) octave:3> b b= 0.88406 0.90013 0.73682 0.15829 0.68952 0.74250 Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.8 Matrizes (3) Podemos igualmente criar novas matrizes contendo a matriz “a”. O único cuidado a ter é manter o número de linhas e colunas constante. Correcto Errado octave:4> [ a, a ] ans= 1 1 2 1 1 2 3 5 8 3 5 8 13 21 34 13 21 34 octave:5> [ a; a ] ans= 1 1 2 3 5 8 13 21 34 1 1 2 3 5 8 13 21 34 octave:4> [ a, a; a] error: number of columns must match (3 != 6) Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.9 Matrizes (4) Acesso a uma dada posição de uma matriz. octave:14> a(1,2) ans = 1 octave:15> a(1,[1,2,3]) ans = 1 1 2 octave:16> a([1,2,3],2) ans = 1 5 21 Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.10 Matrizes (5) (Eye, Ones, Zeros e Transposta) octave:37> eye(3) ans = 100 010 001 octave:38> eye(3,2) ans = 10 01 00 octave:41> eye(3,2)‘ ans = octave:39> ones(3,2) ans = 11 11 11 octave:40> zeros(2,4) ans = 0000 0000 100 010 Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.11 Matrizes (6) Multiplicação (algébrica) de matrizes >> a=eye(3) >> b=ones(3) >> a * b ans = 1 1 1 1 1 1 1 1 1 [ ][ ][ ] 1 0 0 1 1 1 1 1 1 0 1 0 × 1 1 1 = 1 1 1 0 0 1 1 1 1 1 1 1 Precondição: columns(a) == rows(b) Multiplicação (pontual) de matrizes >> a .* b ans = 1 0 0 0 1 0 0 0 1 [ ] [ ][ ] 1 0 0 1 1 1 1 0 0 0 1 0 .× 1 1 1 = 0 1 0 0 0 1 1 1 1 0 0 1 Precondição: size(a) == size(b) Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.12 Séries Sintaxe geral: LIMITE_INFERIOR:PASSO:LIMITE_SUPERIOR octave:1> 1:5 ans = 12345 octave:2>1:3:11 ans = 1 4 7 10 octave:23> [1:3:11;1:4] ans = 1 4 7 10 123 4 Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.13 Exercícios Propostos 1- Escrever numa matriz de 1 linha e 15 colunas, os quadrados dos primeiros 15 naturais (1, 4, 9 ...). 2- Escrever numa matriz de 15 linhas e 1 coluna, os cubos dos primeiros 15 naturais (1, 8, 27 ...) 3- Escrever numa tabela de 15 linhas por 3 colunas, os primeiros 15 naturais na 1ª coluna; os quadrados dos primeiros 15 naturais na 2ª e os cubos dos primeiros 15 naturais na 3ª coluna. Introdução aos Computadores e à Programação DI-FCT-UNL-2005/2006 Variáveis, matrizes e séries 2.14