Buscar

Controle de Entrada e Saida

Prévia do material em texto

Programação para Engenharia 
Trabalho III 
Victor Soares Braz 
 
1.1 break termina a execução de um loop (repetição) for ou while. A(s) 
afirmações e/ou 
operações que vem depois do break não são executadas. Nos loops 
aninhados, break sai 
apenas do loop em que ele ocorre. Controle passa para a instrução que segue 
o fim 
desse ciclo. 
Ex: 
>> for k = 1:5 
if k == 3; 
break; 
end 
fprintf('k = %d\n',k); 
end 
disp('FIM DO LAÇO'); 
k = 1 
k = 2 
FIM DO LAÇO 
COM CONTINUE RETIRAR ISTO ABAIXO PARA ENVIAR 
for k = 1:5 
if k == 3; 
continue; 
end 
fprint('k = %d\n',k); 
end 
disp('FIM DO LAÇO'); 
1.2- return gera um retorno normal da função de chamada ou para o teclado. 
Ele também 
termina o modo de teclado. 
Ex: 
>> for i = 1:5, 
if i==5 
returnend 
i 
end 
i = 1 
i = 2 
i = 3 
i = 4 
1.3- eval executa uma expressão válida do Matlab em string texto. 
Ex: 
eval('f = sin(pi)') 
>>fori = 1:5 
ifi==5 
eval ('i=3') 
break 
end 
end 
i = 3 
1.4- feval(avalia função) avalia os valores dados para a função em questão 
Ex: 
>>feval('sin',[0]) 
ans = 0 
>>feval('sin',[pi/6]) 
ans = 0.5000 
1.5- evalinexecuta expressão do Matlab especificada no workspace 
Ex: 
1.6- builtinexecuta função interna do método sobrecarregado 
Ex: 
>>builtin('sin',[pi/2]) 
ans = 1 
1.7- assigninatribui valor à variável especificada no workspace. 
Ex: 
prompt = {'Enterimagename:', 'Entercolormapname:'}; 
title = 'Image display - assigninexample'; 
lines = 1; 
def = {'my_image', 'hsv'}; 
answer = inputdlg(prompt, title, lines, def); 
assignin('base', 'imfile', answer{1}); 
assignin('base', 'cmap', answer{2}); 
1.8- runroda, executa um script do Matlab 
Ex: 
>> run ('C:\Documents and Settings\thais\Desktop\teste') 
ans= -11.9- scriptfunction 
1.10- globaladiciona uma variável no código como variável global, tornando 
possível que 
todos os códigos tenham acesso a ela e as mudanças que a ela ocorrerem 
será igual 
para qualquer que a use. 
Ex: 
>> global t 
>> t=58 
t = 58 
1.11- mfilenamenome do arquivo de função atualmente em execução 
Ex: 
>>p = mfilename('fullpath') 
p = ' ' 
1.12- listsexistretira e separa múltiplos valores de vetores ou estruturas, 
separando-os 
com virgula. 
>> k=[1:5] 
k =1 2 3 4 5 
>> v=['w x y z '] 
v = w x y z 
1.13- isglobaldetermina se a variável de entrada é global. Retorna lógico 1 
(verdadeiro) se 
certa variável foi declarada uma variável global no contexto do qual isGlobal é 
chamado, e 
lógico 0 (falso), caso contrário. 
Ex: 
isglobal(t) 
ans = 1 
1.14- nargchk valida números de argumentos de entrada. 
Ex: 
functionmultiplicacao(x,y) 
m = x*y 
ms = nargchk(minargs, maxargs,5,9) 
1.15- nargindentro do corpo de uma função definida pelo usuário, o comando 
nargin 
retorna o número de argumentos de entrada que foram usados para chamar a 
função. 
Ex: 
erro (nargchk( nargin, 'estrutura')) 
1.16- nargoutdentro do corpo de uma função definida pelo usuário, nargout 
retorna o 
número de argumentos de saída que foram usadas para chamar a função. 
Ex: 
nargout(fun) 
1.17- vararginpermite que qualquer número de argumentos para uma função. A 
variável 
varargin é um conjunto de células que contém os argumentos opcionais para o 
função 
Ex: 
função myPlot (x, varargin) 
plot (x, varargin {:})1.18- varargoutapresenta o comprimento da variável e lista 
de argumentos de saída. 
1.19- inputnamenome da variável de entrada da função 
Ex: 
inputname (argnum) 
1.20- errorexibir mensagem e abortar função 
Ex: 
err = MException.last 
err = 
MException 
Properties: 
identifier: 'myApp:argChk' 
message: 'Wrong number of input arguments' 
cause: {} 
stack: [1x1 struct] 
Methods 
err.stack 
ans = 
file: 'c:\work\errtest1.m' 
name: 'errtest1' 
line: 3 
1.21- warningimprimir mensagem de aviso 
Ex: 
>>warning('oi') 
Warning: oi 
1.21- lasterrùltima mensagem de erro 
Ex: 
function matrix_multiply(A, B) 
try A * Bcatch 
errmsg = lasterr; 
if(strfind(errmsg, 'Inner matrix dimensions')) 
disp('** Wrong dimensions for matrix multiply') 
else 
if(strfind(errmsg, 'not defined for variables of class')) 
disp('** Both arguments must be double matrices') 
end 
end 
end 
1.22- errortrap 
1.23- sprintfformatar dados em cadeia 
Ex: 
fprintf(fid,'Ola 3 2 1 7.4\r\n'); 
1.24- uimenucria menus e itens de menu da figura janela 
Ex: 
% Criar o UICONTEXTMENU 
CMenu = uicontextmenu; 
% Criar o menu pai 
fontmenu = uimenu (CMenu, 'label' , 'fonte' ); 
% Criar os submenus 
font1 = uimenu (fontmenu, 'label' , 'Helvetica' , 'Callback' , 'HelvFont' ); 
font2 = uimenu (fontmenu, 'label' , 'Monospace' , 'Callback' , 'MonoFont' ); 
set (GCF, 'uicontextmenu' , CMenu) 
1.25- uicontrolcria usuário objeto de controle de interface 
Ex: 
figurehax = axes('Units','pixels'); 
surf(peaks) 
Coloque um objeto uicontrol para permitir aos usuários alterar o mapa de cores 
com um menu pop-up. Fornecer uma alça função como propriedade Callback 
do objeto: 
uicontrol('Style', 'popup',... 
'String', 'jet|hsv|hot|cool|gray',... 
'Position', [20 340 100 50],... 
'Callback', @setmap); % Popup function handle callback 
1.26-dbstopdefine pontos de interrupção para depuração 
função z = bugs (x) 
n = comprimento (x); 
z =. (1: n) / x; 
2) Defina e dê exemplos para cada um dos comandos utilizados na aula. 
Ex: 
Fopen e fclose 
>>fid = fopen('abreefecha.txt','r'); 
A=fread(fid,Inf,'uint8=>char')' 
fclose(fid); 
A =abrindo e fechando arquivos pelo matlab 
If, elseelseif e end 
>> c=input('Informe o primeiro valor: '); 
d=input('Digite o segundo valor: '); 
if c == d 
disp('Os valores sao iguais'); 
elseif c<d 
disp('O valor de c e menor que o valor de d'); 
elseif c>d 
disp('O valor de c e maior que o valor de d'); 
else 
disp('Os valores sao diferentes e nao foi possivel compara-los'); 
end 
Informe o primeiro valor: 6 
Digite o segundo valor: 2 
O valor de c e maior que o valor de d 
For, end 
for i=1:5 
for j=1:5 
c(i,j)=1+j; 
d(i,j)=i-j; 
end 
e=c+d;while 
>> a=3; 
b=5; 
while a <= b 
a=a*2; 
b=b-1; 
display(a); 
display(b); 
end 
a = 
6 
b = 
4 
3) Crie uma tabela em formato .txt utilizando o matlab com o nome de 10 
alunos, notas de 
3 avaliações e média final. 
fid = fopen('tab.txt','w'); 
fprintf(fid,'Jose 7 8 9 8\r\n'); 
fprintf(fid,'Thais 6 7 9 7.3\r\n'); 
fprintf(fid,'Guilherme 5 7 8 6.6\r\n'); 
fprintf(fid,'Aline 8 10 6 8\r\n'); 
fprintf(fid,'Anderson 3 10 8 7\r\n'); 
fprintf(fid,'Eder 8 7 8 7.6\r\n'); 
fprintf(fid,'Leonardo 9 4 4 5.6\r\n'); 
fprintf(fid,'Frederico 10 8 8 8.6\r\n'); 
fprintf(fid,'Leticia 7.8 7 5 6.6\r\n'); 
fprintf(fid,'Samara 10 6 8 8\r\n'); 
O Arquivo gerado foi: 
Jose 7 8 9 8 
Thais 6 7 9 7.3 
Guilherme 5 7 8 6.6 
Aline 8 10 6 8 
Anderson 3 10 8 7 
Eder 8 7 8 7.6 
Leonardo 9 4 4 5.6 
Frederico 10 8 8 8.6 
Leticia 7.8 7 5 6.6 
Samara 10 6 8 84- Leia o arquivo criado no exercício anterior usando o matlab 
e crie uma rotina para 
calcular a média de cada prova e a média final. Salve estas médias em um 
arquivo xls. 
clc; clearall; close all; 
%abre arquivo do exercício 3 
[nomes, p1, p2, p3, pmedio]=textread('tab.txt','%s %f %f %f %f'); 
% média da P1 
p1m=mean(p1); 
% média da P2 
p2m=mean(p2); 
% média da P3 
p3m=mean(p3); 
% média final 
p4m=mean(pmedio); 
% salva dados em arquivo xls 
xlswrite('tab_media.xls',[p1m,p2m,p3m,p4m]);

Outros materiais