estruturas heterogêneas - logia de programação

Upload: vinicius-morais-breda

Post on 06-Jul-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 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