introdução aos computadores e à programação di-fct-unl-2006/2007 introdução, variáveis e...
TRANSCRIPT
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
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]
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)
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.
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.
Introdução, Variáveis e Matrizes 1.6Introdução aos Computadores e à Programação DI-FCT-UNL-2006/2007
Linha de comandos
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
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”
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
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.
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.
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.
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)
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
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
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)
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
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
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
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
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)
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)
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
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.
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
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 =