Buscar

[06] C Estrutura de Dados Homogeneas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Prof. Luis Nícolas de Amorim Trigo
nicolas.trigo@ifsertao-pe.edu.br
ProgramaProgramaçção Estruturadaão Estruturada
Linguagem C
Estrutura de Dados Homogêneas
2
SumSumááriorio
• Introdução
• Exercícios
2
3
IntroduIntroduçção [ 1 ão [ 1 –– 3 ]3 ]
• A manipulação de dados é um dos objetivos da 
criação de programas, que leva este a precisar de 
dados e informações para exercer as suas 
funções. 
• Informações simples atendem a uma pequena 
parcela dos algoritmos. 
• A maioria utiliza uma grande carga de informações 
e estas, quando utilizadas com tipos primitivos, 
precisam de inúmeras variáveis, tornando o 
algoritmo um monstro carregado de repositórios, 
já que um deste contém apenas uma informação.
4
IntroduIntroduçção [ 2 ão [ 2 –– 3 ]3 ]
• A alternativa para atender a esta 
demanda corresponde a criação de 
novos repositórios que suportem 
várias informações. 
• Utilizando os armários como 
demonstração:
– uma gaveta só pode conter um objeto, 
uma variável tem somente uma 
informação, no tipo primitivo. 
– Quando se trata de tipos construídos, uma 
gaveta, ou melhor, uma variável pode 
conter inúmeras informações.
3
5
IntroduIntroduçção [ 3 ão [ 3 –– 3 ]3 ]
• Os tipos construídos são denominados de 
Estrutura de Dados Composta, que consiste em 
um conjunto de informações armazenados em 
um repositório. 
• É dividida em duas classificações:
– Estruturas de Dados Compostas Homogêneas
– Estruturas de Dados Compostas Heterogêneas
6
Estrutura de Dados Compostas HomogêneasEstrutura de Dados Compostas Homogêneas
• É formado por variáveis que aceitam um 
número indeterminado de informações a 
partir de um mesmo tipo primitivo. 
• Ele é dividido em duas partes: 
– Estruturas de Dados Compostas 
Homogêneas Unidimensionais, conhecido 
como Vetor; e
– Estruturas de Dados Compostas 
Homogêneas Compostas 
Multidimensionais, conhecido como Matriz.
4
7
VetorVetor
• Para entendermos um vetor 
iremos utilizar o cenário de um 
edifício. Digamos que um 
edifício contém apenas um 
apartamento por andar.
• Um edifício corresponde a um 
vetor e cada apartamento 
corresponde a um elemento 
deste vetor.
8
Sintaxe de DeclaraSintaxe de Declaraçção de Vetorão 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 posições (índice de 0 a 3)
5
9
Sintaxe de ManipulaSintaxe de Manipulaçção de Vetorão de Vetor
• Atribuição completa do vetor
nome_var[tamanho] = {x,y,z};
• Exemplo:
float notas[4];
notas[4] = {5.5,9,6,8};
10
Sintaxe de ManipulaSintaxe de Manipulaçção de Vetorão de Vetor
• Atribuição em uma posição do vetor
nome_var[i] = n;
• Exemplo:
Float notas[4];
notas[2] = 6;
Nicolas
Realce
Nicolas
Nota
tipo nome_var[tamanho] = {x,y,z};nullnullnullnullfloat notas[4] = {5.5,9,6,8};
6
11
Sintaxe de ManipulaSintaxe de Manipulaçção de Vetorão de Vetor
• Inicialização de um vetor
float notas[4];
for(int i=0;i<4;i++){
//<X> varia conforme cada repetição
notas[i] = <X>; 
}
12
Sintaxe de ManipulaSintaxe de Manipulaçção de Vetorão de Vetor
• Entrada de dados em um vetor
#include <stdio.h>
...
float notas[4];
for(int i=0;i<4;i++){
scanf(“%f”,&notas[i]); 
}
7
13
Sintaxe de ManipulaSintaxe de Manipulaçção de Vetorão de Vetor
• Saída de dados em um vetor
#include <stdio.h>
float notas[4];
...
for(int i=0;i<4;i++){
printf(“\nNota: %.2f”,notas[i]); 
}
Resultado:
Nota: 5.50
Nota: 9.00
Nota: 6.00
Nota: 8.00
14
Exemplo de VetorExemplo de Vetor
#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”);
} 
Elaborar um algoritmo que leia 3 salários e, no final, imprima o maior.
8
15
MatrizMatriz
• Vetor é uma variável composta homogênea 
unidimensional porque tem somente uma 
dimensão, ou seja, cresce somente em um 
sentido. 
• Já uma matriz corresponde a uma variável 
composta homogênea multidimensional, pois ela 
pode crescer em vários sentidos.
• Ela pode variar de matriz bidimensional até
N-dimensional, ou seja, projeta de 2 ou mais 
direções.
16
MatrizMatriz
9
17
MatrizMatriz
• Para entendermos uma matriz 
bidimensional (duas dimensões), 
será utilizado o cenário de uma 
platéia de um teatro. 
• O teatro é formado por um palco e 
uma platéia de 20 cadeiras. 
• Esta platéia é composta por cinco 
fileiras de quatro cadeiras ou 
quatro arquibancadas de cinco 
cadeiras.
18
MatrizMatriz
• Fazendo outra comparação para haver 
uma melhor compreensão, iremos 
utilizar novamente o cenário de um 
edifício, só que, agora, cada andar terá
vários apartamentos.
• Digamos que um edifício tenha três 
apartamentos por andar, sendo quatro 
andares. 
• Neste caso, o edifício corresponde a 
uma matriz com quatro linhas e três 
colunas, conforme a figura ao lado.
As formas de declaração e manipulação a 
seguir são de estruturas bidimensionais.
10
19
Sintaxe de DeclaraSintaxe de Declaraçção de Matrizão 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 Manipulaçção de Matrizão de Matriz
• Atribuição completa da matriz
tipo 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 Manipulaçção de Matrizão de Matriz
• Atribuição em uma posição da matriz
nome_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 Manipulaçção de Matrizão de Matriz
• Inicialização de uma matriz
int num[2][3];
for(int i=0;i<2;i++){ //i<=1
for(int j=0;j<3;j++){ //j<=2
//<X> varia conforme cada repetição
num[i][j] = <X>;
}
}
12
23
Sintaxe de ManipulaSintaxe de Manipulaçção de Matrizão de Matriz
• Entrada de dados em uma matriz
#include <stdio.h>
...
int num[2][3];
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
scanf(“%d”,&num[i][j]); 
}
}
• Saída de dados em uma matriz
#include <stdio.h>
...
int num[2][3];
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
printf(“%d”,num[i][j]); 
}
}
24
Algumas consideraAlgumas consideraçções de Matriz Quadradaões de Matriz Quadrada
Se tratando de linha e coluna, refere-se ao índice:
• A Diagonal Principal corresponde à linha igual à coluna.
(Amarelo [67,12,51,87])
• O Triângulo Principal Superior corresponde à linha ser 
sempre inferior à coluna.
(Verde [92,2,10,48,76,23])
• O Triângulo Principal Inferior corresponde à linha ser 
sempre superior à coluna.
(Azul [43,54,28,99,7,33])
• A Diagonal Secundária corresponde à soma da linha e 
coluna ser a ordem da matriz decrementando um.
(Laranja [33,54,2,23])
• O Triângulo Secundário Superior corresponde à soma da 
linha e coluna ser sempre menor do que à ordem da matriz 
decrementando um.
(bege [99,12,48,43,92,67])
• O Triângulo Secundário Inferior corresponde à soma da 
linha e coluna ser maior ou igual à ordem.
(lilás [7,51,76,28,10,87]).
13
25
Exemplo de MatrizExemplo de Matriz
#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");
} 
Elabore um algoritmo que leia a matriz da 3 linhas e 2 colunas. No final, 
imprima o maior e o menor.
26
ExercExercííciocio
1. Elabore um algoritmo que, dados dois vetores inteiros 
de 10 posições, leia os dois vetores, some os valores 
da mesma posição e armazene em um terceiro vetor 
inteiro de 10 posições. 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 números 
ímpares.
4. Elabore um algoritmo que leia 10 inteiros do teclado, 
armazene em um vetor, calcule e, no final, mostre a 
média dos números ímpares.
14
27
ExercExercííciocio
4. Elabore um algoritmo que leia uma matriz 
quadrada de ordem 5 e um inteiro. Apresente 
os números da linha indicada pelo número 
inteiro fornecido pelo usuário.
5. Elabore um algoritmo que leia uma matriz 
quadrada de ordem 5 e um inteiro. Apresente 
os números da coluna indicada pelo número 
inteiro fornecido pelo usuário.
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
ExercExercííciocio
7. Elabore um algoritmo que leia uma matriz inteira 
quadrada de ordem 4, calcule e mostre no final:
a) A soma dos Triângulos Principais e Secundários, tanto 
superior, quanto inferior.
b) A média aritmética da Diagonal Principal e da Diagonal 
Secundária.

Continue navegando