HTML

Programozó Páternoszter

Ez a Programozó Páternoszter (PP) blogja, a programozásról szól. Aktualitása, hogy a Debreceni Egyetem Informatikai Kara Magasszintű programozási nyelvek 1-2, C++ esattanulmányok, Java esettanulmányok című kurzusainak blogja is egyben.

A vadászat

A Debreceni Egyetem Programozói Évkönyve: az UDPROG projekt. A szakmai fórumunk a Facebook-en. Az új előadások a prezin.
A régi előadások:
Prog1:
1. C bevezetés
2. C tárgyalás
3. C befejezés
4. C a gyakorlatban
5. C++ bevezetés
6. C++ tárgyalás
7. C++ befejezés
8. C++ a gyakorlatban
9. Java platform bevezetés
10. Kvantuminformatikai alg. bev.
Prog2:
1. Java bevezetés
2. Java tárgyalás
3. Java befejezés
4. Java a gyakorlatban
5. Software Engineering bev.
6. Java EE bevezetés
7. AspectJ bevezetés
8. BPMN-BPEL SOA programozás
9. C++ haladó
10. Tensorflow

Kövess engem!

Friss topikok

Linkblog

Közös feladatok, államvizsga beugró

2013.03.10. 13:24 nb

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, erény.

Madách Imre, Az ember tragédiája, http://mek.oszk.hu/00900/00914/html/madach15.htm

Kedves Hallgatóim, ebben a posztban az ("interprogkurzus") közös feladatsort állítjuk össze. Hogy idővel ezek a feladatok kinövik-e magukat a most (és egy ideje már) tervezett államvizsga beugró programozási feladatoknak, az jelen pillanatban még kérdéses. S könnyen meglehet, hogy az a szintén jobbító motivációjú, ám opponens megközelítés győz, miszerint "scanf háromszög oldalai, printf területe" jellegű feladatok kellenek az államvizsgára. Ez a megközelítés tőlem nagyon távol áll, mert meggyőződésem, hogy a tervezett államvizsga feladatsorokat a külső megfigyelők, például

  • az egyetemet kereső közéspiskolások
  • a K+F feladatokat, vagy egyszerűen szakértést kihelyezni tervező
  • a munkaerőt kereső cégek
  • a támogató vagy versenyben álló társintézmények

a mi interpretációnktól függetlenül a képzésünkkel fognak azonosítani, azzal az egyszerű heurisztikával, hogy "mi ezt tudjuk".

Az imént említett "opponenes példa" programozási nyelvi szempontból véleményem szerint értékelhetetlen (nem a beépített matematika miatt, hiszen egy algoritmusnak egy hatékony megvalósítását, mondjuk párhuzamos környezetben például CUDA-val, vagy OpenMP-vel természetesnek és fontosnak tartom - mint ahogyan vannak is ilyen laborfeladataink -  de ezek az algoritmusok azért túl kell mutassanak a szóban forgó Hérón képlet szimpla alkalmazásán :)

S persze azt se feledjük, hogy a mi megközelítésünkben a hallgató minden esetben internetes gépével dolgozhat (így a prog1 laborvédéseken, szóbeli és írásbeli vizsgán vagy akár a tervezett államvizsga beugrón is). Jó intuitív kép, ha az ideális informatikus mérnök hallgatónkat úgy képzeljük el, hogy a Linuxos laptopja rá van operálva a karjára :)

prog1.png

A kép csak illusztráció.

E kis bevezető után tehát íme a mi kurzusunk hozzájárulása a prog1 közös feladatok halmazához. Vegyük észre, hogy az általunk a közösbe delegált feladatok rendre a  laborfeladataink, a másodiktól labortól az utolsókig. (A feladat nehézségét a kiírás elején tüntetem fel, s egyben most fel is adom ide beküldhető trófeának a feladat tiszta C++* megvalósítását, feladatonként az első 10 hallgatót pontozom).

  1. [7 pont] A Google PageRank algoritmus implementációja C++ nyelven (didaktika: kvázi két egymásba ágyazott for ciklus a mátrix-vektor szorzás megvalósítására). Ezzel a feladattal a 2. laboron foglalkoztunk.
  2. [9 pont] Az EXOR-os titkosítás brute force törése C++ nyelven. Ezzel a feladattal a 3. laboron foglalkoztunk.
  3. [15 pont] Liv, Zempel, Welch algoritmussal bináris szófa építése, a fát jellemző mennyiségek meghatározása a Humán Genom 2. kromoszómájára, C++ nyelven. Ezzel a feladattal a 4-5. laborokon foguk foglalkozni (illetve ez lesz az első laborvédés témája).
  4. [20 pont] A Conway-féle életjáték grafikus megvalósítása Qt C++-ban. (Tavaly itt foglalkoztunk vele, idén majd slot-signal-ra átírni a callback helyett lesz a téma.)
  5. [22 pont] OpenMP alapú Mandelbrot-halmaz nagyító és mentő program írása C++ nyelven. (Tavaly itt foglalkoztunk ezzel.)
  6. [23 pont] POSIX Threads alapú Mandelbrot-halmaz nagyító és mentő program írása C++ nyelven. (Tavaly itt foglalkoztunk ezzel.)
  7. [27 pont] CUDA alapú Mandelbrot-halmaz nagyító és mentő program írása C++ nyelven. (Tavaly ez nem volt, de itt a részletes kidolgozása.)
  8. [35 pont] 2D grafikus megjelenítő írása a Quantum Consciousness Soccer Simulator - kvantum-tudatos foci szimulátorhoz C++ nyelven, Qt-vel.
  9. [70 pont] Saját Lexer osztállyal felszerelt 2D RoboCup Soccer Simulation multiágens robotfoci csapat készítése C++ nyelven. (Kiindulási csapatod lehet például majd a Debrecen Round Forest FC++, természetesen nem ezzel kezdünk a laboron.)
  10. [100 pont] Saját Quantum Consciousness Soccer Simulator multiágens foci és szurkolói csapat készítése C++ nyelven.

A második laborvédés témájaként az utolsó 3 feladat egyike választható (amelyet nyilván egészen más szinten kell ismerni közös feladatként illetve laborvédésként).

*: C++ headerek, malloc->new stb.

127 komment

A bejegyzés trackback címe:

https://progpater.blog.hu/api/trackback/id/tr905125898

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

nb · http://fersml.blog.hu 2013.03.17. 15:56:54

@K.E.910720: melyik feladatra gondolsz pontosan?

nb · http://fersml.blog.hu 2013.03.17. 16:00:30

@Tasnádi Dániel: valami indentálást majd izzítsunk, mert ez a kód rettenetesen néz ki így. De hogy valóban izzítsunk, adnék további +1 pontot, ha újra látom indentálva!

Tasnádi Dániel 2013.03.17. 16:54:40

@nb: Köszönöm a lehetőséget, kész is van:
Ha megfelel, elkönyvelem az egy pontot.

kepfeltoltes.hu/130317/2013-03-17-165056_1400x1300_scrot_www.kepfeltoltes.hu_.png

ShuffleSource 2013.03.19. 00:54:15

Mátrix fv könyvtár OO-an, sok metódussal és inverz számítással:
pastebin.com/wXjTatEB

ShuffleSource 2013.03.19. 00:57:25

@cellSigma: egy tuti: c++98-ban nem definiálhatsz változókat csak deklarálhatod őket! Az értékadást rakd át a konstruktorba vagy használd a c++11 kapcsolót! (ezért jár pont? :D)

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

ShuffleSource 2013.03.19. 17:10:35

@ShuffleSource: Őh az előzö paste lejárt, de most beregisztráltam és ez elvileg sose fog lejárni:
pastebin.com/3eucw0QY
Mellékelt ábra:
kepfeltoltes.hu/130319/matrix1_www.kepfeltoltes.hu_.png

nb · http://fersml.blog.hu 2013.03.20. 09:44:45

@ShuffleSource: lehengerlő, de a pont kigondolásához a forrásról is tudnom kell valamit, azzal mi a helyzet? Saját kód?

ShuffleSource 2013.03.20. 16:07:40

Tanár úr kódja, átalakítva, ott van a leírásban a link, de bemásolom ide is:
pastebin.com/JdizdqiJ

Tasnádi Dániel 2013.03.22. 10:57:52

@nb: Üdvözletem Tanár úr!
Jól értelmezem a legutolsó e-mailt, amit küldött és mindenki szerezhet pontot végtelen ciklusra, DOC bookra, stb. , amik már voltak feladatok?

Gabol91 2013.03.22. 11:02:00

@Tasnádi Dániel: Ez engem is érdekelne! Pontozása ugyanúgy zajlana, mint a kezdeti kiírásokban?

nb · http://fersml.blog.hu 2013.03.22. 11:24:52

@Tasnádi Dániel: igen, pontosan (bár a DocBook még amúgy sem volt full szerintem :)

nb · http://fersml.blog.hu 2013.03.22. 11:26:05

@Gabol91: igen, de mindig kell a "bizonyíték": forrás kép, adott esetben videó (ugye a tutorial videós mindig külön +pontot is jelet, mivel segíti a közösséget)

Tasnádi Dániel 2013.03.22. 11:31:18

@nb: Ennek igazán örülök. :)

B.Norbi93 2013.03.22. 23:20:35

LZW binfa C++-ban, Humán genom 2. kromoszómájára, + fa mélysége, mélységek átlaga, szórása.
hs_alt_HuRef_chr2.fa.gz fájlt előtte "fordítottam" az SVN-ben található d.c-vel 0-1 bitsorozatra, majd ezt használtam bemenetként. Bízom benne, hogy jól értelmeztem a feladatot, és a megvalósítás is jó:

Kód:
imagerz.com/QE8TWEtvAwMBXggZQwVR

Terminal:
imagerz.com/QE8TWEtvAwMBXggZQgVR

Ha minden OK, akkor 15 pont

nb · http://fersml.blog.hu 2013.03.23. 09:40:23

@B.Norbi93: miből adódik a 15 pont?

Maga az eredmény szerintem hibás... 900 körüli mélység nem dereng nekem. Ami azért lehet, mert a d.c akkor kell, amikor a karakteres dump-ot csináljuk, pl. a C-s LZW-hez, ami betűket dolgozott fel. Viszont (a védendő) z3a?.cpp progikba már eleve "be van építve" a d.c bitfaragása, így az binárisan dolgozza fel a bemenetét, azaz itt a dump előtte nyilván nem kell ezért.

B.Norbi93 2013.03.23. 15:18:54

@nb: Sejtettem, hogy ha valahol hibás lesz a feladat, akkor az a karakteres dumpos "fordítás" miatt lesz, mivel azt a részét a korábbi posztoknak nem igazán értettem :)

Módosítottam a programkódot úgy, hogy a z3a3.cpp szerint dolgozzon fel (a hs_alt_HuRef... fájlból első 10 megát levágjuk, és arra engedjük rá).

Viszont a szórás és az átlag meghatározásával kapcsolatban ismét szükségem lenne egy kis útmutatóra: ha jól értelmeztem a dolgokat, akkor a z3a3.cpp progiban csak azoknak a csomópontoknak az átlaga ill. szórása van meghatározva, amelyeknek nincs elemgyermeke:

if (elem->egyesGyermek() == NULL && elem->nullasGyermek() == NULL)
{
++atlagdb;
atlagosszeg += melyseg;

}

(szórásnál ugyanígy).

Ezzel szemben én az összes csomópontot figyelembe vettem. Tehát mindössze annyi kérdésem lenne, hogy az összes csomópont mélységének az átlagát ill. szórását kell meghatározni, vagy csak a fa végpontjainak az átlagát ill. szórását?

nb · http://fersml.blog.hu 2013.03.23. 15:26:15

@B.Norbi93: legalább a z3a7.cpp-t használd.

Az az elem, amelynek mindkét gyermeke NULL, vagy a C++-os verzóióban 0, ugye egy elvél elem, tehát egy ágnak a vége.

Tanulmányozd a képet:
m.cdn.blog.hu/pr/progpater/image/tomor/lzwpapir.jpeg
itt ugye 4 ág van: progpater.blog.hu/2011/03/05/labormeres_otthon_avagy_hogyan_dolgozok_fel_egy_pedat

nb · http://fersml.blog.hu 2013.03.23. 15:27:43

@nb: tehát az ágak átlagos hossza kell: összes ág hosszai összeadva és osztva az ágak darabszámával.

A szórás pedig ettől az átlagtól az eltérést jellemzi.

B.Norbi93 2013.03.23. 17:29:28

@nb: Így már akkor érthető az eltérés. Ezek alapján módosítottam a kódot, és az eredményt összevetettem immár a z3a7.cpp eredményével:

terminal:
imagerz.com/QE8TWUtvAwMBXg8eFAVQ

kód:
imagerz.com/QE8TWUtvAwMBXg8eFwVR

Van ennél szebb megvalósítás is, de inkább a megkezdett kódomat módosítgattam, aztán majd szépítgetem :)

nb · http://fersml.blog.hu 2013.03.23. 17:56:58

@B.Norbi93: ez az egész 2. kromoszómára van futtatva?

B.Norbi93 2013.03.23. 22:02:01

@nb: Nem, a cut.out progival levágtam az első 10 megát, de megcsináltam a teljes hs_alt_HuRef_chr2.fa fájlra is ('Gyönyör a tömör újratöltve' poszt alapján):

imagerz.com/QE8TWUtvAwMBXg5IRAVQ

A diff parancsot most nem tudtam futtatni (memory exhausted), de a fájlok mérete megegyezik (az enyém 3 bájttal nagyobb, gondolom a fájl végén az értékeknél lévő +3 karakterem miatt)

nb · http://fersml.blog.hu 2013.03.24. 10:21:50

@B.Norbi93: módosítsd a forrást esetleg, hogy ne nyomja ki a fát elég a végén a 3 számot, így nem lesz gondod a nagy fájlokkal bizonyosan.

B.Norbi93 2013.03.24. 12:32:38

@nb: Annyira nem vészes a dolog, a HDD-n végülis van hely, csak mountolni kell a D meghajtót. A tail paranccsal meg a lényeget elő lehet varázsolni (egyébként ez az eredmény már jó, nem?)

Továbbá, ha már el lett törölve a létszámkorlát is, akkor a kék Mandelbrot-hz.-t is benyújtanám:
progpater.blog.hu/2013/02/25/a_hatodik_labor_anyaga_szep_poszt/fullcommentlist/1#c19327295

smajdam 2013.03.25. 13:43:18

Volt egy olyan ajánlat, hogy be lehet menni kedden megnézni azokat, akik már dolgoznak az egyetemi projekteken, és az lenne a kérdésem, hogy akkor ez pontosan hánykor és hol lehetséges?

nb · http://fersml.blog.hu 2013.03.25. 13:48:06

@smajdam: Kedd, 16.00, Kari kutatóterem, I232.

Smajdam 2013.03.25. 18:43:53

@nb: hát sajnos zh-m lesz, szóval most nem tudok elmenni :/

Smajdam 2013.03.25. 20:36:53

@nb: lenne még egy olyan kérdésem a védéssel kapcsolatban, hogy a laboron említett függvény miért return-öli 'os'-t ?

friend std::ostream & operator<< (std::ostream & os, LZWBinFa & bf)
{
bf.kiir (os);
return os;
}

úgy értelmeztem eddig, hogy pl:

std::cout << a << b ; // tfh a és b LZWBinfák

esetén kell ez, mert ez így írható fel:

operator<< (operator<<(std::cout,a), b);

ha minden igaz. és ekkor a külső függvény első paramétere szintén az std::cout lesz, így a b-t is oda fogja kiírni. De csináltam egy példaprogit, hogy ezt leellenőrizzem, és return nélkül is ugyan így működik. akkor most teljesen más miatt kell a return? és ha igen akkor mi az ?

köszönöm!

nb · http://fersml.blog.hu 2013.03.25. 21:00:35

@Smajdam: van egy void-os eltolás túlterhelés, ha azt így próbálod használni:

binFa << '1' << '0';

fogod látni, hogy fordítási hiba lesz.

nb · http://fersml.blog.hu 2013.03.27. 16:27:05

@ShuffleSource: nekem ezzel:

norbi@colossus:~$ gcc bogo.c -o bogo
norbi@colossus:~$ ./bogo
Calibrating delay loop.. ok - 976.00 BogoMips

mi történik, ha -O3 opciós optimalizálással fordítjátok?

ShuffleSource 2013.03.27. 19:09:55

-O3 optimalizálással nem sikerül kiszámolni a programnak! ...failed:
kepfeltoltes.hu/130327/bogomips_www.kepfeltoltes.hu_.png

Megnéztem az assembly kódot és ha tippelnem kéne, azért történik ez, mert optimalizálás-képpen a fordító többször is kiszámoltatja a loops_per_sec értékét egy cikluson belül, aminek köszönhetően az (mivel önmaga is benne van a számítási feltételben) egyre kisebb részekre oszlik, majd a végén 0 lesz (mivel egész típusú, így elveszti a tört részét), ami hamis logikai értéke miatt nem teljesül a while feltétele, így a program tovább ugrik és hibával kilép!

Lehet teljesen zagyvaságot írtam, ez csak egy tipp...

ShuffleSource 2013.03.27. 19:12:11

@ShuffleSource: az assembly kód képét elfelejtettem linkelni: kepfeltoltes.hu/130327/bogo_asm_www.kepfeltoltes.hu_.png

Egyébként tanár úr mondta, hogy majd leírja ide kommentben, hogy mi kell ahhoz, hogy a kapott érték függjön a processzormagok számától!

nb · http://fersml.blog.hu 2013.03.27. 21:30:47

@ShuffleSource: jó improvizáció, nálam a progid:

norbi@colossus:~$ ./bogo
Calibrating delay loop..
ok - 1024.00 BogoMips per thread
ok - 1040.00 BogoMips per thread
ok - 880.00 BogoMips per thread
ok - 880.00 BogoMips per thread
ok - 880.00 BogoMips per thread
ok - 880.00 BogoMips per thread
ok - 880.00 BogoMips per thread
ok - 880.00 BogoMips per thread
result: 7344 BogoMips
threads: 8

miközben

norbi@colossus:~$ more /proc/cpuinfo
...
bogomips : 7200.05

azért néga 15.000-et ad. Elolvasom a kódodat is és lesz pát további javaslatom, +pontért persze :)

ShuffleSource 2013.03.27. 21:54:36

@nb: Epic win! :D Ennek örülök!
Várom a javaslatokat! :)

ShuffleSource 2013.04.01. 01:26:00

Ez eredetileg a 3. labor posztjához kéne, hogy menjen, de ide posztolom, mert annyira király lett!
Még én is meglepődtem magamon:

Kép:
kepfeltoltes.hu/130401/prog2_21_www.kepfeltoltes.hu_.png

Forráskód:
pastebin.com/GUtEcFYP

Megj: semmi netes kukázás, saját agyalás műve!

Esetleg plusz pont a hacker stílusért?

Tasnádi Dániel 2013.04.03. 03:13:27

@nb: Tiszteletem Tanár úr!

Ha jól értelmeztem az új játékszabályokat ezekre a megoldásokra kaphatok pontot:
(Jóváhagyásáig nem könyvelem el)

--- végtelen ciklusok (3 pont)

- 100% terhelő:
kepfeltoltes.hu/130403/terhel-2013-04-03-023006_1600x1600_scrot_www.kepfeltoltes.hu_.png

- alig terhelő:
kepfeltoltes.hu/130403/alig-terhelo-2013-04-03-014620_1600x1600_scrot_www.kepfeltoltes.hu_.png

--- régi prezi 105-ös fóliája (2 pont) :
kepfeltoltes.hu/130403/105--2013-04-03-025546_1600x1600_scrot_www.kepfeltoltes.hu_.png

--- másik könyv, chapter2 (1 pont):
kepfeltoltes.hu/130403/chptr-2--2013-04-03-024145_1600x1600_scrot_www.kepfeltoltes.hu_.png

--- vermes példa (3 pont):
kepfeltoltes.hu/130403/vermes--2013-04-03-024557_1600x1600_scrot_www.kepfeltoltes.hu_.png

fxr 2013.04.05. 10:24:59

Végtelen ciklusok (3 Pont):

100% terhelő:

kepfeltoltes.hu/view/130405/terhel1_www.kepfeltoltes.hu_.png

Alig terhelő:

#include <stdio.h>

int main()
{
for (;;)
{
int i;
int a;
sleep(1);
for ( i = 0; i != 100; ++i)
a *= i;
}
return 0;
}

nb · http://fersml.blog.hu 2013.04.05. 10:29:02

@fxr: emlékezz a laborra: "nem kell a kódokba a varázslás", lásd pl. a megoldások kapcsán a PP-t, konkrétan:

egyszer a main törzsében:
for(;;);

máskor:
for(;;) sleep(1);

és nem kell semmi más, i, a , magic 100, *= stb. :)

ShuffleSource 2013.04.06. 01:31:06

@nb:(Nyílt Forrású) Multi-Thread Exor cracker with nCurses by ShuffleSource (BETA v0.7)
Videó: www.youtube.com/watch?v=lgpIpeFPcUY
Forráskód: pastebin.com/dKrYAmks
Licensz: GNU GPL

Hmm talán kicsit túlbonyolítottam? :D
-Szépen tele-kommenteltem, hogy mindenki számára jól olvasható legyen!
-Jól optimalizált kód + OpenMP (Az órai kódnál kb. 50x gyorsabb)
-Jól paraméterezhető.
-A törés sebessége a fájl méretétől független.
-8 számjegyből álló kulcs törése ~1 perc.
-Alapértelmezett paraméterek mellett csak 1 találatot ad.
-Szépen kijelzi a folyamat előrehaladtát és kiszámolja a hátralevő időt

Be is zsebelném érte a pontot, mivel 3 nap munkám van benne.
Könyv/7.10.10: (3.5*) = 15.5 pont
Közös feladatok, államvizsga beugró kiírása: 9 pont
Összesen: 24.5 pont (ha lehet ilyet)

nb · http://fersml.blog.hu 2013.04.06. 10:36:52

@ShuffleSource: a videót néztem még csak, de ez alapján nem tartanám igazságosnak a 24.5 pontot. Mert ugye van ncurses-es spéci felület progress bar-al stb, így 35 pontot javaslok adni.

nb · http://fersml.blog.hu 2013.04.06. 12:43:14

@mamenyaka: @ShuffleSource: lássuk, a puding próbája az evés!

(Aki nem ismerné "mamenyaka" kollégánkat, elég annyit tudnia előzetesen, hogy Ő CUDA-val is törte az exort :-)

mamenyaka (törölt) 2013.04.06. 13:05:09

A CUDA-s EXOR törő (meg más egyéb is) itt található:
github.com/mamenyaka?tab=repositories

ShuffleSource 2013.04.06. 14:30:37

@mamenyaka: Gratulálok az Exor törődhöz! Sajnos nem tudom kipróbálni, mivel AMD videokártyám van. :S

@nb: köszönöm szépen!

Egyébként az enyém nem csak számokból álló kulcsal tör! a -k indítási paraméter szabályozza a kulcs típusát. Ezek a lehetőségek vannak (de könnyen bővíthető):
* 0: számok, betűk és speciális karakterek
* 1: csak számok
* 2: csak kisbetűk
* 3: csak nagybetűk
* 4: kis- és nagybetűk
* 5: kis- és nagybetűk és számok
* 6: bináris
* 6: hexadecimális (nagybetű)

Az egész titka egy olyan függvény ami decimálist bármilyen "számrendszerbe" váltja át. A számrendszer számjegyeit egy stringben kel megadni. Innen csak annyi hogy számrendszernek megadjuk pl:
charSet = "abcdefghijklmnopqrstuvwxyz";

a függvény pedig:
//kulcs generálása decimális számból
string generateKeyFromSeed(register long long prevKey){
if(prevKey == 0) return "0";
int base = charSet.length();
string result = "";
do{
result.push_back(charSet[prevKey%base]);
prevKey /= base;
}while(prevKey != 0);
return string(result.rbegin(), result.rend()); //string megfordítása
}

Innestől már csak egy egyszerű számláló kell, amivel mindig meghívjuk ezt a függvényt!

ShuffleSource 2013.04.06. 15:31:48

@mamenyaka:
- EXOR Challenge -
Fájl: secret4
Futási idő: 46 mp (a CUDA-snak mennyi? :D)
Kulcs: 65734643
Videó: www.youtube.com/watch?v=nzJgITuMut0

mamenyaka (törölt) 2013.04.06. 17:45:44

@ShuffleSource:
Nagyszerű! Simán megérdemel a programod még jópár pontot plusszba.
Bár érdekes ahogy talál vagy egymillió kulcsot, esetleg nézd meg a saját szűrőmet, mert az ilyen méreteknél csak 1-et talál.

A CUDA futási ideje:
kepfeltoltes.hu/130406/exor_www.kepfeltoltes.hu_.png

ShuffleSource 2013.04.06. 19:30:46

@mamenyaka: Köszi! Egyébként hasonló időt vártam a CUDA-tól... Talán később én is bepróbálkozom vele!

Amúgy az a sok lehetséges kulcs amit ír, csak a gyorsvizsgálaton átesett kulcsokat mutatja, melyekkel érdemes később részletes vizsgálatnál foglalkozni.

Sok apró trükköt bevetettem a sebesség érdekében, pl: gyorsvizsgál csak a fájl első 300 karakterét vizsgálja (ezt felül lehet bírálni a -x kapcsolóval).

A részletes vizsgálatot azért nem látod, mert az a viszonylag kevés kulcs miatt pillanatok alatt lefut!

Kíváncsiságból kipróbáltam, hogy gyorsvizsgálatkor is a teljes (secret4) fájlt vizsgálom (-x -1), ekkor 450 percet írt várható futási időnek.

Cvanger 2013.04.09. 23:52:20

Úgy látom a pagerank-ra még beférek:
kepfeltoltes.hu/130409/pagerank_www.kepfeltoltes.hu_.png
7 pont
illetve a QT-s életjátékra
kepfeltoltes.hu/130409/eletjatek_www.kepfeltoltes.hu_.png
20 pont

Össz: 27 pont

B.Norbi93 2013.04.10. 16:42:50

Egyelőre bizonytalan vagyok a robotfocis témában, hogy mit-merre-hogyan kell csinálni, de az agent2D-hez beállítottam az Aranycsapat felállását, nem t'om ezért jár-e pont :)

Before KO: imagerz.com/QE8QW0tvAwMBB1weRAVQ
Set to play: imagerz.com/QE8QW0tvAwMBB1weRwVQ

nb · http://fersml.blog.hu 2013.04.14. 11:24:55

#include <iostream>
#include <cstring>

int
main ()
{

char a[] = "alma";

if (std::strcmp (a, a))
std::cout << "1- strcmp nem nulla" << std::endl;

if (!std::strcmp (a, a))
std::cout << "1- strcmp nulla" << std::endl;

if (std::strcmp (a, a) == true)
std::cout << "1- ShuffleSource" << std::endl;

char b[] = "korte";

if (std::strcmp (a, b))
std::cout << "2- strcmp nem nulla" << std::endl;

if (!std::strcmp (a, b))
std::cout << "2- strcmp nulla" << std::endl;

if (std::strcmp (a, b) != true)
std::cout << "2- ShuffleSource" << std::endl;

return 0;
}

de a bool-ok esetén az == az if-ben eleve zavaró.

nb · http://fersml.blog.hu 2013.04.14. 11:25:54

@nb: s itt jön az eleje, mert nem engedte beküldeni:

@ShuffleSource: include-os részben vagy ez

www.cplusplus.com/reference/cstring/strcmp/

vagy ha maradna a C stílus, akkor a man alapján:

STRCMP(3) Linux Programmer's Manual STRCMP(3)

NAME
strcmp, strncmp - compare two strings

SYNOPSIS
#include <string.h>

int strcmp(const char *s1, const char *s2);

kéne a stringes nevek beemelése.

Bár nyilván csak egy "kontroll progiba", mert itt Te magad írsz meg pár függvényt. De ekkor is érdemes figyelni, hogy ne használj más szignatúrákat, mint amelyeket a programozók megszoktak a fenti két említett referencia alapján, mert ha Ők majd adott esetben a Te implementációdat használnák, akkor is felteszik, hogy a működésük (pl. mit ad vissza ismert) s egy ilyen reflexből megírt kód mutatja, hogy ez nem így van:

RunOfTheMill 2013.04.23. 23:20:04

Készítettem én is egy XOR-törő programot, valamivel talán bizonytalanabb, mint a gyakorlaton bemutatott megoldás. Rövidebb szövegeknél gyakran előfordul hibás eredmény, cserébe viszonylag gyors és hosszabb szövegek esetén nagyrészt megbízható.
Egy képernyőkép, alul a time kimenete: runofthemill.uw.hu/xor.png
Itt pedig a forráskód: runofthemill.uw.hu/xor_crack.cpp
Van továbbá egy életjátékom is rajzolható sejttérrel.
Képernyőkép: runofthemill.uw.hu/eletjatek.png
Itt pedig a projekt fájljai és pár elmentett sejttér: runofthemill.uw.hu/GameOfLife2.tar.gz

nb · http://fersml.blog.hu 2013.04.24. 11:05:24

Javítsd ki a

www.inf.unideb.hu/~nbatfai/z3a7ek.cpp

progiban ezt:

valgrind --leak-check=full ./z3a7ek z3a7ek.cpp -o kimenet

...

==3883== HEAP SUMMARY:
==3883== in use at exit: 265,512 bytes in 11,063 blocks
==3883== total heap usage: 11,067 allocs, 4 frees, 283,032 bytes allocated
==3883==
==3883== 120,768 (24 direct, 120,744 indirect) bytes in 1 blocks are definitely lost in loss record 1 of 4
==3883== at 0x4A05F97: operator new(unsigned long) (vg_replace_malloc.c:261)
==3883== by 0x4015EB: LZWBinFa::operator<<(char) (in /home/norbert/Downloads/z3a7ek)
==3883== by 0x4012C1: main (in /home/norbert/Downloads/z3a7ek)
==3883==
==3883== 144,744 (24 direct, 144,720 indirect) bytes in 1 blocks are definitely lost in loss record 4 of 4
==3883== at 0x4A05F97: operator new(unsigned long) (vg_replace_malloc.c:261)
==3883== by 0x401572: LZWBinFa::operator<<(char) (in /home/norbert/Downloads/z3a7ek)
==3883== by 0x4012D4: main (in /home/norbert/Downloads/z3a7ek)
==3883==
==3883== LEAK SUMMARY:
==3883== definitely lost: 48 bytes in 2 blocks
==3883== indirectly lost: 265,464 bytes in 11,061 blocks
==3883== possibly lost: 0 bytes in 0 blocks
==3883== still reachable: 0 bytes in 0 blocks
==3883== suppressed: 0 bytes in 0 blocks

szelepsapka 2013.04.24. 11:28:51

szerda 10:00-s laboron:

robotfoci saját felállás: 8pont

I.Csaba 2013.04.25. 17:58:17

en is alkottam egy exor-os toro-t, max 8 kulcsot tud torni
7.10.10 -es feladat 15,5 pont

forras kod: pastebin.com/MKS1svQ9
mukodes kozben: kepfeltoltes.hu/130425/kodtoro_www.kepfeltoltes.hu_.png

valamint neveznem a C++ valtozatra is igy +9pont

osszesen 165 pontom lesz igy

Cvanger 2013.05.01. 09:29:05

Kissé késve, de itt a Conway-féle életjáték, melyet már az 5. labor idején megcsináltam, de nem tudtam, hogy pontot is ér, ezért kerül ilyen későn fel. Ahogy néztem még belefér. + 20 pont
kepfeltoltes.hu/130501/Screenshot_from_2013-05-01_09_25_37_www.kepfeltoltes.hu_.png

Tasnádi Dániel 2013.05.17. 15:34:20

Pár feladat,ami eredetileg a második laborra volt feladva:
(A KÖNYV 113 oldali feladatai: 1-től 7-ig, pontozásuk most: (*SZAM -1) * 3 + 1)

1.feladat, (*2) --> 4 pont
kepfeltoltes.hu/130517/2-1-4pont_www.kepfeltoltes.hu_.png

3.feladat, (*1.5) --> 2.5 pont
kepfeltoltes.hu/130517/2013-04-23-215806_1600x1200_scrot_www.kepfeltoltes.hu_.png

4.feladat, (*1.5) --> 2.5 pont
kepfeltoltes.hu/130517/a_www.kepfeltoltes.hu_.png
kepfeltoltes.hu/130517/b_www.kepfeltoltes.hu_.png

Tasnádi Dániel 2013.05.17. 15:35:04

5.feladat, (*2) --> 4 pont
kepfeltoltes.hu/130517/d_www.kepfeltoltes.hu_.png

6.feladat, (*1) --> 1 pont
kepfeltoltes.hu/130517/e_www.kepfeltoltes.hu_.png

Mindezekkel együtt eddig gyűjtött pontjaim száma = 103

Mire-mennyit lista:
www.dropbox.com/sh/l5qfvzavrazoe79/vGMQq0hE0B

Scrop 2013.05.19. 19:07:18

Asszem az utolső pontösszesítőm :
docs.google.com/file/d/0By5wCYSBTSJASHU5WkY2NmUyN2s/edit

Összesen, ha jó a QCSS em akkor : 347,5 pont

B.Norbi93 2013.05.22. 18:31:52

Kicsit "továbbvittem" ShuffleSource LogoConverterét, úgy csináltam meg, hogy az arányokat is megtartsa a logóknál (remélhetőleg még nincs ilyen verzió :) )

mainwindow.cpp
pastebin.com/FC9YagSc

mintakép
imagerz.com/QE5HDEtvAwMBAlpJRQVQ

Remélem nem gond, hogy nem saját tervezésű logókat raktam be a csapatnak, és akkor eltennék érte 20 pontot :)

andr_design 2013.05.23. 01:38:12

saját tervezésű (elég egyszerű) csapatlogo

kepfeltoltes.hu/130523/csapatlogoandr_design_www.kepfeltoltes.hu_.png

20 pont (ha még elfogadja tanár úr)

B.Norbi93 2013.05.23. 23:09:57

Nekem is az utolsó pontgyűjtős kommentem:
KÖNYV 5.9.12 (9 pont)
pastebin.com/h4Qgj2cw

Saját logót is terveztem, csak hogy a 20 pont biztosan meglegyen :)
imagerz.com/QE5HDUtvAwMBAlkYEAVQ

DocBook: 25 + 24*4 = 121 pont (a 6.6.3 és a 6.6.12 feladatot külön feladatnak számoltam)
xml:
www.dropbox.com/s/cpq9vlhnr3s5ybr/feladatok.xml

pdf:
www.dropbox.com/s/rsnb10j7u17cqjl/feladatok.pdf

Végül pontösszesítés:
www.dropbox.com/s/h6uf5z4j6frje3i/pontok.ods
(az utolsó két sor azért van üresen, mert nem tudom, hogy jár-e érte valami pont)

andr_design 2013.05.24. 00:07:20

2. Pagerank c változatának átírása c++-ra ( 7 pont)

kepfeltoltes.hu/130523/pagerank_andr_design_www.kepfeltoltes.hu_.png

3. Saját grafikus megjelenítő írás Quantum Consciousness Soccer Simulator-hoz ( 35 pont)

kepfeltoltes.hu/130523/Kvantummegjelenitosajat_www.kepfeltoltes.hu_.png (nem csináltam video-t mert még év elején csináltam tutorialt arról hogyan telepítettem az egészet, amely az alábbi linken még mindig elérhető:www.youtube.com/watch?v=YRoDIW_Iyko

4. KÖNYV 5.9.5 ( 6,5 pont )

kepfeltoltes.hu/130523/meret_www.kepfeltoltes.hu_.png

5. KÖNYV 5. 9. 4. ( 4 pont )

kepfeltoltes.hu/130524/csere_www.kepfeltoltes.hu_.png

nb · http://fersml.blog.hu 2013.05.24. 14:54:42

@B.Norbi93: de bizony gond! De most elég, ha tudod, hogy gond, hiszen ha jól értem, akkor csak a kipróbáláshoz használtad fel. Ha ismert logókat akarsz majd a prog2-ben felhasználni, akkor nézz utána a felhasználhatóságuk szabályozásának, de a látott fociklubok kapcsán szinte biztosan kizárt, hogy használhatod őket.

B.Norbi93 2013.05.24. 15:54:48

@nb: Természetesen nem akartam a csapatomat fémjelezni a logókkal, csak illusztrációnak szántam őket :)

ShuffleSource 2013.05.24. 17:31:38

@B.Norbi93: Amit csináltál szép, csak fölösleges! Egy sor átírásával a program megtartja az arányokat!
Ebből:
img = new QImage(imgA.scaled(256,64));
Ez:
img = new QImage(imgA.scaled(256,64,Qt::KeepAspectRatio));

Érdemes megnézni a referenciát mielőtt fölös munkát csinálsz magadnak!

qt-project.org/doc/qt-4.8/qimage.html#scaled

qt-project.org/doc/qt-4.8/qt.html#AspectRatioMode-enum

B.Norbi93 2013.05.24. 18:17:16

@ShuffleSource: Valóban, az arányt meg lehetett volna oldani így is, de azért nem csak ennyit kellett átírni ;)
imagerz.com/QE5HDktvAwMBAlhKEAVQ

andr_design 2013.05.25. 00:00:29

@nb: Üdvözletem Tanár úr!

láttam hogy a pont listában +20-at kaptam a logóért, viszont utána még belinkeltem pár dolgot amit megcsináltam. Azért járni fog még valami esetleg pontszámilag vagy már nem? (még tegnap küldtem itt van 3-4 kommenttel feljebb)

Köszönöm válaszát!

andr_design 2013.05.25. 00:05:41

@nb: láttam hogy le van zárva a verseny, csak azért kérdeztem hogy esetleg Tanár úr nem látta a komentemet vagy ilyesmi, de ha nem jó a feladat akkor tárgytalan természetesen.

B.Norbi93 2013.09.17. 15:47:21

Aktuális poszt híján ide írom:
Java LZW BinFa:

Forrás:
pastebin.com/C2czzrTQ

kimenet (balra a CPP, jobbra a Java kimenete):
imagerz.com/QE5PW0tvAwMCUF9FRQVQ
süti beállítások módosítása