Escolar Documentos
Profissional Documentos
Cultura Documentos
Escopo de
variáveis
Chamada de
funções
Procedimentos
Algoritmos e estruturas de dados I Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Univ. Fed. de São João Del-Rei Vetores
Exercícios
Matrizes
14 de maio de 2015
Strings
Registros
Arquivo
1 / 54
Sumário
Funções
Escopo de variáveis Funções
Escopo de
Chamada de funções variáveis
Chamada de
funções
Procedimentos Procedimentos
Exercícios
Exercícios Retornando mais
de uma variável
Retornando mais de uma variável Exercicio -
laboratório
Exercicio - laboratório Exercício - xação
Funções - parte 2
Exercício - xação Variáveis globais
Vetores
Funções - parte 2
Exercícios
Variáveis globais Matrizes
Vetores Strings
Exercícios Registros
Matrizes Arquivo
Strings
Registros
Arquivo
2 / 54
Função - visão geral
Funções
Escopo de
variáveis
Visão geral de uma função em MATLAB: Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
1 function < variavel resultado > = ... Exercício - xação
Funções - parte 2
nome_funcao ( < entrada 1> , < entrada 2 > , ... ... Variáveis globais
4 end Arquivo
3 / 54
Exemplo de função
Funções
1 function t = alturamaxima ( v0 , theta0 ) Escopo de
variáveis
Chamada de
2 % Calcula o tempo necessario para um corpo com funções
Procedimentos
3 % vel. v0 e angulo theta0 atingir altura maxima Exercícios
Retornando mais
de uma variável
4 g = 9 .81 ; % gravidade Exercicio -
laboratório
5 th0 = deg2rad ( theta0 ) ; % converte para radianos Exercício - xação
Funções - parte 2
6 t = 0; Variáveis globais
7 dt = 0 .01 ; Vetores
Exercícios
8 while true Matrizes
9 y1 = v0 * sin ( th0 ) * t - g *t ^2/2; Strings
10 t = t + dt ; Registros
12 if y2 < y1
13 break ;
14 end
15 end 5 / 54
Escopo de variáveis
5 end Strings
Registros
Arquivo
1 >> x = 10;
2 >> z = exemplo ( x ) ;
3 >> fprintf ( '% f \ n ', a ) ;
6 / 54
Escopo de variáveis
3 z = x; Matrizes
4 end Strings
Registros
Arquivo
1 >> x = 10;
2 >> z = exemplo ( x ) ;
3 >> fprintf ( '% f \ n ', x ) ;
7 / 54
Escopo de variáveis
Funções
Escopo de
variáveis
1 >> x = 10; Chamada de
funções
Procedimentos
2 >> z1 = funcao1 ( x ) ; Exercícios
Retornando mais
de uma variável
Exercicio -
Main funcao1 laboratório
1 % Arquivo funcao1.m : Exercício - xação
8 / 54
1 % Arquivo funcao1.m :
2 function z = funcao1 ( x ) main local
funcao
x = 2* x ;
main
3
4 z = x; x z1 z2 z3 x z Funções
Escopo de
15 variáveis
5 end 16 Chamada de
funções
6 % Arquivo funcao2.m : 2 Procedimentos
Exercícios
7 function z = funcao2 ( x ) 3 Retornando mais
de uma variável
8 x = x ^2; 4 Exercicio -
laboratório
9 z = x; 16 Exercício - xação
Funções - parte 2
17 Variáveis globais
10 end 7 Vetores
11 % Arquivo funcao3.m : 8 Exercícios
17 Strings
13 z = x + 2;
18 Registros
14 end 12 Arquivo
15 >> x = 10; 13
16 >> z1 = funcao1 ( x ) ; 18
17 >> z2 = funcao2 ( z1 ) ;
18 >> z3 = funcao3 ( z2 ) ;
9 / 54
Chamada de funções
Funções
Escopo de
variáveis
1 % Arquivo funcao1.m : Chamada de
funções
2 function y = funcao1 ( x ) 1 >> x = 10; Procedimentos
Exercícios
3 y = 2* x ; 2 >> z = funcao3 ( x ) ; Retornando mais
de uma variável
Exercicio -
4 end laboratório
Exercício - xação
5 % Arquivo funcao2.m : linha x t z y Funções - parte 2
Variáveis globais
6 function z = funcao2 ( x ) 1 (main)
Vetores
7 z = funcao1 (x -2) ^2; 10 (funcao3) Exercícios
Matrizes
8 end 6 (funcao2)
Strings
9 % Arquivo funcao3.m : 2 (funcao1)
Registros
10 function t = funcao3 ( x ) 3 (funcao1)
Arquivo
11 t = funcao2 (x -1) +2; 7 (funcao2)
12 end 11 (funcao3)
10 / 54
Chamada de funções
Funções
Escopo de
1 % Arquivo funcao1.m : variáveis
Chamada de
2 function y = funcao1 ( x ) funções
1 >> x = 10; Procedimentos
Exercícios
3 y = 2* x ;
2 >> z = funcao3 ( x ) ; Retornando mais
de uma variável
4 end Exercicio -
laboratório
5 % Arquivo funcao2.m : linha x t z y
Exercício - xação
Funções - parte 2
6 function z = funcao2 ( x ) 1 (main)
Variáveis globais
Vetores
7 z = x ^2; 10 (funcao3) Exercícios
8 end 6 (funcao2)
Matrizes
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Soma intervalo Exercícios
Retornando mais
de uma variável
Exercicio -
I Crie uma função que some todos os inteiros presentes em um intervalo laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
12 / 54
Procedimento x funções
Funções
Procedimento Escopo de
variáveis
Chamada de
funções
I Alguns autores denem procedimentos como funções que não retornam Procedimentos
Exercícios
nenhum valor como resposta Retornando mais
de uma variável
I Dê exemplos de procedimentos nativos do MATLAB Exercicio -
laboratório
Exercício - xação
I Crie um procedimento que imprima a tabuada de um número N, onde N é Funções - parte 2
Variáveis globais
parâmetro de entrada Vetores
Exercícios
I Crie um procedimento que imprima as tabuadas de 1 até 10.
Matrizes
I Crie um procedimento que emita alertas sobre um processo.
Strings
I Ele recebe os valores de temperatura, pressão e velocidade Registros
I Se a temperatura for superior a 200º Celsius ou Arquivo
I A pressão for superior a 10MPa ou
I A velocidade for inferior a 1m/s, o procedimento deve emitir um alerta.
13 / 54
Exercício de funções
Exercício Funções
Escopo de
variáveis
I Complete a função abaixo para que ela retorne um número entre 0 e 100 Chamada de
funções
fornecido pelo usuário Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
1 % Complete o codigo abaixo laboratório
Exercício - xação
Funções - parte 2
2 function y = le_usuario () Variáveis globais
3 end Vetores
Exercícios
Matrizes
1 function m = media () Strings
2 soma = 0; Registros
3 for i = 1:10 Arquivo
4 x = le_usuario () ;
5 soma = soma + x ;
6 end
7 m = soma /10; 14 / 54
Exercício de funções
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Modique o código anterior para: Exercícios
Retornando mais
de uma variável
Exercicio -
I Ao invés do intervalo xo de 0 à 100, a função deve receber 2 argumentos laboratório
Exercício - xação
Funções - parte 2
que indicam os limites mínimo e máximo Variáveis globais
I Um terceiro parâmetro deve indicar a quantidade máxima de tentativas Vetores
Exercícios
permitida. Se o usuário ultrapassá-la, a função deve exibir uma mensagem Matrizes
de erro. Strings
Registros
Arquivo
15 / 54
Retornando múltiplas variáveis
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Função retornando múltiplos valores Exercícios
Retornando mais
de uma variável
Exercicio -
I Em MATLAB, é possível uma função retorna mais de uma variável como laboratório
Exercício - xação
resposta: Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
1 function [ MIN , MAX ] = minmax ( n1 , n2 , n3 ) Strings
Registros
Arquivo
16 / 54
Retornando múltiplas variáveis
Funções
1 f u n c t i o n [MIN,MAX] = minmax(n1 , n2 , n3 ) Escopo de
variáveis
2 i f n1<n2 && n2<n3 Chamada de
funções
3 MIN = n1 ; Procedimentos
Exercícios
4 e l s e i f n2 < n3 Retornando mais
de uma variável
5 MIN = n2 ; Exercicio -
laboratório
6 else Exercício - xação
Funções - parte 2
7 MIN = n3 ; Variáveis globais
8 end Vetores
MAX = n1 ;
Matrizes
10
11 e l s e i f n2 > n3 Strings
12 MAX = n2 ; Registros
13 else Arquivo
14 MAX = n3 ;
15 end
16 end
17 >> [ a , b ] = minmax (10 ,20 ,30) 17 / 54
Retornando múltiplas variáveis
Funções
Escopo de
Exercício variáveis
Chamada de
funções
Crie uma função que receba as coordenadas cartesianas x e y de um ponto no Procedimentos
Exercícios
plano e retorne as coordenadas polares ρ e θ, onde: Retornando mais
de uma variável
p Exercicio -
I ρ = x2 + y 2 laboratório
Exercício - xação
Funções - parte 2
I θ = atan2(y, x). Variáveis globais
Vetores
I A função atan2 recebe as coordenadas x e y e calcula o arco-tangente Exercícios
18 / 54
Retornando múltiplas variáveis
Funções
Exercício Escopo de
variáveis
Chamada de
Crie uma função que leia um número positivo do usuário, usando no máximo n funções
Procedimentos
Exercícios
tentativas: Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
1 function [x , err ] = le_positivo ( n ) ; Funções - parte 2
Variáveis globais
Vetores
Onde: Exercícios
Matrizes
I n: Número máximo de tentativas
Strings
I x: Valor fornecido pelo usuário Registros
I err: Deve ser true se o usuário ultrapassou o limite de tentativas e false Arquivo
19 / 54
Exercício de funções
Primo Funções
Escopo de
variáveis
I Crie uma função que determine se um número é primo ou não: Chamada de
funções
Procedimentos
Exercícios
Retornando mais
function res = primo ( n ) de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
I Crie uma função (procedimento) que imprima todos os primos de 1 até N, Variáveis globais
onde N é fornecido pelo usuário: Vetores
Exercícios
Matrizes
Funções
Escopo de
variáveis
Chamada de
funções
Crie a função Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
1 function y = funcao (t , v0 , theta0 ) laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
que determina o valor da função abaixo: Vetores
Exercícios
gt2 Matrizes
f (t) = v0 sin(θ0 )t − Strings
2
Registros
Arquivo
21 / 54
Exercício de funções
Funções
Escopo de
Derivada variáveis
Chamada de
funções
gt2 Procedimentos
I Qual o valor de f 0 (t) para f (t) = v0 sin(θ0 )t − 2 Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
22 / 54
Exercício de funções
Funções
Escopo de
Derivada variáveis
Chamada de
funções
gt2 Procedimentos
I Qual o valor de f 0 (t) para f (t) = v0 sin(θ0 )t − 2 Exercícios
Retornando mais
I A derivada de uma função é denida como: de uma variável
Exercicio -
laboratório
Exercício - xação
f (t + h) − f (t) Funções - parte 2
f 0 (t) = lim Variáveis globais
h→0 h Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
22 / 54
Exercício de funções
Funções
Escopo de
Derivada variáveis
Chamada de
funções
gt2 Procedimentos
I Qual o valor de f 0 (t) para f (t) = v0 sin(θ0 )t − 2 Exercícios
Retornando mais
I A derivada de uma função é denida como: de uma variável
Exercicio -
laboratório
Exercício - xação
f (t + h) − f (t) Funções - parte 2
f 0 (t) = lim Variáveis globais
h→0 h Vetores
Exercícios
I Crie uma função que receba como parâmetro de entrada o valor de t e h e Matrizes
0
calcule uma aproximação para f (t) usando a equação acima Strings
Registros
Arquivo
22 / 54
Exercício de funções
Funções
Escopo de
Derivada variáveis
Chamada de
funções
gt2 Procedimentos
I Qual o valor de f 0 (t) para f (t) = v0 sin(θ0 )t − 2 Exercícios
Retornando mais
I A derivada de uma função é denida como: de uma variável
Exercicio -
laboratório
Exercício - xação
f (t + h) − f (t) Funções - parte 2
f 0 (t) = lim Variáveis globais
h→0 h Vetores
Exercícios
I Crie uma função que receba como parâmetro de entrada o valor de t e h e Matrizes
0
calcule uma aproximação para f (t) usando a equação acima Strings
Registros
I Compare o resultado obtido com o teórico
Arquivo
22 / 54
Exercício de funções
Funções
Escopo de
Derivada variáveis
Chamada de
funções
gt2 Procedimentos
I Qual o valor de f 0 (t) para f (t) = v0 sin(θ0 )t − 2 Exercícios
Retornando mais
I A derivada de uma função é denida como: de uma variável
Exercicio -
laboratório
Exercício - xação
f (t + h) − f (t) Funções - parte 2
f 0 (t) = lim Variáveis globais
h→0 h Vetores
Exercícios
I Crie uma função que receba como parâmetro de entrada o valor de t e h e Matrizes
0
calcule uma aproximação para f (t) usando a equação acima Strings
Registros
I Compare o resultado obtido com o teórico
Arquivo
I Plote os grácos de f (t) e f 0 (t)
22 / 54
Exercício de funções
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Derivada Exercícios
Retornando mais
de uma variável
Utilize a aproximação: Exercicio -
laboratório
Exercício - xação
Funções - parte 2
f (x + h) − f (x − h) Variáveis globais
f 0 (x) = lim Vetores
h→0 2h Exercícios
Matrizes
gt2
para a mesma função f (x) = v0 sin(θ0 )t − 2 Strings
Registros
Arquivo
23 / 54
Exercício de funções
Funções
Escopo de
variáveis
Plotando funções Chamada de
funções
Procedimentos
Exercícios
Considere a função abaixo: Retornando mais
de uma variável
Exercicio -
1 2 2 2 laboratório
f (x) = + sin(x) + sin(3x) + sin(5x) + . . . Exercício - xação
2 π 3π 5π Funções - parte 2
Variáveis globais
Vetores
que pode ser rescrita como: Exercícios
Matrizes
∞
1 X 2 Strings
f (x) = + sin((2n + 1)x)
2 (2n + 1)π Registros
n=0
Arquivo
24 / 54
Exercício de funções
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Exercícios
Exercício Retornando mais
de uma variável
Exercicio -
Crie a função: laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
25 / 54
Exercício de funções
Funções
Exercício Escopo de
variáveis
Chamada de
Crie a função: funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
1 function [ wx wy wz ] = ... laboratório
Exercício - xação
produto_vetorial ( vx , vy ,vz , ux , uy , uz ) Funções - parte 2
Variáveis globais
Vetores
que calcula o produto vetorial de dois vetores, conforme formula abaixo: Exercícios
Matrizes
wx = vy uz − vz uy
Strings
Registros
v × u = wy = vz ux − vx uz
Arquivo
wz = vx uy − vy ux
26 / 54
Exercício de funções
Funções
Exercício Escopo de
variáveis
Chamada de
funções
Crie a função: Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
1 function area = area_triangulo ( x1 , y1 , x2 , ... laboratório
Exercício - xação
y2 , x3 , y3 ) Funções - parte 2
Variáveis globais
Vetores
que calcula a área do triângulo formado pelos pontos (x1 , y1 ), (x2 , y2 ) e (x3 , y3 ). Exercícios
Matrizes
Lembre-se que:
Strings
I A área do triângulo é metade da área do paralelograma formado por dois
Registros
vetores que saem do mesmo ponto. Arquivo
I A área do paralelograma é a norma do produto vetorial destes vetores.
27 / 54
Exercício de funções
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Exercícios
Exercício Retornando mais
de uma variável
Exercicio -
laboratório
I Crie uma função que receba três pontos: P1 , P2 e P3 . Exercício - xação
−−−→ Funções - parte 2
I Em seguida, determinar se P3 está a esquerda ou a direita de P1 P2 Variáveis globais
Vetores
I Observe que se o ponto estiver a direita, pela regra da mão direita o produto Exercícios
28 / 54
Funções recursivas
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
29 / 54
Funções recursivas
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
30 / 54
Passagem por referência x passagem por valor
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
31 / 54
Variáveis globais
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
32 / 54
Vetores - Arranjos homogêneos
Funções
Motivação Escopo de
variáveis
Chamada de
funções
Procedimentos
I Crie uma função que peça para o usuário entrar com N valores e determine Exercícios
Retornando mais
sua média de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
33 / 54
Vetores - Arranjos homogêneos
Funções
Motivação Escopo de
variáveis
Chamada de
funções
Procedimentos
I Crie uma função que peça para o usuário entrar com N valores e determine Exercícios
Retornando mais
sua média de uma variável
Exercicio -
laboratório
I Crie uma função que determine a moda dos valores anteriores. A moda Exercício - xação
Funções - parte 2
corresponde ao valor mais frequente Variáveis globais
Vetores
I Crie uma função que determine a mediana dos valores anteriores. A mediana
Exercícios
é o valor que se encontra no meio ao ordenarmos a sequência de pontos. Se Matrizes
o número de dados for par, a mediana é a média dos dois valores no centro. Strings
I Crie uma função que determine o desvio padrão dos valores anteriores. O Registros
Arquivo
q
P (xi −x̄)2
desvio padrão de um conjunto de dados é denido como σ= n
33 / 54
Vetores - Arranjos homogêneos
Funções
Escopo de
variáveis
Chamada de
funções
Motivação Procedimentos
Exercícios
Retornando mais
Os últimos problemas só podem ser resolvidos com o uso de vetores. Vetores de uma variável
Exercicio -
são estruturas de dados que: laboratório
Exercício - xação
Funções - parte 2
I Podem armazenar um conjunto de valores, Variáveis globais
I Cada valor pode ser acessado pelo índice (posição), Vetores
Exercícios
I Em MATLAB o índice vai de 1 até o tamanho do vetor Matrizes
I Em C o índice vai de 0 até o tamanho do vetor - 1 Strings
I Armazenam o mesmo tipo de dado (homogênea) Registros
Arquivo
34 / 54
Vetores
Funções
Armazenam conjunto de valores: Escopo de
variáveis
Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Podem ser acessados pelo índice: Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
35 / 54
Vetores
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
Exercícios
Em MATLAB: Matrizes
Strings
Registros
1 vetor = [10 20 21 25 30 35 77 60 80]; Arquivo
2 vetor (7) = 50;
36 / 54
Vetores
Vetores Funções
Escopo de
Vetor também é chamado de variável indexável unidimensional variáveis
Chamada de
funções
I Vetor é uma variável que armazena um conjunto de elementos Procedimentos
Exercícios
Retornando mais
I Cada elemento pode ser acessado individualmente pelo índice de uma variável
Exercicio -
laboratório
I Um único índice (unidimensional) para acessar os elementos (matrizes Exercício - xação
Funções - parte 2
possuem 2 ou mais) Variáveis globais
Vetores
Exercícios
Matrizes
37 / 54
Vetores
Funções
Escopo de
variáveis
Chamada de
Versão ingênua funções
Procedimentos
Exercícios
Mostrar todos os elementos de um vetor Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
1 function vetor_mostra_todos_v1 () Vetores
2 v = [10 20 8 7]; Exercícios
38 / 54
Vetores
Funções
Versão melhorada Escopo de
variáveis
Chamada de
Mostrar todos os elementos de um vetor, usando laço for funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
1 function vetor_mostra_todos_v2 () Exercício - xação
Funções - parte 2
2 v = [10 20 8 7]; Variáveis globais
Vetores
3 fprintf ( ' vetor = ') ; Exercícios
4 for i = 1:4 Matrizes
5 fprintf ( '% d ', v ( i ) ) ; Strings
6 end Registros
8 end
39 / 54
Vetores
Funções
Versão MATLAB Escopo de
variáveis
Chamada de
Mostrar todos os elementos de um vetor, usando recurso do MATLAB funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
1 function vetor_mostra_todos_v3 () Exercício - xação
Funções - parte 2
2 v = [10 20 8 7]; Variáveis globais
6 end Registros
8 end
40 / 54
Vetores
Funções
Escopo de
Comando size variáveis
Chamada de
funções
Descobrindo o tamanho do vetor Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
1 v = [10 22 34 41 56 69 79]; Funções - parte 2
Variáveis globais
2 a = size (v ,1) ; Vetores
3 b = size (v ,2) ; Exercícios
Matrizes
Strings
I A variável a armazena a quantidade de dimensões do vetor.
Registros
Como o vetor é unidimensional, o valor será sempre 1 (ver matrizes) Arquivo
I A variável b armazena o tamanho do vetor.
41 / 54
Vetores
Encontrar o menor elemento de um vetor
Funções
Escopo de
variáveis
Chamada de
1 function menor = vetor_menor_elemento () funções
Procedimentos
2 v = [10 20 8 7 9 5]; Exercícios
Retornando mais
de uma variável
3 menor = v (1) ; Exercicio -
laboratório
4 for i = 2: size (v ,2) Exercício - xação
Funções - parte 2
5 if v ( i ) < menor Variáveis globais
Vetores
6 menor = v ( i ); Exercícios
7 fprintf ( ' menor (1) % d \ n ', menor ) ; Matrizes
1x , 2 x ? 3 x ? 4 x ? Registros
9 end Arquivo
10 end
11 end
42 / 54
Vetores
I Crie uma função que crie um vetor contendo as 5 primeiras potências de 2: Funções
Escopo de
[1 2 4 8 16] variáveis
Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
43 / 54
Vetores
I Crie uma função que crie um vetor contendo as 5 primeiras potências de 2: Funções
Escopo de
[1 2 4 8 16] variáveis
Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
1 function v = ... laboratório
Exercício - xação
potencia2_ingenuo () Funções - parte 2
Variáveis globais
2 v (1) = 1; Vetores
Exercícios
3 v (2) = 2; Matrizes
4 v (3) = 4; Strings
5 v (4) = 8; Registros
6 v (5) = 16; Arquivo
7 end
43 / 54
Vetores
Funções
I Crie uma função que crie um vetor contendo as 5 primeiras potências de 2: Escopo de
variáveis
[1 2 4 8 16] Chamada de
funções
Procedimentos
Exercícios
Retornando mais
1 function v = potencia2_melhorado1 () de uma variável
Exercicio -
laboratório
2 v = [1 2 4 8 16]; Exercício - xação
Funções - parte 2
3 end Variáveis globais
Vetores
4
Exercícios
5 function v = potencia2_melhorado2 () Matrizes
6 for i = 1:5 Strings
8 end Arquivo
9 end
44 / 54
Vetores - acesso múltiplo
É possível acessar simultaneamente mais de um elemento do vetor.
Funções
Escopo de
variáveis
Chamada de
v = [10 22 33 42 51 69 78]; funções
Procedimentos
Exercícios
Retornando mais
I Atribuindo 0 aos 3 primeiros elementos do vetor: de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
v (1:3) = 0; Variáveis globais
Vetores
Exercícios
I Atribuindo 100 do 5º ao último elemento do vetor:
Matrizes
Strings
v (5 : e n d ) = 100; Registros
Arquivo
I Salvando o subvetor de v(2) até v(4) em w:
w = v (2:4) ;
45 / 54
Vetores - acesso múltiplo
É possível acessar múltiplos elementos dispersos:
Funções
Escopo de
variáveis
Chamada de
v = [10 22 33 42 51 69 78]; funções
Procedimentos
Exercícios
Retornando mais
I Acessando o 1º, 5º e 7º elementos: de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
w = v ([1 5 7]) Variáveis globais
Vetores
Exercícios
I Acessando todos os elementos de índice ímpar:
Matrizes
Strings
w = v (1:2 : e n d ) ; Registros
Arquivo
I Invertendo um vetor:
w = v( e n d : -1:1) ;
46 / 54
Vetores - concatenando
A concatenação de vetores é feita de forma simples
Funções
Escopo de
variáveis
Chamada de
v = [10 22 33 42 51 69 78]; funções
Procedimentos
u = [80 97]; Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
I Concatenando os vetores v e u: Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
w = [v u ]; Exercícios
Matrizes
Strings
I Existem duas formas de adicionar um novo elemento no nal do vetor:
Registros
Arquivo
v = [v 1];
v ( end +1) = 2;
47 / 54
Vetores
I Crie a função function vetor = gera_vetor_aleatorio(N) . Funções
Ela cria um vetor com N números inteiros aleatórios, de 0 à 100. Utilize a Escopo de
variáveis
função rand() . Chamada de
funções
Procedimentos
Chame a função e crie um vetor com 10 elementos. Exercícios
Retornando mais
I Crie a função function indice = busca(vetor, x) . de uma variável
Exercicio -
laboratório
Busca deve retornar a posição onde o valor de x está no vetor, ou -1 se ele Exercício - xação
Funções - parte 2
não for encontrado. Variáveis globais
Use a função size() para determinar o tamanho do vetor. Vetores
Exercícios
I Crie a função function [maior,indice]=busca_maior(vetor) Matrizes
Busca_maior deve encontrar o maior elemento do vetor e sua posição. Strings
Funções
Escopo de
variáveis
Chamada de
I Crie a função function s = soma(vetor) que soma todos os funções
Procedimentos
elementos de um vetor. Exercícios
Retornando mais
de uma variável
I Crie a função function m = media(vetor) que calcula a média dos Exercicio -
laboratório
elementos no vetor. Exercício - xação
Funções - parte 2
Variáveis globais
I Crie a função function d = desvio_padrao(vetor) que calcula o
Vetores
desvio padrão dos elementos no vetor, usando a fórmula Exercícios
Matrizes
r
X (xi − x̄)2 Strings
σ= Registros
n
Arquivo
49 / 54
Vetores
Funções
Escopo de
variáveis
Chamada de
funções
I Crie a função function v = inverte(vetor) . Procedimentos
Exercícios
Ela deve inverter todos os elementos do vetor de entrada. Retornando mais
de uma variável
Exercicio -
I Crie a função function sv = subvetor(vetor, inicio, fim) . laboratório
Exercício - xação
Ela deve criar um subvetor contendo os elementos no intervalo vetor(inicio) Funções - parte 2
Variáveis globais
até vetor(m). Teste se os limites do vetor são respeitados. Vetores
Exercícios
I Crie a função function v = inserevetor(vetor, novo) . Matrizes
Ela deve receber um vetor já ordenado como entrada e inserir um novo valor Strings
no vetor, mantendo a ordenação. Registros
Arquivo
50 / 54
Matrizes - Arranjos multidimensionais
Funções
Escopo de
variáveis
I Vetor é uma variável armazenando um conjunto de dados (homogêneos) Chamada de
funções
Procedimentos
indexáveis em 1 dimensão Exercícios
Retornando mais
I Matriz é uma variável armazenando um conjunto de dados (homogêneos) de uma variável
Exercicio -
laboratório
indexáveis em N dimensões. Exercício - xação
Funções - parte 2
Exemplo de matriz bidimensional: Variáveis globais
Vetores
coluna
Exercícios
1 2 3 Matrizes
1 10 21 36 Strings
linha
2 14 25 32 Registros
3 11 29 38 Arquivo
51 / 54
Strings - vetor de caracteres
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
52 / 54
Registros - arranjos heterogêneos
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
53 / 54
Manipulação arquivo
Funções
Escopo de
variáveis
Chamada de
funções
Procedimentos
Exercícios
Retornando mais
de uma variável
Exercicio -
laboratório
Exercício - xação
Funções - parte 2
Variáveis globais
Vetores
Exercícios
Matrizes
Strings
Registros
Arquivo
54 / 54