Íme a negyedik hullám, de élvezd az elsőt, a másodikat és a harmadikat is! (Ha mást nem mondunk, akkor a szokásos "hegylakó szabály" van: csak egy maradhat, azaz az első vadászé a trófea.) Továbbá, ha mást nem mondunk, akkor a jelen hullám feladatainak megoldását is C, C++, Qt C++-ban várjuk. (ugyanazon feladat más nyelvű megvalósítása nem számít hasonló feladatnak, így elszámolhatósága esélyes :).
Tavaszi szél vizet áraszt
Ha belelkesedsz egy billentyűzet láttán, akkor ismerd fel, az új szerelem: a programozás. Ha nem érzed, miről beszélek, akkor subliminal messages. De tréfa nélkül: emlékezz az első előadás mottóira, például
"Aminek van értelme: (a) kódot olvasni és (b) kódot írni.”
Eric Steven Raymond: How To Become A Hacker
Hogyan lesz az emberből Hacker: http://esr.fsf.hu/hacker-howto.html
Ennek megfelelően még mindig nem késő, hogy elkezdj programozni! I
20 kisbajnokságos feladatok
- (ÉLES, Qt C++, Java ME) Mobil RoboTanár: készíts olyan mobiltelefonos programot, ami lefotózza a ZH-t és kijavítja! (help: lásd a sima RoboTanár feladatot!)
13 kisbajnokságos feladatok
- (ÉLES, C++, Qt C++, Java SE) RoboTanár: készíts olyan PC-s programot, ami lefotózott vagy beszkennelt ZH-t kijavít! (help: forrást nem adom, mert akkor beindul az össznépi másolás, de a szobában fogadóórán meg lehet nézni!)
Tesztképeket itt találsz, ezekre működjön helyesen a progid! (Elegánsan jársz el, ha nem bedrótozod a helyes megoldást, azaz a MINTA-t, hanem egy kitüntetett, pl. első vagy parancssor argumentumban jelzett bemenő teszt "tanítja meg" a programodat a helyes kitöltésre.)
12 kisbajnokságos feladatok
- (ÉLES C++ és Python) Készítsd el mindkettőben az LZW fa építőt, de ne bináris 0,1-re vagy T, C, A, G betűkre működjön, hanem tetszőleges szavakra (help: korábbi hullám Könyves Kálmános feladata a Python részhez.) Végezz sebességtesztet is a két változattal!
9 kisbajnokságos feladatok
- (KÉSZ) B&L(**) 7/Person feladat:142. oldal (másik két "7/"-el egymást kizáró.)
- (ÉLES Android Java) GPS pásztor: csilingeljen (vagy valahogy jelezze) ha a készülék kimegy egy előre "megrajzolt" (megadott) téglalapból. - DDN tagoknak rendelkezésre áll eszköz a teszteléshez.
- (ÉLES Android Java) GPS reklám: csilingeljen (vagy valahogy jelezze) ha a készülék kimegy egy előre megadott bolt mellett van és "dobja fel" a bolt reklámját! - DDN tagoknak rendelkezésre áll eszköz a teszteléshez.
8 kisbajnokságos feladatok
- (ÉLES) Sebesta könyv (****) 558. o. Saját (dinamikus, láncolt listából származtatott) verem, sablonosztállyal megvalósítva.
7 kisbajnokságos feladatok
- (KÉSZ) B&L(**) 6.3 példa: 96. oldal 1, 2, 3, 4 művelet csoportok (másik két "6.3"-al egymást kizáró.)
- (KÉSZ) B&L(**) 6.3 példa: 96. oldal 1, 2, 3, 5 művelet csoportok (másik két "6.3"-al egymást kizáró.)
- (KÉSZ) B&L(**) 7/Sorter feladat:142. oldal (másik két "7/"-el egymást kizáró.)
- (KÉSZ) B&L(**) 7/Serializer feladat:142. oldal (másik két "7/"-el egymást kizáró.)
- (ÉLES) Sebesta könyv (****) 558. o. Saját (dinamikus, láncolt listából származtatott) verem.
6 kisbajnokságos feladatok
- (KÉSZ) B&L(**) 6.3 példa: 96. oldal 1, 2, 3 művelet csoportok (másik két "6.3"-al egymást kizáró.)
5 kisbajnokságos feladatok
- (KÉSZ) S(******) könyv "6.1 Egy asztali számológép", 142. o.
- (ÉLES) 11/12 labor utolsó feladata.
3 kisbajnokságos feladatok
- (ÉLES) B&L(**) 7/Negyzet feladat:126. oldal (2 ha 7/Mat már volt).
- (KÉSZ) B&L(**) 12.3.6 feladat:339. oldal.
- (ÉLES) B&L(**) locale-pénz feladat:399. oldal.
- (ÉLES) CORBA telefonkönyv.
2 kisbajnokságos feladatok
- (KÉSZ) B&L(**) Prior. sor feladat:350. oldal.
- (KÉSZ) CORBA 1: az omniORB omniNames szolgáltatója fusson, a névszolg. gyökerének címét másold át a következő ORBit-os kliensbe és szerezd meg a névszol. gobjektum referenciáját, majd kérd meg az ORB-t, hogy alakítsa sztringgé és a kapottat írasd ki:
norbi@sgu ~]$ omniNames -start 2011 -logdir .
Thu Apr 21 09:22:23 2011:
Starting omniNames for the first time.
Wrote initial log file.
Read log file successfully.
Root context is IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e300000010000000000000070000000010102000e0000003139332e362e3133352e31353400db070b0000004e616d6553657276696365000300000000000000080000000100000000545441010000001c0000000100000001000100010000000100010509010100010000000901010003545441080000002fdbaf4d010035e6
Checkpointing Phase 1: Prepare.
Checkpointing Phase 2: Commit.
Checkpointing completed/* PP 164 gcc -I/usr/include/orbit-2.0 -I/usr/include/orbit-2.0/orbit/util -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -o nevszolg_ior nevszolg_ior.c -lORBit-2 */ #include <stdio.h> #include <orbit/orbit.h> #include <ORBitservices/CosNaming.h> int main (int argc, char **argv) { CORBA_ORB orb; CORBA_Environment env; CORBA_exception_init (&env); CosNaming_NamingContext nevszolgaltato_gyokere; char *gyokerIOR = "IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e300000010000000000000070000000010102000e0000003139332e362e3133352e31353400db070b0000004e616d6553657276696365000300000000000000080000000100000000545441010000001c0000000100000001000100010000000100010509010100010000000901010003545441080000002fdbaf4d010035e6"; orb = CORBA_ORB_init (&argc, argv, "orbit-local-mt-orb", &env); // ezt tennenk szokasosan, de futtassuk az orbit-name-server-t // (most az omniORB omniNames fut, így a fenti sor most tárgytalan) // nevszolgaltato_gyokere = // CORBA_ORB_resolve_initial_service(orb, // "NameService", &env); // es az igy megszerzett IOR-el ferjunk hozza a // nevszolgaltatohoz: nevszolgaltato_gyokere = CORBA_ORB_string_to_object (orb, gyokerIOR, &env); printf ("A nevszolgaltato gyokere: %s\n", CORBA_ORB_object_to_string (orb, nevszolgaltato_gyokere, &env)); return 0; }
gcc -I/usr/include/orbit-2.0 -I/usr/include/orbit-2.0/orbit/util -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -o nevszolg_ior nevszolg_ior.c -lORBit-2
./nevszolg_ior
A nevszolgaltato gyokere: IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e300000010000000000000070000000010102000e0000003139332e362e3133352e31353400db070b0000004e616d6553657276696365000300000000000000080000000100000000545441010000001c0000000100000001000100010000000100010509010100010000000901010003545441080000002fdbaf4d010035e6 - (ÉLES) CORBA 2: CORBA 1 omniORB C++ klienssel (CORBA ? nem kizáró).
- (ÉLES) CORBA 3: CORBA 1 omniORB Python klienssel (CORBA ? nem kizáró).
- (ÉLES) CORBA 4: CORBA 1 Java IDL klienssel (CORBA ? nem kizáró).
- (ÉLES) Nehogy már megint 1: készíts saját horgászhelyes Java ME horgászjátékot! (help: szobában ******* és Jávácska ONE)
1 kisbajnokságos feladatok
- (KÉSZ) B&L(**) Öt-bit példa: 357. oldal.
- (KÉSZ) B&L(**) 7.1 példa: 112. oldal.
- (KÉSZ) B&L(**) 7/Mat feladat: 120. oldal.
- (ÉLES) Ha az eddig elejtett vadjaidnak volt OO szerkezete, akkor készíts UML osztálydiagramot! (max. két esetben számolható el vadászonként, Java: ArgoUML, C++: uml.sourceforge.net/)
- (ÉLES) Kurzustérkép.
- (ÉLES) Qt Konvenciók 1, írd át a bevezető Qt-s példák/Mandelbrot nagyítót, hogy kövesse a forrás a konvenciókat (help.: OSS(*****) könyv 90. oldal., Qt Konvenciók ?-al kizáró.)
- (ÉLES) Qt Konvenciók 2, írd át a bevezető Qt-s példák/TCAG szőnyeget, hogy kövesse a forrás a konvenciókat (help.: OSS(*****) könyv 90. oldal., Qt Konvenciók ?-al kizáró.)
- (ÉLES) Qt Konvenciók 3, írd át a bevezető Qt-s példák/Sejtautomata szimuláló, hogy kövesse a forrás a konvenciókat (help.: OSS(*****) könyv 90. oldal., Qt Konvenciók ?-al kizáró.)
- (KÉSZ) RobotFoci 1, a csapat az Aranycsapat felállásából induljon (help: 7. ea., agent2d.../src/before-kick-off.conf)
- (KÉSZ) RobotFoci 2, végezzük el a néhány "placebo-átalakítást" (a POSIX jelkezelés és a select környékén) (help: fersml blog)
- (ÉLES) CORBA 5: CORBA 1 két külön gépen tesztelve (CORBA ? nem kizáró)
- (ÉLES) CORBA 6: CORBA 2 két külön gépen tesztelve (CORBA ? nem kizáró)
- (ÉLES) CORBA 7: CORBA 3 két külön gépen tesztelve (CORBA ? nem kizáró)
- (ÉLES) CORBA 8: CORBA 4 két külön gépen tesztelve (CORBA ? nem kizáró)
- (ÉLES) Nehogy már megint 2: készíts Java Android-os frame alapú animációt! (help: szobában ******* és ********)
- (KÉSZ) Nehogy már 1: saját (felélesztés és valami apró módosítás) Java ME / NehogyMar1 (help: ******** és NehogyMar példák)
- (KÉSZ) Nehogy már 2: saját (felélesztés és valami apró módosítás) Java ME / NehogyMar2 (help: ******** és NehogyMar példák)
- (KÉSZ) Nehogy már 3: saját (felélesztés és valami apró módosítás) Java ME / NehogyMar3 (help: ******** és NehogyMar példák)
- (KÉSZ) Nehogy már 4: saját (felélesztés és valami apró módosítás) Java ME / NehogyMar4 (help: ******** és NehogyMar példák)
- (KÉSZ) Nehogy már 5: saját (felélesztés és valami apró módosítás) Java ME / NehogyMar5 (help: ******** és NehogyMar példák)
- (KÉSZ) Nehogy már 6: saját (felélesztés és valami apró módosítás) Java ME / NehogyMar6 (help: ******** és NehogyMar példák)
- (KÉSZ) Nehogy már 7: saját (felélesztés és valami apró módosítás) Java ME / NehogyMar7 (help: ******** és NehogyMar példák) - "Nehogy már ?" kizáróak
- (KÉSZ) Nehogy már a1: saját (felélesztés és valami apró módosítás) Android / NehogyMar1 (help: ******** és NehogyMar példák)
- (KÉSZ) Nehogy már a2: saját (felélesztés és valami apró módosítás) Android / NehogyMar2 (help: ******** és NehogyMar példák)
- (KÉSZ) Nehogy már a3: saját (felélesztés és valami apró módosítás) Android / NehogyMar3 (help: ******** és NehogyMar példák) - "Nehogy már a?" kizáróak
- (ÉLES) TCAG 1, help: ********* 201. oldal 1. feladat (TCAG ? kizáró)
- (ÉLES) TCAG 2, help: ********* 201. oldal 2. feladat (TCAG ? kizáró)
Figyelem: élő közösségként, a vadászattal együtt élve tudjátok, hogy melyik feladat ÉLES, melyik kész, mert nem mindig tudom időben frissíteni! (A türelmetlen vadászokra gondolva menet közben publikálom a posztot, hogy elkezdhessék feldolgozni a hétvégén mihamarabb, de a feladatok kiírása folyamatos lesz, amíg meg nem jelenik a link ide a Vadászat dobozban.)
Ha megtetszik egy feladat, de nem tudsz belekezdeni, vagy elakadtál, bátran kommenteld!
*: www.imsdb.com/scripts/Matrix,-The.html
**: Benedek Zoltán, Levendovszky Tihamér: Szoftverfejlesztés C++ nyelven, Budapest, 2007, Szak K.
***:Jesse Liberty, Horvath, David B. Büki András: Tanuljuk meg a C++ programozási nyelvet 24 óra alatt.
****: Robert W. Sebesta: Concepts of programming languages, 9. ed. Upper Saddle River, NJ : Pearson, 2010.
*****: Alan Ezust, Paul Ezust: An Introduction to Design Patterns in C++ with Qt 4, Prentice Hall (Open Source Series) 2006
******: Stroustrup, Bjarne: A C++ programozási nyelv, Kiskapu, 2001.
*******: Bátfai Norbert (2011): Mobil programozás - Nehogy már megint a mobilod nyomkodjon Téged!, Kempelen Farkas Felsőoktatási Digitális Tankönyvtár (2011).
********:Bátfai Norbert (2008): Nehogy már a mobilod nyomkodjon Téged! A programozás egy szellemi sport: ismerd meg Te is az alaplépéseket! Debrecen, DEENK 2008.
*********: Peter Revesz: Introduction to Databases: From Biological to Spatio-Temporal, Texts in Computer Science, 1st Edition, 2010.