Post on 05-Jul-2018
8/16/2019 Octave - Linguagens de Programação
1/31
OCTAVE
Raffael RussoJonas Rocha Lima Amaro
8/16/2019 Octave - Linguagens de Programação
2/31
Sumário
1. Introdução2. Características3. Conclusão4. Referências
8/16/2019 Octave - Linguagens de Programação
3/31
Introdução
8/16/2019 Octave - Linguagens de Programação
4/31
História e motivação
● Concebida em 1988, por James B. Rawlings e John G. Ekerdt
● Homenagem a Octave Levenspiel
● Inicialmente feita para problemas de reatores químicos
● Desenvolvida por John W. Eaton
● Primeira versão estável em 1994● Usada para educação, pesquisa e indústria
8/16/2019 Octave - Linguagens de Programação
5/31
Interoperabilidade e Performance
● Octave é uma linguagem simples. Foi desenvolvida para que os alunos dispendestempo resolvendo o problema do que aprendendo a linguagem.
● É uma linguagem interpretada bastante compatível com MatLab, possuindo muit
semelhantes; ● Aceita facilmente expansão e adaptação através do carregamento módulos, dina
escritos em C, C++ e Fortran.
8/16/2019 Octave - Linguagens de Programação
6/31
Interoperabilidade e Performance
Eliminação Gaussiana Método Gradiente Con
● Comparação entre aspectos de R, Matlab e Octave
8/16/2019 Octave - Linguagens de Programação
7/31
Interoperabilidade e Performance
● Comparação entre aspectos de R, Phyton e Octave:
8/16/2019 Octave - Linguagens de Programação
8/31
Usuários de Octave
8/16/2019 Octave - Linguagens de Programação
9/31
Exemplo de código
function ord_vetor = bubble_sort(vetor)n = length(vetor);for i = (n+1):-1:3
for j = 1:(i-2)if vetor( j)>vetor( j+1)
aux = vetor( j);
vetor( j) = vetor( j+1);vetor( j+1) = aux;end
endforendforord_vetor = vetor;
endfunction
8/16/2019 Octave - Linguagens de Programação
10/31
Características
8/16/2019 Octave - Linguagens de Programação
11/31
Conceitos e Paradigma
● Linguagem de programação de alto nível, destinada ao tratamento de problemas computação numérica.
● Interface com o programador era efetuado através de linha de comando até recemais nova versão possui uma interface gráfica.
● Paradigma:Orientado à Vetor: generaliza operações em escalares para aplicar transpar
matrizesImperativa: paradigma de programação que descreve a computação como enunciados ou comandos que mudam o estado (variáveis) de um programa.
https://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o
8/16/2019 Octave - Linguagens de Programação
12/31
A linguagem possui os chamados “Built-in Data Types” que incluem escalares reais e cranges, matrizes, strings de caractéres e vetores que contêm todos os tipos de dados. possível definir novos tipos de dados escrevendo código em C++.
● Números Reais:Notação simples: x = 1.981 Notação científica: x = 1981
● Números Complexos:Notação: a + bi z = 10 + 1.981i
● Matrizes:Notação: A=[linha_1; linha_2; linha_n] Exemplo: A=[1 2 3; 4 5 6; 7 8
● Strings:txt='Meu texto.' ou txt=”Meu texto.”
Tipos nativos
8/16/2019 Octave - Linguagens de Programação
13/31
Variáveis
Variáveis permitem dar nomes a valores e se referir a eles mais tarde.
● Variáveis que foram declaradas como “global” podem ser acessadas do corpo desem terem sido passadas como parâmetro formal. (Ex: global c = 2)
● Variáveis que foram declaradas como “ persistent” no escopo de uma função irãoconteúdo em memória entre chamadas subsequentes damesma função.
A diferença entre “ persistent variables” e “global variables” é que a primeira é local no efunção e nçao visíveis em outro lugar.
8/16/2019 Octave - Linguagens de Programação
14/31
Declarações e definições de variáveis
● O tipo da variável é inferido no ato da atribuição;● A variável pode mudar de tipo na execução do script● Amarração de tipo é feito em tempo de
Ou seja, pode se escrever:
8/16/2019 Octave - Linguagens de Programação
15/31
Declaração e definições de subprogram
Igualmente como as variáveis,octave permite definições defunção em tempo de execução
Porém o carregamento de
scripts em arquivo só efetuadana primeira vez que o arquivo écarregado
8/16/2019 Octave - Linguagens de Programação
16/31
Constantes
Constantes matemáticas taiscomo: π, e, i, Inf são constantes prédefinidas da linguagem
Porém o nome delas não é
reservado, é possível criar umavariável chamada pi com valor 1000
8/16/2019 Octave - Linguagens de Programação
17/31
Passagem de parâmetros
Em Octave a passagem de argumentos de função é feita por valor, o que significa que cnuma chamada de função, é avaliado e atribuido a uma localização temporária de memser passado à função.
8/16/2019 Octave - Linguagens de Programação
18/31
Funções
Para definir uma função de forma externa é preciso criar um ficheiro “.m” com o nome como se faz para criar um programa. Ou seja, para criar a função “quadrado”,deve-se cdocumento “quadrado.m”, onde será definida a função.
No entanto pode-se definir uma função diretamente na linha de comando em sessões Octave.
A estrutura genérica utiliza para definir uma função é a seguinte:
function [resultados] = nome_da_função(argumentos) corpo...
endfunction
8/16/2019 Octave - Linguagens de Programação
19/31
Octave permite a definição de funções que retornam mais de um valor. A sintaxe para dfunção que retorna múltiplos valores é:
function [ret-list] = name (arg-list) bodyEndfunction
Em que ret-list é uma lista (separada por vírgulas) de nomes de variáveis que terão os vretornados pela função.
É suportado também funções aninhadas.
Funções
8/16/2019 Octave - Linguagens de Programação
20/31
Operadores
Em Octave temos os operadores artiméticos usuais: +; - ; /; ^ ou **;
Além disso pode-se acrescentar um ponto final “.” antes de cada operado e a operaçãoelemento a elemento.
Há os operadores: \ que é divisão à esquerda ( x \ y equivale a inverse(x)*y)‘ que aplica o conjugado-complexo da transposta
8/16/2019 Octave - Linguagens de Programação
21/31
Operadores
8/16/2019 Octave - Linguagens de Programação
22/31
Operadores
Há operadores usuais de comparação: >; >=;
8/16/2019 Octave - Linguagens de Programação
23/31
Precedência de Operadores
Segue em ordem decrescente de precedênciaExponenciação ^; **; .^; .**Soma unária, inverso, incremento, decremento e “not” +; -; ++; - -; ! ou ~Transposta ‘; .’Multiplicação e divisão *; /;\; .\ ; .* ; ./Adição e subtração +; -Relacionais ; != ou ~= ou Ou e E elemento-elemento | ; &Ou e E lógico || ; &&Assignment =;Separadores de estado “ ; ” “ , ”
8/16/2019 Octave - Linguagens de Programação
24/31
Comandos
Octave possui o comando help:
● Este comando pode ser usado com um argumento para printar uma mensagem bestilo-de-uso, ou mostrar informações diretas de uma versão online de um manua
8/16/2019 Octave - Linguagens de Programação
25/31
Erros e Exceções
Há duas classes de erros que Octave produz quando encontra um input que não consequando não consegue executar uma ação:
● Parse Error: ocorre se Octave não consegue entender algo que foi digitado● Run-time Errors ou Evaluation Errors: Ocorrem em tempo de evaluation, quando o
rodando ou sendo avaliado.
Um erro pode ser detectado e tratado usando-se “try...catch”.A função lasterror retorna uam estrutura contendo informação sobre o último erro ocormensagem, identificador, nome da função onde ocorreu o erro, pilha, file, linha e coluna
8/16/2019 Octave - Linguagens de Programação
26/31
Erros e Exceções
Warnings não abortam o programa corrente.
Um exemplo de warning é quando um número é dividido por zero. Nesse caso o Octavewarning e atribuirá o valor “Inf” ao resultado.
(Inf: escalar, matriz ou N-dimensional array cujos elementos sao a representação IEEEpositivo)
8/16/2019 Octave - Linguagens de Programação
27/31
Orientação a objetos
Octave suporta orientação objetos, permitindo implementação de herança, agregação, construtores, classes.
No entanto não é o objetivo da linguagem.
8/16/2019 Octave - Linguagens de Programação
28/31
Vetorização
8/16/2019 Octave - Linguagens de Programação
29/31
Conclusão
8/16/2019 Octave - Linguagens de Programação
30/31
8/16/2019 Octave - Linguagens de Programação
31/31
Referências
1. Acesso em
2. http://profs.sci.univr.it/~caliari/pdf/octave.pdf