16
Sistemas Lineares Atividade Prática #2: Programação em MATLAB ® Prof. Dr. Rodrigo da Ponte Caun 1 1 Universidade Tecnológica Federal do Paraná, Apucarana, Paraná, Brasil 1 [email protected] Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 1 / 16

Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Sistemas LinearesAtividade Prática #2: Programação em MATLAB®

Prof. Dr. Rodrigo da Ponte Caun1

1� Universidade Tecnológica Federal do Paraná, Apucarana, Paraná, Brasil1Q [email protected]

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 1 / 16

Page 2: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Sumário

1 Programação

2 Elementos de Programação

3 Nota do autor

4 Referências

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 2 / 16

Page 3: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Programação

Classes sintáticasPalavras reservadas: ‘function’, ‘if’, ‘then’, ‘else’, ‘while’ e ‘for’ são exemplos.Identificadores: palavras utilizadas como nomes de função ou variável.Operadores: composto por sinais operadores.Números: composto por números, símbolos e constantes.Cadeia de caracteres: textos codificados por ‘ ” ’.Texto comentário: texto precedido por %.Texto comentário delimitador de seção de código: texto precedido por %%.

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 3 / 16

Page 4: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Programação

Classes de variáveis[Classe numérica]: double, single, int8, uint8, int16, uint16, int32, uint32, int64, uint64.[Classe não numérica]: logical, char, cell, struct, function_handle.

DicaÉ possível ver a classe de uma variável pelo comando ‘whos’. Em uma programação utiliza-se a função‘class’.

Editor de programasO editor provê os seguintes recursos:

Numeração de linhas: exibida na margem esquerda.Continuidade de instrução: o sinal ‘. . .’ é utilizado para indicar continuidade da instrução napróxima linha.

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 4 / 16

Page 5: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Programação

Editor de programasExibição de texto com cor diferente: palavras reservadas (azul), identificadores (preto), operadores(preto), números (preto), cadeia de caracteres (púrpura) e comentários (verde).Verificação de balanceamento: verifica se os elementos de expressões entre ( ), ” ou [ ] estãobalanceados.Erro de sintaxe: identificação por texto sublinhado do erro com linha “trêmula”.Margem direita: erro de sintaxe (traço vermelho) e aviso de código que pode ser melhorado (traçolaranja).Explicação do erro: aproximar o cursor nos traços exibe a explicação do erro e uma sugestão decorreção.Indentação automática: Pode ser executada por [ctrl+i] (smart-indenting).

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 5 / 16

Page 6: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Programação

Execução de código por seção (cell mode)O conjunto de caracteres %% divide o código de programação em seções destacadas com fundo amarelo,quando o cursor está posicionado sobre a célula.

A execução das células de código são controladas por:[Run and Advance]: executa a célula corrente de código e passa para a próxima.[Run Section]: executa a célula de código corrente e não passa para a próxima.[Advance]: aciona a passagem para a próxima célula.[Run]: executa o código completo.

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 6 / 16

Page 7: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Programação

Depuração de programasO processo de depuração de programa (debug) é definido pela marcação de pontos de interrupção deexecução (breakpoints) ao longo do código. Na suspensão de execução, determinada pelos pontos deinterrupção, é possível inspecionar o conteúdo de variáveis, conferir seus valores e, desta forma, descobrire solucionar erros de programação.

Para definir um breakpoint deve-se indicá-lo na margem esquerda do editor. A demarcação é feita clicandono círculo vermelho.

O sinal de prompt ‘K>>’ é exibido na linha de comando e indica o modo de depuração. Neste caso, épossível observar a janela [Workspace] para monitorar as variáveis.

O prosseguimento pode ser controlador por [F10] que avança a linha de execução, [F5] que avança até opróxima breakpoint, [shift+F5] que sai do modo deputação.

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 7 / 16

Page 8: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Elementos de Programação

Definição de funçõesFunção primária ou principal: contém o código da rotina principal e deve ter o mesmo nome doarquivo no qual está codificada.Função auxiliar: um arquivo de programa pode conter várias funções desde que apenas uma sejaprincipal e as demais auxiliares. As palavras reservadas ‘function’ e ‘end’ indicam o início e o final defunções auxiliares.Função aninhada: uma função pode conter várias funções aninhadas.Função particular: é uma função auxiliar armazenada em um arquivo diferente da rotina principal.

Função usada como parâmetro de entradaAs funções do MATLAB recebem funções como parâmetros de entrada. Outra forma de passagem defunção é o objeto identificador ‘handle’.

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 8 / 16

Page 9: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Elementos de Programação

>> handle=@sin>> integral(handle,0,pi)

O sinal ‘@’ pode definir ainda funções anônimas, por exemplo:>> handle=@(x)x.∧2>> integral(handle,0,1)

Funções‘==’: eq(x,y) ou isequal(x,y).‘∼=’: ne(x,y).‘<’: lt(x,y).‘>’: gt(x,y).‘<=’: le(x,y).‘>=’: ge(x,y).

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 9 / 16

Page 10: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Elementos de Programação

Negação: not(x).E: and(x,y).OU: or(x,y).XOR: xor(x,y).

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 10 / 16

Page 11: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Elementos de Programação

Estruturas de seleção e repetiçãoSintaxe típica

if <Expr.Log><Código1>

else<Código2>

end

if <Expr.Log.1><Código1>

elseif <Expr.Log.2><Código2>

else<Código3>

end

switch <Valor_teste>case <Expr.case1>

<Código1>case <Expr.case2>

<Código2>. . .

case <Expr.case_i><Código_i>

. . .otherwise

<Código_n> end

while <Expr.Log><Código>

end

for v=<Inic>:<Fim><Código>

end

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 11 / 16

Page 12: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Elementos de Programação

1 % Retorna [ Ano Mes Dia Hora Minuto Segundo ] c o r r e n t e2 V = c l o c k ;3 Ano = V(1) ; % Ano c o r r e n t e4 i f mod(Ano , 400 ) == 0 % Testa r e s t o da d i v i s a o por 4005 d i s p l a y ( ’E b i s s e x t o ’ ) ; % Resto e 0 , entao o ano e b i s s e x t o6 e l s e7 i f mod(Ano , 4 ) == 0 && mod(Ano , 100 ) ~= 0 % Testa se r e s t o da d i v i s a o por

4 e por 108 d i s p l a y ( ’E b i s s e x t o ’ ) ; % Resto da d i v i s a o por 4 e 0 e r e s t o da d i v i s a o

por 10 nao e 09 e l s e

10 d i s p l a y ( ’Nao e b i s s e x t o ’ ) ;11 end12 end

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 12 / 16

Page 13: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Elementos de Programação

1 i f mod(Ano , 400 ) == 02 % Resto e 0 , entao o ano e b i s s e x t o3 d i s p l a y ( ’E b i s s e x t o ’ ) ;4 e l s e i f mod(Ano , 4 ) == 0 && mod(Ano , 100 ) ~= 05 % Resto da d i v i s a o por 4 e 06 % e r e s t o da d i v i s a o por 10 nao e 07 d i s p l a y ( ’E b i s s e x t o ’ ) ;8 e l s e9 d i s p l a y ( ’Nao e b i s s e x t o ’ ) ;

10 end

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 13 / 16

Page 14: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Elementos de Programação

Exercício 1Utilize a estrutura switch para criar um código de verificação do dia da semana.

NotaA função today retorna a data de hoje e a weekend o dia da semana da data fornecida.

Exercício 2Elabore um código, na forma de function, tal que para um dado número inteiro a função retorna umamatriz triangular inferior contendo o desenvolvimento do Triângulo de Pascal até n− 1.

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 14 / 16

Page 15: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Nota do autor

O conteúdo desta apresentação é discutido em (MATSUMOTO, 2013).

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 15 / 16

Page 16: Sistemas Lineares Atividade Prática #2: Programação em …paginapessoal.utfpr.edu.br/.../sl64a-1/sl64a/SL64A_slides_Caun_AP2.… · AtividadePrática#2:ProgramaçãoemMATLAB®

Referências

MATSUMOTO, É. Y. Matlab R2013 - Teoria e Programação - Guia Prático. 1. ed. [S.l.]: Érica, 2013. P. 208. ISBN 9788536519401.

Caun, R. P. (UTFPR-AP) SL64A 10 de junho de 2020 16 / 16