Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz GUIA DE LABORATÓRIO 02 – MÓDULO I SEMESTRE 2013-1 DATA: / /2013 (TURMA 01) Matrícula Nome Nota 1. Objetivo Geral Os experimentos contidos neste guia de laboratório têm como objetivo o estudo do tipo estruturado class. 2. Experimento 1 Defina uma classe denominada Complexo, destinada à representação de números complexos. Lembre-se de que a forma geral de um número complexo é a + ib, na qual a representa a parte real do número e b sua parte imaginária (i indica imaginário). Use variáveis double na representação dos dados da classe e inclua um construtor que inicialize com valores default objetos desta classe, quando forem declarados. Crie funções-membros para a classe Complexo, as quais deverão executar as seguintes ações: a. somaComplexo/subtraiComplexo, as quais retornam, respectivamente, a soma e a diferença de dois números complexos [Lembre-se de que (a + ib) ± (c + id) = (a + c) ± i(b + d)]; b. multiplicaComplexo/divideComplexo, as quais retornam, respectivamente, o produto e a razão de dois números complexos [Lembre-se de que (a + ib) * (c + id) = (a.c - b.d) + i(a.d + b.c) e que (a + ib) / (c + id) = ((a.c + b.d) + i(b.c - a.d))/(c2 + d2)]; c. restoDivisao, a qual retorna o resto da divisão de dois números complexos; d. normaComplexo, a qual retorna a norma de um número complexo (a, bi); e. argComplexo, a qual retorna o argumento (fase) de um número complexo (a, bi); f. conjComplexo, a qual retorna o conjugado de um número complexo (a, bi); g. polarComplexo, a qual transforma para a forma polar um número complexo na forma retangular (ou cartesiana); e h. imprimeComplexo, na forma (a, b), na qual a é a parte real e b a parte imaginária. Crie um programa para testar a classe. Obs.: Cada uma específica. destas opções deverá ser implementada em uma função 3. Experimento 2 Crie uma classe Elevador para armazenar informações relativas a um elevador de passageiros instalado no interior de um edifício, a saber: (i) o andar atual (considerar o térreo como 0); (ii) o total de andares do edifício (excluindo o térreo); (iii) a capacidade do elevador; e (iv) o número de passageiros no interior do elevador. Também deverão ser implementadas as seguintes funções-membros: a) iniciaElevador, a qual recebe como parâmetros a capacidade do elevador e o total de andares do edifício (elevadores sempre partem inicialmente do térreo ou de um andar vazado); b) entraElevador, a qual acrescenta um passageiro ao grupo de passageiros do elevador, somente se ainda houver espaço; c) saiElevador, a qual remove um passageiro do elevador, somente se houver pelo menos um passageiro em seu interior; d) sobeUmAndar, a qual deve deslocar o elevador para um andar acima da posição atual, caso este ainda não esteja no último andar; e) desceUmAndar, a qual deve deslocar o elevador para um andar abaixo da posição atual, caso este ainda não esteja no térreo); e f) Funções-membros para a visualização de cada um dos dados armazenados. Obs.: Cada uma específica. destas opções deverá ser implementada em uma função 4. Experimento 3 Construa uma classe Televisão com dois controles, a saber: (i) de volume do som, o qual permite ao usuário aumentar ou diminuir o volume de som em uma unidade de cada vez; e (ii) de seleção de canal, o qual permite ao usuário incrementar ou decrementar o número do canal em uma unidade, possibilitando também selecionar qualquer canal desejado. Na aplicação de teste, crie uma televisão e teste a seleção de canais tanto por incremento/decremento quanto por indicação do canal desejado. Teste também o ajuste do volume para diferentes valores. Apresente, ao final, uma síntese dos ajustes do teste. Obs.: Cada uma específica. destas opções deverá ser implementada em uma função SUCESSO!