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



Memento

Przykład 2
#include <iostream>

#include "proces.h"
#include "pamiatka.h"

void symulujProces (Proces & proces, unsigned int ile, double wej) {
	for (unsigned int i = 0; i < ile; ++i) {
		proces.symuluj(wej);
		proces.info();
	}
}

int main () {
	Proces proces;

	// symulacja wstepna
	symulujProces (proces, 30, 1.0);

	// zapisanie pamieci
	Pamiatka * pamiatka = proces.stworzPamiatke();
	std::clog << "ZAPISANO STAN PROCESU!" << std::endl;

	// symulacja procesu
	symulujProces (proces, 10, 0.0);

	// wczytanie stanu i symulacja
	proces.wczytajPamiatke(pamiatka);
	std::clog << "WCZYTANO STAN PROCESU!" << std::endl;
	proces.info();
	symulujProces (proces, 10, 1.0);

	delete pamiatka;

	return 0;
}
#ifndef __GENERATOR_H__
#define __GENERATOR_H__

class Generator {
public:
	Generator ();
	double losuj(double wariancja) const;
};

#endif
#include "generator.h"
#include <vector>
#include <numeric>
#include <cstdlib>
#include <ctime>
#include <cmath>

#include <iostream>

Generator::Generator () {
	std::srand(static_cast<unsigned int> (std::time(0)));
}

double Generator::losuj(double wariancja) const {
	std::vector<double> losy;

	for (unsigned int i = 0; i < 12; ++i) {
		unsigned int los = std::rand();
		losy.push_back((los % 1000) / 1000.0);
	}

	double los = std::accumulate(losy.begin(), losy.end(), 0.0) - 6;
	
	return los * std::sqrt(wariancja);
}
#ifndef __PAMIATKA_H__
#define __PAMIATKA_H__
#include <deque>

class Pamiatka {
private:
	Pamiatka (const std::deque<double> & pamiecU, const std::deque<double> & pamiecY, const std::deque<double> & pamiecE);

	std::deque<double> podajPamiecU () const;
	std::deque<double> podajPamiecY () const;
	std::deque<double> podajPamiecE () const;

	std::deque<double> s_pamiecU;
	std::deque<double> s_pamiecY;
	std::deque<double> s_pamiecE;

	friend class Proces;
};

#endif
#include "pamiatka.h"

Pamiatka::Pamiatka (const std::deque<double> & pamiecU, const std::deque<double> & pamiecY, const std::deque<double> & pamiecE) {
	s_pamiecU = pamiecU;
	s_pamiecY = pamiecY;
	s_pamiecE = pamiecE;
}

std::deque<double> Pamiatka::podajPamiecU () const { 
	return s_pamiecU; 
}

std::deque<double> Pamiatka::podajPamiecY () const { 
	return s_pamiecY;
}

std::deque<double> Pamiatka::podajPamiecE () const {
	return s_pamiecE; 
}
#ifndef __PROCES_H__
#define __PROCES_H__
#include "generator.h"
#include <vector>
#include <deque>

class Pamiatka;

class Proces {
public:
	Proces ();
	double symuluj (double wej);
	void info () const;

	Pamiatka * stworzPamiatke () const;
	void wczytajPamiatke (Pamiatka * pamiatka); 
private:
	const double s_wariancja;
	Generator s_generator;

	std::deque<double> s_pamiecU;
	std::deque<double> s_pamiecY;
	std::deque<double> s_pamiecE;
	std::vector<double> s_wspA;
	std::vector<double> s_wspB;
	std::vector<double> s_wspC;
};

#endif
Adamik Łukasz, Politechnika Śląska w Gliwicach (AEiI) - 2010/11