computa˘c~ao cient ca com matlab - ufscmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · o que e...

74
Computa¸ ao Cient´ ıfica com MATLAB Melissa Weber Mendon¸ca [email protected]

Upload: others

Post on 07-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Computacao Cientıfica com MATLAB

Melissa Weber [email protected]

Page 2: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Conteudo

I Algoritmos: conceito; tipos de dados; scripts.

I Modo interativo do MATLAB: familiarizacao com o software;comandos de entrada e saıda; comandos de atribuicao;manipulacao de variaveis; funcoes basicas; leitura e escrita emarquivos.

I Processos de repeticao e condicionais: o comando for e ocomando if no MATLAB.

I Variaveis indexadas: vetores; matrizes.

I Modularizacao: funcoes; subprogramas.

I Graficos: producao de graficos atraves de dados existentes emduas e tres dimensoes.

I Aplicacoes: resolucao de problemas contextualizadosutilizando o software MATLAB.

Page 3: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Por que estudar programacao?

Objetivo

Entender um problema e formular sua solucao usando ferramentascomputacionais.

Ferramenta

Linguagem de programacao MATLAB.

Page 4: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Como funciona o computador?

O computador e uma maquina programavel que recebe umaentrada (input), armazena e manipula automaticamente dados, egera uma saıda (output).

Um computador executa funcoes com entrada e saıda:

ENTRADA ACAO SAIDA

Page 5: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Primeiros ”computadores”

Em 1613, a palavra ”computador”aparece pela primeira vez,designando uma pessoa que realizasse calculos.Os computadores antigos nao eram maquinas programaveis, masserviam a uma funcao especıfica.Exemplos: abaco, regua de calculo, astrolabio, calculadora.

Page 6: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Computadores programaveis de uso limitado

Em 1801, Joseph Marie Jacquard introduziu o uso de cartoesperfurados para programar um tear e produzir padroes intrincadosde tecido automaticamente.

Page 7: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Computadores programaveis de uso geral

Em 1837, Charles Babbage imaginou o conceito de umcomputador mecanico totalmente programavel (a maquinaanalıtica) - mas nao chegou a construi-la.

Page 8: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Computadores programaveis de uso geral

Ada Augusta Byron King, Condessa de Lovelace, filha do poetabritanico Lord Byron, e reconhecida como a primeira programadorade toda a historia. Ela desenvolveu os algoritmos que permitiriama maquina de Babbage computar valores de funcoes matematicas,alem de publicar uma colecao de notas sobre a maquina analıtica.

Page 9: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Estrutura de um computador moderno

Dispositivosde Entrada

(input)

UnidadeCentral de

Processamento

Memorias ouDispositivos de

Armazenamento

Dispositivosde Saıda(output)

Page 10: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

O que e um algoritmo?

Um algoritmo e uma sequencia finita de passos que tem comoobjetivo realizar alguma tarefa.

Exemplo: receita de bolo.

I Entrada: ingredientes, utensılios usados.

I Acao: bater, misturar, picar, assar.

I Saıda: bolo.

Page 11: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha

Page 12: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente

Page 13: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca

Page 14: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela

Page 15: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:

I

Page 16: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:

I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.

Page 17: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:

I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.

I Levar a chaleira ou panela ate a pia.

Page 18: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:

I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.

I Levar a chaleira ou panela ate a pia.

I Encher a chaleira ou panela de agua.

Page 19: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:

I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.

I Levar a chaleira ou panela ate a pia.

I Encher a chaleira ou panela de agua.

I Acender uma das bocas do fogao.

Page 20: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:

I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.

I Levar a chaleira ou panela ate a pia.

I Encher a chaleira ou panela de agua.

I Acender uma das bocas do fogao.

I Colocar a chaleira ou panela sobre a boca acesa do fogao.

Page 21: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:

I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.

I Levar a chaleira ou panela ate a pia.

I Encher a chaleira ou panela de agua.

I Acender uma das bocas do fogao.

I Colocar a chaleira ou panela sobre a boca acesa do fogao.

I Enquanto a agua nao estiver borbulhando,continue aguardando.

Page 22: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:

I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.

I Levar a chaleira ou panela ate a pia.

I Encher a chaleira ou panela de agua.

I Acender uma das bocas do fogao.

I Colocar a chaleira ou panela sobre a boca acesa do fogao.

I Enquanto a agua nao estiver borbulhando,continue aguardando.

I Desligue a boca acesa do fogao.

Page 23: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

Dada uma cozinha, com uma pia com torneira e agua corrente, umfogao com pelo menos uma boca, e uma chaleira ou panela, faca oseguinte:

I Se encontrar uma chaleira, entao use esta chaleira.Senao, use uma panela.

I Levar a chaleira ou panela ate a pia.

I Encher a chaleira ou panela de agua.

I Acender uma das bocas do fogao.

I Colocar a chaleira ou panela sobre a boca acesa do fogao.

I Enquanto a agua nao estiver borbulhando,continue aguardando.

I Desligue a boca acesa do fogao.

A agua esta fervida dentro da chaleira ou panela.

Page 24: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

ENTRADA: cozinha, pia, torneira, agua corrente, fogao com pelomenos uma boca, chaleira ou panela.ACAO:

I Se encontrar uma chaleira, entao pegue esta chaleira comorecipiente.Senao, pegue uma panela como recipiente.

I Levar o recipiente ate a pia.

I Encher o recipiente de agua.

I Acender uma das bocas do fogao.

I Colocar o recipiente sobre a boca acesa do fogao.

I Enquanto a agua nao estiver borbulhando,continue aguardando.

I Desligue a boca acesa do fogao.

SAIDA: recipiente com agua fervida.

Page 25: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

ENTRADA: cozinha, pia, torneira, agua corrente, fogao com pelomenos uma boca, chaleira ou panela.ACAO:

I Se encontrar uma chaleira, entao pegue esta chaleira comorecipiente.Senao, pegue uma panela como recipiente.

I Levar o recipiente ate a pia.

I Encher o recipiente de agua.

I Acender uma das bocas do fogao.

I Colocar o recipiente sobre a boca acesa do fogao.

I Enquanto a agua nao estiver borbulhando,continue aguardando.

I Desligue a boca acesa do fogao.

SAIDA: recipiente com agua fervida.

Page 26: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

ENTRADA: cozinha, pia, torneira, agua corrente, fogao com pelomenos uma boca, chaleira ou panela.ACAO:

I Se encontrar uma chaleira, entao pegue esta chaleira comorecipiente.Senao, pegue uma panela como recipiente.

I Levar o recipiente ate a pia.

I Encher o recipiente de agua.

I Acender uma das bocas do fogao.

I Colocar o recipiente sobre a boca acesa do fogao.

I Enquanto a agua nao estiver borbulhando,continue aguardando.

I Desligue a boca acesa do fogao.

SAIDA: recipiente com agua fervida.

Page 27: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

ENTRADA: cozinha, pia, torneira, agua corrente, fogao com pelomenos uma boca, chaleira ou panela.ACAO:

I Se existe chaleira, entao recipiente chaleira.Senao, recipiente panela.

I Levar o recipiente ate a pia.

I Encher o recipiente de agua.

I Acender uma das bocas do fogao.

I Colocar o recipiente sobre a boca acesa do fogao.

I Enquanto a agua nao estiver borbulhando,continue aguardando.

I Desligue a boca acesa do fogao.

SAIDA: recipiente com agua fervida.

Page 28: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo: Como ferver agua (no fogao)?

ENTRADA: cozinha, pia, torneira, agua corrente, fogao com pelomenos uma boca, chaleira ou panela.ACAO:

I Se existe chaleira, entao recipiente chaleira.Senao, recipiente panela.

I Levar o recipiente ate a pia.

I Encher o recipiente de agua.

I Acender uma das bocas do fogao.

I Colocar o recipiente sobre a boca acesa do fogao.

I Enquanto a agua nao estiver borbulhando,continue aguardando.

I Desligue a boca acesa do fogao.

SAIDA: recipiente com agua fervida.

Page 29: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

O que e uma linguagem de programacao?

Uma linguagem de programacao traduz um algoritmo (sequenciade instrucoes) da linguagem humana para a linguagem da maquina(”0 e 1”).Existem milhares de linguagens de programacao.

Page 30: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Modulo: Exemplo em Pseudo-codigo

Dado um numero a

Se a > 0, ent~ao

modulo = a

Sen~ao

modulo = -a

Fim Se

Page 31: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo em Python

def modulo(a):

if a > 0:

modulo = a

else:

modulo =-a

Page 32: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo em C

double modulo(double a)

{

if (a > 0)

modulo =a;

else

modulo =-a;

}

Page 33: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo em Fortran

SUBROUTINE MODULO(A)

REAL MODULO

IF(A .GT. 0)THEN

MODULO=A

ELSE

MODULO=-A

ENDIF

END SUBROUTINE MODULO

Page 34: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

O que e o MATLAB?

Linguagem computacional de alto nıvel e um ambiente interativopara computacao numerica, visualizacao e programacao.

Page 35: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Exemplo de codigo em MATLAB

function[abs] = modulo(a)

if a > 0

modulo = a

else

modulo = -a

end

Page 36: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Console: Modo Interativo

ConsoleEspaco detrabalho

Arquivos

Historico

Diretorio Atual

Page 37: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Scripts

Os comandos podem ser entrados diretamente no console doMATLAB, ou escritos, em sequencia, dentro de um arquivo comextensao .m chamado script.

Sequencias de trabalho possıveis:

1. Escrever os comandos no console em sequencia, obtendo asrespostas a cada comando.

2. Usando um script:

a) Escrever os comandos em um arquivo no seu editor de textopreferido (Notepad) e salvar esse arquivo com extensao .m;

b) Ir ate a janela do console do MATLAB;c) Digitar o nome do arquivo em que voce digitou os comandos

sem o .m.

Page 38: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Comandos Basicos

I Operacoes Aritmeticas: +, -, *, /, ^

I Funcoes matematicas: sin(pi), abs(-3)

I date

I clear ou clc

I help

Page 39: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Comandos Basicos

I Operacoes Aritmeticas: +, -, *, /, ^

I Funcoes matematicas: sin(pi), abs(-3)

I date

I clear ou clc

I help

Page 40: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Comandos Basicos

I Operacoes Aritmeticas: +, -, *, /, ^

I Funcoes matematicas: sin(pi), abs(-3)

I date

I clear ou clc

I help

Page 41: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Comandos Basicos

I Operacoes Aritmeticas: +, -, *, /, ^

I Funcoes matematicas: sin(pi), abs(-3)

I date

I clear ou clc

I help

Page 42: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Comandos Basicos

I Operacoes Aritmeticas: +, -, *, /, ^

I Funcoes matematicas: sin(pi), abs(-3)

I date

I clear ou clc

I help

Page 43: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Variaveis

Para atribuir um valor a uma variavel no MATLAB, bastadigitarmos

>> variavel = valor

(nao e preciso declarar variaveis no MATLAB).

Page 44: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Tipos de Variavel

I Numeros Reais:>> a=4.5

>> pi

>> 1e-2

Page 45: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Tipos de Variavel

I Listas de caracteres (strings):

>> texto = ’Um texto qualquer.’

Page 46: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Tipos de Variavel

I Listas de numeros reais indexadas (vetores):

>> v = [1,2,3,4]

>> u = [1;2;3;4]

Page 47: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Tipos de Variavel

I Listas de numeros reais duplamente indexadas (matrizes):

>> A = [1 2; 3 4]

Page 48: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Vetores

>> v = [1 3 5]

>> w = [7;9;11]

>> v’

>> v(2)

ans =

3

>> length(v)

>> size(v)

>> size(v,1)

>> size(v,2)

Page 49: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Vetores

>> v = [1 3 5]

>> w = [7;9;11]

>> v’

>> v(2)

ans =

3

>> length(v)

>> size(v)

>> size(v,1)

>> size(v,2)

Page 50: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Vetores

>> v = [1 3 5]

>> w = [7;9;11]

>> v’

>> v(2)

ans =

3

>> length(v)

>> size(v)

>> size(v,1)

>> size(v,2)

Page 51: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Vetores

>> v = [1 3 5]

>> w = [7;9;11]

>> v’

>> v(2)

ans =

3

>> length(v)

>> size(v)

>> size(v,1)

>> size(v,2)

Page 52: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Vetores

>> v = [1 3 5]

>> w = [7;9;11]

>> v’

>> v(2)

ans =

3

>> length(v)

>> size(v)

>> size(v,1)

>> size(v,2)

Page 53: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Vetores

>> v = [1 3 5]

>> w = [7;9;11]

>> v’

>> v(2)

ans =

3

>> length(v)

>> size(v)

>> size(v,1)

>> size(v,2)

Page 54: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Vetores

>> v = [1 3 5]

>> w = [7;9;11]

>> v’

>> v(2)

ans =

3

>> length(v)

>> size(v)

>> size(v,1)

>> size(v,2)

Page 55: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Vetores

>> v = [1 3 5]

>> w = [7;9;11]

>> v’

>> v(2)

ans =

3

>> length(v)

>> size(v)

>> size(v,1)

>> size(v,2)

Page 56: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Operacoes basicas

Lembre-se de respeitar as dimensoes!

>> v+w-z

>> 2*v

>> a*w

>> v/w

>> v^2

>> v.*w

>> v./w

>> v.^2

Page 57: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Matrizes

>> A = [1 2 3;4 5 6]

A =

1 2 3

4 5 6

>> A(2,1)

ans =

4

>> A(3)

>> A’

>> length(A)

>> size(A)

>> size(A,1)

>> size(A,2)

Page 58: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Matrizes

>> A = [1 2 3;4 5 6]

A =

1 2 3

4 5 6

>> A(2,1)

ans =

4

>> A(3)

>> A’

>> length(A)

>> size(A)

>> size(A,1)

>> size(A,2)

Page 59: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Matrizes

>> A = [1 2 3;4 5 6]

A =

1 2 3

4 5 6

>> A(2,1)

ans =

4

>> A(3)

>> A’

>> length(A)

>> size(A)

>> size(A,1)

>> size(A,2)

Page 60: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Matrizes

>> A = [1 2 3;4 5 6]

A =

1 2 3

4 5 6

>> A(2,1)

ans =

4

>> A(3)

>> A’

>> length(A)

>> size(A)

>> size(A,1)

>> size(A,2)

Page 61: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Matrizes

>> A = [1 2 3;4 5 6]

A =

1 2 3

4 5 6

>> A(2,1)

ans =

4

>> A(3)

>> A’

>> length(A)

>> size(A)

>> size(A,1)

>> size(A,2)

Page 62: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Matrizes

>> A = [1 2 3;4 5 6]

A =

1 2 3

4 5 6

>> A(2,1)

ans =

4

>> A(3)

>> A’

>> length(A)

>> size(A)

>> size(A,1)

>> size(A,2)

Page 63: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Matrizes

>> A = [1 2 3;4 5 6]

A =

1 2 3

4 5 6

>> A(2,1)

ans =

4

>> A(3)

>> A’

>> length(A)

>> size(A)

>> size(A,1)

>> size(A,2)

Page 64: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Matrizes

>> A = [1 2 3;4 5 6]

A =

1 2 3

4 5 6

>> A(2,1)

ans =

4

>> A(3)

>> A’

>> length(A)

>> size(A)

>> size(A,1)

>> size(A,2)

Page 65: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Operacoes com Matrizes

>> A = [1 2;3 4]

>> B = [2 1;0 3]

>> A+B

>> A-B

>> A*B

>> 2*A

>> B/3

>> A’

>> A.*B

>> A./B

>> A/B

Page 66: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Funcoes basicas

>> eye(n)

>> zeros(m,n)

>> ones(m,n)

>> inv(A)

Page 67: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Dica!

Para que o resultado nao seja mostrado ao final daoperacao, use ; ao final do comando.

Exemplo:

>> sin(pi)

>> sin(pi);

Page 68: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Comentarios

Em um script, podemos comentar nosso codigo, usando o sımbolo%:

a = 1;

% Agora, a variavel a tem valor 1.

Page 69: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Lacos de repeticao

Quando e necessario repetir certo comando de codigo varias vezes,usamos a estrutura for:

for i = 1:3

i

end

Page 70: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

For

Escreva um algoritmo que imprima todos os pares de 1 a 100.

for i = 1:50

2*i

end

Page 71: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Entrada do usuario

Se quisermos que o usuario entre com um valor de variavel,podemos usar o comando input:

>> variavel = input(’Entre com o valor da variavel: ’)

Page 72: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Usuario

Escreva um algoritmo que imprima todos os numeros de 1 a n,onde n e dado pelo usuario.

n = input(’Entre com o numero n: ’);

for i = 1:n

i

end

Page 73: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Lacos de repeticao (2)

Quando e necessario repetir certo comando de codigo varias vezesate que uma certa condicao seja satisfeita, usamos a estruturawhile:

i = 1;

while i < 3

disp(’Mais um.’)

i = i + 1;

end

Page 74: Computa˘c~ao Cient ca com MATLAB - UFSCmtm.ufsc.br/~melissa/20132/epagri/aula_01.pdf · O que e uma linguagem de programa˘c~ao? Uma linguagem de programa˘c~ao traduz um algoritmo

Dica: texto por ındices

Um texto funciona como uma lista (vetor):>> texto = ’Palavra’

>> texto(1) = ’P’

>> texto(2) = ’a’

>> texto(1:2) = ’Pa’

>> length(texto)

>> size(texto)