Exercícios. Classes: Um exame mais profundo. C Como programar: Capítulo 17 C++ Como programar: Capítulo 9. Wednesday, April 22, 15

Documentos relacionados
Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Classes e Objetos. Prof. Leonardo Barreto Campos 1

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Programação Orientada a Objetos para Redes de Computadores

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Algoritmos II prof. Daniel Oliveira

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

1ª Lista de Exercícios

Introdução à Programação Orientada a Objetos em C++

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Parte IV. Linguagens de Programação. Relembrando da Última Aula... Empacotador de Préprocessadores. Primeiro Exemplo Usando Classes em C++

LISTA DE EXERCÍCIOS 2

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

Lição 7 Array em Java

LINGUAGEM C: PONTEIROS

Revisão C++ - Parte 1

Técnicas de Programação:

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006)

Estruturas de Repetição

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

Análise de Programação

Java Variáveis e Controle Fluxo

Exercícios: Vetores e Matrizes

AULA 02 DADOS PRIMITIVOS E EXERCÍCIOS

COMPORTAMENTOS - Observações

Linguagem C: Ponteiros. Prof. Leonardo Barreto Campos 1

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

Algoritmos e Programação

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Estruturas de Dados. Módulo 2 Expressões. 9/8/2005 (c) Marco A. Casanova - PUC-Rio 1

Lista de exercícios 2

Algoritmos e Programação

Material Didático Unificado.

Array em Java. Figura 1 - Exemplo de um array de inteiros

//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Introdução a Ponteiros e Vetores em C

Aula 5 Entendendo as definições de classe. Prof. Pedro Baesse

Programação C/C++ Slide 5 Nielsen Castelo Damasceno

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador.

Laboratório de programação II

a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: ( 1)

Curso: Técnico em Informática Integrado Disciplina: POO Carga horária: 60h Período: 2º Ano Professor: Edmilson Barbalho Campos Neto LISTA 02.

Universidade Estadual de Santa Cruz

Ponteiros de Variáveis

Linguagem Java - Introdução

JAVA NETBEANS Aula PGOO Prof. Daniela Pires Conteúdo

Fundamentos de Programação

Aula 4 Estruturas de Controle

Algoritmos e Estruturas de Dados I. Passagem de Parâmetros. Pedro O.S. Vaz de Melo

GEQ Prof. Paulo R. Coelho. Lista para prova

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Linguagem de Programação III

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Estrutura de Dados Funções e Procedimentos

Tipos, variáveis, operadores, e entrada e saída

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Estruturas de Repetição

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Introdução a Linguagem C. Prof. Me. Hélio Esperidião

Visibilidade e Encapsulamento

Transcrição:

Exercícios Classes: Um exame mais profundo. C Como programar: Capítulo 17 C++ Como programar: Capítulo 9 1

1. Preencha as lacunas em cada uma das seguintes sentenças a) Os membros de classe são acessados via operador em conjunto com o nome de um objeto (ou referência a um objeto ) da classe ou via operador em conjunto com um ponteiro para um objeto da classe. 2

1. Preencha as lacunas em cada uma das seguintes sentenças a) Os membros de classe são acessados via operador ponto (.) em conjunto com o nome de um objeto (ou referência a um objeto ) da classe ou via operador seta (->) em conjunto com um ponteiro para um objeto da classe. 3

1. Preencha as lacunas em cada uma das seguintes sentenças b) Os membros de classe específicas definidos com o modificador de acesso são acessíveis apenas às funções membro da classe e friends da classe. 4

1. Preencha as lacunas em cada uma das seguintes sentenças c) Os membros de classe específicas definidos com o modificador de acesso são acessíveis em qualquer lugar que um objeto da classe esteja no escopo. 5

1. Preencha as lacunas em cada uma das seguintes sentenças c) Os membros de classe específicas definidos com o modificador de acesso public são acessíveis em qualquer lugar que um objeto da classe esteja no escopo. 6

1. Preencha as lacunas em cada uma das seguintes sentenças d) A pode ser utilizada para atribuir um objeto de uma classe a outro objeto da mesma classe. 7

1. Preencha as lacunas em cada uma das seguintes sentenças d) A atribuição-padrão de membro a membro pode ser utilizada para atribuir um objeto de uma classe a outro objeto da mesma classe. 8

2. Localize os erros em cada uma das sequências e explique como corrigi-los: void ~Time( int ); 9

2. Localize os erros em cada uma das sequências e explique como corrigi-los: class Time { public: private: int hour=0; int minute = 0; int second = 0; } 10

2. Localize os erros em cada uma das sequências e explique como corrigi-los: Suponha que o seguinte protótipo de construtor foi declarado na classe Employee: int Employee(const char *, const char *); 11

3. Qual é o propósito do operador de resolução de escopo? 12

6. Crie uma classe chamada Rational para realizar aritmética com frações. Escreva um programa para testar sua classe. Utilize variáveis do tipo inteiro para representar os dados private da classe - o numerador e o denominador. Forneça um construtor que permita que um objeto dessa classe seja inicializado quanto ele for declarado. O construtor deve conter valores-padrão no caso de nenhum inicializador ser fornecido e deve armazenar a fração na forma reduzida. Por exemplo, a fração 2 / 4 seria armazenada como 1 no numerador e 2 no denominador. Forneça funções-membro public que realizam cada uma das tarefas a seguir: a) somar dois números Raional. O resultado deve ser armazenado na forma reduzida. b) subtrair dois números Raional. O resultado deve ser armazenado na forma reduzida. c) multiplicar dois números Raional. O resultado deve ser armazenado na forma reduzida. d) dividir dois números Raional. O resultado deve ser armazenado na forma reduzida. e) imprimir o número Rational na forma a / b, onde a é o numerador e b é o denominador f) imprimir o número Rational em formato de ponto flutuante. 13

7. Aprimorando a classe Time Modifique a classe Time para incluir uma função-membro tick que incrementa a hora armazenada em um objeto Time por um segundo. O objeto Time sempre deve permanecer em um estado consistente. Escreva um programa que testa a função membro tick em um loop que imprime a hora no formato-padrão durante cada interação do loop para ilustrar que a função membro tick funciona corretamente. Certifique-se de testar os seguintes casos: a) incrementar para o próximo minuto. b) incrementar para a próxima hora c) incrementar para o próximo dia. 14

8. Aprimorando a classe Date Modifique a classe Date para realizar a verificação de erros nos valores inicializadores para membros de dados month, day e year. Além disso, forneça uma função-membro nextday para incrementar o dia por 1. O objeto Date sempre deve permanecer em um estado consistente. Escreva um programa que testa a função nextday em um loop que imprime a data durante cada iteração, para ilustrar que nextday funciona corretamente. Certifique-se de testar os seguintes casos: a) incrementa para o próximo mes b) incrementa para o próximo ano. 15

9. Combinando a classe Time e a classe Date Combine a classe Time modificada no exercício 7 e a classe Date modificada no exercício 8 em uma classe chamada DateAndTime. Modifique a função tick para chamar a função nextday se a hora for incrementada para o dia seguinte. Modifique a função printstandard e printuniversal para gerar saída da data e da hora. Escreva um programa para testar a nova classe DateAndTime. Especificamente, teste incrementar a hora para o dia seguinte. 16

10. Retornando indicadores de erros das funções set da classe Time Modifique as funções set na classe Time para mostrar valores de erros apropriados se uma tentativa de configurar um membro de dados de um objeto da classe Time para um valor inválido for feita. Escreva um programa que testa sua nova versão da classe Time. Exiba mensagens de erro quando funções set retornarem valores de erro. 17

11. Classe Rectangle Crie uma classe Rectangle com atributos length e width, cada um dos quais assume o valor-padrão 1. Forneça funções-membro que calculam os atributos perimeter e area do retângulo. Além disso, forneça as funções set e get para os atributos lenght e width. As funções set devem verificar se length e width são números de ponto flutuante maiores que 0.0 e menores que 20.0. 18

12. Classe Rectangle Aprimorada Crie uma classe Rectangle mais sofisticada que aquela que voce criou no exercício 11. Essa classe armazena somente as coordenadas cartesianas dos quatro vértices do retângulo. O construtor chama uma função set que aceita quatro conjuntos de coordenadas e verifica se cada uma delas está no primeiro quadrante sem coordenadas x ou y individualmente maiores que 20. A função set também verifica se as coordenadas fornecidas especificam de fato um retângulo. Inclua uma função square que determina se o retângulo é um quadrado. 19

14. Classe HugeInteger Crie uma classe HugeInteger que utiliza um array de 40 elementos de digitos para armazenar inteiros com até 40 digitos cada. Forneça as funções-membro input, output, add e subtract. Para comparar objetos HugeInteger, forneça funções isequalto, isnotequalto, isgreaterthan, islessthan, isgreaterthanorequalto e islessthanorequalto. Cada uma dessas é uma função predicado que simplesmente retorna true se o relacionamento se mantém entre os dois HugeInteger e retorna false se o relacionamento não se mantém. 20

Fim 21