Buscar

Aula_07_matlab_programa__o

Prévia do material em texto

UNIJUÍ – Universidade Regional do Noroeste do 
Estado do Rio Grande do Sul
EGE – Engenharia Elétrica
DCEEng – Departamento de Ciências Exatas e Engenharias
Algoritmos
Introdução à Programação 
Utilizando MATLAB
Professor: Mauro F. Rodrigues
Organização inicial: Prof. Maurício de Campos 
Adaptado por: Prof. Mauro F. Rodrigues
Programação
• Clique abaixo para abrir o editor de arquivos do 
Matlab
Programação
• O Editor de arquivos do Matlab
Área de 
edição
Salvar e 
rodar o 
arquivo
v1=input('Informe um valor: ');
% Informe um valor real: 1.23
v2=v1+2
fprintf('O valor informado foi %2.2f e v2=v1+2= %d\n',v1,v2)
disp('fim')
%ir para slide 10
Entrada e Saída de Dados
(Funções Estruturadas) (Continuação)
→→→→ Função fprintf()
Formato:
fprintf(‘string-formatação’, <lista de parâmetros>);
Exemplos:
>> fprintf('O valor de pi eh: %2.7f',pi)
O valor de pi eh: 3.1415927
>> fprintf('Calculo: %d + %d = %d',A,B,C)
Calculo: 2 + 5 = 7
Especificação de formato
Entrada e Saída de Dados
(Funções Estruturadas) (Continuação)
Especificação de Formato
% - 12.5 e
Marcador
(Obrigatório)
Modificador
(Opcional)
Comprimento 
do campo
(Opcional)
Precisão
(Opcional)
Descritor de 
formato
(Obrigatório)
Entrada e Saída de Dados
(Funções Estruturadas) (Continuação)
Especificação de Formato
Conversão de formato para a função fprintf
Entrada e Saída de Dados
(Funções Estruturadas) (Continuação)
Especificação de Formato
Marcadores de Formato
Exemplos:
>> fprintf('%d',123)
123
>> fprintf('%6d',123)
123
>> fprintf('%-6d',123)
123 
>> fprintf('%+6d',123)
+123
>> fprintf('%06d',123)
000123
Entrada e Saída de Dados
(Funções Estruturadas) (Continuação)
Especificação de Formato
Caracteres Especiais para a função fprintf
Exemplo:
>> fprintf('O valor em %% e \n %d',123)
O valor em % e 
123
Entrada e Saída de Dados
(Funções Estruturadas) (Continuação)
→→→→ Função input()
Formato:
var = input(‘string’);
Exemplos:
>> v1=input('Informe um valor: ');
Informe um valor: 1.23
>> v2=input('Informe um valor: ','s');
Informe um valor: 1.23
>> v3=v1+2
v3 =
3.2300
>> v4=v2+2
v4 =
51 48 52 53
>> setstr(v4)
ans =
3045
Armazena em v2 o valor 
informado na forma de uma 
cadeia de caracteres 
Entrada e Saída de Dados
(Funções Estruturadas) (Continuação)
Slide 10
→→→→ Exercício: Grave e execute o seguinte 
programa:
disp('Programa para teste da funçoes de entrada e saida');
A=input('Informe o valor de A: ');
B=input('Informe o valor de B: ');
C=A*B;
fprintf('O resultado da multiplicacao de %f por %f eh %f',A,B,C)
Estruturas de Comando
→→→→ Estrutura de comando:
if <expressao>
<comandos>
end
→Descrição: A simples estrutura if-end executa os 
comandos enquanto a expressão for verdadeira ou 
não nula.
→Similar ao desvio condicional simples do Visualg: 
se-então-fimse
Estruturas de Comando 
(Continuação)
Exemplo:
Criar um programa que efetue a leitura de dois valores 
numéricos. 
Faça a operação de soma entre os dois valores.
Apresente o resultado somente se este for maior que 10.
Estruturas de Comando 
(Continuação)
A = input('Qual o valor de A? \n');
B = input('Qual o valor de B? \n');
X = A + B;
if (X > 10)
fprintf('O valor de X eh %d.',X);
end
X
Qual o valor de A?
A
Qual o valor de B?
B
X�A+B
Início
Fim
Se X>10 S
N
Estruturas de Comando 
(Continuação)
→→→→ Estrutura de comando:
if <expressao>
<instr. se expr. verd.>
else
<instr. se expr. falsa>
end
→Descrição: A estrutura if-else-end é dividida em 
duas partes: a primeira será executada se a 
expressão for verdadeira ou não nula e a segunda se 
a expressão for falsa ou nula.
→Similar ao desvio condicional simples do Visualg: se-
então-senao-fimse
Estruturas de Comando 
(Continuação)
Exemplo
Escrever um programa que lê três valores 
correspondentes aos lados de um triângulo. 
Verificar se os valores realmente formam um triângulo. 
Se a condição for verdadeira, classificar o triângulo quanto 
ao tipo.
Estruturas de Comando 
(Continuação)
A = input('Qual o valor de A? \n');
B = input('Qual o valor de B? \n');
C = input('Qual o valor de C? \n');
if (A<(B+C)) & (B<(A+C)) & (C<(B+A))
if (A==B) & (B==C)
fprintf('\nTriangulo Equilatero');
else
if ((A==B) | (A==C) | (B==C))
fprintf('\nTriangulo Isosceles');
else
fprintf('\nTriangulo Escaleno');
end
end
else
fprintf('\nAs medidas nao formam um triangulo.');
end
Estruturas de Comando 
(Continuação)
→Similar ao desvio condicional com várias opções do 
Visualg: escolha-caso
→Estrutura de comando:
switch (<variável>)
case valor_1,
<comandos>
case valor_2,
<comandos>
otherwise,
<comandos>
end
Estruturas de Comando 
(Continuação)
→→→→ Exemplo:
cor = input('Informe uma cor: ','s');
switch (cor)
case 'vermelho',
disp('Pare!');
case 'amarelo',
disp('Prepare para parar!');
case 'verde',
disp('Siga!');
otherwise,
disp('Cor invalida')
end
Estruturas de Comando 
(Continuação)
→→→→ Similar ao desvio condicional com várias opções do 
Visualg: para
→→→→ Estrutura de comando:
for x = arranjo 
<comandos>
end
→→→→ Descrição: As repetições dos comandos serão feitas 
desde a primeira coluna do arranjo (matriz ou sequência) 
até a última.
Estruturas de Comando 
(Continuação)
→→→→ Exemplo
Escrever um programa que leia um número qualquer e 
calcule o seu fatorial:
N = input('Qual o valor de N? ');
fat = 1;
for x = 1:N
fat = fat * x;
end
fprintf('O fatorial de %d eh %d.',N,fat)
Estruturas de Comando 
(Continuação)
→→→→ Similar ao desvio condicional com várias opções do 
Visualg: enquanto
→→→→ Estrutura de comando:
while <expressao>
<comandos>
end
→→→→ Descrição: As repetições serão feitas enquanto a 
expressão for verdadeira ou não nula.
Estruturas de Comando 
(Continuação)
Exemplo
Escrever um programa que calcule a média dos valores 
indicados. 
Terminar o programa quando indicado um número 
negativo.
Estruturas de Comando 
(Continuação)
soma = 0;
x = 0;
n = input('Digite um numero: ');
while n > 0
soma = soma + n;
x = x + 1;
n = input('Digite um numero: ');
end
media = soma/x;
fprintf('A media dos valores informados eh %d.',media );
Estruturas de Comando 
(Continuação)
→→→→ Estrutura de comando:
break
→→→→ Descrição: Termina a execução das repetições for
e while.
Estruturas de Comando 
(Continuação)
Exemplo
Escrever um programa que efetue a leitura de 10 valores 
positivos e os armazene em um vetor. 
Se um número negativo for indicado, terminar o programa 
com um aviso de erro.
Estruturas de Comando 
(Continuação)
t=10
for x = 1:10
fprintf('Digite o elemento %d do vetor Z: ',x);
Z(x) = input(' ');
if Z(x)<0
fprintf(‘\n\nERRO\n\n');
t = x - 1;
break
end
end
disp('O vetor informado foi:');
for x = 1:t
fprintf(' %d \n',Z(x));
end
Funções MATLAB
→→→→ Arquivo de Script: coleção de declarações armazenada 
em arquivo, cujo resultado é o mesmo se as instruções 
forem executadas diretamente na Janela de Comandos, 
e que compartilha o espaço de trabalho da Janela de 
Comandos. 
→→→→ Função MATLAB: tipo especial de arquivo M executado 
em um espaço de trabalho independente e que recebe 
dados de entrada por meio de uma lista de argumentos 
de entrada e retorna resultados através de uma lista de 
argumentos de saída.
Funções MATLAB (Continuação)
→→→→ Estrutura da Função:
function [arg_s1,arg_s2,...]=nome_funcao (arg_e1,arg_e2,...)
% L1 - Comentario Resumo
% L - Comentarios Utilizacao
< comandos >
→→→→ Descrição: A declaração function determina o início da 
função, onde sãoespecificados o nome da função e as listas de 
argumento de entrada (entre parênteses após o nome da função) 
e de saída (entre colchetes à esquerda do sinal de igual. No caso 
de um único argumento de saída não é necessária a colocação 
de colchetes).
Funções MATLAB (Continuação)
→→→→ Comentários de uma função: 
% A primeira linha de comentário, L1, deve conter um resumo 
de uma linha do objetivo da função. Esse comentário será 
encontrado e exibido pelo comando lookfor.
% As demais linhas de comentário devem conter um resumo 
breve sobre a utilização da função. Esses comentário serão 
encontrados e exibidos pelo comando help.
function [arg_s1,arg_s2,...]=nome_funcao (arg_e1,arg_e2,...)
% L1 - Comentario Resumo
% L - Comentarios Utilizacao
< comandos >
Funções MATLAB (Continuação)
Exemplo
Desenvolver uma função para calcular a distância entre 
dois pontos (x1,y1) e (x2,y2) em um sistema de 
coordenadas cartesianas.
Funções MATLAB (Continuação)
Função
function distance = dist (x1,y1,x2,y2)
% DIST calcula a distancia entre dois pontos
% A funcao DIST calcula a distancia entre dois pontos
% (x1,y1) e (x2,y2) em um sistema de coordenadas
% cartesianas.
%
% Definicao de variaveis:
% x1 - posicao do ponto 1 com relacao ao eixo das abcissas
% y1 - posicao do ponto 1 com relacao ao eixo das ordenadas
% x2 - posicao do ponto 2 com relacao ao eixo das abcissas
% y2 - posicao do ponto 2 com relacao ao eixo das ordenadas
% 
distance = sqrt((x2-x1)^2+(y2-y1)^2);
Funções MATLAB (Continuação)
% TEST_DIST testa a funcao dist
% O programa TEST_DIST testa a funcao DIST que calcula a 
% distancia entre dois pontos (x1,y1) e (x2,y2) 
% Definicao de variaveis:
% xa - posicao do ponto 1 com relacao ao eixo das abcissas
% ya - posicao do ponto 1 com relacao ao eixo das ordenadas
% xb - posicao do ponto 2 com relacao ao eixo das abcissas
% yb - posicao do ponto 2 com relacao ao eixo das ordenadas
% d - distancia entre os pontos
% program test_dist
% var
% d, xa, xb, ya, yb: float
disp('CALCULO DA DISTANCIA ENTRE DOIS PONTOS');
xa = input('\nInforme o valor do ponto x1: ');
ya = input('Informe o valor do ponto y1: ');
xb = input('Informe o valor do ponto x2: ');
yb = input('Informe o valor do ponto y2: ');
d = dist(xa,ya,xb,yb);
fprintf('\nA distancia entre os dois pontos informados eh: %f \n.',d);
Exercício 1
• Escreva um algoritmo que receba 
números do usuário e imprima o triplo de 
cada número digitado. O algoritmo deve 
encerrar quando o número –999 for 
digitado.
Exercício 2
• Escreva um algoritmo que receba 
números do usuário e imprima o 
quadrado de cada número digitado. O 
programa deve rodar até que o usuário 
tenha inserido cinco números que sejam 
múltiplos do número 6. 
Exercício 3
• Seja R uma matriz 5X5, preenchida com 
zeros (0), Coloque uma sequência 
iniciando por 1 em sua diagonal principal. 
Apresente o resultado na tela. 
Exercício 4
• Fazer um programa para encontrar todos 
os pares de números amigáveis entre 1 e 
500000. Um par de números é amigável 
quando cada um deles é igual à soma 
dos divisores do outro. 
Exercício 5
• Elabore um programa que leia um valor 
de ângulo (matlab faz em radiano) e 
solicite ao usuário se quer fazer tangente, 
seno ou cosseno daquele ângulo. O 
programa deve terminar quando for 
digitado um valor menor que 0 ou maior 
que 2, pois estaria fora do círculo de 0 a 
2*pi.
Exercício 6
• Elaborar uma função que receba como 
parâmetros, a freqüência, o número de 
pontos e o tempo de simulação e retorne 
dois vetores, um contendo o tempo e 
outro contendo a amplitude de uma onda 
triangular simétrica de amplitude 1. 
Desenvolver também um programa em 
Matlab que invoque a função criada e 
plote um gráfico com os pontos da onda 
triangular retornados pela função.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes