Sistemas Lineares Atividade Prática #2: Programação em...
Transcript of Sistemas Lineares Atividade Prática #2: Programação em...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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