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

A negyedik és ötödik labor anyaga - Gyönyör a tömör - C-ből C++-ba

2013.02.24. 17:52 nb

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 binom pedig próbáljon meg válaszolni. Globális ellenőrző kérdések:

  • Mi történik, ha egy függvényparaméter tömb?
  • Mi a túlterhelés?
  • Mik a tagfüggvények?

Laborkártyák

  • 5. ea 60-64.
  • 3. ea. 84.
  • Magyarázd meg a KÖNYV 5.9.1 feladata kapcsán a "10 egészbõl álló tömb referenciája" részkérdéssel felmerült alábbi progit:
    #include <iostream>
    
    int main()
    {
    
      char tomb[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g'};
    
      char& ref_elso_elemre = *tomb;
      std::cout << ref_elso_elemre << std::endl;
    
      /*
      // Mi történik, ha ezt próbálod fordítani?
      //  error: invalid types ‘char[int]’ for array subscript
      for ( int i ( 0 ); i<7; ++i )
        std::cout << ref_elso_elemre[i] << " ";
      */
    
      char ( &ref_tombre ) [7] = tomb;
    
      for ( int i ( 0 ); i<7; ++i )
        std::cout << ref_tombre[i] << " ";
    
      std::cout << std::endl;
    
      char c = 'x', ( &masik_ref_tombre ) [7] = tomb, 
    & masik_ref_elso_elemre = *tomb, *cp = tomb; std::cout << c << std::endl; std::cout << *cp << std::endl; std::cout << masik_ref_elso_elemre << std::endl; for ( int i ( 0 ); i<7; ++i ) std::cout << masik_ref_tombre[i] << " "; std::cout << std::endl; return 0; }

Az ötödik laborig a kötelező olvasmány (márc. 18-i hét)

A KÖNYVből olvassuk el a

  • a 262-272; 276-290 oldalt
  • a 295-305; 309-336 oldalt

ahonnan 3-3 (=6) olyan dolgot kérdezz meg a binomodtól, amelyet nem, vagy nehezebben értesz, a binom pedig próbáljon meg válaszolni. Globális ellenőrző kérdések:

  • Mutass be egy saját vagy felélesztett "állományőrszemes" fejlécállományt!
  • Éleszd fel az 5. ea. 16-22 fóliákon bevezetett normális véletlenszámgenerátor C++ változatát!
  • Osztály típusú "tagok konstruktorainak végrehajtása megelőzi a tartalmazó osztály saját konstruktora törzsének a végrehajtását"?

Laborkártyák

Éleszd fel az 5. előadás

  • Mandelbtrotos
  • Conway-féle életjátékos
  • Humág genom megjelenítő
  • Arecibói üzi

programjait! (Ha bármi gondod van, kérd közösségünk segítségét egy kommentben, s a hasznos válaszokat ne feledd jutalmazni :)

A http://progpater.blog.hu/2013/03/09/az_elso_nehany_het_tapasztalatai poszt forrásának kipróbálása, celebrálása.

Az negyedik és ötödik labor feladatai, poszt-pontjai

Opcionális feladatok
  • A KÖNYV 218 oldali feladatai: 1-től 19-ig, pontozásuk most: (*SZAM -1) * 5 + 3
  • A KÖNYV 351. oldalán megkezdett (folytatott) complex osztályt éleszd fel 8 pontért.
  • Glibc fgv. felülírása: implementáld a 3. ea 13-15 fóliájának példáját, ahol a rendszerbeli printf föggvényt meghekkeled!
  • 15 pont az első 10 hallgatónak, aki lejátszik egy meccset a kvantum-tudatos focival (Quantum Consciousness Soccer Simulator),  s a letöltés, fordítás, futtatás menetét bemutatja egy YouTube videón (ez persze triviálisan összevonható a globális "akinek elfogadjuk egy megoldását a pontversenyben, az további 5 pontot kap, ha a megoldását egy YouTube videóban be is mutatja, röviden el is magyarázz. A videóban töntessük fel (cím, leírás), hogy a Prog1 kurzus keretében vagy a kurzus-közösség támogatására stb. készült." c. feladattal. (Pl.: http://youtu.be/S7rnLpmZvHw, http://youtu.be/dcR2eWdyg38)

    sz4.png

187 komment

A bejegyzés trackback címe:

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

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.

ShuffleSource 2013.02.24. 23:58:18

Akinek esetleg Beats Audio-s laptopja van (pl HP), az nyilván tapasztalhatta, hogy a linux a csipogót használja a rendes hangszórók helyett.
Találtam megoldást a problémára:

Terminálba:
sudo gedit /etc/modprobe.d/alsa-base.conf
majd legalulra új sorba beszúrni:
options snd-hda-intel model=ref
Majd egy restart után jó is lesz!

Akiről tudok, hogy ilyen laptopja van az @Cvanger (esetleg egy pontot kapok érte? :D).

Cvanger 2013.02.25. 00:28:45

@ShuffleSource: Ubuntu alatt tapasztaltam a problémát és bár már most Mintet használok, ha lehet adok neked egy pontot, mert idegesítő tud lenni, de most mát tudjuk, hogy miért.

ShuffleSource 2013.02.25. 02:36:14

Következő linux probléma ami nagyon sokmindenkinek fenn állhat, hogy a laptopjuk windowshoz képest nagyon melegszik és az akkuidő is rövidebb! (ez főleg újabb laptopoknál áll fenn)

Kicsit utánnajártam, ezt leginkább a ventillátor és az órajel helytelen vezérlése okozza. Előbbire itt egy megoldás, mely nekem bevált, kb 10 fokot hűlt átlagosan a processzor hőmérséklet:
A lényeg hogy a szenzorokat fel kell ismertetni a rendszerrel!
Ehhez nyissunk terminált, majd váltsunk superuser jogokra (macskaköröm nélkül):
"sudo su"
(jelszavad)
ezután telepítsük fel a következőt:
"apt-get install lm-sensors"
aztán detektáltassuk vele a szenzorokat:
"sensors-detect"
az itt feljövő kérdésekre rendre 'y'-nal válaszoljunk
Ez az érzékelt szenzorokat hozzáadja a '/etc/modules'-hoz.
Végül pedig futtassuk a következő parancsot, hogy a beállítások érvényesüljenek:
"service module-init-tools start"

Remélem másnak is segít a dolog, nekem így 5 perc alatt 80C-ről 64C-re esett vissza a processzormagok hőmérséklete. (Ezért is egy pontot kérni már pofátlanság? Persze ezt nem csak a pontok miatt osztom meg veletek, hanem, hogy segítsek)

Cvanger 2013.02.25. 11:16:51

@ShuffleSource: Mielőtt felraktam a sensorokat 20%-t merült 30 perc alatt, utána 10 perc alatt 2%-t.Ha lehet adok pontot :D

nb · http://fersml.blog.hu 2013.02.25. 11:36:26

@Cvanger: persze, ha kicsit csitul a forgalom, akkor aki kapja, majd elszámolja magának a "kampány" összegzésében.

Czérna Márk Attila 2013.02.27. 02:36:54

Van e esetleg olyan akinek még nincs binomja?(Szerda 10:00-12:00 tartó gyakorlati csoport tagjait kérdezném elsősorban!!!!!)

Czérna Márk Attila 2013.02.27. 08:20:44

Aki nem tudta felrakni a Linuxot, partíciós tábla miatt mit ajánlana? (A virtualboxon kívül), mert gondoltam a linux mint re valaki valami tipp?

andr_design 2013.02.27. 12:51:37

Tisztelt Tanár úr! Megcsináltuk a ma reggeli előadáson elhangzott feladatot:

Első kép: ÉN(Andrási Tamás)
Második kép: matthew03(Kovács Máté Olivér)

1. kép (kepfeltoltes.hu/130227/IMAG0039_www.kepfeltoltes.hu_.jpg)

2. kép (kepfeltoltes.hu/130227/IMAG0037_www.kepfeltoltes.hu_.jpg)

+1 pontban reménykedve bevállaltunk egy közös képet, a C nyelv közúti terjesztésében! :-D

kepfeltoltes.hu/130227/IMAG0043_www.kepfeltoltes.hu_.jpg

Hozzá ajánlott zene: www.youtube.com/watch?v=HWqKPWO5T4o

Köszönjük! :D

Matthew03 2013.02.27. 12:54:58

@Andrási Tamás: Így van. Közös munka gyümölcse.:D
+5 pont az egyéni kép, közös képbe pedig reménykedünk 1-1 bónuszpontért:D

Matthew03 2013.02.27. 12:56:25

@Andrási Tamás:JAVÍTÁS
1. kép kepfeltoltes.hu/130227/IMAG0039_www.kepfeltoltes.hu_.jpg

2. kép kepfeltoltes.hu/130227/IMAG0037_www.kepfeltoltes.hu_.jpg

andr_design 2013.02.27. 13:01:54

@Matthew03: A link kimásolásával meg lehet jeleníteni rendesen.

nb · http://fersml.blog.hu 2013.02.27. 14:34:42

@Andrási Tamás: kicsit félreértettétek, mert az egész kirakására gondoltam: www.levenez.com/lang/

Pl.: lásd az egy ill, két évvel ezelőtti kommentelt képeket.

cellSigma 2013.02.27. 14:42:14

A mai előadáson elhangozott kérdéssel kapcsolatban (laborkártya 108).

A signal függvénnyel azt adhatjuk meg, hogy a program mit csináljon, ha érkezik hozzá egy megszakítás. A példán szereplő signal(SIGINT, jelkezelo) azt jelenti, hogy egy felhasználói megszakítás esetén a jelkezelo fv. fusson le.
A signal visszatérési értéke a korábban beállított válasz a megszakításra. Tehát mindezek alapján:
if(signal(SIGINT,jelkezelo)==SIG_IGN): beállítja jelkezelot SIGINT megszakítás esetére, visszaadja a korábbi viselkedést, ha ez a korábbi megegyezik SIG_IGN-el (tehát a megszakítás figyelmen kívül hagyásával), akkor teljesül a feltétel: signal(SIGINT, SIG_IGN) -> visszaállítjuk a viselkedést a megszakítás figyelmen kívül hagyására.

A másik: Ha signal visszatérési értéke nem SIG_IGN (tehát valami más van beállítva megszakítás esetére), akkor ezt átállítjuk úgy, hogy jelkezelo fusson le felhasználói megszakítás esetén.

Legjobb tudásom szerint ez a különbség a két if-es kifejezés között, mindezt 5 pontért :)

nb · http://fersml.blog.hu 2013.02.27. 14:46:11

@cellSigma: bonyolult írás, ezért ellenőrző kérdés: mást vagy ugyanazt csinál a két if utas?

cellSigma 2013.02.27. 14:54:57

@nb: Ugyanazt csinálja mindkettő, ha a programnak figyelmen kívül kell egy korábbi beállítás alapján hagynia a felhasználói megszaktítást, akkor ezt változatlanul hagyja, egyébként pedig jelkezelo függvény fog lefutni megszakítás esetán.

andr_design 2013.02.27. 17:48:27

@nb: elnézést, ma már sajnos nem tudjuk, de holnap mindenképp megcsináljuk így helyesen ahogy kell. Remélem nem lesz késő még :)

nb · http://fersml.blog.hu 2013.02.27. 18:47:31

@cellSigma: így van, tehát összefoglalva, hogy olvassuk ezeket a csipeteket:

if(signal(SIGINT, utolso_tennivalo) == SIG_IGN)
signal(SIGINT, SIG_IGN

Ha a signal interrupt eddig figyelmen kívül volt hagyva, akkor a továbbiakban is legyen így.

if(signal(SIGINT, SIG_IGN) != SIG_IGN)
signal(SIGINT, utolso_tennivalo);

Ha a signal interrupt nincs figyelmen kívül volt hagyva, akkor a továbbiakban kezelje az utolsó_tennivaló nevű fgv.

ShuffleSource 2013.02.28. 01:56:42

/*@Czérna Márk Attila gépén tapasztalt probléma orvoslása (+másoktól is hallottam, hogy ez a gond)*/

Akinek a Linux telepítő nem ismeri fel a partíciókat annak a következő a teendő:

A probléma forrása: Ilyenkor általában az áll fenn, hogy a merevlemezen egyszerre van fent Windowsos MBR és Linuxos GPT. Ilyenkor a Linux telepítő/gparted/stb. addig nem hajlandó figyelembe venni addig az MBR-t amíg a GPT-t megtalálja, de mivel az üres, ezért az egész merevlemezt szabad területnek látja, amit ha megpiszkálunk nyilván felülírja a már létező partícióinkat!

A megoldás:
0.(!!!)Először is mentsd le az adataidat, ha netán véletlenül beüt a krach! Adatvesztésért felelősséget nem vállalok!
1.Boot-olj egy live linuxot cd-ről/pen-drive-ról!
2.Nyissatok egy terminált
3."sudo su" parancs super user jogokért
4."apt-get install gdisk"-el rakd fel a GPT fdisk-et!
5."gdisk /dev/sdX", ahol X helyére a delikvens lemez azonosítója kell! Ha egy vinyó van a gépedben, akkor ez általában "/dev/sda".
6."x" karakter, majd enter a haladó beállításokért!
7."z" karakter, amivel töröljük a GPT-t!
/*A kövi részt először olvasd végig és csak utána csináld!*/
{
8.A program megkérdezi, hogy biztosak vagyun-e a dolgunkban?
9.Az első esetben amikor a GPT törléséről van szó, nyomjuk "y"-t (yes), de a másoik kérdésnél amikor az "MBR"-rel szeretné ugyanezt csinálni akkor nyomjunk "n"-t (no), különben ugrott a windows is.
}
10.Ha ezzel megvagyunk, akkor indítsuk újra a gépet, vizsgáljuk meg, hogy működik-e még a windows-unk!
11.Ha igen, akkor telepíthetjük a Linuxot, ami elvileg mostmár a windows által létrehozott partíciós táblát fogja figyelembe venni.

Megjegyzés: ha windows-t és a linuxot egyszerre telepítjük, akkor elöször mindig a windows-t tegyük fel és csak utána a linuxot!

andr_design 2013.02.28. 15:07:28

@nb: a nem gyenge félreértés után itt a javított verzió, tehát a teljes plakát:

kepfeltoltes.hu/130228/IMAG0046_www.kepfeltoltes.hu_.jpg

(5 pont)

nb · http://fersml.blog.hu 2013.02.28. 15:10:34

@andr_design: Remek. Persze, ha nem esik az eső :-)

Czérna Márk Attila 2013.02.28. 18:30:29

Balázs köszönöm szépen a segítséget így megoldódott a problémám adnék rá 1 pontot! :)

ShuffleSource 2013.02.28. 23:47:55

7.10.18 feladat:
kepfeltoltes.hu/130228/snapshot1_www.kepfeltoltes.hu_.png
Kicsit megspékeltem, hogy ne hasonlítson kísértetiesen a @Smajadm programjára, így a számot indítási paraméterként kell megadni!

Gergo0720 2013.03.01. 11:42:54

kepfeltoltes.hu/130301/20130301_094625_www.kepfeltoltes.hu_.jpg

kepfeltoltes.hu/130301/20130301_094712_www.kepfeltoltes.hu_.jpg

Nyíregyházán a BMSTrend Kft kirakatát sikerült megtalálnom. Eléggé fújt a szél és érdekesen sikerült feltenni, de az eladónak tetszett, sőt még hárman érdeklődtek is, hogy mi ez, és egy még tudta is, hogy mit néz. :D

Gergo0720 2013.03.01. 13:39:54

5 pont lemaradt a poszteres feladathoz

nb · http://fersml.blog.hu 2013.03.01. 17:23:13

@DeeGort: 10. (*3,5) Írjunk programot, ami segít megfejteni a §7.10[9]-ben leírt módszerrel tit-
kosított üzeneteket, anélkül, hogy tudná a kulcsot. Tipp: lásd David Kahn: The
Codebreakers, Macmillan, 1967, New York; 207-213. o.

szerintem ez a 7.10 3. feladat...

ShuffleSource 2013.03.02. 11:57:45

Azért mentettem DOCX-be, mert google docs nem ette meg az ODF-et! :)
Amúgy libreoffice-os az eredeti doksi!

cellSigma 2013.03.02. 17:48:09

A tömbreferenciás program magyarázata (7 pont):

Először ugye létrehozunk egy karaktertömböt.
Ezután ref_elso_elemre néven egy referenciát az első elemre, ez lényegében azt jelenti, hogy tomb[0]-nak adunk egy másik nevet, amin keresztül elérhetjük, módosíthatjuk az értékét, stb. Mivel egy tömb neve nem más, mint az első elemére mutató pointer, ezért tomb első elemét a *tomb kifejezéssel kaphatjuk meg. Tehát:
char& ref_elso_elem=*tomb;
kifejezéssel most a tömbünk első elemének adtunk egy másik nevet.
char (&ref_tombre)[7]=tomb;
ezzel a kifejezéssel a referenciát az egész tömbre hoztuk létre. A zárójelek szükségesek, mert nélkülük egy 7 elemből álló referenciatömböt kísérelnénk meg létrehozni, ami nem lehetséges. Ha megmaradunk a másik név analógiájánál, akkor most az egész tömbnek adtunk egy aliast, álnevet. Ha így gondolkodunk, akkor világos, hogy ref_tombre[i] - nek a for ciklusban van értelme, ugyanaz, mintha tomb[i] állna ott.
(&masik_ref_tombre)[7]=tomb;
&masik_ref_elso_elemre=*tomb;
A kettő közötti különbség pontosan ugyanaz, amit az előbb elmondtunk. Az érdekes a következő értékeadás:
*cp=tomb;
cp egy karakter pointer, tehát egy memóriacímre mutat, tomb pedig a tömb első elemének címe, itt ezért nincsen szükség a * operátorra.
Amikor egy referenciát hozunk létre, akkor szükség van *-ra, mert a referencia egy másik objektumra mutat, nem memóriacímre. Ahogy a könyv írja, olyan, mint egy konstans mutató, amit használatkor egyből dereferálunk.
Itt egy kép a program kimenetéről:
tinypic.com/r/2s1m88l/6
Remélem, ez a magyarázat elég világos volt - és legfőképpen helyes :)

nb · http://fersml.blog.hu 2013.03.02. 18:02:16

@cellSigma: picit azért kell csiszolni: ne keverjük a

- referencia
- tömb
- mutató

fogalmakat, ami azért a jelen leírásodban előfordul.

A char *cp-s (char-ra mutató mutató) deklaráció nem igazán érdekes, itt a tömbreferencia a nem triviális, s egyben hajazunk a 2. labor ezen ellenőrző kérdésére:

"Deklarációkban az operátorok egyes nevekre vonatkoznak, vagy az összesre?"

ami szerintem jól megvilágítja, hiszen egy deklarációban több név van: sima char, char ref, char tömb ref és char pointer.

cellSigma 2013.03.02. 19:04:21

@nb:
Igyekszem tisztázni a fogalmakat, tehát:

mutató: egy "memóriarekesz" címét tartalmazza, az értékét meg lehet változtatni, azaz át lehet állítani, hogy egy másik memóriacímre mutasson

tömb: a tömb adott típusba tartozó konstansok/változók gyűjteménye, a tömb azonosítója az első elem címére mutató konstans mutató, aminek nem adhatunk új értéket, teljes életciklusában ugyanoda mutat (de nem mutató típusú!)

int* myPointer;
int myArray[10];

myPointer=myArray; //helyes, myArray első elemére mutat
myArray=myPointer; //hibás, myArray nem kaphat új értéket
int x=*myPointer; //x értéke most az az objektum, amelyre myPointer mutat *myPointer tehát az az objektum, amelyre mutat a mutató
Létezik void mutató is.

referencia: konstans mutatóhoz hasonló, létrehozásakor egyből értéket is kell neki adni, hogy milyen objektum referenciája legyen:
int& myRef=x; //myRef x referenciája
Bármikor, amikor myRef-et használjuk, az egyenértékű azzal, mintha x-et használnánk.
Tehát ha:
myRef=13; //ez ugyanaz, mint x=13;
x értéke 13 lesz, myRef továbbra is x-hez van kötve
A referenciák nem változtathatóak a kezdeti értékeadás után. Referencia nem lehet void.

Összefoglalva:

int myArray[10]; //10 integerből álló tömb, azonosítója az első elem címére mutató konstans mutató

int (*myArrayPointer)[10]=&myArray; //10 elemű integer tömbre mutató mutató
int* myPointer=myArray; //mutató,myArray első eleme!
int (&myArrayRef)[10]=myArray; //10 elemű integer tömb referenciája
int& elso_elem_ref=*myArray; //referencia, myArray első eleme!
A deklarációban pedig az egyes nevekre vonatkoznak az operátorok, ezért lehet egy kifejezéssel létrehozni sima karakter típusú változót, karakterek tömbjének referenciáját, elem refenreciáját, stb., és mindnek különböző értéket is adni egyből.

ShuffleSource 2013.03.02. 23:54:31

Kvantum tudatos foci letöltése/telepítése/indítása
www.youtube.com/watch?v=wFpk1Tgs9H4
(15 pont)

nb · http://fersml.blog.hu 2013.03.03. 10:30:48

@ShuffleSource: OK., arra majd figyelj, hogy ne rendszergarázdaként dolgozz, hanem sima mezei júzerként.

Tasnádi Dániel 2013.03.03. 11:30:45

Kvantumtudatos foci letöltés, telepítés, meccs.

www.youtube.com/watch?v=zfSDFSY1eTM

(15 pont)

cellSigma 2013.03.03. 14:25:07

Kvantumfoci videó (némi bénázással :) ), 15 pont:

www.youtube.com/watch?v=yOZSfBlvV_8&feature=youtu.be

andr_design 2013.03.04. 15:03:58

Kvantum tudatos foci
(Quantum Consciousness Soccer Simulator)

www.youtube.com/watch?v=YRoDIW_Iyko&feature=youtu.be

15 pont

nb · http://fersml.blog.hu 2013.03.04. 15:14:16

@andr_design: OK., úgy láttam a filmben, hgy a qcssp első indítását lestoppoltad (szerintem egy Ctrl+z-t nyomva) - elég lett volna egy fg parancs, hogy újra előhozza a processzt. Más, hogy parancssorban nemigan szoktam idézőjelezni, bár már láttam itt videókban, a visszaperrel le tudsz védeni egy szóközt, de azsem kell, mert QCSS[agresszív TAB gombra] elég egy s vagy a, és az "s"-el egészíti ki a végéig a nevet azonnal.

cellSigma 2013.03.04. 16:19:04

KÖNYV 7.10.3 (5.5 pont):

#include <iostream>

using namespace std;

int main(int argc, char* argv[]){

for(int i=1; i<argc;++i)
cout << "Hello, " << argv[i] << endl;

}

Kép:

tinypic.com/r/24vtffb/6

cellSigma 2013.03.04. 16:20:16

KÖNYV 7.10.4. (5.5 pont):

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main(int argc, char* argv[])
{
string line;
ifstream myfile;
for(int i=1; i<argc;++i)
{
myfile.open(argv[i]);
while(myfile.good())
{
getline(myfile,line);
cout<<line;
}
myfile.close();
cout<<endl;
}
}

Kép:
tinypic.com/r/2u9q2py/6

cellSigma 2013.03.04. 16:22:42

KÖNYV 7.10.6 (8 pont):

A Shell-sort quicksortra átírva, a könyvhöz hasonlóan sok void* pointerrel.

#include<iostream>
#include <cstring>

using namespace std;

typedef int (*CFT)(const void*, const void*);

void* part(void* input, void* last, size_t sz, CFT cmp)
{
char* b=static_cast<char*>(input);
char* l=static_cast<char*>(last);
char* pivot=l;

while((l-b)>0)
{

while(cmp(b,pivot)<0) b+=sz;
while(cmp(l,pivot)>0)l-=sz;
if(cmp(b,l)>0){

for (int k=0; k<sz;k++){
char temp=b[k];
b[k]=l[k];
l[k]=temp;
}
}

}
void* retVal=static_cast<void*>(l);
return retVal;
}

void qsort(void* arrayPointer, size_t n ,size_t sz, CFT cmp){

char* base=static_cast<char*>(arrayPointer);
char* last=base+(n-1)*sz;

if(base<last)
{
void* newLast=part(base, (base+((n-1)*sz)), sz, cmp);
int newSize= (static_cast<char*>(newLast))-base;
qsort(base, (newSize)/sz, sz, cmp);
qsort(base+sz*newSize,n-newSize , sz, cmp);
}

}

struct User{
char* name;
char* id;
int dept;
};

User heads[]={
"Ritchie D.M", "dmr", 11271,
"Sethi R.", "ravi", 11272,
"Szymanski T.G", "tgs", 11273,
"Schryer N.L", "nlS", 11274,
"Kernighan B.W", "bwk", 11275,
"Herbert F.", "fh", 11276,
"Dick P.K", "pkd", 11277

};

void print_id(User* v, int n)
{
for(int i=0;i<n;++i)
cout<<v[i].name<<'\t'<<v[i].id<<'\t'<<v[i].dept<<'\n';
}

int cmp1(const void* p, const void* q) //nevek összehasonlítása
{
return strcmp(static_cast<const User*>(p)->name, static_cast<const User*>(q)->name);
}

int cmp2(const void* p, const void* q) //osztályok összehasonlítása
{
return static_cast<const User*>(p)->dept-static_cast<const User*>(q)->dept;
}

int main()
{
cout << "Főnökök abcsorrendben:\n";
qsort(heads, 7, sizeof(User),cmp1);
print_id(heads,7);
cout << endl;

cout << "Főnökök osztályok szerint:\n";
qsort(heads,7, sizeof(User), cmp2);
print_id(heads,7);
}

Kép:
tinypic.com/r/5myat5/6

cellSigma 2013.03.04. 16:45:25

KÖNYV 7.10.9 (8 pont):

#include <iostream>
#include <cstring>

using namespace std;

int main(int argc, char* argv[])
{

string line;
char* key=argv[1];

int j=0;

while(getline(cin,line))
{
if(argc==1) {cout << line; continue;}
for(int i=0; i<line.length(); ++i){

cout << char(int(line[i]) ^ int(key[j]));
++j;
if(key[j]=='\0') j=0;
}

cout << endl;
}

}

Kép:
tinypic.com/r/70dkbp/6

andr_design 2013.03.04. 18:10:46

@nb: rendben, köszönöm szépen az információkat, megpróbálom alkalmazni legközelebb majd!

andr_design 2013.03.04. 18:25:48

témától függetlenül:

akinek esetleg a recordmydesktop nem működik normálisan (pl nekem pixelhibák voltak a videóban) annak javaslom a kazam nevű programot, ubuntu szoftvercenterből sima .. :D

Gergo0720 2013.03.04. 22:34:53

@andr_design: Vagy csak egy ablakot kinagyítasz full size-ra és arra állítod be a recordot:D De nálam is volt ilyen gond, és mindössze félóráig szerencsétlenkedtem vele:D

Smajdam 2013.03.05. 00:09:26

@Smajdam: xor törése:

www.kepfeltoltes.hu/view/130305/exor_www.kepfeltoltes.hu_.png

Az ékezetes karaktereket valahol elrontotta, de a megoldás látszik.

forrás: pastebin.com/c6h7j27e

Smajdam 2013.03.05. 00:10:42

@Smajdam: 7.10.10 es feladat volt, ez lemaradt

andr_design 2013.03.05. 00:32:39

@Gergo0720: jahm, én meguntam a 2. felvétel után mikor mindig ment csak ma adta meg magát, gyorsba töltöttem kazamot azt ennyi :DD

nb · http://fersml.blog.hu 2013.03.05. 08:39:55

@andr_design: én parancssorból szoktam használni, egyszerűen ezzel a paranccsal:

recordmydesktop -x 0 -y 0 --width 1920 --height 1080 --no-sound

amely az első virtuális képernyőmet menti le (Ctrl+C-re áll le a rögzítés és kezdi fájlba írni)

andr_design 2013.03.05. 11:28:20

@nb: kipróbáltam és így jó volt! :)

Tasnádi Dániel 2013.03.05. 21:30:52

@nb: Tiszteletem Tanár úr!
Olyan problémába ütköztem, hogy a binomom feladta a küzdelmet. A péntek reggel 8-tól 10-ig tartó laborban vagyok, és ha jól tudom, mindenki másnak van tanulótársa.
Azért ide írtam ezt, mert szerintem mások is találkozhatnak a jelenséggel, talán hasznos lenne egy útmutatás nekik is, hogy ilyenkor mi a teendő.
Keressek másik laborból társat?
Válaszát köszönöm!
T.D.

nb · http://fersml.blog.hu 2013.03.06. 09:46:14

@Tasnádi Dániel: sajnálom, hogy feladta. Ha van baráti köröd a laboron, akkor oda csatlakozz be max. 3. tagként.

Tasnádi Dániel 2013.03.06. 10:58:31

@nb: Köszönöm, már intézem is. :)

ShuffleSource 2013.03.07. 18:33:22

@nb: Esetleg plusz pont jár, amiért a c++-os könyvet vittem az Unidebes Harlem Shake-re, hirdetni az igét? :D
kepfeltoltes.hu/130307/c__harlemshake_www.kepfeltoltes.hu_.jpg
Azért ezt a könyvet vittem, mert ezen jobban látszik a C++ felirat, bár sajnos a videó minősége miatt így se látszik jól, valamint a Stroustrup-féle könyv könyvtári és azt féltettem, hogy baja lesz!
Itt a teljes videó:
www.youtube.com/watch?v=-3DhSczMOhs

nb · http://fersml.blog.hu 2013.03.07. 19:39:25

@ShuffleSource: olvasva a kommentedet, hajlottam rá, hogy persze, adok! - ám ekkor megnéztem a képet... :-)))

ShuffleSource 2013.03.07. 19:52:10

@nb:
Itt egy jobb kép:
kepfeltoltes.hu/130307/cpp2_www.kepfeltoltes.hu_.png
Vagy esetleg a könyvvel van baj? :D (5 éve vettem, fiatal voltam és tudatlan, akkor még nem tudtam mi a jó!)

nb · http://fersml.blog.hu 2013.03.07. 20:34:03

@ShuffleSource: OK., jó az érvelés. 3 pont? Adnék 5 pontot is, ha leírsz olyan használati esetet, amelyben kamatoztattad a könyvből olvasottakat közvetve vagy közvetlenül C++ progiaidban az elmúlt 5 évben. Persze valami kis egyszerű példákra gondolok, amelyeket a többieknek ajánlanálmegszívlelésre - mint fejlesztő a fejlesztőnek.

Scrop 2013.03.07. 21:03:45

Quantum Consciousness Soccer Simulator : 15 pont :D
www.youtube.com/watch?v=qL8IOMmo8Do

ShuffleSource 2013.03.07. 21:51:44

@nb: Nos. Ez a könyv sokkal inkább abszolút-kezdőknek készült! Többet alapoz mint a Stroustrup-féle C++ biblia, azonban nem viszi a tudásunkat annyira profi szintre, sokkal inkább segít elindulni, de azt szerintem jól csinálja. Ezután sokkal bátrabban állok neki a Bjarne Stroustrup-éhoz hasonló komoly műveknek!
(Megjegyzés: a címét komolytalannak tartom, szerintem ez a marketingesek ötlete lehetett!:S)

A könyvet megtaláltam tanár úr ajánlott olvasmányi listáján is:
takemyscreen.tk/XAB0rd

Gyakorlati példának elég sokmindent említhetnék, igazából ami aktuális többek közt az a Takemyscreen linux kliense, amit c++-ban fejlesztek Qt alapokon, ezt még a 24-es könyves alapjain kezdtem csinálni:
kepfeltoltes.hu/130225/takemyscreen_on_linux_www.kepfeltoltes.hu_.png

Már nem aktuális, de a bevinfó prog része gyerekjáték volt, miután ezt olvastam!

Ami a többiek számára is hasznos lehet:

1.Nagyon jól, lépésről-lépésre építi fel az objektumorientált részét a c++-nak.

2. Mindig ad hasznos tippeket (pl. defenzív programozás), rámutat a leggyakoribb kezdő hibákra és segít megtalálni saját stílusunkat, úgy hogy, az általánosan elfogadott stílusjegyekből épüljön fel (pl. változók elnevetése: thisVariable vagy this_variable >> takemyscreen.tk/QAB0rd).

3. Bármikor használható, igen hasznos összefoglaló táblázat van a könyv borítójának belső oldalán: takemyscreen.tk/vAB0rd
Úgy tudom a Stroustrup-féle könyv könyvjelzőjén hasonló van, de sajnos a könyvtári könyvnek nem volt ilyenje!

Röviden: ha valaki abszolút kezdő és nem bírja a Stroustrup tempóját, akkor előtte olvasson bele ebbe és utána az is sima lesz!

Remélem jól értelmeztem a "gyakorlati példa" fogalmát!

ShuffleSource 2013.03.07. 23:27:10

Itt egy kis bemutató egy Turing gépről, azoknak akik olyanok mint én, hogy szeretik látni a dolgokat működés közben:
www.youtube.com/watch?feature=player_embedded&v=E3keLeMwfHY

Scrop 2013.03.08. 13:16:04

7_1 : 3 pont
typedef void (*P_F1)(char*, int&); /* ilyen fügvényre hivatkozó mutató -> void f1(char*, int&) */

void f1(char*, int&); /* függvény, amelynek egy karakterre hivatkozó mutató és egy egészre mutató referencia paramétere van és nem ad vissaz értéket*/

void f1_par (P_F1 fuggveny_parameter); /*függvény, amelynek ilyen mutató paramétere van*/

P_F1 f1_ret (); /*függvény, amely ilyen mutatót ad vissza*/

P_F1 f1_ret_par (P_F1 fuggveny_parameter) /*függvényt,amelynek egy ilyen mutatójú paramétere van és visszatérési értékként paraméterét adja vissza*/
{
return fuggveny_parameter;
}

Scrop 2013.03.08. 13:20:49

7_4 : 3 pont
kepfeltoltes.hu/view/130308/7_4_www.kepfeltoltes.hu_.jpg

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main(int argc, char* argv[])
{
ifstream in_file;
ofstream out_file;
out_file.open("abc.txt");

for (int i = 1; i < argc ; ++i)
{

in_file.open(argv[i]);
string line;

while (!in_file.eof())
{
getline(in_file, line);
out_file << line << endl;
}
in_file.close();

}
out_file.close();

return 0;
}

Scrop 2013.03.08. 13:33:20

@cellSigma:
Volna egy krédésem :D
amikor fordítottad a 7.10.6 os feladatot, nem írt olyat, hogy
warning: deprecated conversion from string constant to ‘char*’
?
Ezt arra írja amikor érétket adunk a heads[] nek, ugyanis a User Struct- ban char* name van aminek valóban nem lehet string értéket adni. Ha nálad nem írt ilyet akkor mivel fordítottad? Köszi :D

cellSigma 2013.03.08. 13:45:06

@Scrop: De igen, kaptam figyelmeztetést én is. Őszintén szólva nem foglalkoztam vele különösebben, mert lefordult a kód, és az a rész a könyvben is úgy van, de másik feladatnál is volt már ilyen, úgyhogy módosítom majd, hogy ne panaszkodjon :D
Egyébként simán gcc/g++-t használok :)

nb · http://fersml.blog.hu 2013.03.08. 13:50:22

@cellSigma: az OK., hogy gcc, de a verzió, esetleg az -std kapcsolója, ha használsz:

pl. nálam:
norbi@colossus:~$ g++ --version
g++ (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2

(persze pl. a CUDA-s példáknál majd az Intel compilerét is használjuk, de most azért a GNU-s a default)

Tasnádi Dániel 2013.03.08. 15:22:31

@nb: Tiszteletem Tanár Úr!

Bár laboron még úgy nyilatkoztam, hogy nem érzem magam kellően felkészültnek, mégis készítettem egy hibajelenség leírást a QCSS kapcsán.

Ezen az oldalon letölthetőek a naplófájlként funkcionáló szöveges dokumentumok - minden lépést kimásoltam a terminálból, hátha ez segít a hiba feltárásában (Feltöltöttem a fájlokat mappánként, valamint egy tar állományba is) :
www.dropbox.com/sh/e0groyetfaw317k/0XXv0KPM4Y

Továbbá a jelenségről készítettem videót is:
www.youtube.com/watch?v=BQfxfT38VB4

Lehet ez így nem felel meg az Ön elképzeléseinek, de gondoltam első bug-reportomnak elmegy. :)

Tanár Úr felajánlására gondolok, amikor 20 pont jutalomban bízok. :)
Természetesen, csak ha ez így megfelel hibaleírásnak és naplózásnak.

Kellemes hétvégét Mindenkinek!

ShuffleSource 2013.03.08. 15:31:07

@Tasnádi Dániel: A naplófájl bő 1 mp-nyi játékidőt tartalmaz és a player ezt ismétlődve játssza le! Szerintem nem bug... vagy mást kéne nézni?

Tasnádi Dániel 2013.03.08. 15:34:59

@ShuffleSource: Az volt a kiindulási alapunk, hogy másik gépen ugyanezt a metódust követve teljes játékokat kaptam, míg a netbookomon csak ennyi lesz a lépések eredménye. Voltaképpen keresem a hibát...

ShuffleSource 2013.03.08. 15:37:19

@Tasnádi Dániel: Aham értem! Jó nem firtatom tovább, nem akarom a pontodat elpuskázni! ^^

nb · http://fersml.blog.hu 2013.03.08. 18:44:27

@ShuffleSource: magam is attól tartok, hogy ez egy bug lesz a qcsss-ben. Azért lehet ilyen rövid a lejátszott log, mert egyszerűen megállt a szerver. Nekem is előjön néha ez a hiba. S abban teljesen igazad van, hogy ezt a rövid logot ismételgeti a lejátszó.

A log fájlt (szerveroldali, azaz a "valóság logot") kel megnézni, ha az utolsó sora nem a 6000-el kezdődik és a fájl már nem növekszik, akkor megállt...

(De úgy fogalmaztam, hogy a sourceforge-on élesítek valami gug reportoló eszközt és oda lehet majd beküldeni.)

Tasnádi Dániel 2013.03.08. 19:03:08

@nb: Rendben, amint meg lesz a reportoló, annak rendje és módja szerint leírom ott a hibát.
(Most megyek, kipróbálom, és ellenőrzöm a log fájlt, majd jelentkezem az eredménnyel.
(Az is elégedettséggel töltene el, ha rájönnék, mit rontok el, és sikerülne futtatni, a pluszpontok csak növelik a motivációmat) :)

Tasnádi Dániel 2013.03.08. 20:14:18

@nb:
Csak hogy be tudjuk azonosítani, hol néztem meg (remélem azt,amit kellett):
Szöveges dokumentum neve:QCSS server Fri Mar 8 19:54:36 2013 log.rlty.txt

"This is a "reality" log file (from server side) of the Quantum Consciousness Soccer Simulator...
.
.
.
2 1 2 10 0 7 0 5 0 500 119 103 0 1 0 0 0 0 0 52..."

--A mérete nem növekszik, utolsó sora egy kettessel kezdődik, összesen 8 sor az egész.

Beigazolódni látszik a dolog.

Scrop 2013.03.08. 21:32:18

7_11 : 13 pont
remélem valami ilyesmire gondolt a "feladat" :D
kepfeltoltes.hu/view/130308/7_11_www.kepfeltoltes.hu_.jpg
#include <cstdarg>
#include <iostream>
#include <string>
#include <string.h>

using namespace std;

void error (char* format, ...)
{
va_list ap;
va_start(ap, format);

for(;*format != 0; ++format)
{
char seged[512] = "";
if (strchr(format, '%') != 0 )
{
strncpy (seged, format, (int) (strchr(format, '%') - format));
format += (int) (strchr(format, '%') - format);
cerr << seged;
}
else
{
strcpy (seged, format);
cerr << seged;
format += strlen(seged);
}
if (*format == '%')
{
++format;
if (*format == 's'){
char * cp = va_arg (ap, char*);
cerr << cp;
}
if (*format == 'd'){
int sor = va_arg (ap, int);
cerr << sor;
}
if (*format == 'c'){
int tipus = (char)va_arg (ap, int);
cerr << char(tipus);
}
}

}

va_end(ap);

}

int main()
{
char hiba[] = "invalid type argument of unary ‘*’ (have ‘char’)";
char tipus = 'D';
int sor = 252;
error ("A program ezt a hibakódot írta: %s\nA hiba a(z) %d -ik sorban volt.\nHiba típusa: %c\nA program működése leállt!\n",hiba,sor,tipus);

return 0;
}

cellSigma 2013.03.08. 21:33:23

@nb: @Scrop: Tisztelt Tanár Úr! Valóban, butaság volt tőlem, hogy a verzióra nem gondoltam és nem írtam; a parancs eredménye:
g++ (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8)

Scrop, tehát egész pontosan ezt a fordítót használom :D

Scrop 2013.03.08. 23:42:04

7_16 : 8 pont
kepfeltoltes.hu/view/130308/7_16_www.kepfeltoltes.hu_.jpg
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <string>

using namespace std;

enum {A = 10, B = 11, C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T = 29};

const int max_szamrendszer = 30;

char atvalt (int mit)
{
if (mit < 10)
return char(mit + int('0'));
else
return char(mit + int('A') - 10);
}

void rev(char *mit)
{

int hossz = strlen (mit);
char seged[hossz];
int i = 0;
while (i <= hossz)
seged[hossz-1-i] = mit[i++];
i = 0;
while (i < hossz)
mit[i] = seged[i++];

}

void print(int value, int base =10)
{
if ( base > max_szamrendszer || base < 2)
{
cout << "Nem megfelelő számrendszer!" << endl;
exit(1);
}
char chr_value[120] = "";

int i = 0;
int mod = value % base;
while (value != 0)
{
value /= base;
chr_value[i] = atvalt(mod);
mod = value % base;
++i;
}
rev(chr_value);
cout << chr_value << endl;
}

int main()
{
print(456);
print(46, 16);
print(4562, 12);
print(756,8);
print(8524,25);
print(9521,2);
print(871,30);
print(85271,31);
// cout << atvalt(15) << endl;

return 0;
}

Scrop 2013.03.08. 23:55:10

7_18 : 3 pont
kepfeltoltes.hu/view/130308/7_18_www.kepfeltoltes.hu_.jpg

#include <iostream>

using namespace std;

int fact(int n)
{
int szam = 1;
if (n > 0 )
for(int i = 1; i <= n; ++i)
szam *= i;
else
if (n < 0)
{
cout << "Nem megfelő szám" << endl;
return -1;
}
else
return 1;

return szam;
}

int main()
{

cout << fact(5) << endl;
cout << fact(4) << endl;
cout << fact(0) << endl;
cout << fact(-56) << endl;
return 0;
}

Scrop 2013.03.09. 13:14:59

7_8 : 10,5 pont
kepfeltoltes.hu/view/130309/7_8_www.kepfeltoltes.hu_.jpg
#include <iostream>
#include <stdlib.h>
//#include <stdio.h>
#include <unistd.h>
//#include <time.h>

using namespace std;

const int x = 7;
const int y = 5;

int** invert(int **tomb, int x, int y)
{
int** tomb_inv = new int*[y];
for(int i = 0; i < y; ++i)
tomb_inv[i] = new int[x];

for (int i = 0; i < y; ++i)
{
for (int j = 0; j < x; ++j)
{
*(*(tomb_inv+i)+j) = *(*(tomb+j)+i);
// cout << *(*(tomb+j)+i) << " ";

}
// cout << endl;
}
for(int i = 0; i < x; ++i)
{
delete [] tomb[i];
}
delete [] tomb;

return tomb_inv;
}

int main ()
{
srand(time(NULL) + getpid() );

int** tomb = new int*[x];
for(int i = 0; i < x; ++i)
tomb[i] = new int[y];

for (int i = 0; i < x; ++i )
{
for (int j = 0; j < y; ++j)
{
tomb[i][j] = (int)(rand() % (x*y+1));
cout << tomb[i][j] << " ";
}
cout << endl;
}

tomb = invert(tomb ,x,y);

cout << endl;

for (int i = 0; i < y; ++i )
{
for (int j = 0; j < x; ++j)
cout << tomb[i][j] << " ";
cout << endl;
}

for(int i = 0; i < y; ++i)
{
delete [] tomb[i];
}
delete [] tomb;

return 0;
}

Püsök Levente 2013.03.09. 13:52:31

218/7.10. / 2. Feladat

A

typedef int (&rifii) (int, int);

utasítás

bevezet egy típust, amivel referenciát deklarálhatunk az int értékkel visszatérő, két int típusú paraméterrel rendelkező függvényekre.

pl:

int fg(int a, int b)
{
/*kod*/
}

rifii fgr = fg;

3 pont

Püsök Levente 2013.03.09. 14:22:45

218/7.10. / 1. Feladat

// Karaktermutató, és egészre vonatkozó referencia paraméterrekkel
// rendelkező értéket vissza nem térítő függvény
void f(char* c, int& r)
{}

//Az előzőhöz hasonló függvényekre vonatkozó referenciák típusa
typedef void (*reff)(char*,int&);

//egy konkrét referencia deklarálása
reff rf=&f;

//függvény, amelynek ilyen mutató a paramétere
void af(reff xfr)
{}

//függvény, amely ilyen mutatót ad vissza
reff ret_reff()
{}

//függvény, amelynek ilyen mutatójú paramétere van,
//és visszatérési értékként paraméterét adja vissza

reff ret(reff f)
{
return f;
}

Püsök Levente 2013.03.09. 14:27:48

@Püsök Levente: Hoppsz, elírtam:
(5. sor)
//Az előzőhöz hasonló függvényekre vonatkozó referenciák típusa
typedef void (*reff)(char*,int&);

->

//Az előzőhöz hasonló függvényekre mutató mutatók típusa
typedef void (*reff)(char*,int&);

Püsök Levente 2013.03.09. 15:32:20

218/7.10. / 4. Feladat

#include<iostream>
#include<fstream>
#include<string>
using namespace std;

int main(int argc, char* argv[])
{
int i;
ifstream f;
string s;
for(i=1;i<argc;i++)
{
f.open(argv[i]);
if(f.is_open())
{
cout<<"A(z) \" "<<argv[i]<<" \" fajl sikeresen megnyitva."<<endl;
cout<<"A(z) \" "<<argv[i]<<" \" fajl tartalma :"<<endl;
while(getline(f,s))
cout<<s<<endl;
f.close();
}
else
cout<<"A(z) \" "<<argv[i]<<" \" fajl megnyitasa sikertelen volt"<<endl;
}
return 0;
}

Futás: img259.imageshack.us/img259/7910/7104.jpg

Scrop 2013.03.09. 20:28:04

@Scrop: Javítanám a pontot, mert elszámoltam :D 5.5 pont

Püsök Levente 2013.03.09. 21:38:15

Akkor ezek szerint az 1es és 2es (3-3 pont) feladatokra nem kaptam pontot?

nb · http://fersml.blog.hu 2013.03.10. 09:28:56

@Püsök Levente: picit informatívabban kérdezzünk, hiszen eddig 32-en veszünk részt az aktív munkában, s többen számos progival, amelyek azért nem olyan izgik, hogy éjjel is a fejemben járjanak, így én ezt az alábbi formában kérdezném:

-feladat spec. (oldal, szám, régi komment linkje stb.)
-forrásban, futásban ez-az lehet a hiba?

s ha valaki észrevesz hibát, annak is +4 pont.

andr_design 2013.03.10. 10:42:55

@nb: Tanár úr, akkor megkapom a 15 pontot a videómra, mert 13volt és most 15 van feltüntetve,

csak azért kérdezem hogy megfelelő volt e a video akkor :)

Köszönöm!

nb · http://fersml.blog.hu 2013.03.10. 11:13:30

@andr_design: Srácok, ezek NP nehéz kérdések, ezért kérem ilyenkor a saját "jegyzőkönyveteket", hogy gyorsan tudjak dönteni és így válaszolni a hasonló kérdésekre. Tehát pls a saját kimutatásad küld el.

andr_design 2013.03.10. 11:40:51

@nb: megvannak a pontok, a listában kétszer van beírva a nevem egyikhez 15 másikhoz 13, tehát igazából minden oké, csak szummázni kéne egy névhez és akkor minden tiszta :)

nb · http://fersml.blog.hu 2013.03.10. 12:13:33

@andr_design: OK., ez sokszor előfordul, persze a legközelebbi frissítéskor összevonom.

cellSigma 2013.03.10. 14:51:38

KÖNYV 7.10.8 (10.5 pont) :

#include <iostream>

using namespace std;

int** inverter(int** multiArray, int rows, int columns)
{
int** invertedArray;
invertedArray=new int*[columns];
for(int i=0;i<columns;++i)
invertedArray[i]=new int [rows];

for(int i=0;i<columns;++i)
for(int j=0;j<rows;++j)
invertedArray[i][j]=multiArray[j][i];

return invertedArray;
}

int main()
{

int rows=4, columns=5;
int** multiArray;
multiArray=new int*[rows];
for(int i=0;i<rows;++i) multiArray[i]=new int [columns];

int fill=1;
for(int i=0;i<rows;++i)
{

for(int j=0;j<columns;++j)
*(*(multiArray+i)+j)=fill++;
}

cout << "Ez van a mátrixban: " << endl;
for(int i=0;i<rows;++i)
{
for(int j=0; j<columns;++j)
cout << multiArray[i][j]<< ' ';

cout << endl;
}

multiArray=inverter(multiArray, rows, columns);

cout << "Az invertált mátrix így néz ki: " << endl;
for (int i=0; i<columns;++i)
{
for(int j=0;j<rows;++j)
cout << multiArray[i][j]<<' ';
cout<<endl;

}

for(int i=0;i<columns;++i)
{

delete[] multiArray[i];
}
delete[] multiArray;

}

Kép: tinypic.com/r/2bdxyx/6

andr_design 2013.03.10. 15:18:32

@nb: rendben, semmi probléma. Köszönöm!

cellSigma 2013.03.10. 18:44:39

KÖNYV 7.10.11. (13 pont):

#include <iostream>
#include <cstdarg>

using namespace std;

void error(char* format_string, ...)
{
va_list vl;
va_start(vl, format_string);
char* temp;

while((*format_string)!='\0')
{

if(*format_string!='%') cout <<*format_string;
else if(*format_string=='%')
{

format_string++;
switch(*format_string){
case 'd':
cout<<va_arg(vl, int);
break;
case 's':
temp=va_arg(vl, char*);
cout<<temp;
break;
case 'c':
cout<<char(va_arg(vl, int));
break;
}

}

format_string++;
}

va_end(vl);

}

int main()
{

error("Teszt string: %d %d %c %s %s, de még utána is van valami", 42, 13, 'c', "string teszt", "ez egy másik tesztelö sztring");

cout << endl;
return 0;
}

Kép: tinypic.com/r/654vm1/6

cellSigma 2013.03.10. 19:07:50

KÖNYV 7.10.18 (3 pont):

Kép: tinypic.com/r/2cpamgw/6

#include <iostream>
using namespace std;

int factorial(int n)
{
if(n<0) { cout<<"Hiba!"<<endl; return -1;}
else if(n==0 || n==1) return 1;

int result=1;

for(int i=n;i>1;--i)
result*=i;
return result;

}

int main()
{
cout<<"3!="<<factorial(3)<<endl;
cout<<"5!="<<factorial(5)<<endl;
cout<<"7!="<<factorial(7)<<endl;
cout<<"0!="<<factorial(0)<<endl;
cout<<"-13!="<<factorial(-13)<<endl;

return 0;

}

Scrop 2013.03.10. 19:26:54

@Smajdam: Csak egy matematikai hozzáfűzésem lenne a dologhoz : D Az 1 es számrendszerben nem lehetnek 1 esek, csak 0- ások :D

Gergo0720 2013.03.10. 19:28:28

Könyv 7.10 16

kepfeltoltes.hu/130310/Screenshot_from_2013-03-10_19_21_49_www.kepfeltoltes.hu_.png

#include <iostream>
#include <cstdlib>
#include <stdio.h>

using namespace std;
#define HOSSZ 50

void print(int value, int base = 10)
{

if (base > 0 && base < 17)
{
if (base == 1)
{
cout << "Egyes számrendszerben a megadott szám: ";
for (int i = 0; i < value; i++)
cout << '1';
}

else
{
int maradek[ HOSSZ ];
for (int j = HOSSZ; j >=0; j--)
{
maradek[j] = value % base;
value /= base;
}

char eredmeny[HOSSZ];
int j = 0;
while ( maradek[j] == 0)
j++;
cout << "A(z) " << base << " számrendszerben a szám: ";
for (j;j <= HOSSZ; j++)
{
switch (maradek[j])
{
case 0 : eredmeny[j] = '0'; break;
case 1 : eredmeny[j] = '1'; break;
case 2 : eredmeny[j] = '2'; break;
case 3 : eredmeny[j] = '3'; break;
case 4 : eredmeny[j] = '4'; break;
case 5 : eredmeny[j] = '5'; break;
case 6 : eredmeny[j] = '6'; break;
case 7 : eredmeny[j] = '7'; break;
case 8 : eredmeny[j] = '8'; break;
case 9 : eredmeny[j] = '9'; break;
case 10 : eredmeny[j] = 'A'; break;
case 11 : eredmeny[j] = 'B'; break;
case 12 : eredmeny[j] = 'C'; break;
case 13 : eredmeny[j] = 'D'; break;
case 14 : eredmeny[j] = 'E'; break;
case 15 : eredmeny[j] = 'F'; break;
}
cout << eredmeny[j];
}

}

cout << "\n";
}

else
{
cout << "Hibás az alap!" << "\n";
exit(EXIT_FAILURE);
}

}

int main()
{
int x,y;

cout << "Adja meg a számrendszert: " << "\n";
cin >> x;

cout << "Adja meg az átváltandó számot" << "\n";
cin >> y;

print(y,x);
cout << "\n\n";

return 0;
}

8 pont

smajdam 2013.03.10. 20:45:47

@Scrop: hát, most hogy így mondod, szabály szerint tényleg így lenne, de :
"Az egyes számrendszer vagy unáris számrendszer a legegyszerűbb számrendszer amely a természetes számok ábrázolására alkalmazható. Lényege, hogy az N számot egy tetszőlegesen megválasztott, az 1 értékét jelölő szimbólum („számjegy”) N-szeri ismétlésével jelöli." (wikipédia)
Szóval itt nincs igazából jelentősége :D de azért köszi, nekem fel sem tűnt :D

Scrop 2013.03.11. 00:02:47

A 7_9 es és a 7_10 es egyszerre mutatnám be: 23.5 pont
a 7_9 es nem egy túlkomlikált dolog abban semmi édekfeszítő nincs, a feladatnak megfelelően működik
kepfeltoltes.hu/view/130310/13247243317_9_www.kepfeltoltes.hu_.jpg
kód:
docs.google.com/file/d/0By5wCYSBTSJAZ0JraFJJa0l0WUU/edit

A 7_10 es feladatnak nálam annyi a hátránya h egyelőre csak megadott méretű kulcsokat tud kezelni, azaz ha 8 méretű akkor csak 8 és nem veszi számításba a 7,6,5 stb
kép:
kepfeltoltes.hu/view/130310/7_10_www.kepfeltoltes.hu_.jpg
A "feladat" file az a 7_9 es feladatm így annak a kimenetét vezettem bele a 7_10 esbe.
Látható h mivel kis szoveget kell tobb lehetőség van, a szűrés miatt, a szűrés viszont nagy szövegekre nagyon jól működik, pl a titkos2013.szoveg re
kepfeltoltes.hu/view/130310/7_10titkos_www.kepfeltoltes.hu_.jpg
Nem tudom mi az a krickrac a kulcs végén, pedig pontosan 8 karakteres tömböt hoztam létre.
Ha elég szadó valaki akkor nem csak számokkal lehet rötni, elég ha csak a kulcs_karaterek tombjébe felvesz ojan karaktereket amik szerepeljenek a kulcsban. és maga a kód
docs.google.com/file/d/0By5wCYSBTSJAS19YWk42aGNGQVE/edit

Atka001 2013.03.13. 11:37:09

z.c prezentálása 3 pont

szelepsapka 2013.03.13. 12:32:54

Valaki nem emlékszik rá, hogy a szerda 10 órás laboron hány pont járt a binfás feladatokért?

szelepsapka 2013.03.13. 12:47:07

@Atka001: együtt voltunk laboron, te nem emlékszel rá véletlenül hány pontot értek a binfás feladatok?

Atka001 2013.03.13. 13:07:07

@szelepsapka: Nem igazán rémlik. :S Talán az is 3 pont?

szelepsapka 2013.03.13. 13:59:05

laboron: hacker how to binfa (3pont)
hs_alt_HuRef_chr2.fa binfa (5pont)

Smajdam 2013.03.13. 14:40:37

labor:
-hacker how to-s binfa (3p)
-humán genomos binfa (5p) : www.kepfeltoltes.hu/view/130313/binfagenom_www.kepfeltoltes.hu_.png

nb · http://fersml.blog.hu 2013.03.13. 14:48:17

Adnék és 7 pontot is a humán genomosra, de a d.c-t okosítsuk ki, hogy ne dolgozza fel a komment sorokat :)

Ugyanez 5 pontért is kell, tehát jobban jár mindenki a héttel :)

nb · http://fersml.blog.hu 2013.03.13. 14:49:28

@nb: ja, de a d.c hekkelésében ne legyen külön ciklusban read a fő read-es cikluson belül! Figyeljük, hogy mikor vagyunk kommantben és akkor egyszerűen continue; arra betűre.

cellSigma 2013.03.13. 16:07:16

A mai 10-es laboron szereztem 3 pontot a hacker how-to-s binfára.

DeeGort 2013.03.13. 17:03:16

Órai munka: Bináris fa elmagyarázás
10 pont

cellSigma 2013.03.13. 17:06:13

d.c hack (7 pont):

#include <stdio.h>
#include <unistd.h>

int
main (void)
{
int i, egy_e, in_comment=0;
unsigned char b, c;

while (read (0, (void *) &b, sizeof (unsigned char)))
{
for (i = 0; i < 8; ++i)
{
if(in_comment) continue;

if(b=='/')
{
c=b+1;
if(c=='/') in_comment=1;
}
if(b=='\n') in_comment=0;

egy_e = b & 0x80;
if ((egy_e >> 7) == 1)
printf ("1");
else
printf ("0");
b <<= 1;
}
}
}

Hacker how-to ezzel dumpolva, majd z-t lefuttatva helyes eredményt ad:

tinypic.com/r/1zoux6r/6

Ahogy a humán genom is:

Egy kép a dumpolásról:

tinypic.com/r/bis120/6

Egy az eredményről:

tinypic.com/r/21afhn4/6

nb · http://fersml.blog.hu 2013.03.13. 17:19:42

@cellSigma: szerintem ezt még alaposan át kell gondolni!

- mi a '/' jel? ez a humán genomban a komment?
- miért ez a bonyolult kódszervezés? pl. a continue miért van a for-on belül?

Püsök Levente 2013.03.13. 17:41:14

A mai laboron (12-14 Godó Zoltán) 4 pontot szereztem.

cellSigma 2013.03.13. 17:51:42

@nb: Valamit nagyon félreértettem és elkapkodtam a feladat kapcsán (nem is értem, mire gondoltam, amikor c-stílusú kommentre próbáltam megoldani :/ ), elnézést kérek! Dolgozom a helyes megoldáson.

Scrop 2013.03.13. 18:19:59

Tanárúr ezt a glbic -s dolgot hogy tudom visszaállítani? e.a3 13 as fólia. Mert probálkoztam vele de csak hibákat ír mikor fordítottam a teszt.c, és futtatva nem voltak szinesek a betűk, gondolom a hibaüzenetek miatt :D
kepfeltoltes.hu/view/130313/hiba_www.kepfeltoltes.hu_.png

Smajdam 2013.03.13. 19:05:25

dump hack: (7p)
www.kepfeltoltes.hu/view/130313/436056183komment_www.kepfeltoltes.hu_.png

nyilván készítettem egy saját humán genom stílusú fájlt, így látható hogy sok, a komment utáni karakter nem szerepel a kimenetben, ezért lett olyan rövid.

Megjegyzés: ahogy cellSigma, én is először c stílusú kommentekre csináltam meg a feladatot :D azért nem volt szerintem egyértelmű, mert én pl nem nyitottam meg a humán genomos fájlt, szóval nem is tudtam ezelőtt, hogy vannak benne kommentek.

Scrop 2013.03.13. 19:20:01

@Scrop: Problem solved :D vagyis nem is volt probléma :D, csak én azt hittem h az egész printf emt felülírta, de nem :D

cellSigma 2013.03.13. 19:25:57

A dump hack program:

#include <stdio.h>
#include <unistd.h>

int
main (void)
{
int i, egy_e, in_comm=0;
unsigned char b;

while (read (0, (void *) &b, sizeof (unsigned char)))
{

if(b=='>') in_comm=1;
if(b=='\n' && in_comm) in_comm=0;
if(in_comm) continue;

for (i = 0; i < 8; ++i)
{

egy_e = b & 0x80;
if ((egy_e >> 7) == 1)
printf ("1");
else
printf ("0");
b <<= 1;
}
}
}

Itt egymás alatt látható a fa mélysége az eredetivel és a hackelt változattal:

tinypic.com/r/3589zmf/6

@Smajdam: Megnyugtat, hogy nem vagyok egyedül :D Egyébként bevallom, a genomos fájlt én sem néztem meg, csak egyből ugrottam a "komment" szóra, tanultam belőle :)

cellSigma 2013.03.13. 19:36:53

Itt látszik, hogy működik a dump program:

Kép:

tinypic.com/r/2gy15px/6

@Smajdam: A programom teszteléséhez a te ötletedet használtam fel, ezért ha tanár úr is elfogadja, 1 pontot adnék érte.

Pintyő90 2013.03.14. 18:13:00

oi46.tinypic.com/eapkjd.jpg

a 4. laboron beszélt feladat végre kész:)(3 pont)

illetve a 3. laboron is kaptam 3 pontot.

Smajdam 2013.03.14. 19:57:02

@cellSigma: köszi:)

A szerda 10 órási laboron lett kiadva egy feladat a new handlerrel kapcsolatban: kipróbálva!

Default beállítással: www.kepfeltoltes.hu/view/130314/new_handler_default_www.kepfeltoltes.hu_.png

set_new_handler-rel: www.kepfeltoltes.hu/view/130314/new_handler_own_www.kepfeltoltes.hu_.png

(6pont)

DeeGort 2013.03.14. 23:54:23

KÖNYV 7.10 Gyakorlatok 11.
kepfeltoltes.hu/130314/495674273error_www.kepfeltoltes.hu_.png

#include <iostream>
#include <cstdarg>
#include <cstdio>
using namespace std;

void error(char * str ...)
{
va_list arg_pointer;
char *p = str, c;

va_start(arg_pointer, str);

for (c = *p; *p; p++)
{
if (*p == '%')
{
c = *++p;
if (*p == 's')
{
char *pStr = va_arg(arg_pointer, char*);
cout << pStr;
}
else if (*p == 'c')
{
putchar(va_arg(arg_pointer, int));
}
else if (*p == 'd')
{
int val = va_arg(arg_pointer, int);
cout << val;
}
}
else
putchar(*p);
}

va_end(arg_pointer);
}

int main()
{
int alma = 55;
char world[] = "world";
error("Hello %s %c %d %d", world, '!', 45, alma);

return 0;
}

13 Pont

PHP_Barbar 2013.03.15. 10:21:15

Vadászat:
- Laboron kód elmagyarázása: 3 pont.

Összesen: 36 pont.

cellSigma 2013.03.15. 12:47:02

Heti pontösszesítés:
Eddig szerzett: 269 pont

KÖNYV: 7.10.8: 5.5 pont
7.10.11: 13 pont
7.10.18: 3 pont

Laboron hacker how-to: 3 pont
d.c hack: 7 pont

PageRank átírása C++-ba + OO-val kapcsolatos
feladatok összesen: 15 pont

A héten szerzett összesen: 46.5 pont

Összesen: 315.5 pont

cellSigma 2013.03.15. 13:30:36

Az előadáson elhangzott glibc hack feladat (6 pont, ha jól emlékszem?):

tinypic.com/r/2w5iut0/6

DeeGort 2013.03.15. 17:58:20

KÖNYV 7.10 Gyakorlatok 9.
kepfeltoltes.hu/130315/exor_www.kepfeltoltes.hu_.png

#include <iostream>
#include <cstdio>
using namespace std;

int main(int argc, char* argv[])
{
string key = (argc == 2) ? argv[1] : "";
int key_len =(argc == 2) ? key.length() : 1;

int i = 0;
char c;
while((c = cin.get()) && c != EOF)
{
c ^= key[i];
cout << c;
i = (i + 1) % key_len;
}
cout << endl;

return 0;
}

8 Pont

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

@Scrop: majd figyeljünk a stílusra, hogy pl. az utolsó feladatban ne a mainben legyen minden, hanem kis C-s filozófiával kisebb függvényekre bontva oldódjon meg a feladat.

RunOfTheMill 2013.03.17. 19:11:22

A március 13.-i 12:00-kor kezdődő laboron a hacker howto bináris fára való leképezéséért kaptam 3 pontot.

Gergo0720 2013.03.17. 21:53:15

Elkészítettem a dockbookomat, igaz a kiíráshoz képest kicsit később, de meg van. Remélem így is bezsebelhetem érte a pontot. Továbbá készítettem egy összefoglalót az eddigi pontjaimról.

www.dropbox.com/s/6unj0m2hrcbp6yp/ossz.ods

www.dropbox.com/s/pjaqeiogppege3r/prog.xml

www.dropbox.com/s/y38jww03vnmzkq5/prog.pdf

Scrop 2013.03.18. 09:04:27

@nb: Valójában szándékosan vettem ki azt a sok fügvényhívást, egy nagyon egyszerű okból, ugyanis lassítja a törést, és ha jól tudom egy törésnél azért számít a gyorsaság :D Az eredti fügvényes kódnak 20 perc kellet a szöveg feltörésésre, miután kivettem a fügvényeket ez 10 percre esett vissza.

nb · http://fersml.blog.hu 2013.03.18. 10:15:39

@Gergo0720: eltöröltük a heti scope-ot a blogos feladatoknál, mert sokan későn kaptak észbe, hogy a kurzusban dolgozni kell ám :-)))

Szóval persze jönnek majd a pontok.

Esetleg aki ugyanettől félnek a környezetedben, hogy már késő, nyugodtan bíztasd őket, hogy sosincs késő. Mert az igazság az, hogy kicsit keveslem a 32 vadászt.

nb · http://fersml.blog.hu 2013.03.18. 10:17:46

@Scrop: OK., valamit-valamiért elv, értem. Viszont a futási idő felezését kicsit sokallom a veremre írogatás eliminálásának javára írni. Hogy mérted?

time ./toro

parancssorral? (Ez ugye még a sima 1 szálas törő, nem az OpenMP vagy a GPU-CUDA változat?)

Scrop 2013.03.18. 19:06:14

@nb: igen time - al mértem, és én úgy oldottam meg a több szálast, hogy az intervallumot 4 részre osztottam és akkor annak a négy résznek külön procin futott a számítása, így kevesebb idő kellet a törésre :D. Nem tudom h ez így mennyire számít több szálnak ? .

nb · http://fersml.blog.hu 2013.03.18. 20:25:00

@Scrop: a kód látása nélkül látatlanban tehát ha nincs benne az alábbiak valamelyike, akkor "egy szálas" legalábbis az a programozási modell, amely alapján készült

- pthread_create
- pragma paralell opm

km92 2013.03.19. 21:17:00

Segítséget szeretnék kérni ! :) Próbáltam lefuttatni a Mandelbtrot-t fájlt, de folyamatosan nyavalyog, hogy nem létezik "iostream.h" fájl vagy mappa. Utána rájöttem, hogy a .h nem kell, kitöröltem, de így sem változik semmi, és nem engedi lefuttatni :( Ötletek ? :)

Pumuckl 2013.03.19. 21:34:34

Március 13. (szerda) 12-14 h laboron a hacker howto binfa bemutatása 3 pont.
Összesen ( docs.google.com/spreadsheet/ccc?key=0ArEDrdxF2lMBdE1zR1p0LUVwNnVPTWl6ellUdkp2aGc&usp=sharing ) : 30 pont

kun.t1992 2013.03.20. 00:50:01

Ubuntu zsenik jelentkezését várom. Néhány órával ezelőtt amikor Linuxra váltottam volna, akkor valószínűleg a compiz valamiért nem indult el és így csak az asztalt látom és az asztalon lévő ikonokat. Eddigi próbálkozásaim nem sikerültek(próbáltam újraindítani a compiz-t meg leszedni és újra visszatenni, semmi nem segített) és nyilvánvaló okok miatt szükségem lenne rá.

Atka001 2013.03.20. 08:34:58

@Sh00ter: Hülye felvetés (csak azért írom, mert én is jártam így), mentettél előtte? :)

Atka001 2013.03.20. 08:35:58

@Sh00ter: Másik felvetés, jól írtad le?
#include <iostream>

km92 2013.03.20. 08:53:03

@Atka001: Igen, mentettem, és így van leírva :)

nb · http://fersml.blog.hu 2013.03.20. 09:46:15

@Sh00ter: pontos hibát pls! legjobb, ha bevágod ide karakteresen, amit üzen a fordító vagy a linker.

Atka001 2013.03.20. 10:27:28

Szerdai laboron kérdés volt binomomtól:
"289. o, 290.o : Az exit() problémás volt, mert a 289. o-n azt írja: "Ha a program befejezésére a standard könyvtárbeli exit() fv-t használjuk, akkor meghívódnak a létrehozott statikus objektumok destruktorai". 290.o-n ezt: Az exit() meghívása azt jelenti, hogy a hívó fv. lokális változóinak és az azt hívó függvények változóinak desturktorai nem hívódnak meg." Nekem ellentmondás van a kettő között, nem tiszta, hogy melyik állítás mire vonatkozik, mi a különbség köztük?"

Az én elgondolásom a leírtak alapján:
"Ez gondolom azt jelentené, hogy amikor meghívjuk az exit()-et, akkor a globális változóknak és függvényeknek hívja a destruktorát, míg a lokálisoknak nem."

Helyes, helytelen? Egy kis segítséget szeretnék kérni!

Atka001 2013.03.20. 11:27:25

z3a7.cpp a humángenomra: 3 pont (Szerda 10-es labor)

szitam01 2013.03.20. 11:28:09

Szerda 10-es laboron 2 pontot szereztem.

MandelBrot átszinezése (3 pont)
kepfeltoltes.hu/130320/Screenshot_from_2013-03-20_11_12_06_www.kepfeltoltes.hu_.png

DeeGort 2013.03.20. 16:50:48

Órai pontok: összesen 10 pont.

I.Csaba 2013.03.20. 22:35:12

a kotott alku alapjan (fekete vagy 2 pont) osszedobtam a map hasznalatara egy peldat:

#include <iostream>
#include <map>
#include <string>
using namespace std;

int main ()
{
map<string,string> lakas;
lakas["Baldo"]="itt lakik";

cout << "Baldo " << lakas["Baldo"] << endl;
}

nb · http://fersml.blog.hu 2013.03.21. 07:21:46

@I.Csaba: további 2 pont a map-es szószámlálóért? (Lásd az előadás fóliákat; rajtad kívül az első háromnak ide.)

kpr 2013.03.21. 18:26:26

Órán szerzett pontok: 3

I.Csaba 2013.03.21. 19:43:49

#include <iostream>
#include <string>
#include <map>
using namespace std;

int main(){
string be;
int i = 0;

map<string,int>words;
while(cin>>be){
words[be]++;
}
for (map<string,int>::const_iterator p = words.begin(); p!=words.end(
cout << p->first << '\t' << p->second<<endl;
}

I.Csaba 2013.03.21. 19:45:14

hopp, az int i = 0; sor nem kell,elfelejtettem torolni

Kiemc (törölt) 2013.03.21. 23:03:35

Ötödik labor, csütörtök 16–18 óra:

LZWBinFa b1, b2;
kiFile << b1 << b2;

függvényes formára való átírásáért 6 pont.

d_khaba 2013.03.22. 12:25:18

péntek 8-10

Humán genom megjelenítő:
www.kepfeltoltes.hu/view/130322/1240042175GenAblak_www.kepfeltoltes.hu_.png

3-3 pont Tasnádi Dániel-nek, ill nekem

gyzsolt 2013.03.24. 23:55:36

szerda 12-14(13-án) 3 pont hacker howto bináris fára való leképezéséért
szerda 12-14(20-án) 2 pont LZWBinFa 200. sora miatt

nb · http://fersml.blog.hu 2013.03.31. 13:44:19

@DeeGort: jobb szeretek látni egy uname -a kimenetet az elején és a rebbot után, de OK.

RunOfTheMill 2013.04.02. 21:50:03

A március 20.-i gyakorlaton kaptam 7 pontot az LZWBinFás << operátoros kifejezés teljes alakos felírásáért, illetve még 3 pontot, azt már nem tudom, hogy mire.
Így mostanáig összesen 13 pontom van.

nb · http://fersml.blog.hu 2013.04.14. 11:36:11

@RunOfTheMill: ha nem tudod mire, az definíció szerint azt jelenti, hgy nincs meg a kért saját nyilvántartásodban, így marad a 10 pont (a jelen pillanatban, mert most dolgozom fel a kommeneteket persze folyamatosan)

nb · http://fersml.blog.hu 2013.05.22. 09:17:17

@I.Csaba: a 3.-at kezdtem nézni: mi történik, ha a szöveg sokkal hosszabb (vagy csak szimplán hosszabb) mint a kulcs?

I.Csaba 2013.05.23. 18:29:58

@nb: SSH_AGENT_PID=1660GPG_AGENT_INFO=/... hiba uzenettel titkositja a megmaradt szoveg reszt, ezt a visszajelzest elkezdi beirni a kulcsba.
süti beállítások módosítása