Nesneye Dayalı Programlama ( Butunleme 2014 ) Soru Çözümleri

Soru Çözümleri Aşağıdaki gibidir umarım faydalı olur …

Soru 1-)
Prizma.h (SupperClass)

 

 

#pragma once
class Prizma
{
public:
	Prizma();
	~Prizma();
	virtual void degerAta(double,double);
	virtual double hacimBul();
	  double AdegerAl();
	  double BdegerAl();
	
private:
	double a, b;
};

Prizma.cpp

#include "Prizma.h"


Prizma::Prizma()
{
}
void Prizma::degerAta(double _a, double _b){

	a = _a;
	b = _b;
}
double Prizma::AdegerAl(){

	return a;
}
double Prizma::BdegerAl(){

	return b;
}
double Prizma::hacimBul()
{

return 0;
}
Prizma::~Prizma()
{
}

Silindir.h

#pragma once
#include "Prizma.h"
class Silindir :
	public Prizma
{
public:
	Silindir();
	~Silindir();
	void degerAta(double, double);
	double AdegerAl();
	double BdegerAl();
	double hacimBul();
private:
	double a, b;
};

Silindir.cpp

#include "Silindir.h"


Silindir::Silindir()
{
}

void Silindir::degerAta(double _a, double _b){
	a = _a;
	b = _b;
}
double Silindir::AdegerAl(){
	return a;
}
double Silindir::BdegerAl(){
	return b;
}
double Silindir:: hacimBul(){

	return 3.14*a*a*b;
}
Silindir::~Silindir()
{
}

DiktortgenPrizma.h

#pragma once
#include "Prizma.h"
class DiktortgenPrizma :
	public Prizma
{
public:
	DiktortgenPrizma();
	~DiktortgenPrizma();
	void degerAta(double, double);
	double AdegerAl();
	double BdegerAl();
	double hacimBul();

private:
	double a, b;

};

DiktortgenPrizma.cpp

#include "DiktortgenPrizma.h"


DiktortgenPrizma::DiktortgenPrizma()
{

}
void DiktortgenPrizma::degerAta(double _a, double _b){
	a = _a;
	b = _b;
}
double DiktortgenPrizma::AdegerAl(){
	return a;
}
double DiktortgenPrizma::BdegerAl(){
	return b;
}
double DiktortgenPrizma::hacimBul(){

	return a*a*b;
}
DiktortgenPrizma::~DiktortgenPrizma()
{
}

Source.cpp

#include "Prizma.h";
#include "DiktortgenPrizma.h"
#include "Silindir.h"
#include <iostream>
using namespace std;
int main(){

	Silindir slndr;
	DiktortgenPrizma dp;
	Prizma *p1 = &slndr;
	Prizma *p2 = &dp;
	p1->degerAta(4, 5);
	p2->degerAta(4, 5);
	cout << p1->hacimBul() << "\n";
	cout << p2->hacimBul() << "\n";
	system("pause");
	return 0;
}

Soru 2-)

a-) Operatör aşırı yükleme
Operatörlerin aşırı yüklenmesi, bir operatörün bir nesne için bizim istediğimiz şekliyle çalışabilecek hale getirilmesidir diyebiliriz. Örneğin bir (+) operatörü varsayılan olarak iki sayının toplamı bulmak için veya iki ayrı metnin birleştirilmesi için kullanılır. Bazen yazdığımız sınıflara ait nesneler üzerinde operatörleri kullanmak isteriz. Bu durumda sınıfımızda bir takım değişiklikler yapmak zorundayız.

b-) Diziler ve pointerların ilişkisi

Bir dizinin adı sabit bir pointer olarak düşünülebilir. Dizinin adı dizinin sıfırıncı elemanın adresini tuttuğundan bir çeşit göstergedir.
Soru 3-) Telefon sorusu

#include <iostream>
class Telefon{
private :
	int fiyat, iskonto;
	double iskontoluFiyat;
public :
	Telefon(){}
	Telefon(int _fiyat, int _iskonto){


		fiyat = _fiyat;
		iskonto = _iskonto;


	}
	double iskontoYap(){

		iskontoluFiyat = double(fiyat) - (double(fiyat)*iskonto /100);
		return iskontoluFiyat;
	}


};
using namespace std;

int main(){
	int fiyat = 99;
	int iskontoOrani = 20;
	Telefon t1(fiyat, iskontoOrani);
	double yeniFiyat = t1.iskontoYap();
	cout << "iskontolu fiyat : " << yeniFiyat<<endl;

	system("pause");
	return 0;
}

 

C/C++ içinde yayınlandı

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir