Regisztráció Blogot indítok
Adatok
cellSigma

0 bejegyzést írt és 81 hozzászólása volt az általa látogatott blogokban.

Admin Szerkesztő Tag Vendég
Elérkeztünk a félév labormunkáját lezáró második védéshez, amely a http://progpater.blog.hu/2013/03/10/kozos_feladatok_allamvizsga_beugro poszt három alábbi feladatának egyike lehet: [35 pont] 2D grafikus megjelenítő írása a Quantum Consciousness Soccer Simulator -…..
A laborhoz ajánlott muzsika a Kasabian - Club Foot: http://youtu.be/nOSuObRNBUA Ezen és a következő héten lazítunk picit - már aki nem véd éppen :) A védés intézménye A védés egy izgalmas aktus, amely során a hallgató a laborközösség előtt sorról-sorra celebrálja a…..
cellSigma 2013.03.23 12:24:22
@nb: Köszönöm szépen, tanár úr! Remélem jól csináltam:

pastebin.com/RDL6mzbC

Csak sejtszal.cpp és sejtablak.cpp, mert csak ezeken kellett változtatni.
Mi sarkantyúzna, nagy eszmék miatt,Hogy a muló perc élvéről lemondj?Míg most, jövőd ködön csillogva át,Ha percnyi léted súlyától legörnyedsz,Emel majd a végetlen érzete.S ha ennek elragadna büszkesége,Fog korlátozni az arasznyi lét.És biztosítva áll nagyság,…..
cellSigma 2013.03.11 18:44:26
@nb: Elkészültem vele, tanár úr, nem tudom, jár-e majd rá a pont, mert a legkezdőbb változat alapján készítettem, mert már abban is sok megemészteni való információ volt, és alig változtattam az eredeti kódon, mindenesetre tanulságos feladat volt.

main.cpp:

#include <iostream>
#include "pr.h"
using namespace std;

int main()
{
PR pr(4);
int meret;

double* vektor=pr.compute(meret);
for(int i=0;i<meret;++i)
cout<<vektor[i]<<endl;

return 0;
}

pr.cpp:

#include "pr.h"

double PR::distance(double* pr, double* prv, int length)
{
double sum=0.0;
for(int i=0;i<length;++i)
sum+=(prv[i]-pr[i])*(prv[i]-pr[i]);
return std::sqrt(sum);
}

double* PR::compute(int &the_size)
{

for(;;)
{
for(int i=0;i<size;++i)
{
pr[i]=0.0;
for(int j=0;j<size;++j)
pr[i]+=(matrix[i][j]*prv[j]);
}
if(distance(pr,prv, size)<PR::sensitivity) break;
for(int i=0;i<size;++i)
prv[i]=pr[i];
}

the_size=size;
return pr;
}

pr.h:

#include <cmath>

class PR
{
public:
static const double sensitivity=0.000000001;

PR(int size)
{
this->size=size;
pr=new double[size];
prv=new double[size];
for(int i=0;i<size;++i)
{
pr[i]=0.0;
prv[i]=1.0/size;

}
}

~PR()
{
delete[] pr;
delete[] prv;
}

double* compute(int &the_size);

private:
double distance (double* pr, double *prv, int length);
int size;
double matrix[4][4]=
{
{0.0, 0.0, 1.0/3.0, 0.0},
{1.0,1.0/2.0, 1.0/3.0, 1.0},
{0.0, 1.0/2.0, 0.0, 0.0},
{0.0, 0.0, 1.0/3.0, 0.0}
};
double* pr;
double* prv;
};

Kép: tinypic.com/r/10rve6u/6
cellSigma 2013.03.11 19:24:19
@nb: Megnéztem, én az -std=c++11 kapcsoló nélkül fordítottam, de simán fordul így:

pr.h

#include <cmath>

class PR
{
public:
static constexpr double sensitivity=0.000000001;

PR(int size)
{
this->size=size;
pr=new double[size];
prv=new double[size];
for(int i=0;i<size;++i)
{
pr[i]=0.0;
prv[i]=1.0/size;

}
}

~PR()
{
delete[] pr;
delete[] prv;
}

double* compute(int &the_size);

private:
double distance (double* pr, double *prv, int length);
int size;
double matrix[4][4]=
{
{0.0, 0.0, 1.0/3.0, 0.0},
{1.0,1.0/2.0, 1.0/3.0, 1.0},
{0.0, 1.0/2.0, 0.0, 0.0},
{0.0, 0.0, 1.0/3.0, 0.0}
};
double* pr;
double* prv;
};

A sensitivity deklarációjában a const lett lecserélve constexpr-re
A másik két forráskódban pedig nem kell változtatni.
Az új változat fordítása -std=c++11 kapcsoló nélkül és azzal együtt:

tinypic.com/r/27ys6w/6

De a hiba miatt azt hiszem,nem ér 5 pontot a megoldás... 3 pontban megegyezhetünk, tanár úr? :)
cellSigma 2013.03.19 06:43:31
@ShuffleSource: Köszi, tényleg a c++11 kapcsoló volta kulcsa a fordításnak, azt használva nem volt gond.
Részemről jár neked a pont :D
A laborhoz ajánlott muzsika a Fort Minor - Remember The Name: http://youtu.be/VDvr08sCPOc A negyedik laborig a kötelező (márc. 11-i) A KÖNYVből olvassuk el a a 190-218 oldalt a 295-301 oldalt ahonnan 3 olyan dolgot kérdezz meg a binomodtól, amelyet nem, vagy nehezebben értesz, a…..
A laborhoz ajánlott muzsika Stirlitz főcímzene: http://youtu.be/7H99FM6S8rU A harmadik labor (márc. 4-i hét) A KÖNYVből olvassuk el a a 115-141 oldalt a 142-187 oldalt ahonnan 3 olyan dolgot kérdezz meg a binomodtól, amelyet nem, vagy nehezebben értesz, a binom pedig próbáljon…..
A laborhoz ajánlott muzsika Liszt: http://youtu.be/7H99FM6S8rU Indítsuk is el, dőljünk hátra, kicsit lazítsunk és pár perc múlva vágjunk bele a második laborra történő felkészülésbe, mert az első laboron ne szépítsünk, a legtöbb hallgató állásait elsöpörte a labor. De…..
cellSigma 2013.02.24 13:54:01
@nb: Tanár Úr, az enumnál az volt a gond, hogy a myEnum típusú változó méretét írta ki myEnum típus mérete helyett? (azt nem említve, hogy csak itt nem szoroztam fel 8-cal)

Tehát helyesen:

#include <iostream>
using namespace std;

int main(){

enum myEnum {one, two, three};

myEnum first;

cout << "char: " << sizeof(char)*8 << endl;
cout << "short: " << sizeof(short)*8 << endl;
cout << "int: " << sizeof(int)*8 << endl;
cout << "long: " << sizeof(long)*8 << endl;
cout << "float: " << sizeof(float)*8 << endl;
cout << "double: " << sizeof(double)*8<<endl;
cout << "pchat: " << sizeof(char *)*8 << endl;
cout << "pint: " << sizeof(int *)*8 << endl;
cout << "pdouble: " << sizeof(double *)*8 << endl;
cout << "enum: " << sizeof(myEnum)*8 << endl;

kép:
tinypic.com/r/35d6hwn/6
cellSigma 2013.02.24 13:56:12
@cellSigma: Most a main() fv-t záró } maradt le a másolás során... :/

#include <iostream>
using namespace std;

int main(){

enum myEnum {one, two, three};

myEnum first;

cout << "char: " << sizeof(char)*8 << endl;
cout << "short: " << sizeof(short)*8 << endl;
cout << "int: " << sizeof(int)*8 << endl;
cout << "long: " << sizeof(long)*8 << endl;
cout << "float: " << sizeof(float)*8 << endl;
cout << "double: " << sizeof(double)*8<<endl;
cout << "pchat: " << sizeof(char *)*8 << endl;
cout << "pint: " << sizeof(int *)*8 << endl;
cout << "pdouble: " << sizeof(double *)*8 << endl;
cout << "enum: " << sizeof(myEnum)*8 << endl;
}
Kedves Hallgatók, Laborvezetők! Megszületett a várva-várt "interkurzus" megállapodás, bár a sillabuszt még nem tudtam frissíteni, de íme a lényeg a közös számonkérés kapcsán: mindhárom kurzus bead 16 feladatot március 15-ig a közösbe a közös feladatokból történő…..
cellSigma 2013.02.22 15:20:37
@Püsök Levente: Legjobb tudomásom szerint C-ben erre nincs lehetőség hagyományosan deklarált tömbökkel, dinamikus
tömbökkel lehet megoldani a malloc()-realloc()-free() hármassal. C++-ban pedig az std::vector tároló implementálja a dinamikus tömböket, ott azzal meg lehet oldani. Itt egy tutorial C-hez:

www.codingunit.com/c-tutorial-the-functions-malloc-and-free

Újrallokálásnál azonban a tömb minden elemét új helyre mozgatja a memóriában, és úgy fűzi hozzá az új elemeket, tehát ez elég költséges lehet. Remélem minden információm pontos, és segítettem valamit ezzel :)