Buscar

prova 1 professor Marcelo Sobral

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

1a avaliação de PRG2
22/09/2016
Instruções: resolva as questões, e compacte os arquivos resultantes. O
arquivo compactado deve se chamar "Seu_Nome.zip" ou "Seu_Nome.tar.gz".
As resoluções das questões serão avaliadas de acordo com o cumprimento 
do que foi pedido no enunciado e o correto funcionamento da solução 
(se compila e, ao executar, fornece o resultado correto sem trancamentos 
ou falhas de qualquer espécie). Cada questão vale 10 pontos e a pontuação 
da prova vai ajustar os conceitos dos projetos 1 e 2 da seguinte forma:
 < 10 pontos: os projeto 1 e 2 serão avaliados com conceito 1.
 entre 10 e 15 pontos: os conceitos dos projetos 1 e 2 serão reduzidos em dois pontos.
 entre 16 e 20 pontos: os conceitos dos projetos 1 e 2 serão mantidos.
 acima de 20 pontos: os conceitos dos projetos 1 e 2 serão elevados em até dois pontos. 
ATENÇÃO:
- A biblioteca prglib já está inclusa nos arquivos da prova
- Use a implementação de fila, pilha e lista da prglib
- Não podem ser usados vetores nas soluções
- As únicas consultas permitidas para essa prova são:
-- páginas do manual online do Linux (ex: man printf)
-- a wiki da disciplina 
-- Este guia de referência C++: http://www.cplusplus.com/
- Cada questão será considerada correta SE atender os requisitos enunciados E executar
corretamente os programas de teste fornecidos. Programas que não compilarem serão sumariamente desconsiderados.
=======================================================================
1. Escreva um programa que leia uma sequência de palavras do teclado e em seguida apresente-as indefinidamente desta forma:
palavra1 palavra2 palavra3 palavra4 ... palavraN ... palavra4 palavra3 palavra2 palavra1
palavra2 palavra3 palavra4 ... palavraN ... palavra4 palavra3 palavra2 
palavra3 palavra4 ... palavraN ... palavra4 palavra3
palavra4 ... palavraN ... palavra4
...
palavraN
palavra1 palavra2 palavra3 palavra4 ... palavraN ... palavra4 palavra3 palavra2 palavra1
palavra2 palavra3 palavra4 ... palavraN ... palavra4 palavra3 palavra2 
...
Seu programa deve usar filas e pilhas em sua solução.
Seu programa deve apresentar uma sequência completa de palavras a cada segundo. Dica: para pausar 1 segundo use a função "sleep" da biblioteca C padrão (veja o programa dica-sleep.cpp, e também o manual online através do comando "man 3 sleep").
=======================================================================
2. Reimplemente os algoritmos de busca em largura e busca em profundidade usando listas
ao invés de filas e pilhas. Baseie-se no arquivo "questao2.cpp".
OBS: para compilar "questao2.cpp" use este comando:
g++ -g -std=c++0x -o questao2 -I. questao2.cpp Diretorio.cpp
=======================================================================
3. Escreva uma função que transforme uma lista de string em uma única string. O resultado
deve ser uma string contendo todas as strings da lista concatenadas por um espaço. Essa
função pode ser declarada assim:
string junta(prglib::lista<string> & l);
Ao final, escreva um programa que demonstre que sua função funciona como esperado.
=======================================================================
4. Seja o arquivo "questao4.txt" contendo linhas com o seguinte formato:
nome quantidade dia/mes/ano
... sendo "nome" uma string alfanumérica e "quantidade" uma string numérica.
Escreva um programa que leia todas as linhas desse arquivo e gere uma lista contendo os números da coluna "quantidade". Ao final, essa lista deve ser ordenada de forma a mostrar seus dados em ordem decrescente (considere esses dados como sendo números inteiros).
OBS: a leitura da lista não deve demorar mais que 10 segundos !
=======================================================================
5. Escreva uma função que sorteie N valores de uma lista. Essa lista pode ter um tamanho arbitrário, sendo usualmente grande. Sua solução NÃO pode usar o método obtem, tampouco o operador []. A declaraçao dessa função pode ser esta:
// sorteia N valores da lista l
// resultado: uma lista contendo os valores sorteados
prglib::lista<string> sorteia(prglib::lista<string> & l, int N);
Escreva um programa que demonstre o funcionamento da sua função.

Teste o Premium para desbloquear

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

Outros materiais