Pakiet programów do zdalnego nauczania Programowania Orientowanego Obiektowo
Dzisiaj jest
Poniedziałek, 16 Lipiec 2018
Zarejestrowanych użytkowników: 4
Dostępnych pytań testowych: 102
HOME
Strona tytułowa pracy dyplomowej
NAUKA
Materiały dydaktyczne związane z OOP
TESTY
Sprawdzenie poziomu zdobytej wiedzy
ZASOBY
Literatura i zasoby sieciowe o OOP
ŹRÓDŁA
Zbiór projektów dydaktycznych z OOP
KONTO
Możliwość śledzenia własnych postępów
INFO



Metoda szablonowa

Przykład 2
#include "identyfikacja.h"
#include "identyfikacjakz.h"

#include <iostream>

int main () {
	Identyfikacja * ident1 = new Identyfikacja ();
	Identyfikacja * ident2 = new IdentyfikacjaKZ ();
	
	std::clog << "IDENTYFIKACJA" << std::endl;
	ident1->krokIdentyfikacji();
	std::clog << std::endl;

	std::clog << "IDENTYFIKACJA Z KIERUNKOWYM ZAPOMINANIEM" << std::endl;
	ident2->krokIdentyfikacji();
	std::clog << std::endl;

	delete ident1;
	delete ident2;

	return 0;
}
#ifndef __IDENTYFIKACJA_H__
#define __IDENTYFIKACJA_H__
#include <string>

class Identyfikacja {
public:
	Identyfikacja ();
	virtual ~Identyfikacja ();
	void krokIdentyfikacji ();
	std::string wynikIdentyfikacji () const;
private:
	virtual void wyznaczP ();
	void wyznaczK ();
	void wyznaczEta ();
	void wyznaczTeta ();
};

#endif
#include "identyfikacja.h"
#include <iostream>

Identyfikacja::Identyfikacja () {
}

Identyfikacja::~Identyfikacja () {
}
	
void Identyfikacja::krokIdentyfikacji () {
	wyznaczP ();
	wyznaczK ();
	wyznaczEta ();
	wyznaczTeta ();
}

std::string Identyfikacja::wynikIdentyfikacji () const {
	return "Wynik identyfikacji, wektor teta=[...]\n";
}

void Identyfikacja::wyznaczP () {
	std::clog << "P(i)=inv(alfa*inv(P(i-1))+fi(i-1)*trans(fi(i-1)))" << std::endl;
}
	
void Identyfikacja::wyznaczK () {
	std::clog << "k(i)=P(i)*fi(i-1)" << std::endl;
}
	
void Identyfikacja::wyznaczTeta () {
	std::clog << "teta(i)=teta(i-1)+k(i)*eta(i)" << std::endl;
}
	
void Identyfikacja::wyznaczEta () {
	std::clog << "eta(i)=y(i)-trans(f(i-1))*teta(i-1)" << std::endl;
}
#ifndef __IDENTYFIKACJAKZ_H__
#define __IDENTYFIKACJAKZ_H__
#include "identyfikacja.h"

class IdentyfikacjaKZ : public Identyfikacja {
public:
	IdentyfikacjaKZ ();
	virtual ~IdentyfikacjaKZ ();
private:
	virtual void wyznaczP ();
};

#endif
#include "identyfikacjakz.h"
#include <iostream>

IdentyfikacjaKZ::IdentyfikacjaKZ () {
}

IdentyfikacjaKZ::~IdentyfikacjaKZ () {
}

void IdentyfikacjaKZ::wyznaczP () {
	std::clog << "kappa(i)=(1-alfa)*(1+(1/(trans(fi(i-1))*P(i-1)*fi(i-1))))" << std::endl;
	std::clog << "P1(i)=inv(inv(P(i-1))+fi(i-1)*trans(fi(i-1)))" << std::endl;
	std::clog << "P(i)=inv(inv(P1(i-1))-kappa(i)*fi(i-1)*trans(fi(i-1)))" << std::endl;
}
Adamik Łukasz, Politechnika Śląska w Gliwicach (AEiI) - 2010/11