Prévia do material em texto
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
PROGRAMAÇÃO DE
COMPUTADORES
Prof. Jean Carvalho
Email: jeancarvalho@ufsj.edu.br
Site: sites.google.com/site/jeancarvalhoufsj
Sala: 4.29EL
Aula 18
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Índice
Matlab/Octave
Modularização
Sub-rotinas
Funções
2
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Modularização
Tipos de módulos:
Sub-rotina: código modularizado;
Função: código modularizado que retorna um
valor.
3
S1 S2
MP
F1 F2
S3 F3 S4 F4
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Arquivos .m tipo function
Admitem parâmetros de entrada;
Retornam valores;
Possuem variáveis locais;
O arquivo tipo function também tem que
ter extensão .m e deve ter o mesmo nome
usado na definição da função.
Modularização
4
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
▸Sintaxe
5
Sub-rotina
function <nome da sub-rotina>(var. de entrada)
function CalculaArea(base,altura)
%Sub-rotina para o cálculo da área de um triângulo
%variáveis de entrada: base, altura
resultado = (base*altura)/2;
fprintf('A area do triangulo e = %f',resultado)
end
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
6
▸A chamada de uma sub-rotina é feita pelo nome e pela
indicação dos parâmetros atuais no local do algoritmo
onde a sub-rotina dever ser ativada;
▸Forma geral para o comando de ativação de uma sub-
rotina:
Sub-rotina
<nome da sub-rotina>(var. de entrada)
H=5;
B=10;
CalculaArea(B,H)
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
7
▸01: Escreva um programa que receba um valor de
temperatura em graus Fahrenheit e imprima na tela o
valor da temperatura em graus Celsius.
Conversão: C = 5*((F-32)/9).
Sub-rotina
%Declaração de variáveis
%Leitura do valor de temperatura digitado
%Cálculo e impressão da temperatura em °C
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
8
▸02: Escreva um programa que receba um valor de
temperatura em graus Fahrenheit e imprima na tela o
valor da temperatura em graus Celsius.
Conversão: C = 5*((F-32)/9).
Sub-rotina
%Declaração de variáveis
%Leitura do valor de temperatura digitado
%Ativação da sub-rotina de conversão e impressão
%Declaração da sub-rotina de conversão e impressão
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
▸As funções são bastante semelhante às sub-rotinas, mas
retornam ao algoritmo que as chamou um valor associado
ao nome da função. Sintaxe:
Função
9
function [var.saída]=<nome da função>(var. de entrada)
function [resultado]=CalculaArea(base,altura)
%Função para o cálculo da área de um triângulo
%variáveis de entrada: base, altura
resultado = (base*altura)/2;
end
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
10
▸A chamada de uma função é feita pelo nome e pela
indicação dos parâmetros atuais no local do algoritmo
onde a sub-rotina dever ser ativada;
▸Forma geral para o comando de ativação de uma função:
Sub-rotina
<nome da sub-rotina>(var. de entrada)
H=5;
B=10;
area=CalculaArea(B,H)
fprintf('A area do triangulo e = %f',area)
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
11
▸03: Escreva um programa que receba um valor de
temperatura em graus Fahrenheit e imprima na tela o
valor da temperatura em graus Celsius.
Conversão: C = 5*((F-32)/9).
Função
%Declaração de variáveis
%Leitura do valor de temperatura digitado
%Ativação da função de conversão
%Impressão dos dados
%Declaração da função de conversão
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
▸04 Escreva um programa que receba dois valores a e b,
faça por meio de uma função a troca dos valores e
imprima os valores trocados na tela.
▸05 Fazer um programa com uma função para cálculo
da área e uma função para cálculo do volume de uma
esfera. O programa deve ler o valor do raio e mostrar os
resultados com 2 casas decimais no seguinte formato:
Área = <valor>; Volume = <valor>
𝐴 = 4𝜋𝑟2 𝑉 =
4
3
𝜋𝑟3
12
Exemplo
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
Exemplo
06 Faça um programa que leia duas
matrizes, verifica e mostra por meio de
sub-rotina se as seguintes multiplicações
de matrizes são possíveis (informar o
porquê caso alguma não seja possível):
Primeira matriz vezes segunda;
Segunda matriz vezes primeira;
Primeira matriz ao quadrado;
Segunda matriz ao quadrado.
13