You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
UNIVERSIDA<strong>DE</strong> FE<strong>DE</strong>RAL RURAL DO SEMI-ÁRIDO<br />
CURSO <strong>DE</strong> CIÊNCIA DA COMPUTAÇÃO<br />
PROGRAMAÇÃO <strong>DE</strong> COMPUTADORES<br />
1. TIPOS COMPOSTOS <strong>DE</strong> DADOS<br />
<strong>LISTA</strong> <strong>DE</strong> <strong>EXERCÍCIOS</strong> 2<br />
1. Considerando as declarações abaixo, responda dizendo qual o tipo da informação que deve ser<br />
armazenada na variável:<br />
enum trave {LEsq, LDir, CantoEsq, CantoDir, Centro};<br />
union jogador<br />
{<br />
char nome[25];<br />
int numero;<br />
};<br />
struct gol<br />
{<br />
jogador jog;<br />
float x,y,z;<br />
trave local;<br />
float velo;<br />
float acel;<br />
};<br />
// identificação do jogador<br />
// posição da bola nas coordenadas<br />
// onde a bola entrou<br />
// velocidade da bola<br />
// aceleração da bola<br />
gol * estatistica = new gol[10];<br />
// estatísticas para até 10 gols<br />
a) estatistica<br />
b) estatistica[4]<br />
c) estatistica[1].jog<br />
d) estatistica->jog.numero<br />
e) (estatistica + 9)->local<br />
f) estatistica[2].velo<br />
g) (estatistica + 1)->jog.nome[0]<br />
h) estatistica[6].acel<br />
2. Crie um registro para descrever uma data. O registro deve ser capaz de armazenar o dia, o mês (em<br />
formato numérico) e o ano (no formato numérico AAAA). Em seguida faça um programa que receba a<br />
data de nascimento de uma pessoa e a data atual . Calcule e mostre quantos dias de vida ela tem.<br />
Use o novo tipo criado para armazenar as datas e uma função para calcular o número de dias de vida.<br />
A função deve receber dois registros do tipo data e retornar um numero inteiro referente ao número<br />
de dias.<br />
Considere que todos os meses têm 31 dias, e desconsidere os anos bissextos<br />
Não utilize instruções de decisão (if)<br />
Digite sua data de nascimento: 01 01 1990<br />
Digite a data de hoje: 26 10 2010<br />
Você tem 7604 dias de vida.
3. Considerando o registro gol definido abaixo, crie um programa que pergunte ao usuário quantos gols<br />
ele quer cadastrar e crie um vetor dinâmico com o tamanho apropriado. Em seguida leia e armazene<br />
no vetor dinâmico apenas o nome do jogador que marcou o gol (os demais campos do registro não<br />
precisam receber valores).<br />
union jogador<br />
{<br />
char nome[25];<br />
int numero;<br />
};<br />
struct gol<br />
{<br />
jogador jog;<br />
int hora, min;<br />
};<br />
// nome do jogador<br />
// numero da camisa do jogador<br />
// identificação do jogador<br />
// hora e minuto em que o gol foi marcado<br />
Quantos gols você vai cadastrar? 3<br />
Jogador: Bebeto<br />
Jogador: Zico<br />
Jogador: Pele<br />
4. A prefeitura de Mossoró elabora mensalmente um caderno com a programação cultural da cidade.<br />
Ela deseja ter um programa que permita construir uma lista de eventos.<br />
O programa deve cadastrar as seguintes informações de um evento:<br />
a. Data (um registro que possui três valores inteiros – dia, mês e ano)<br />
b. Horário (um registro que possui dois valores inteiros – hora e minuto)<br />
c. Descrição (uma string com no máximo 18 caracteres)<br />
Os eventos devem ser registros inseridos em um vetor dinâmico. Pergunte ao usuário quantos<br />
eventos ele quer cadastrar e use um loop for para ler as informações dos eventos. Em seguida<br />
imprima um resumo mostrando todos os eventos cadastrados.<br />
Quantos eventos deseja cadastrar? 2<br />
#1<br />
Data: 26 10 2010<br />
Hora: 16 00<br />
Desc: Musica ao Vivo<br />
#2<br />
Data: 26 10 2010<br />
Hora: 18 00<br />
Desc: Show de Dança<br />
--------------------<br />
Eventos Cadastrados<br />
26/10/2010 16:00 Musica ao Vivo<br />
26/10/2010 18:00 Show de Dança
5. Analise o uso de enumeração no código abaixo:<br />
#include <br />
using namespace std;<br />
enum mes {JAN, FEV, MAR, ABR, MAI, JUN, JUL, AGO, SET, OUT, NOV, <strong>DE</strong>Z};<br />
int main()<br />
{<br />
char meses[12][10] =<br />
{<br />
"Janeiro", "Fevereiro", "Marco", "Abril", "Maio", "Junho",<br />
"Julho", "Agosto", "Setembro", "Outubro", "Novembro",<br />
"Dezembro"<br />
};<br />
for (mes ind = JAN; ind
Digite 4 palavras:<br />
Ontem<br />
Hoje<br />
Amanha<br />
Sempre<br />
Concatenando as palavras obtem-se:<br />
OntemHojeAmanhaSempre<br />
4. Verifique o programa abaixo e modifique-o para que ele mostre o número 10 na tela usando o<br />
ponteiro q.<br />
#include <br />
using namespace std;<br />
int main()<br />
{<br />
int x, *p, **q;<br />
p = &x;<br />
q = &p;<br />
x = 10;<br />
cout > x)<br />
cout
3. Escreva um programa que utilize laços for aninhados para calcular e mostrar a soma das colunas de<br />
um vetor bidimensional 4x4, como mostrado no exemplo abaixo. A matriz deve ser inicializada no<br />
momento da sua declaração.<br />
3 1 5 5<br />
1 5 5 6<br />
2 3 4 5<br />
4 9 1 8<br />
A soma das colunas é: 10 18 15 24<br />
4. O que o código abaixo iria imprimir se ele fosse parte de um programa válido?<br />
int i = 0;<br />
while (++i < 4)<br />
cout