universidade federal de alagoas – ufal centro de tecnologia – ctec estruturas de dados...

18
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

Upload: internet

Post on 18-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

Universidade Federal de Alagoas – UFAL

Centro de Tecnologia – CTEC

Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

Page 2: 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

Page 3: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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

Page 4: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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

Page 5: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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

Page 6: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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

Page 7: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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]

Page 8: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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

Page 9: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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?

Page 10: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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

Page 11: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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

Page 12: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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.

Page 13: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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.

Page 14: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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.

Page 15: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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

Page 16: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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.

Page 17: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

Universidade Federal de Alagoas – UFAL

Centro de Tecnologia – CTEC

EXERCÍCIOS COMPLEMENTARES

Page 18: Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC Estruturas de Dados Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais

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