Upload
thiago-xavier
View
215
Download
2
Embed Size (px)
DESCRIPTION
estrutura de dados
Citation preview
1Prof. Luis Ncolas de Amorim [email protected]
ProgramaProgramao Estruturadao Estruturada
Linguagem CEstrutura de Dados Homogneas
2
SumSumriorio
Introduo
Exerccios
23
IntroduIntroduo [ 1 o [ 1 3 ]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.
4
IntroduIntroduo [ 2 o [ 2 3 ]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.
35
IntroduIntroduo [ 3 o [ 3 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
6
Estrutura de Dados Compostas HomogneasEstrutura de Dados Compostas Homogneas
formado por variveis que aceitam um nmero indeterminado de informaes a partir de um mesmo tipo primitivo.
Ele dividido em duas partes: Estruturas de Dados Compostas
Homogneas Unidimensionais, conhecido como Vetor; e
Estruturas de Dados Compostas Homogneas Compostas Multidimensionais, conhecido como Matriz.
47
VetorVetor
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.
8
Sintaxe de DeclaraSintaxe de Declarao de Vetoro de Vetor
tipo nome_var[tamanho];
Onde: tipo Refere-se ao tipo de dado(int, etc.). nome_var Identifica o nome do vetor. [tamanho] Quantidade de elementos que o vetor armazenar.
Exemplo:float notas[4];// vetor possui 4 posies (ndice de 0 a 3)
59
Sintaxe de ManipulaSintaxe de Manipulao de Vetoro de Vetor
Atribuio completa do vetornome_var[tamanho] = {x,y,z};
Exemplo:float notas[4];notas[4] = {5.5,9,6,8};
10
Sintaxe de ManipulaSintaxe de Manipulao de Vetoro de Vetor
Atribuio em uma posio do vetornome_var[i] = n;
Exemplo:Float notas[4];notas[2] = 6;
NicolasRealce
NicolasNotatipo nome_var[tamanho] = {x,y,z};
float notas[4] = {5.5,9,6,8};
611
Sintaxe de ManipulaSintaxe de Manipulao de Vetoro de Vetor
Inicializao de um vetorfloat notas[4];for(int i=0;i
713
Sintaxe de ManipulaSintaxe de Manipulao de Vetoro de Vetor
Sada de dados em um vetor#include float notas[4];...
for(int i=0;i
815
MatrizMatriz
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 atN-dimensional, ou seja, projeta de 2 ou mais direes.
16
MatrizMatriz
917
MatrizMatriz
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.
18
MatrizMatriz
Fazendo outra comparao para haver uma melhor compreenso, iremos utilizar novamente o cenrio de um edifcio, s que, agora, cada andar tervrios 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.
10
19
Sintaxe de DeclaraSintaxe de Declarao de Matrizo de Matriz
tipo nome_var[linha][coluna];
Onde: tipo Refere-se ao tipo de dado(int, etc.). nome_var Identifica o nome da matriz. [linha][coluna] Qtde. de elementos que a matriz armazenar.
linhas * colunas.
Exemplo:int num[2][3];int num2[4][4] Matriz Retangular
Matriz Quadrada
20
Sintaxe de ManipulaSintaxe de Manipulao de Matrizo de Matriz
Atribuio completa da matriztipo nome_var[linha][coluna] = {{x1,...,y1},{x2,...,y2},...{xn,...,yn}};
Exemplo:int num[2][2] = {{5,9},{6,8}};int num2[3][2] = {{4,7},{5,6},{1,0}};
11
21
Sintaxe de ManipulaSintaxe de Manipulao de Matrizo de Matriz
Atribuio em uma posio da matriznome_var[linha][coluna] = n;
Exemplo:int num[2][3];num[1][0] = 87;int num2[4][4];num2[0][3] = 23;
22
Sintaxe de ManipulaSintaxe de Manipulao de Matrizo de Matriz
Inicializao de uma matrizint num[2][3];for(int i=0;i
12
23
Sintaxe de ManipulaSintaxe de Manipulao de Matrizo de Matriz Entrada de dados em uma matriz#include ...
int num[2][3];for(int i=0;i
13
25
Exemplo de MatrizExemplo de Matriz
#include #include int main(){
int num[3][2],maior,menor;for(int i=0;i
14
27
ExercExercciocio
4. Elabore um algoritmo que leia uma matriz quadrada de ordem 5 e um inteiro. Apresente os nmeros da linha indicada pelo nmero inteiro fornecido pelo usurio.
5. Elabore um algoritmo que leia uma matriz quadrada de ordem 5 e um inteiro. Apresente os nmeros da coluna indicada pelo nmero inteiro fornecido pelo usurio.
6. Elabore um algoritmo que receba uma matriz inteira retangular 2x3, gere e imprima uma matriz transposta. Esta gerada trocando a linha pela coluna. Exemplificado na figura ao lado. 63
52
41
num transposta
654
321
num
28
ExercExercciocio
7. Elabore um algoritmo que leia uma matriz inteira quadrada de ordem 4, calcule e mostre no final:
a) A soma dos Tringulos Principais e Secundrios, tanto superior, quanto inferior.
b) A mdia aritmtica da Diagonal Principal e da Diagonal Secundria.