1 / 14

Estrutura

Introdução à Programação Tipos de Estruturas de Dados: Array de Estruturas 1º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv). Estrutura. Estruturas devem encarradas como sendo um tipo de variável, como uma definição de tipo de variável .

Télécharger la présentation

Estrutura

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introdução à ProgramaçãoTipos de Estruturasde Dados: Array de Estruturas1º ano - ESI e IGE (2011/2012)Engenheiro Anilton Silva Fernandes(afernandes@unipiaget.cv)

  2. Estrutura Estruturas devem encarradas como sendo um tipo de variável, como uma definição de tipo de variável. Isto significa que, quando os tipos existentes não nos satisfazem, nos recorremos ao nosso próprio tipo Um tipo definido por nós. É claro que estrutura e muito mais do que apenas um tipo, Mas continua sendo nossa definição de um tipo de variável Mais importante, é a delaração de vários tipos de variáveis, dentro duma mesma variável. UniPiaget – 2011 / INF002(2011.2012) – Engenheiro Anilton Silva Fernandes

  3. Estrutura Assim... Uma estrutura é uma compilação de vários tipos em uma única variável Quando é que usamos? Sempre que precisamos de guardar um conjunto de dados de tipo diferente (int, char, float, etc) dentro de uma única varíavel E quando é que vamos precisar disso? UniPiaget – 2011 / INF002(2011.2012) – Engenheiro Anilton Silva Fernandes

  4. Estrutura Quando for necessário trabalhar com com objectos, onde objectos são entidades que têm conjunto de atributos Exemplo. PESSOA Pessoa é um objecto ou uma entidade. Seus atributos seriam: Nome, BI, Sexo, altura, telefone, etc Assim, a representação de pessoa devia ser pessoa(Nome, BI, Sexo, altura, telefone) UniPiaget – 2011 / INF002(2011.2012) – Engenheiro Anilton Silva Fernandes

  5. Estrutura Para que essa representação seja possível, nos precisamos de usar estrutura, onde vamos criar uma variável pessoa, e vamos dizer que essa variavel tem esses campos. A definição da estrutura, é apenas o dizer dos campos e seus tipos que constam de uma determinada variável A definição de uma estrutura é sempre a mesma, variando apenas, o nome da estrutura e seus campos, Essa definição é dada por typedef struct → significa definição de tipo estrutura UniPiaget – 2011 / INF002(2011.2012) – Engenheiro Anilton Silva Fernandes

  6. Estrutura - Definição Assim, a criação de uma estrutura para pessoa seria: typedef struct _E { int BI; // bilhete de identidade char nome[40]; // nome da pessoa char sexo; // sexo da pessoa em M/F float altura; // altura em cm da pessoa int telefone; // tel de contacto da pessoa }E; UniPiaget – 2011 / INF002(2011.2012) – Engenheiro Anilton Silva Fernandes

  7. Estrutura - Definição Explicação É obrigatório colocar typedef struct; O valor circulado a vermelho, é um nome temporário que se dá à estrutura, mas que em caso de estruturas para variáveis simples ou array, não é obrigatório; As variáveis pertencentes à estrutura, devem sempre vir entre chavetas, indicando bloco de instruções da estrutura; As variáveis da estrutura são declaras normalmente como em outras situações; No final, da estrutura, feicha-se chavetas e, OBRIGATORIAMENTE, logo a frente coloca-se o nome da estrutura. UniPiaget – 2011 / INF002(2011.2012) – Engenheiro Anilton Silva Fernandes

  8. Estrutura - Definição Explicação O nome da estrutura é o elemento que depois vai ser usado para declarar uma variável do tipo da estrutura Assim, a variável pessoa seria declarada: Uma declaração dessa natureza, faz com que pessoa, herde todos os campos da estrutura E, e que tenhamos: E pessoa // declaração da variável pessoa do tipo da estrutura E pessoa.bi; pessoa.nome; pessoa.sexo; pessoa.altura; pessoa.telefone; UniPiaget – 2011 / INF002(2011.2012) – Engenheiro Anilton Silva Fernandes

  9. Estrutura - Definição É possível: typedef struct { int BI; char nome[40]; char sexo; float altura; int telefone; }E; typedef struct _E { int BI; char nome[40]; char sexo; float altura; int telefone; }E; typedef struct { int BI, telefone; char nome[40], sexo, morada[50]; }E; typedef struct { int BI, telefone; char nome[40], sexo, morada[50]; } E; Possível, mas não aconcelhável UniPiaget – 2011 / INF002(2011.2012) – Engenheiro Anilton Silva Fernandes

  10. DÚVIDAS? a diante...

  11. Manusear variáveis do tipo estrutura Depois da definição de uma estrutura, depois da declaração de uma variavel do tipo da estrutura, o manusear desta variável é muito simples. O acesso aos campos da variável, que são os mesmos da estrutura é dada pelo nome da variável, ponto, nome do campo; pessoa.bi; ou pessoa.nome; Assim, tanto para alterar quanto para mostrar: printf(“BI: %d”, pessoa.bi) pessoa.altura = 1,87; printf(“Altura: %f”, pessoa.altura) UniPiaget – 2011 / INF002(2011.2012) – Engenheiro Anilton Silva Fernandes

  12. Exercício Tendo em conta a estrutura anterior, E, faz um função, Mostrar(), que percore o array de 20 posições e mostra cada campo. mostrar() { int i; for(i=0;i<20;i++) printf(“%d, %s, %f, %d\n”, pessoa[i].bi, pessoa[i].nome, pessoa[i].altura, pessoa[i].telefone) } UniPiaget – 2011 / INF002(2011.2012) – Engenheiro Anilton Silva Fernandes

  13. DÚVIDAS? a diante...

  14. Array de estruturas Se vamos guardar dados de 20 pessoas, então precisaremos de um array de 20 posições. Assim, só precisamos de declarar um array de 20 posições do tipo da estrutura Em caso de arrays, o acesso aos campos é feita de forma igual, mas... É preciso indicar a posições E pessoa[20]; // array pessoa de 20 posições pessoa[0].altura = 1,87; printf(“Altura: %f”, pessoa[0].altura) UniPiaget – 2011 / INF002(2011.2012) – Engenheiro Anilton Silva Fernandes

More Related