TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Cadastro Aviao

Trabalho Universitário: Cadastro Aviao. Pesquise 859.000+ trabalhos acadêmicos

Por:   •  11/9/2013  •  781 Palavras (4 Páginas)  •  930 Visualizações

Página 1 de 4

Registros e Structs

Um registro (= record) é uma coleção de várias variáveis, possivelmente de tipos diferentes. Na linguagem C, registros são conhecidos como structs (abreviatura de structures).

Definição e manipulação de structs

O exemplo abaixo declara um registro x com três campos (ou membros) inteiros:

struct {

int dia;

int mes;

int ano;

} x;

É uma boa ideia dar um nome ao tipo de registro. No nosso exemplo, dma parece um nome apropriado:

struct dma {

int dia;

int mes;

int ano;

};

struct dma x; /* um registro x do tipo dma */

struct dma y; /* um registro y do tipo dma */

É fácil atribuir valores aos campos de um registro:

x.dia = 31;

x.mes = 8;

x.ano = 1998;

Exemplo: A função abaixo recebe a data de início de um evento e a duração do evento em dias. Ela devolve a data de fim do evento.

struct dma fim_evento (struct dma datainicio, int duracao) {

struct dma datafim;

. . .

. . .

datafim.dia = ...

datafim.mes = ...

datafim.ano = ...

return datafim;

}

O código foi omitido porque é um tanto enfadonho: deve levar em conta a existência de meses com 31 dias, de meses com 30 dias, com 29 dias etc. Eis como essa função poderia ser usada:

int main( void) {

struct dma a, b;

int d;

scanf( "%d %d %d", &a.dia, &a.mes, &a.ano);

scanf( "%d", &d);

b = fim_evento( a, d);

printf( "%d %d %d\n", b.dia, b.mes, b.ano);

return EXIT_SUCCESS;

}

Exercícios

Complete o código da função fim_evento acima.

Escreva uma função que receba dois structs do tipo dma, cada um representando uma data válida, e devolva o número de dias que decorreram entre as duas datas.

Escreva uma função que receba um número inteiro que representa um intervalo de tempo medido em minutos e devolva o correspondente número de horas e minutos (por exemplo, converte 131 minutos em 2 horas e 11 minutos). Use uma struct como a seguinte:

struct hm {

int horas;

int minutos;

};

Structs e ponteiros

Cada registro tem um endereço na memória

...

Baixar como (para membros premium)  txt (3.9 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com