Buscar

Exercício - Tipo Abstrato de Dado

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Universidade Estadual da Paraíba - UEPB 
Centro de Ciências e Tecnologia - CCT 
Departamento de Computação - DC 
 
Disciplina: Linguagem de Programação I 
Docente: Ícaro Lins Leitão da Cunha 
Período: 2014.1 
 
 
Tipo Abstrato de Dado 
 
 
1. Escreva um programa que preencha uma variável estrutura e depois mostre-a na tela. A 
estrutura deverá conter campos para: nome, endereço, idade, telefone, data. Sendo que 
data deverá ser um struct com os campos: dia, mês e ano. 
 
2. Modifique o programa anterior, copiando os campos de nome e data para uma outra 
variável da estrutura e exibindo os conteúdos das duas variáveis. 
 
3. Imagine a seguinte situação: você precisa armazenar na memória os dados referentes a 60 
alunos (nome e série) e suas notas ao longo do ano (2 unidades) em 4 disciplinas, inglês, 
francês, matemática e português. Como você poderia organizar essas informações para 
serem armazenadas na memória? Faça um esquema do formato imaginado por você. 
 
4. Dada a struct: 
struct dma { 
 int dia; 
 int mes; 
 int ano; 
 }; 
 
E o programa: 
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 0; 
} 
 
Escreva a função fim_evento, onde ela recebe como parâmentros uma variável do tipo 
struct dma referente ao dia inicial do evendo e variável inteira referente à quantidade de 
dias de duração do evento. O tipo de retorno desta função deverá ser tipo struct dma e 
com os valores devidamente calculados para a determinação do fim do evento. 
 
5. Escreva uma função que receba dois structs do tipo dma acima, cada um representando 
uma data válida, e devolva o número de dias que decorreram entre as duas datas. 
 
6. 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; 
}; 
 
7. Defina um registro empregado para guardar os dados (nome, sobrenome, data de 
nascimento, RG, data de admissão, salário) de um empregado de sua empresa. Defina um 
vetor de empregados para armazenar todos os empregados de sua empresa. 
 
8. Um racional é qualquer número da forma p/q, sendo p inteiro e q inteiro não nulo. É 
conveniente representar um racional por um registro: 
 
typedef struct { 
 int p, q; 
} racional; 
 
Vamos convencionar que o campo q de todo racional é estritamente positivo e que o 
máximo divisor comum dos campos p e q é 1. Escreva 
 uma função reduz que receba inteiros a e b e devolva o racional que representa a/b; 
 uma função neg que receba um racional x e devolva o racional −x; 
 uma função soma que receba racionais x e y e devolva o racional que representa a 
soma de x e y; 
 uma função mult que receba racionais x e y e devolva o racional que representa o 
produto de x por y; 
 uma função div que receba racionais x e y e devolva o racional que representa o 
quociente de x por y; 
 
9. Veja como você está. Escreva um programa fazendo o uso de struct's. Você deverá criar 
um tipo chamado ponto, contendo apenas a posição x e y (inteiros) do ponto. Declare 2 
pontos, leia a posição (coordenadas x e y) de cada um e calcule a distância entre eles. 
Divida o programa através do uso de funções (por exemplo usando uma rotina para a 
leitura e uma rotina para o cálculo de distância). Apresente no final a distância entre os 
dois pontos.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando