Buscar

Lista de Exercícios4

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE	
  FEDERAL	
  RURAL	
  DE	
  PERNAMBUCO	
  
Departamento	
  de	
  Estatística	
  e	
  Informática	
  (DEINFO)	
  
Disciplina:	
  Introdução	
  à	
  Programação	
  I	
  	
  	
  	
  	
  Prof:	
  Lucas	
  Albertins	
  
	
  
	
  
Lista	
  de	
  Exercícios	
  4	
  
Estruturas,	
  Alocação	
  Dinâmica	
  de	
  Memória	
  e	
  Arquivos	
  
1	
  –	
  Suponha	
  uma	
  seleção	
  de	
  vestibular	
  que	
   terá	
  vagas	
  específicas	
  para	
  um	
  sistema	
  de	
  cotas	
  
caso	
   o	
   candidato	
   tenha	
   estudado	
   em	
   escola	
   pública.	
   As	
   cotas	
   se	
   dividem	
   de	
   acordo	
   com	
   a	
  
renda	
  mensal	
  da	
  família	
  do	
  candidato	
  e	
  de	
  acordo	
  com	
  a	
  sua	
  raça,	
  caso	
  ele	
  seja	
  preto,	
  pardo	
  
ou	
  indígena	
  (PPI)	
  ou	
  outra	
  raça.	
  De	
  acordo	
  com	
  essas	
  categorias	
  podemos	
  ter	
  4	
  tipos	
  de	
  cota	
  
com	
  as	
  seguintes	
  quantidades	
  de	
  vagas:	
  
• Renda	
  inferior	
  a	
  1.5	
  salário	
  mínimo	
  e	
  raça	
  PPI	
  –	
  3	
  vagas;	
  
• Renda	
  inferior	
  a	
  1.5	
  salário	
  mínimo	
  e	
  raça	
  diferente	
  de	
  PPI	
  –	
  2	
  vagas;	
  
• Renda	
  superior	
  a	
  1.5	
  salário	
  mínimo	
  e	
  raça	
  PPI	
  –	
  2	
  vagas;	
  
• Renda	
  superior	
  a	
  1.5	
  salário	
  mínimo	
  e	
  raça	
  diferente	
  de	
  PPI	
  –	
  1	
  vaga.	
  
Caso	
  o	
  candidato	
  não	
  seja	
  cotista	
  ele	
  competirá	
  pelas	
  vagas	
  universais	
  as	
  quais	
  são	
  5	
  vagas.	
  
	
  
a) Faça	
   um	
   programa	
   utilizando	
   vetores	
   e	
   estruturas	
   que	
   leia	
   as	
   informações	
   de	
   20	
  
candidatos	
   (nome,	
   nota	
   e	
   categoria)	
   e	
   informe	
   a	
   classificação	
   de	
   cada	
   categoria	
   de	
  
acordo	
  as	
  notas	
  em	
  ordem	
  decrescente;	
  
b) Altere	
   o	
   programa	
   anterior	
   para	
   contemplar	
   a	
   seguinte	
   regra:	
   caso	
   sobre	
   vagas	
   em	
  
alguma	
   categoria	
   a	
   mesma	
   deve	
   ser	
   preenchida	
   com	
   os	
   candidatos	
   melhor	
  
classificados	
  que	
  não	
  entraram	
  nas	
  vagas	
  da	
  sua	
  categoria	
  seguindo	
  a	
  seguinte	
  ordem	
  
de	
  prioridade	
  
a. Renda	
  inferior	
  a	
  1.5	
  salário	
  mínimo	
  e	
  raça	
  PPI;	
  
b. Renda	
  inferior	
  a	
  1.5	
  salário	
  mínimo	
  e	
  raça	
  diferente	
  de	
  PPI;	
  
c. Renda	
  superior	
  a	
  1.5	
  salário	
  mínimo	
  e	
  raça	
  PPI;	
  
d. Renda	
  superior	
  a	
  1.5	
  salário	
  mínimo	
  e	
  raça	
  diferente	
  de	
  PPI.	
  
e. Vagas	
  universais.	
  
c) Altere	
  o	
  programa	
  anterior	
   para	
   ao	
   invés	
  de	
   vetores,	
   utilizar	
   listas	
   encadeadas	
   “sem	
  
limites”	
  (memória	
  do	
  computador).	
  	
  
2	
   -­‐	
   Utilizando	
   alocação	
   dinâmica	
   de	
  memória,	
   escreva	
   um	
   subprograma	
   em	
   C	
   para	
   efetuar	
  
cada	
  uma	
  das	
  seguintes	
  operações	
  em	
  listas	
  encadeadas:	
  
1.1. Acrescentar	
  um	
  elemento	
  ao	
  final	
  de	
  uma	
  lista	
  encadeada;	
  
1.2. Concatenar	
  duas	
  listas	
  encadeadas;	
  
1.3. Liberar	
  todos	
  os	
  nodos	
  em	
  uma	
  lista;	
  
1.4. Inverter	
   uma	
   lista	
   encadeada	
   simples,	
   de	
   forma	
   que	
   o	
   último	
   elemento	
   se	
   torna	
   o	
  
primeiro,	
  e	
  etc.;	
  
1.5. Inverter	
  uma	
  lista	
  duplamente	
  encadeada,	
  de	
  forma	
  que	
  o	
  último	
  elemento	
  se	
  torna	
  o	
  
primeiro,	
  e	
  etc.;	
  
1.6. Remover	
  o	
  último	
  elemento	
  de	
  uma	
  lista;	
  
UNIVERSIDADE	
  FEDERAL	
  RURAL	
  DE	
  PERNAMBUCO	
  
Departamento	
  de	
  Estatística	
  e	
  Informática	
  (DEINFO)	
  
Disciplina:	
  Introdução	
  à	
  Programação	
  I	
  	
  	
  	
  	
  Prof:	
  Lucas	
  Albertins	
  
	
  
	
  
1.7. Remover	
  o	
  n-­‐ésimo	
  elemento	
  de	
  uma	
  lista;	
  
1.8. Remover	
  o	
  penúltimo	
  elemento	
  de	
  uma	
  lista;	
  
1.9. Combinar	
  duas	
  listas	
  encadeadas	
  simples,	
  ordenadas	
  pelo	
  campo	
  de	
  informação,	
  em	
  
uma	
  única	
  lista	
  ordenada;	
  
1.10. Formar	
  uma	
  lista	
  contendo	
  a	
  união	
  de	
  duas	
  listas;	
  
1.11. Formar	
  uma	
  lista	
  contendo	
  a	
  interseção	
  de	
  duas	
  listas;	
  
1.12. Inserir	
  um	
  elemento	
  depois	
  do	
  n-­‐ésimo	
  elemento	
  de	
  uma	
  lista;	
  
1.13. Remover	
  cada	
  segundo	
  elemento	
  de	
  uma	
  lista;	
  
1.14. Colocar	
  os	
  elementos	
  de	
  uma	
  lista	
  em	
  ordem	
  crescente;	
  
1.15. Retornar	
  a	
  soma	
  dos	
  inteiros	
  em	
  uma	
  lista;	
  
1.16. Retornar	
  o	
  número	
  de	
  elementos	
  em	
  uma	
  lista;	
  
1.17. Mover	
  Nodo(p)	
  n	
  posições	
  para	
  a	
  frente	
  em	
  uma	
  lista;	
  
1.18. Fazer	
  uma	
  cópia	
  de	
  uma	
  lista.	
  
	
  
3	
  -­‐	
  Por	
  questões	
  de	
  segurança,	
  a	
  recepção	
  de	
  um	
  edifício	
  de	
  um	
  banco	
  mantém	
  o	
  registro	
  de	
  
todas	
   as	
   pessoas	
   que	
   entram	
   e	
   saem	
   do	
   mesmo.	
   Sobre	
   cada	
   pessoa	
   são	
   armazenadas	
   as	
  
seguintes	
  informações:	
  
• Nome	
  
• Hora	
  entrada	
  
Elabore	
  um	
  programa	
  que	
  permita	
  gerir	
  a	
   informação	
  das	
  entradas	
  sobre	
  a	
  forma	
  duma	
  lista	
  
ligada.	
  Sempre	
  que	
  alguém	
  entra,	
  os	
  seus	
  dados	
  são	
  adicionados	
  à	
   lista.	
  Sempre	
  que	
  alguém	
  
sai	
  seus	
  dados	
  são	
  apagados.	
  Deve	
  ser	
  possível	
  listar	
  as	
  pessoas	
  que	
  se	
  encontram	
  no	
  edifício.	
  
Para	
   aumentar	
   o	
   nível	
   de	
   segurança	
   sempre	
   que	
   alguém	
   sai	
   do	
   edifício	
   é	
   registrado	
   num	
  
arquivo	
  texto	
  o	
  seu	
  nome,	
  hora	
  de	
  entrada	
  e	
  hora	
  de	
  saída.	
  Este	
  arquivo	
  de	
  texto	
  deverá	
  ter	
  
como	
  nome	
  a	
  data	
  a	
  que	
  diz	
  respeito.

Outros materiais