Você está na página 1de 23

UNIVERSIDADE DO EXTREMO SUL CATARINENSE

ENGENHARIA MECNICA

Programao para a Engenharia Prof. Esp. Gilberto Vieira da Silva

Rotinas (M-Files)

Rotinas (M-Files)
Todos os comandos so executados na Command Window
Inconveniente de executar apenas uma linha de comando por vez. Dificuldade para elaborar programas mais complexos

Rotinas (M-Files)
Uma sequncia de comandos pode ser mantida em um arquivo com a extenso .m, definindo desta forma uma rotina (programa) Quando o nome do programa (arquivo) for executado na Command Window, a sequencia de comandos ser executada automaticamente.

Exemplo
perc_valor.m
% - Este programa calcula o percentual que um % valor representa sobre um total total = 350.00 valor = 35.00; perc = (valor * 100) / total

Definindo o programa
1. Abra o Editor de Scripts localizado no menu File >> New >> Script 2. Salve o arquivo em [../MATLAB/R2010b/bin] com o nome perc_valor.m 3. No arquivo, informe a sequencia de comandos que deve ser executada para resolver o problema proposto, conforme slide anterior. Aps a alterao salve o programa. 4. Na Command Window digite: >> perc_valor 5. Observe que a sequencia de comandos ser executada e o resultado ser apresentado

Definindo o programa
Qual a vantagem de utilizar uma rotina em vez de informar sequencialmente o algoritmo na Command Window?
Definio de um programa padro que pode ser executado inmeros vezes. Uso de variveis para definir parmetros de entrada, permitindo que o resultado obtido esteja condicionado a esta entrada.

Exemplo
perc_valor.m
% - Este programa calcula o percentual que um % valor representa sobre um total - A funo input permite enviar total = input('Informe o total: '); uma mensagem ao usurio valor = input('Informe o valor: '); solicitando algum dado. - O valor informado por este perc = (valor * 100) / total
usurio ser atribudo a varivel.

Definindo o programa
Todas as variveis declaradas dentro da rotina podem ser visualizadas e manipuladas aps a sua execuo, atravs da janela Command Window. Este comportamento conhecido como varivel global. Exemplo:

Funo: fprintf
Envia mensagens de texto para a janela Commad Window. Exemplos: >> fprintf('Uma mensagem de texto'); >> fprintf('Mensagem linha1 \nMensagem linha2\n'); >> x = 25.346; >> fprintf('O resultado : %-5.2f \n', x); >> fprintf('O resultado : %-5.3f \n', x); >> fprintf('O resultado : %-5.2i \n', x);

Funo: fprintf
A combinao de texto e nmero ocorre da seguinte forma:

Elementos de formatao

Funo: fprintf
Possibilidades para a formatao de nmeros

Definindo o programa
As rotinas podem conter uma sada padro que ser apresentada ao usurio permitindo que uma mensagem seja associada ao resultado. Exemplo: perc_valor.m % - Este programa calcula o percentual que um % valor representa sobre um total total = input('Informe o total: '); valor = input('Informe o valor: '); perc = (valor * 100) / total; fprintf('O resultado : %-5.2f \n', perc);

Exemplo prtico
Implemente a seguinte rotina: lanc_projetil.m
% Este programa calcula o alcance de lanamento de um projtil, % dados a velocidade inicial e o ngulo de lanamento. % Neste exemplo, o comando fprintf utilizado para exibir texto e nmeros v = 1584; % Velocidade inicial em Km/h ang = 50; % Angulo em graus vms = v * 1000/3600; % Calcula a velocidade em m/s t = vms * sin(ang*pi/180)/9.81; % Calcula o tempo d = vms * cos(ang*pi/180)*2*t/1000; % Calcula a distancia fprintf('O projtil foi lanado %3.2f graus, com velocidade \ninicial de %4.2f km/h, e a atingira o \nsolo a uma distncia de %g km\n', ang, v, d);

Manipulao de Arquivos

Manipulao de Arquivos
A funo fprintf pode ser utilizada para gravar os resultados de sada em arquivos. Os dados salvos podem ser utilizados posteriormente no MATLAB ou por outras aplicaes. So necessrios apenas trs passos para criar um arquivo com MATLAB.
Abrir um arquivo com o comando fopen; Escrever a sada no arquivo aberto utilizando a funo fprintf; Fechar o arquivo com o comando fclose.

Manipulao de Arquivos
Exemplo prtico: % Exemplo de um programa que escreve dados % em um arquivo >> % Abre o arquivo >> file = fopen('teste.txt', 'w'); >> % Escreve dados no arquivo >> fprintf(file,'Linha 1\nLinha2\nLinha3'); >> fprintf(file,'\nAutor: Gilberto Vieira da Silva'); >> %Fecha o arquivo >> fclose(file);

Manipulao de Arquivos
Permisses para manipulao do arquivo
Define a permisso para acessar os dados do arquivo

Permisses
r Abrir o arquivo apenas para leitura (default) w Abrir o arquivo para escrita. Se o arquivo existir, seu contedo ser excludo. Caso contrrio um novo arquivo ser criado. a Idntico a permisso w, exceto que, se o arquivo existir, o dado ser anexado ao contedo existente neste arquivo.

Manipulao de Arquivos
Exemplo de permisses:

Altere o programa anterior, informando as opes r, w e a.

Exerccios

Exerccios
1) Escreva uma rotina que determine o saldo de uma conta poupana no final de um determinado ano. Considere que a conta no ser movimentada durante 10 anos, que o investimento inicial R$ 1.000.00 e que a taxa anual de juros 6.5%. Supondo que o investimento inicial seja A e a taxa de juros r, o saldo da conta B aps n anos dado por: O resultado obtido com a execuo desta funo deve ser algo semelhante :

Exerccio
2) Transforme o clculo matemtico abaixo em uma rotina, considerando que o valor a ser completado no reservatrio seja informado pelo usurio (Ex. 2/3).
Uma torneira enche um tanque em 3 horas e uma segunda torneira pode faz-lo em 15 horas. Qual ser o tempo necessrio para encher 2/3 do reservatrio se as duas torneiras forem ligadas simultaneamente? A resposta deve ser apresentada em minutos;

Exerccio
2) Continuao:

Você também pode gostar