octave - linguagens de programação

Upload: raffael-russo

Post on 05-Jul-2018

239 views

Category:

Documents


0 download

TRANSCRIPT

  • 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