universidade federal de alagoas – ufal centro de tecnologia – ctec estruturas de dados...
TRANSCRIPT
Universidade Federal de Alagoas – UFAL
Centro de Tecnologia – CTEC
Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais
Estruturas de Dados
Vimos que: Podemos trabalhar apenas um valor
numérico (inteiro ou real), literal ou lógico por variável.
O MATLAB enxerga cada variável como uma matriz com uma linha e uma coluna.
Estruturas de dados consistem em variáveis com um único nome e mais de um valor associado a ele, o que configura vetores e matrizes.
2
3
a) Cálculo da média aritmética de 10 notas
soma = 0;for i = 1:1:10 x = input(‘Entre com a nota: ’); soma = soma + x;end
media = soma / 10;
b) Quais notas são maiores que a média?
A1 = input(‘Nota 1: ’);A2 = input(‘Nota 2: ’);A3 = input(‘Nota 3: ’); ...A10 = input(‘Nota 10: ’);
media = (A1 + A2 + ... + A10) / 10;
if( A1 > media ) disp( A1 );end
if( A2 > media ) disp( A2 );end ...
Mas para que servem estruturas de dados?
Mas e se tivéssemos 100 notas?
Evitar a perda de informação
Evitar ter que criar n nomes para variáveis de conteúdo similar
Estruturas de Dados
Estruturas de Dados resultam da composição do que antes eram diferentes variáveis em uma única variável e são classificados da seguinte forma: Estrutura de Dados
▪ Variáveis Compostas Homogêneas;▪ Unidimensionais (Vetores);▪ Multidimensionais (Matrizes).
▪ Variáveis Compostas Heterogêneas▪ Registros
Essas novas variáveis serão descritas na seqüência.
4
Variáveis Compostas Homogêneas
São estruturas de dados compostas de variáveis do mesmo tipo de informação.
A variável é o todo (ou seja, o conjunto). Cada termo da variável é chamado de elemento. Em ambos os exemplos, cada elemento tem o mesmo tipo de informação (números e caracteres). Daí a denominação Homogêneo.
É comum em computação utilizar o termo string para um vetor de caracteres.
5
3 875 C A R R O
Numérico
caracteres
Variáveis Compostas Homogêneas
Os exemplos abaixo ilustram tipos de variável composta homogênea.
O exemplo abaixo ilustra o exemplo de uma variável composta que não é classificada como homogênea.
6
C 3 5 1 L
C A S A
1.34 2.5 3.23 1 0
Variáveis Compostas Homogêneas
Vetores - São estruturas de dados compostas de elementos do mesmo tipo de informação e armazenados em matrizes linha ou coluna.
O exemplo abaixo ilustra a criação de um vetor no MATLAB.
7
Exemplo 02:
>> A = (1:1:5)
>> B = ones(1,10)
>> C = zeros(1,5)
>> D = [10 4 7 8 3]
Variáveis Compostas Homogêneas
Acesso ao elemento de um vetor linha
valor = v(6);
Acesso ao elemento de um vetor coluna
valor = v(6,1);8
Elemento da sexta posição
Elemento da sexta posição
Variáveis Compostas Homogêneas
Uso de vetores.
9
Exemplo:
disp(A(2));
A(3) = 10;
for i = 1:1:10 A(i) = 2*i – 1;end
disp(A);
imprime o segundo elemento do vetor. 2 é o índice do vetor.
Alterando o terceiro elemento do vetor.
1, 3, 5, 7, 9, …, 19
Mas para que servem os vetores?
10
a) Cálculo da média aritmética de 10 notas
soma = 0;for i = 1:1:10 x = input(‘Entre com a nota: ’); soma = soma + x;end
media = soma / 10;
b) Quais notas são maiores que a média?
A1 = input(‘Nota 1: ’);A2 = input(‘Nota 2: ’);A3 = input(‘Nota 3: ’); ...A10 = input(‘Nota 10: ’);
media = (A1 + A2 + ... + A10) / 10;
if( A1 > media ) disp( A1 );end
if( A2 > media ) disp( A2 );end ...
Mas para que servem estruturas de dados?
Mas e se tivéssemos 100 notas?
Evitar a perda de informação
Evitar ter que criar n nomes para variáveis de conteúdo similar
11
soma = 0;
for i = 1:1:10 nota(i) = input(‘Entre c/ a nota: ’); soma = soma + nota(i);end
media = soma / 10;
for i = 1:1:10 if( nota(i) > media ) disp(nota(i)); endend
Exemplo: Exemplo anterior usando vetores
12
V(x+1)V(x+2)V(x*4)V(V(x+y))V(x+y)V(V(1)*V(4))
V(3) = 8V(4) = 3V(8) = 21V(V(6)) = V(9) = 33V(6) = 9V(2*3) = V(6) = 9
Exemplo: Seja o vetor V = [2, 6, 8, 3, 10, 9, 1, 21, 33, 14]. Seja também x = 2 e y = 4.
13
for i = 1:1:10 fprintf ( ‘Vetor A, posição %i\n’ , i); A(i) = input(‘Insira o dado: ’); end
fprintf(‘Imprimindo vetor soma’);for i = 1:1:10 C(i) = A(i) + B(i); disp( C(i) );end
for i = 1:1:10 fprintf ( ‘Vetor B, posição %i\n’ , i); A(i) = input(‘Insira o dado: ’); end
Exemplo: Fazer um programa que leia e imprima o resultado da soma entre dois vetores de 10 posições.
14
for i = 1:1:100 if( mod(i,2) == 0 ) a(i) = 1; else a(i) = 0; endend
disp(a);
i mod(i,2) a(i)
Exemplo: Fazer um programa que preencha um vetor de 100 elementos colocando 1 na posição correspondente a um número par e 0 a um número ímpar.
Exemplo: Fazer um programa que leia um vetor de 10 posições e coloque-o em ordem crescente, utilizando a seguinte estratégia:
Selecione o elemento do vetor que apresenta o menor valor;
Troque este elemento pelo primeiro;Repita essas operações envolvendo
agora apenas os 9 elementos restantes, e siga repetindo, com oito, sete, até restar um único elemento.
15
16
for i = 1:1:10 a(i) = input(‘A: ’);end
for j = 1:1:10
menor = a(j); % inicializacao posicao = j; for i = j:1:10 if( a(i) < menor ) % selecionando o menor menor = a(i); posicao = i; end end aux = a(j); % troca a(j) = menor; a(posicao) = aux;end
A variável posição armazena a posição do menor valor.
Uso de uma variável auxiliar aux para fazer a troca de 2 números.
Universidade Federal de Alagoas – UFAL
Centro de Tecnologia – CTEC
EXERCÍCIOS COMPLEMENTARES
Vetores
Exercício 01: Elabore um programa que receba 10 números inteiros positivos, armazene em um vetor, identifique e apresente quais elementos são primos.
Exercício 02: Refaça o programa ordenando a saída de dados
Exercício 03: Elabore um programa que receba 2 vetores de 20 elementos e apresente o vetor intersecção. O vetor intersecção é composto com os valores em comum entre vetores originais, sem apresentar no vetor intersecção um mesmo valor mais de uma vez.
18