Baixe o app para aproveitar ainda mais
Prévia do material em texto
FUNÇÕES – PARTE 2 Recordando Forma geral: r1, r2,...: lista de argumentos de SAÍDA (retorno) arg1, arg2,...: lista de argumentos de ENTRADA funcFon [r1, r2, ...] = nome_fç (arg1, arg2, ...) % comentários ... Código end 1 -‐ Funções Simples (sem parâmetros/sem retorno) 2 -‐ Funções Simples (com parâmetro entrada) 3 -‐ Funções com parâmetro(s) de Entrada e Retorno de um valor 4 -‐ Funções com parâmetro(s) de Entrada e Retorno de valores 5 -‐ Funções com Vetores e Matrizes como parâmetro(s) Funções com parâmetro(s) de Entrada e Retorno de valores Ex.: função para calcular a área e o perímetro de uma circunferência. >> [a, p] = areacirc(4) a = 50.2655 p = 25.1327 func;on [area, circum] = areacirc( r ) % calcula a área e o perímetro de uma % circunferência e retorna ambos area = pi * r * r; circum = 2 * pi * r; end PráFca 1: Faça um script para testar a função do exemplo (função para calcular e retornar a área e o perímetro de uma circunferência, tendo como argumento de entrada o seu raio). PráFca 2: Elabore uma função para calcular e retornar o perímetro e a área de um retângulo. “Passar” o comprimento e a largura do retângulo como argumentos. Faça um script para testar a função. PráFca 3: Implemente uma função para calcular e retornar a soma, a subtração, a mul;plicação e a divisão de 2 números. “Passar” os 2 números como argumentos. U;lizar script. Programas Modulares Um programa modular é um programa cuja solução é “quebrada” em módulos, e cada módulo é implementado como uma função. O script que “chama” estas funções é geralmente chamado de programa principal. Para demonstrar esse conceito, vamos calcular a área de um círculo. São 3 passos no algoritmo: 1. Entrada do raio 2. Cálculo da área 3. Exibir resultado Assim, no programa modular, teremos um script e 3 funções separadas para executar essas tarefas. Programas Modulares 1. Entrada do raio 2. Cálculo da área 3. Exibir resultado Script calcareamodular.m leiaraio mostra calcarea calcareamodular.m % script para calcular % a área de um círculo raio = leiaraio; area = calcarea(raio); mostra(raio, area); leiaraio.m func;on raio = leiaraio ( ) %leitura do raio disp(‘Digite raio: ‘) raio = input(‘Entre com o raio:’); end calcarea.m func;on area = calcarea(r) %calcula area area = pi * r * r; end mostra.m func;on mostra (r, a) %calcula area fprin\(‘Raio = %.2f, \n’, r) fprin\(‘Area = %.2f, \n’, a) end PráFca 1: Implemente!! Verifique erro na entrada do dado. (while) PráFca 2: Para um triângulo retângulo com lados a, b e c, onde c é a hipotenusa com θ o ângulo entre os lados a e c, escreva um script com “chamadas” de funções para 1) ler o valor da hipotenusa e do ângulo; 2) calcular e retornar os comprimentos dos lados a e b ; e 3) uma úl;ma função para mostrar todos os valores formatados com 2 casas decimais. Funções com Vetores e Matrizes como parâmetro(s) Considerando o exemplo para calcular a área de uma circunferência, suponha agora que tenhamos um vetor como parâmetro de entrada: Observe que na função foi u;lizado o operador ponto: .* Tornando o resultado um vetor! func;on area = calcarea ( r ) % calcula e retorna a área de um círculo area = pi * r .* r; end Exemplo: >> calcarea(1:3) ans = 3.1416 12.5664 28.2743 Suponha agora, que tenhamos que armazenar as áreas calculadas em um vetor. Implementar um script para fazer isso. >> area_vet Digite o vetor com os raios da circ.: [1 1.5 2 2.5 3 3.5] Entrada: raio 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 Saída: área 3.1416 7.0686 12.5664 19.6350 28.2743 38.4845 % cálculo da área de um circ. u;lizando vetores clear raio = input('Digite o vetor com os raios da circ.: '); a = calcarea(raio); disp('Entrada: raio'); disp(raio); disp('Saída: área '); disp(a); Funções com Matrizes como parâmetro(s) Considere a soma de 2 matrizes. somamat.m imprimi.m func;on soma = somamat ( m1, m2 ) % calcula e retorna a soma de 2 matrizes soma = m1 + m2; end func;on imprimi( matriz ) %imprimi matriz disp(matriz); end %somar 2 matrizes % imprimir mat1=input('Digite uma matriz: '); mat2=input('Digite outra matriz: '); r = somamat(mat1, mat2); disp('Matriz 1: '); imprimi(mat1); disp('Matriz 2: '); imprimi(mat2); disp('Matriz soma: '); imprimi(r); somamatriz.m PráFca: Elabore um script para mul;plicar 2 matrizes. Ler as dimensões das matrizes e em seguida, faça funções para: -‐ ler os elementos de uma matriz; -‐ mul;plicar as matrizes (quando possível!!) Pode u;lizar * -‐ imprimir uma matriz Sempreque possível, implemente as funções com passagem de parâmetros e retorno de valores.
Compartilhar