AEMGA Ficha de Trabalho 1 Módulo 10 · PDF fileClasses e Classes Derivadas...

4

Click here to load reader

Transcript of AEMGA Ficha de Trabalho 1 Módulo 10 · PDF fileClasses e Classes Derivadas...

Page 1: AEMGA Ficha de Trabalho 1 Módulo 10 · PDF fileClasses e Classes Derivadas Exercício 1. Crie um programa que implemente a classe sequencia. A classe sequencia é composta por um

Classes e Classes Derivadas

Exercício 1. Crie um programa que implemente a classe sequencia.

A classe sequencia é composta por um atributo privado lim e por um conjunto de funções-

membro publicas com o objectivo de gerarem sequências de números:

dobro()

triplo()

quadrado()

Deverá conter um construtor da classe cujo único parâmetro é lim.

Por exemplo, com lim=10 a série dobro() gerará a sequencia de 10 números:

0 2 4 6 8 10 12 14 16 18

Proposta de resolução

#include <cstdlib>

#include <iostream>

#include <conio.h>

using namespace std;

class sequencias

{

private:

int lim;

public:

sequencias(int l) { lim=l;}

void dobro() { for(int i=0; i<lim; i++)

cout<<2*i<<' '; }

void triplo() { for(int i=0; i<lim; i++)

cout<<3*i<<' '; }

void quadrado() { for(int i=0; i<lim; i++)

cout<<i*i<<' '; }

};

int main()

{

sequencias s1(20);

s1.dobro();

cout<<endl;

Ficha de Trabalho 1 – Módulo 10

Disciplina: Programação e Sistemas de Informação – 12.º GPSI

Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos

Ano Letivo 2015/2016

AEMGA

Page 2: AEMGA Ficha de Trabalho 1 Módulo 10 · PDF fileClasses e Classes Derivadas Exercício 1. Crie um programa que implemente a classe sequencia. A classe sequencia é composta por um

s1.triplo();

cout<<endl;

s1.quadrado();

cout<<endl;

getch();

return 0;

}

Exercício 2. Crie um programa que implemente a classe data e a classe pessoa

A classe data é composta por três atributos do tipo inteiro, dia, mês e ano.

Deve conter um construtor para esta classe.

A classe pessoa é uma classe derivada da classe data que é composta pelo atributo bi,

sendo este o número do bilhete de identidade da pessoa.

Deve conter um construtor que permita criar uma nova pessoa com o respectivo bi e data

de nascimento.

Proposta de resolução

#include <cstdlib>

#include <iostream>

#include <conio.h>

using namespace std;

class data

{

private:

int dia;

int mes;

int ano;

public:

data(int d, int m, int a) {dia=d; mes=m; ano=a;}

void mostrar();

};

class pessoa : public data

{

private:

int bi;

public:

pessoa(int b, int d, int m, int a) : data(d,m,a) { bi=b;}

void mostrar();

};

void pessoa::mostrar() //redefinir métodos na classe derivada

{

Page 3: AEMGA Ficha de Trabalho 1 Módulo 10 · PDF fileClasses e Classes Derivadas Exercício 1. Crie um programa que implemente a classe sequencia. A classe sequencia é composta por um

data::mostrar();

cout << "BI:"<<bi<<endl;

};

void data::mostrar()

{

cout << "Dia_nasc:"<<dia<<endl;

cout << "Mes_nasc:"<<mes<<endl;

cout << "Ano_nasc:"<<ano<<endl;

};

int main()

{

int b,d,m,a;

cout<<"Qual o n de BI?";

cin>>b;

cout<<"Data de nascimento\n";

cout<<"Dia:";

cin>>d;

cout<<"Mes:";

cin>>m;

cout<<"Ano:";

cin>>a;

pessoa p1(b,d,m,a); //criação de objetos da classe pessoa

pessoa p2(345532,20,2,2000);

p1.mostrar();

p2.mostrar();

getch();

return 0;

}

Exercício 3. Escreva um programa que implemente a classe Círculo e a sua classe derivada

Cilindro. Desenvolva os construtores e funções-membro que julgar úteis para esta classe.

Proposta de resolução

#include <iostream>

#include <conio.h>

#define PI 3.14159

using namespace std;

class circulo

{

private:

float raio;

public:

Page 4: AEMGA Ficha de Trabalho 1 Módulo 10 · PDF fileClasses e Classes Derivadas Exercício 1. Crie um programa que implemente a classe sequencia. A classe sequencia é composta por um

circulo(float r) {raio=r;}

float getraio() {return raio;}

float getarea() {return PI*raio*raio;}

};

class cilindro : public circulo {

private:

float altura;

public:

cilindro(float a, float r) : circulo(r) {altura=a;}

float getaltura() {return altura;}

float volume(); //função definida fora da classe

};

float cilindro::volume() {return getaltura()*getarea();}

int main()

{

cilindro cil_1(4,3);

cilindro cil_2(10,10);

cout<<"Volume do cilindro 1: "<<cil_1.volume()<<endl;

cout<<"Volume do cilindro 2: "<<cil_2.volume()<<endl;

getch();

return 0;

}