Professional Documents
Culture Documents
Linguagem C
Estrutura de Dados Homogneas
Sumrio
Introduo
Exerccios
Introduo [ 1 3 ]
A manipulao de dados um dos objetivos da
criao de programas, que leva este a precisar de
dados e informaes para exercer as suas
funes.
Informaes simples atendem a uma pequena
parcela dos algoritmos.
A maioria utiliza uma grande carga de informaes
e estas, quando utilizadas com tipos primitivos,
precisam de inmeras variveis, tornando o
algoritmo um monstro carregado de repositrios,
j que um deste contm apenas uma informao.
3
Introduo [ 2 3 ]
A alternativa para atender a esta
demanda corresponde a criao de
novos repositrios que suportem
vrias informaes.
Utilizando os armrios como
demonstrao:
uma gaveta s pode conter um objeto,
uma varivel tem somente uma
informao, no tipo primitivo.
Quando se trata de tipos construdos, uma
gaveta, ou melhor, uma varivel pode
conter inmeras informaes.
4
Introduo [ 3 3 ]
Os tipos construdos so denominados de
Estrutura de Dados Composta, que consiste em
um conjunto de informaes armazenados em
um repositrio.
dividida em duas classificaes:
Estruturas de Dados Compostas Homogneas
Estruturas de Dados Compostas Heterogneas
Vetor
Para entendermos um vetor
iremos utilizar o cenrio de um
edifcio. Digamos que um
edifcio contm apenas um
apartamento por andar.
Um edifcio corresponde a um
vetor e cada apartamento
corresponde a um elemento
deste vetor.
7
nome_var
[tamanho]
Exemplo:
float notas[4];
// vetor possui 4 posies (ndice de 0 a 3)
8
10
notas[i] = <X>;
}
11
12
5.50
9.00
6.00
8.00
13
Exemplo de Vetor
Elaborar um algoritmo que leia 3 salrios e, no final, imprima o maior.
#include <stdio.h>
#include <stdlib.h>
int main(){
float salario[3], maiorsalario;
for(int i=0;i<3;i++){
scanf(%f,&salario[i]);
if(i==0){
maiorsalario = salario[i];
}else{
if(salario[i] > maiorsalario){
maiorsalario = salario[i];
}
}
}
printf(Maior Salario eh R$ %.2f\n,maiorsalario);
system(pause);
}
14
Matriz
Vetor uma varivel composta homognea
unidimensional porque tem somente uma
dimenso, ou seja, cresce somente em um
sentido.
J uma matriz corresponde a uma varivel
composta homognea multidimensional, pois ela
pode crescer em vrios sentidos.
Ela pode variar de matriz bidimensional at
N-dimensional, ou seja, projeta de 2 ou mais
direes.
15
Matriz
16
Matriz
Para entendermos uma matriz
bidimensional (duas dimenses),
ser utilizado o cenrio de uma
platia de um teatro.
O teatro formado por um palco e
uma platia de 20 cadeiras.
Esta platia composta por cinco
fileiras de quatro cadeiras ou
quatro arquibancadas de cinco
cadeiras.
17
Matriz
Fazendo outra comparao para haver
uma melhor compreenso, iremos
utilizar novamente o cenrio de um
edifcio, s que, agora, cada andar ter
vrios apartamentos.
Digamos que um edifcio tenha trs
apartamentos por andar, sendo quatro
andares.
Neste caso, o edifcio corresponde a
uma matriz com quatro linhas e trs
colunas, conforme a figura ao lado.
As formas de declarao e manipulao a
seguir so de estruturas bidimensionais.
18
nome_var
[linha][coluna]
linhas * colunas.
Exemplo:
int num[2][3];
int num2[4][4]
Matriz Retangular
Matriz Quadrada
19
20
10
21
num[i][j] = <X>;
}
}
22
11
23
12
Exemplo de Matriz
Elabore um algoritmo que leia a matriz da 3 linhas e 2 colunas. No final,
imprima o maior e o menor.
#include <stdio.h>
#include <stdlib.h>
int main(){
int num[3][2],maior,menor;
for(int i=0;i<3;i++){
for(int j=0;j<2;j++){
scanf("%d",&num[i][j]);
if((i==0)&&(j==0)){
maior = num[i][j];
menor = num[i][j];
}else{
if(num[i][j] > maior)
maior = num[i][j];
if(num[i][j] < menor)
menor = num[i][j];
}
}
}
printf("O maior eh %d\n",maior);
printf("O menor eh %d\n",menor);
system("pause");
}
25
Exerccio
1. Elabore um algoritmo que, dados dois vetores inteiros
de 10 posies, leia os dois vetores, some os valores
da mesma posio e armazene em um terceiro vetor
inteiro de 10 posies. No final imprima este terceiro
vetor.
2. Desenvolver um programa que armazene as alturas de
5 atletas em um vetor e, no final, verifique e mostre o
maior altura e menor altura.
3. Elabore um programa que leia 5 inteiros do teclado,
armazene em um vetor. No final, mostre os nmeros
mpares.
4. Elabore um algoritmo que leia 10 inteiros do teclado,
armazene em um vetor, calcule e, no final, mostre a
mdia dos nmeros mpares.
26
13
Exerccio
4.
5.
6.
num
num transposta
6
27
Exerccio
7.
28
14