Laboratório
de
Programação II
- Turma 490
Horários: 2AB
e 4CD
1. Implemente um carro.
O tanque de combustível do carro armazena no máximo 50
litros de gasolina. O carro consome 15 km/litro. Deve ser
possível:
- Abastecer o carro com uma certa quantidade de gasolina;
- Mover o carro em uma determinada distância
(medida em km);
- Retornar a quantidade de combustível e a
distância total percorrida.
No programa principal, crie 2 carros. Abasteça 20 litros no
primeiro e
30 litros no segundo. Desloque o primeiro em 200 km e o segundo em 400
km. Exiba na tela a distância percorrida e o total de
combustível
restante para cada um.
2. Crie uma
classe para
representar uma pessoa, com os atributos privados de nome, idade e
altura. Crie os métodos públicos
necessários para sets
e gets e também um
métodos para imprimir os dados de uma pessoa.
3. Crie uma classe denominada Elevador para armazenar as informações de
um elevador dentro de um
prédio.
A classe deve armazenar o andar atual
(0=térreo),
total de andares no prédio, excluindo o térreo,
capacidade do elevador, e
quantas pessoas estão presentes nele.
A classe
deve também disponibilizar os seguintes métodos:
- inicializa:
que deve receber como parâmetros: a capacidade do elevador e o
total de andares
no prédio (os elevadores sempre começam no térreo
e vazios);
- entra:
para acrescentar uma pessoa no elevador (só deve acrescentar se
ainda houver
espaço);
- sai:
para remover uma pessoa do elevador (só deve remover se houver
alguém dentro
dele);
- sobe:
para subir um andar (não deve subir se já estiver no
último andar);
- desce: para
descer um andar (não deve descer se já estiver no
térreo);
- get....:
métodos para obter cada um dos os dados armazenados.
4. Crie uma classe em
C++ chamada Relogio para armazenar um horário, composto por
hora, minuto e segundo. A classe deve representar esses componentes de
horário e deve apresentar os métodos descritos a seguir:
- um método chamado setHora, que deve receber o
horário desejado por parâmetro (hora, minuto e segundo);
- um método chamado getHora para retornar o
horário atual, através de 3 variáveis passadas por
referência;
- um método para avançar
o horário para o próximo segundo (lembre-se de atualizar
o minuto e a hora, quando for o caso).
5. Implemente
uma televisão. A televisão tem um controle de
volume do som e um controle de seleção de canal.
- O controle de volume permite aumentar ou diminuir a
potência do volume de som em uma unidade de cada vez.
- O
controle de canal também permite aumentar e diminuir o
número do canal
em uma unidade, porém, também possibilita trocar para um
canal indicado.
- Também devem existir métodos para
consultar o valor do volume de som e o canal selecionado.
No programa principal, crie uma televisão e troque de canal
algumas
vezes. Aumente um pouco o volume, e exiba o valor de ambos os atributos.
6. Implemente um
condicionador de ar. O condicionador possui 10
potências diferentes. Cada unidade da potência do
condicionador diminui a temperatura do ambiente em 1.8oC. A
variação que o condicionador consegue causar está
no intervalo [0oC - 18oC], ou seja, zero graus de
variação quando desligado e dezoito graus de
variação quando ligado na potência máxima.
Através de um sensor, o
condicionador é informado da temperatura externa. Dada essa
temperatura
e a potência selecionada, o condicionador calcula e retorna a
temperatura do ambiente.
No programa principal, crie dois
condicionadores. Informe duas temperaturas externas diferentes para
cada um (ex: 25oC e 31o), ajuste o segundo em
potência máxima (10) e o primeiro em potência
média (5). Finalmente,
exiba a temperatura resultante de cada ambiente.
7. Crie uma
classe Agenda que armazena 10 pessoas e seja capaz de
operações como:
class Agenda{
Pessoa
Povo[10];
public:
void
armazenaPessoa(string nome, int idade, float altura);
void removePessoa(string nome);
int buscaPessoa(string nome);
// informa em que posição da agenda está a pessoa
void imprimePovo(); // imprime todos os dados de todas as
pessoas da agenda
void imprimePessoa(int i); // imprime os dados da pessoa que
está na posição 'i' da agenda
};
int main()
{
Agenda A;
// faça aqui o teste da
agenda.
}
8.
Definir uma classe que
represente uma lista de
inteiros.
Esta classe deve armazenar os dados em um vetor de inteiros de tamanho
10.
Deve existir um vetor auxiliar de que indique, na posição
Vaux[i], qual o próximo elemento da lista após o elemento
que está na posição 'i'.
Na figura abaixo, considere que a lista inicia na posição
3.
No vetor auxiliar, o valor -1 indica que a posição
correspondente no vetor 'dados' está vazia. Por sua vez, o
valor -2 indica que a posição correspondente no vetor
'dados' é o último elemento da lista.
Índice |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Dados |
10 |
1 |
VAZIO |
9 |
VAZIO |
11 |
34 |
VAZIO |
VAZIO |
VAZIO |
VAZIO |
Vetor
Auxiliar(próximo) |
5 |
6 |
-1 |
0 |
-1 |
1 |
-2 |
-1 |
-1 |
-1 |
-1 |
Ao ser impressa, esta lista deve
apresentar os seguintes valores: 9,
10, 11, 1, 34.
A classe de deve ter
métodos para:
-
Inserção:
este método deve inserir um dado (int) na lista,
após o último dado inserido. Este método deve
retornar 1 quando conseguir inserir e 0 quando não houver mais
espaço na lista. Internamente, a inserção deve ser
feita no primeiro espaço livre do vetor de dados;
-
Remoção:
Remover um elemento da lista
dado seu valor. Este método deve
retornar 1 quando conseguir remover e 0 quando o dado não
existir na lista;
-
Impressão:
Imprime os dados na lista na ordem que foram inseridos.
void
ListaEncadeadaComVetor::imprimeLista()
{
int pos = inicio;
cout << "Lista: ";
cout << "Inicio: " << pos << endl;
for(int i=0; i< TAM; i++)
{
cout << Dados[pos] << "(" << pos << ")";
pos = Aux[pos];
if (pos == -2)
break;
else cout << ", ";
}
cout << endl;
}
Sugestão para definição da classe:
#include <iostream>
using namespace std;
const int TAM = 10;
class ListaEncadeadaComVetor{
int inicio;
int Dados[TAM];
int Aux[TAM];
int achaPosUltimo();// Este método faz a busca do último a partir dos
// dados da lista e não a partir do vetor auxiliar
int achaPosLivre(); // Este método faz a busca de um espaço lvre
// a partir do vetor auxiliar
public:
ListaEncadeadaComVetor ();
int insereDado(int D);
int removeDado(int D);
void imprimeLista();
};
FIM.