8/17/2019 Estruturas Heterogêneas - Logia de Programação
1/28
Lógica de ProgramaçãoEstruturas de Dados Heterogêneas
Prof. Vinícius Breda
8/17/2019 Estruturas Heterogêneas - Logia de Programação
2/28
Estruturas Homogêneas
● Até agora estudamos apenas estruturahomogêneas, ou seja, uma estrutura quepermite agrupar vários dados de um mesmotipo em uma variável. ssas estruturashomogêneas s!o chamadas de matri"es.
8/17/2019 Estruturas Heterogêneas - Logia de Programação
3/28
Estruturas Heterogêneas
● As estruturas heterogêneas tam#ém servempara agrupar vários dados so# um $nico nome,porém estes dados podem ser de tipos
diferentes.
● % uma cole&!o de uma ou mais variáveis dediferentes tipos.
● '( Podemos agrupar dados do tipo inteiro,real e cadeia.
● )hamaremos essas estruturas heterogêneas
apenas de estruturas ou registros.
8/17/2019 Estruturas Heterogêneas - Logia de Programação
4/28
Estruturas
● *magine um programa em que deva sercadastrado o nome e as quatro notas de um alunode uma escola. Podemos criar a seguinte
strutura(
+endo assim, a estrutura será formada pelos campos(ome, Primeira ota, +egunda ota, -erceira ota e
uarta ota. Podemos chamar esta estrutura de)ad Aluno.
Cadastro de Notas Escolares
Nome: __________________ Primeira Nota: ____________ Segunda Nota: ____________
Terceira Nota: ____________ Quarta Nota: _____________
8/17/2019 Estruturas Heterogêneas - Logia de Programação
5/28
Declaração de Estruturas
● As estruturas devem ser declaradas antes dasvariáveis, pois pode ocorrer a necessidade dedeclarar uma variável como o tipo da estrutura
anteriormente declarada.● A declara&!o das estruturas em pseudoc0digo
deve ser feita antes da palavra início.
● os diagramas de #locos não é feita a declara&!odas estruturas 1assim como n!o é feita a dasvariáveis2, apenas será feito men&!o a utili"a&!ode um determinado campo de uma estrutura.
8/17/2019 Estruturas Heterogêneas - Logia de Programação
6/28
Declaração de Estruturas
Estrutura 3nome/da/estrutura4 3lista dos campos e seus tipos4fim_estruturainício
m )55( 1deve ser declarado antes do main2
Struct 3nome/da/estrutura4 6 3lista dos campos e seus tipos478
int main 9.
8/17/2019 Estruturas Heterogêneas - Logia de Programação
7/28
Declaração de Estruturas -
ExemploEstrutura )ad/Aluno )adeia ome8 :eal ota;, ota8fim_estrutura
m )55(
Struct )ad/Aluno 6 +tring ome8 ?loat ota;, ota8
78
8/17/2019 Estruturas Heterogêneas - Logia de Programação
8/28
Declaração de ari!"eis do #ipo
da Estrutura● Ap0s a estrutura ter sido declarada, ela se
comporta como se fosse um novo tipo de variável.nt!o podemos declarar variáveis desse novo
tipo. '( #aseando@se na estrutura $luno declarada anteriormente, podemos declarar aseguinte variável(
InícioVar Cad_Aluno Aluno;
Pseudocódigo
Int main() {Struct Cad_Aluno Aluno;
C
Nesse caso declaramos uma variável do tipo Cad_Aluno. EmPseudocódigo a declara!o de uma variável do tipo de uma estrutura
"eterog#nia $ igual a declara!o para os tipos comuns. Em C devemosreceder o ti o ela alavra Struct.
8/17/2019 Estruturas Heterogêneas - Logia de Programação
9/28
$cesso aos %ampos de uma
Estruturaeclarada uma variável de um tipo de estrutura,como a variável $luno do tipo %ad_$luno, doe'emplo anterior, podemos acessar seus campos
através do nome da variável e seu campocorrespondente separado por um caractere .Cponto. nt!o
Aluno.ome D EucaC8 Aluno.ota; D F.>8
Atri#uem a cadeia &'uca( ao campo )ome, e ovalor *+, ao campo )ota da variável $luno.
8/17/2019 Estruturas Heterogêneas - Logia de Programação
10/28
Leitura e Escrita em Estruturas
A leitura e escrita nos campos das variáveis dotipo de estrutura será feita de modo semelhante auma variável comum.
'(
Leia1Aluno.ome28Escre"a1Aluno.ota;28
Primeiramente será arma"enado o que o usuáriodigitar no campo )ome da variável $luno.Posteriormente será escrito na tela o valor docampo )ota da variável $luno.
8/17/2019 Estruturas Heterogêneas - Logia de Programação
11/28
Declaração. Leitura e Escrita deEstruturas / Exemplo Diagrama de
0locos%n&cio
'im
Aluno.Nome
Aluno.Nota(
Aluno.Nota)
Aluno.Nome
Aluno.Nota(
Aluno.Nota)
Aluno.Nota*
Aluno.Nota+
Aluno.Nota)
Aluno.Nota)
8/17/2019 Estruturas Heterogêneas - Logia de Programação
12/28
Declaração. Leitura e Escrita deEstruturas / Exemplo Pseudocódigo
Algortimo E,emploEstrutura Cad_Aluno Cadeia Nome; Real Nota(- Nota)- Nota*- Nota+;
fim_estruturaInício
Var Cad_Aluno Aluno;
Leia(Aluno.Nome);
Leia(Aluno.Nota(); Leia(Aluno.Nota)); Leia(Aluno.Nota*); Leia(Aluno.Nota+);
Escreva(Aluno.Nome); Escreva(Aluno.Nota();
Escreva(Aluno.Nota)); Escreva(Aluno.Nota*); Escreva(Aluno.Nota*);
fim
8/17/2019 Estruturas Heterogêneas - Logia de Programação
13/28
Declaração. Leitura e Escrita deEstruturas / Exemplo %11
include !stdio"#$
include !stdli%"#$
include!iostream$
using std&&cout;
using std&&endl; using std&&cin;
include!string$
using std&&string;
using std&&getline;
Struct Cad_Aluno
string Nome;
float Nota(- Nota)- Nota*- Nota+;
';
int main( ) {
struct Cad_Aluno Aluno;
getline(Aluno.Nome);
scanf(/012- 3Aluno.Nota(); scanf(/012- 3Aluno.Nota)); scanf(/012- 3Aluno.Nota*); scanf(/012- 3Aluno.Nota+);
cout !! Aluno.Nome 44 endl;
cout !! Aluno.Nota( 44 endl; cout !! Aluno.Nota) 44 endl; cout !! Aluno.Nota* 44 endl; cout !! Aluno.Nota+ 44 endl;
return ;'
8/17/2019 Estruturas Heterogêneas - Logia de Programação
14/28
Estruturas com 2atri3
● Pode@se utili"ar estruturas homogêneas dentrodos campos de uma estrutura heterogênea, ouseja, é possível declarar campos de uma estrutura
heterogênea como sendo matri"es.● Gtili"ando o e'emplo anterior da estrutura que
arma"ena as notas do aluno, poderíamos criar umvetor para arma"enar as notas(Estrutura Cad_Aluno Cadeia Nome; 5eal Notas6+7;fim_estrutura
8/17/2019 Estruturas Heterogêneas - Logia de Programação
15/28
Leitura de Estruturas com2atri3
● A leitura de uma strutura com Hatri" é efetuadacom a instru&!o Leia, geralmente dentro de umla&o de repeti&!o.
%n&cio
'im
Aluno.Nome
Aluno.Notas6%7
% 8 9- % 4 +- %8%(
8/17/2019 Estruturas Heterogêneas - Logia de Programação
16/28
Leitura de Estruturas com2atri3
Algortimo eituraEstrutura Cad_Aluno Cadeia Nome; Real Notas6+7;fim_estrutura
Início
Var Cad_Aluno Aluno; Inteiro %;
Leia(Aluno.Nome); ara< % 8 9- %4+- % 8 %(= fa*a Leia(Aluno.Notas6%7); fim_+ara
fim
8/17/2019 Estruturas Heterogêneas - Logia de Programação
17/28
Escrita de Estruturas com2atri3
● A escrita de uma strutura com Hatri" é efetuadacom a instru&!o Escre"a, de forma semelhante aleitura.
%n&cio
'im
% 8 9- % 4 +- %8%(
Aluno.Nome
Aluno.Notas6%7
8/17/2019 Estruturas Heterogêneas - Logia de Programação
18/28
8/17/2019 Estruturas Heterogêneas - Logia de Programação
19/28
8/17/2019 Estruturas Heterogêneas - Logia de Programação
20/28
2atri3 de Estruturas
Algortimo eituraEstrutura Cad_Aluno Cadeia Nome; Real Notas6+7;
fim_estruturaInício
Var Cad_Aluno Aluno6(997;
...
fim
8/17/2019 Estruturas Heterogêneas - Logia de Programação
21/28
Leitura de um etor deEstruturas
● A leitura será feita de forma semelhante Ksformas anteriores. o entanto, ser!outili"ados dois loopings, pois além de
controlar a entrada das quatro notas decada aluno, é necessário controlar a entradados ;JJ alunos. sta estrutura é #astantesimilar a uma matri" de duas dimensLes.
8/17/2019 Estruturas Heterogêneas - Logia de Programação
22/28
Leitura de um etor deEstruturas
%n&cio
'im
Aluno6%7.Nome
Aluno6%7.Notas6>7
> 8 9- > 4 +- >8>(
% 8 9- % 4 (99- %8%(
8/17/2019 Estruturas Heterogêneas - Logia de Programação
23/28
Leitura de um etor deEstruturas
Algortimo eituraEstrutura Cad_Aluno Cadeia Nome; Real Notas6+7;
fim_estruturaInício
Var Cad_Aluno Aluno6(997; Inteiro %- >;
ara< % 8 9- %4(99- % 8 %(= fa*a Leia(Aluno6%7.Nome); ara< > 8 9- >4+- > 8 >(= fa*a Leia(Aluno6%7.Notas6>7); fim_+ara fim_+arafim
8/17/2019 Estruturas Heterogêneas - Logia de Programação
24/28
Escrita de um etor deEstruturas
● I processo de escrita de um Vetor de struturas ésimilar aos modos anteriores.
%n&cio
'im
> 8 9- > 4 +- >8>(
% 8 9- % 4 (99- %8%(
Aluno6%7.Nome
Aluno6%7.Nome6>7
8/17/2019 Estruturas Heterogêneas - Logia de Programação
25/28
Escrita de um etor deEstruturas
Algortimo EscritaEstrutura Cad_Aluno Cadeia Nome; Real Notas6+7;
fim_estruturaInício
Var Cad_Aluno Aluno6(997; Inteiro %- >;
ara< % 8 9- %4(99- % 8 %(= fa*a Escreva(Aluno6%7.Nome); ara< > 8 9- >4+- > 8 >(= fa*a Escreva(Aluno6%7.Notas6>7); fim_+ara fim_+arafim
8/17/2019 Estruturas Heterogêneas - Logia de Programação
26/28
8/17/2019 Estruturas Heterogêneas - Logia de Programação
27/28
Exercício de $prendi3agem 4
everá ser criado um programa que efetue a leitura deuma ta#ela de cargos e salários. m seguida, oprograma deverá solicitar que seja fornecido o c0digode um determinado cargo. sse c0digo deverá estarentre ; e ;F. I operador do programa poderá fa"erquantas consultas desejar. +endo o c0digo válido, oprograma deverá apresentar o cargo e o respectivosalário. )aso seja o c0digo inválido, o programa deve
avisar o operador da ocorrência.Para dar entrada no c0digo de cargosNsalários, o#servea ta#ela seguinte(
8/17/2019 Estruturas Heterogêneas - Logia de Programação
28/28
Exercício de $prendi3agem 4%ódigo )argo +alário
; Analista de +alários O.JJ
< Au'iliar de )onta#ilidade .
> )hefe de 'pedi&!o M.QM
Q )ontador ;Q.J
Rerente de ivis!o