TÉCNICAS DE SEPARAÇÃO DE MISTURAS HETEROGÊNEAS E HOMOGÊNEAS.
Estrutura de dados - Variáveis homogêneas e Heterogêneas
-
Upload
adriano-teixeira-de-souza -
Category
Technology
-
view
14.062 -
download
2
Transcript of Estrutura de dados - Variáveis homogêneas e Heterogêneas
![Page 1: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/1.jpg)
Prof. Adriano Teixeira de Souza
![Page 2: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/2.jpg)
São um conjunto de variáveis identificadas por um mesmo nome.
◦ Homogêneas (vetores e matrizes)
◦ Heterogêneas (estruturas)
Prof. Adriano Teixeira de Souza
![Page 3: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/3.jpg)
6,1 2,3 9,4 5,1 8,9 9,8 10 7,0 6,3 4,4
0 1 2 3 4 5 6 7 8 9
Notas:
Posição:
Correspondem a posições da memória: ◦ identificadas por um único nome
◦ individualizadas por índices
◦ cujo conteúdo é de um mesmo tipo
Prof. Adriano Teixeira de Souza
![Page 4: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/4.jpg)
Posição do livro
0 1 2 … n-1
0 788 598 265 … 156
1 145 258 369 … 196
2 989 565 345 … 526
⋮ ⋮ ⋮ ⋮ ⋱ ⋮
m-1 845 153 564 892 210
Pra
tele
ira
Prof. Adriano Teixeira de Souza
![Page 5: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/5.jpg)
Utilizados para armazenar conjuntos de dados cujos elementos podem ser endereçados por um único índice.
Também são conhecidos como vetores.
Prof. Adriano Teixeira de Souza
![Page 6: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/6.jpg)
Utilizados para armazenar conjuntos de dados cujos elementos necessitam ser endereçados por mais de um índice.
Também são conhecidos como matrizes.
Prof. Adriano Teixeira de Souza
![Page 7: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/7.jpg)
0 1 2 … n-1
0 788 598 265 … 156
1 145 258 369 … 196
2 989 565 345 … 526
⋮ ⋮ ⋮ ⋮ ⋱ ⋮
m-1 845 153 564 892 210
Arranjos de 2 dimensões
Prof. Adriano Teixeira de Souza
![Page 8: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/8.jpg)
0 1 2 3
0
1
2
3
0
0 1 2 3
0
1
2
3
1
0 1 2 3
0
1
2
3
2
0 1 2 3
0
1
2
3
3
Arranjo de 3 dimensões
Prof. Adriano Teixeira de Souza
![Page 9: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/9.jpg)
0 1 2 3
0
1
2
3
(0,0)
0 1 2 3
0
1
2
3
(0,1)
0 1 2 3
0
1
2
3
(0,2)
0 1 2 3
0
1
2
3
(0,3)
0 1 2 3
0
1
2
3
(1,0)
0 1 2 3
0
1
2
3
(1,1)
0 1 2 3
0
1
2
3
(1,2)
0 1 2 3
0
1
2
3
(1,3)
Arranjo de 4 dimensões
Prof. Adriano Teixeira de Souza
![Page 10: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/10.jpg)
Como declarar:
Exemplos: <tipo> <nome> [<tamanho1>][<tamanho2>]...;
float VetReais[100];
int Vetor[5][9];
char Nome_cliente[50];
float cubo[20][12][7];
Prof. Adriano Teixeira de Souza
![Page 11: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/11.jpg)
O compilador C aloca uma porção contígua da memória para armazenar os elementos das matrizes e vetores.
Prof. Adriano Teixeira de Souza
![Page 12: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/12.jpg)
int VetInt[n];
...
Índices: 0 1 2 3 4 5 ... n-1
VetInt
Índice do primeiro elemento: zero Índice do último elemento: n – 1 Quantidade de elementos: n
Prof. Adriano Teixeira de Souza
![Page 13: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/13.jpg)
0 1 2 3 4 5
Vetor[6] X1 X2
Vetor[1] = 9;
Vetor[-1] = 2;
Vetor[6] = 8;
2 8 9
Índices fora dos limites podem causar comportamento anômalo do código.
int X1;
int Vetor[6];
int X2
Prof. Adriano Teixeira de Souza
![Page 14: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/14.jpg)
O tamanho de um vetor ou matriz é pré-definido, ou seja, após a compilação, não pode ser mudado.
Portanto, vetores e matrizes são chamadas estruturas de dados estáticas, pois mantém o mesmo tamanho ao longo de toda a execução do programa.
Prof. Adriano Teixeira de Souza
![Page 15: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/15.jpg)
Atribuir valores na declaração do vetor:
Atribuir valores na declaração da matriz:
float matriz[2][3] = {{1,2,3},{4,5,6}};
int vetor[5] = {1,2,3,4,5};
Prof. Adriano Teixeira de Souza
![Page 16: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/16.jpg)
Colocar os números de 1 a 5 num vetor:
Colocar os números de 5 a 1 num vetor:
for (i=0; i<5; i++)
Vetor[i] = 5 - i;
for (i=0; i<5; i++)
Vetor[i] = i + 1;
Prof. Adriano Teixeira de Souza
![Page 17: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/17.jpg)
Preencher uma matriz n × m com zeros:
for (i=0; i < N; i++)
for (j=0; j < M; j++)
Matriz[i][j] = 0;
Prof. Adriano Teixeira de Souza
![Page 18: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/18.jpg)
Copiar dados de um vetor para outro:
Boa prática de programação: ◦ Definir o tamanho de vetores com constantes
flexibiliza a manutenção do código.
#define TAM_MAX 10
double VetReais[TAM_MAX], VetCopia[TAM_MAX];
for (i=0; i<TAM_MAX; i++)
VetCopia[i] = VetReais[i];
Prof. Adriano Teixeira de Souza
![Page 19: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/19.jpg)
Leitura dos dados de um vetor:
for (i=0; i<TAM_MAX; i++)
{
printf("Digite um número: ");
scanf("%f", &Vet[i]);
}
Prof. Adriano Teixeira de Souza
![Page 20: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/20.jpg)
Determinar:
1. M[3][0]
2. M[4][2]
3. M[1][3]
4. M[5][M[0][2]]
5. M[M[3][1]][1]
6. M[4][(M[1][2]+M[3][0])]
0 1 2 3
0 1 2 3 4
1 5 -5 3 0
2 1 1 1 1
3 -3 2 0 0
4 0 0 1 1
5 -1 -1 -2 -2 1. -3
2. 1
3. 0
4. -2
5. 1
6. 0
![Page 21: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/21.jpg)
Ler um elemento K.
Ler um vetor A de N elementos.
Verificar se o elemento K está presente no vetor: ◦ Se estiver, imprimir a posição onde ele foi
encontrado.
◦ Caso contrário, imprimir mensagem "elemento K não encontrado".
Prof. Adriano Teixeira de Souza
![Page 22: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/22.jpg)
Ler N valores inteiros (N ≤ 100) até que seja digitado o valor zero.
A seguir, inverter o vetor, trocando o 1º elemento com o último, o 2º com o penúltimo, e assim sucessivamente.
Ao final, imprimir o vetor invertido.
Prof. Adriano Teixeira de Souza
![Page 23: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/23.jpg)
Faça um programa que imprima uma matriz quadrada de dimensão N contendo: ◦ o número 1 nos elementos abaixo da diagonal principal
◦ o número 0 nos demais elementos
N deve ser menor ou igual a 20.
Prof. Adriano Teixeira de Souza
![Page 24: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/24.jpg)
BELÉM 1611 5298 4397 3250 2100 2933
FORTALEZA 1611 5763 4865 2805 1389 3127
MANAUS 5298 5763 901 4374 5009 3971
PORTO VELHO 4397 4865 901 3473 4023 3070
RIO DE JANEIRO 3250 2805 4374 3473 1649 429
SALVADOR 2100 1389 5009 4023 1649 1962
SÃO PAULO 2933 3127 3971 3070 429 1962
BELÉM
FO
RT
ALEZA
MA
NA
US
PO
RT
O
VELH
O
RIO
DE
JAN
EIR
O
SA
LV
AD
OR
SÃ
O P
AU
LO
Fonte: DENIT
Prof. Adriano Teixeira de Souza
![Page 25: Estrutura de dados - Variáveis homogêneas e Heterogêneas](https://reader034.fdocument.pub/reader034/viewer/2022050706/557a43c5d8b42a61018b4625/html5/thumbnails/25.jpg)
1. Construir um algoritmo que leia a tabela anterior e informe ao usuário a distância entre duas cidades fornecidas por ele, até que ele forneça duas cidades iguais (origem e destino).
2. Construir um algoritmo que permita ao usuário informar várias cidades, até inserir “xx”, e que imprima a distância total para cumprir todo o percurso especificado entre as cidades fornecidas.
Prof. Adriano Teixeira de Souza