introdução aos computadores e à programação di-fct-unl-2006/2007 introdução, variáveis e...

26
Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Introdução, Variáveis e Matrizes 1.1

OctaveIntrodução, Variáveis e Matrizes

Page 2: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.2Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Apresentação

Alexandre Pinto [email protected] Gabinete 244 ext: 10767

Luís Soares [email protected] Gabinete 244 ext: 10767

Fausto Mourato [email protected]

Page 3: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.3Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Avaliação Prática

Constituição de grupo obrigatória

Grupos de 2 alunos 3 avaliações práticas

1º Trabalho Octave (7.5) 2º Trabalho Octave (7.5) Teste Excel (7.5)

Nota Prática = média aritmética (9.5)

Page 4: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.4Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Frequência das Aulas Práticas

Assistência ao número mínimo de 20 aulas. Cada prova de avaliação prática terá nota de 0 a 20

que não poderá ser inferior a 7.5. A média aritmética das 3 avaliações práticas deve

ser maior ou igual a 9.5. Apenas os alunos com frequência no ano de

2005/2006, têm equivalência à parte prática da cadeira se a nota for não inferior a 9.5.

Quem ficar dispensado de frequência não pode estar inscrito em nenhum turno (se o fez, deve "desinscrever-se" pela internet), excepto se pretenderem fazer melhoria da nota prática.

Page 5: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.5Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

GNU Octave

Inicialização do octave.

Page 6: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.6Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Linha de comandos

Page 7: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.7Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Calculadora

utilização de valor anterior em cálculo

octave:28> 30*pi/180 ans = 0.52360octave:29> sin(ans)^2+cos(ans)^2ans = 1

seno de pi não é 0, por causa de erros de aproximanção

octave:27> sin(pi)ans = 1.2246e-16

tangenteoctave:26> tan(pi/4) ans = 1.0000

cosenooctave:25> cos(0) ans = 1

senooctave:24> sin(pi/6) ans = 0.50000

constante pioctave:23> pi pi = 3.1416

logaritmo neperianooctave:22> log(e^10) ans = 10

logaritmo base 10octave:21> log10(1000)ans = 3

raíz quadradaoctave:20> sqrt(5)ans = 2.2361

octave:9> 2+3ans = 5

octave:10> 2-2ans = 0

octave:11> 2*2ans = 4

octave:12> 2/3ans = 0.66667

octave:13> 5*5*5ans = 125

octave:14> 5^3ans = 125

octave:15> 5^2.5ans = 55.902

octave:16> 8\3ans = 0.37500

octave:17> 2\4ans = 2

octave:18> 3*(23+14.7-4/6)/3.5ans = 31.743

octave:19> 5^-3ans = 0.0080000

Page 8: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.8Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Exercícios Propostos

Estudo das funcionalidades “Calculadora”: Log base 10 “log10(x)” Log neperiano (base e) “log(x)” Raiz Quadrada “sqrt(x)” Seno “sin(x)” Co-seno “cos(x)” Tangente “tan(x)” Utilização da Função “ans”

Page 9: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.9Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Formatação

formatação standard, precisão de 5 algarismos significativos (é o default)

octave:69> formatoctave:70> pipi = 3.1416

formatação bank, precisão passa a ser de 2 casas decimais

octave:67> format bankoctave:68> sin(pi)ans = 0.00

formatação short, precisão passa a ser de 3 algarismos significativos

octave:64> format shortoctave:65> pipi = 3.14octave:66> sin(pi)ans = 1.22e-16

formatação long, a partir deste ponto a precisão dos resultados passa a ser de 15 algarismos significativos (máx de 24 caracteres)

octave:62> format longoctave:63> pipi = 3.14159265358979

contante pioctave:61> pi

pi = 3.1416

Page 10: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.10Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Teclas de edição

• Teclas cursoras (cima e baixo): comando anterior/seguinte no histórico de comandos.

• Teclas cursoras (esquerda e direita): letra anterior/seguinte no comando corrente. Em alguns terminais onde as teclas cursoras não funcionem, pode ser necessário utilizar as teclas CTRL-b (de backward) e CTRL-f (de forward).

• CTRL-a : o cursor desloca-se para o inicio do texto. • CTRL-e : o cursor desloca-se para o fim do texto. • CTRL-r/CTRL-s : pesquisa incremental de um comando anterior/seguinte no

histórico de comandos. • CTRL-_ : desfazer o último comando. • TAB : Terminar o comando. • CTRL-k : Mover todo o texto até ao fim da linha na área de transferência do

Octave. • CTRL-y : Mover o texto na área de transferencia do Octave para a linha de

comandos.

Page 11: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.11Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Histórico de comandos

octave:100> history ...22 5*523 3+2;24 5+5...octave:101> run_history 22 24ans = 10ans = 5ans = 25

O comando exit termina a execução do Octave e retorna ao MS-Windows.

Page 12: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.12Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

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.

Page 13: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.13Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Variáveis (2)

A uma variável pode também ser atribuido o valor de outra variável.

Atenção: octave:40> a = 2a=2octave:41> a = 10a=10octave:42> b = ab=10octave:43> a = 3a=3octave:44> bb=10

Atribuição≠ Igualdade

octave:45> a == bans = 0octave:46> a = 10a=10octave:47> a == 10ans = 1octave:47> a == bans = 1

= Atribuição(Afirmação)

= = Teste de

Igualdade(Pergunta)

Page 14: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.14Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

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 aoctave:45>who

*** local user variables:

b

Page 15: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.15Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

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

Page 16: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.16Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

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)

          

           

           

          

          

          

          

           

          

          

Page 17: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.17Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Matrizes (1)

, representa nova coluna. ; representa nova linha.

variável a passa a representar a matriz:

                                   

octave:3>a= [ 1,1,2 ; 3,5,8 ; 13,21,34 ] a=

1 1 2 3 5 813 21 34

Page 18: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.18Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

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> bb =

0.88406 0.90013 0.73682 0.15829 0.68952 0.74250

Page 19: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.19Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

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.

Errado

octave:4> [ a, a; a]error: number of columns must match (3 != 6)

Correcto

octave:4> [ a, a ]ans=1 1 2 1 1 23 5 8 3 5 813 21 34 13 21 34

octave:5> [ a; a ]ans= 1 1 23 5 8 13 21 34 1 1 23 5 813 21 34

Page 20: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.20Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

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

Page 21: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.21Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

octave:41> eye(3,2)‘ans =

1 0 00 1 0

Matrizes (5)

octave:38> eye(3,2)ans =1 00 10 0

octave:37> eye(3)ans =

1 0 00 1 00 0 1

octave:39> ones(3,2)ans =

1 11 11 1

octave:40> zeros(2,4)ans =

0 0 0 00 0 0 0

(Eye, Ones, Zeros e Transposta)

Page 22: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.22Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Matrizes (6)

Multiplicação (pontual) de matrizes

Multiplicação (algébrica) de matrizes

>> a .* bans = 1 0 0 0 1 0 0 0 1

>> a=eye(3)>> b=ones(3)

>> a * bans = 1 1 1 1 1 1 1 1 1

[1 0 00 1 00 0 1]×[1 1 1

1 1 11 1 1]=[1 1 1

1 1 11 1 1]

Precondição: columns(a) == rows(b)

[1 0 00 1 00 0 1].×[1 1 1

1 1 11 1 1]=[1 0 0

0 1 00 0 1]

Precondição: size(a) == size(b)

Page 23: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.23Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Séries

Sintaxe geral:LIMITE_INFERIOR:PASSO:LIMITE_SUPERIOR

octave:1> 1:5ans =

1 2 3 4 5octave:2>1:3:11ans =

1 4 7 10 octave:23> [1:3:11;1:4]ans =

1 4 7 10 1 2 3 4

Page 24: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.24Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

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.

Page 25: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.25Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Operador ':' Podemos utilizar apenas o sinal : para especificar toda uma linha ou toda uma coluna da

matriz original: a= 1 2 3 4 5 6 7 8 9

>> a(2,:) Representa a linha 2 da matriz dada, o operador : está à direita de , ans = 4 5 6

>> a(:,1) Representa a coluna 1 da matriz dada, o operador : está à esquerda da , ans = 1 4 7

Page 26: Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007 Introdução, Variáveis e Matrizes 1.1 Octave Introdução, Variáveis e Matrizes

Introdução, Variáveis e Matrizes 1.26Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007

Exercícios Propostos

Colocar a segunda linha de A a zeros. Que matriz se obtém com o seguinte

comando?

[[A(:,1).+2],[0;0;0],[A(:,3).+2]]

A =