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

Konvergencia az erőben

2013.11.25. 09:15 nb

JUnit tesztelünk és átszövő vonatkozásoka szövünk az első védésbe.

  • Ha az elmúlt laborokon a védésed keretében az eredetileg C++-ból átírt humán genomos első védést áttetted Maven projektbe, akkor ma azzal kezdheted a munkát
  • Ha nem, akkor kérd el attól a Maven projektjét, aki igen (elvben ez nemcsak a laborközösségi jó gyakorlat, hanem a licence is ilyen a proginak :)
  • Ha ez mégsem sikerül, akkor tedd át magad.

Tipp: az élő laboron felmerült hallgatói védés mintájára, ahol ugye új algoritmus volt a bitek kiszedésére a bájtból, ezt tedd be egy metódusba, s persze a main-ből is kerüljön osztályba a funkcionalitás s ennek az új függvénynek az ellenőrzésére írt teszteket, mindezt 20 pontért.

Izgalmasabb, s ugyancsak 20 pontért kipróbálni ezeket a szövéseket, azaz megismételni a szereplő méréseket:

(AspectJ+Maven-re itt a Rosetta kő: http://www.inf.unideb.hu/~nbatfai/mircsource/GoldenTeamFC-0.0.4sumkick-project.zip)

20 komment

A bejegyzés trackback címe:

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

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.

Gula 2013.11.25. 16:18:21

Én volnék a későn védő, és jól jönne az a beígért user guide. :) (AspectJ-binfa)

B.Norbi93 2013.11.27. 19:59:09

JUnit tesztek az új algoritmusra:
imagerz.com/QE4SCUtvAwMCX1NKQwVQ
imagerz.com/QE4SCUtvAwMCX1NKQgVQ

Magát a 2 binfát nem tudtam összehasonlítani, a maven StackOverflowErrort dobott a kiir() fv. rekurzív hívásánál, ha pedig egy teszten belül csináltam a két külön algoritmust, akkor elfogyott a HeapSpace

(20 pont)

ICsaba 2013.11.27. 20:10:48

goparallel.sourceforge.net/exploring-new-lambda-features-c11/
tartalom roviden:
C++ uj feature-re, Lambda function. 2011 óta része a C++nak. Lambda feature alapötlete az hogy lérehozunk egy függvényt és egy változban tároljuk el.

auto myfunc = [](int x){}

az auto tipus azt jelenti hogy a fordító kitalálja hogy mi lesz a függvény tipusa és nem nekünk kell azt megadni.
ha egy külső változónak módosítani akarjuk az értékét a függvényben referenciaként kell megadni a [] között. Egy []-ben megadott váltózó értéke a függvény definiálása előtt értékelődik ki, tehát a myfunc(10); y=6; myfunc(15); esetén is 5 marad az y értéke.

fordítani g++ -std=c++11 program_nev.cpp -vel kell.

drive.google.com/file/d/0B4LMuR445FWQT2pnWXdmbmRCX0k/edit?usp=sharing

+30 pont

veni_vidi_vici 2013.11.28. 19:37:47

goparallel.sourceforge.net/exploring-new-lambda-features-c11/

A lambda függvények a 2011-es szabvány óta elérhetőak a C++ nyelvben. Általános ötletük, hogy létrehozunk egy függvényt és eltároljuk azt egy változóban. Erre lehetőségünk volt a C++ korábbi változataiban is, viszont mutatókat kellett manipulálnunk és a szintaxisa is bonyolult volt.

Az első példában létrehozunk egy lambda függvényt, eltároljuk egy változóban, majd kétszer meghívjuk a függvényünket:
imagerz.com/QE4SCktvAwMCX1JMEQVQ

A második példában láthatjuk hogyan tehetőek láthatóvá a lambda függvény hatókörében lévő változóink a lambda függvény törzséből (referencia és érték szerinti átadás esetén):
imagerz.com/QE4SCktvAwMCX1JMEAVQ
imagerz.com/QE4SCktvAwMCX1JMEwVQ
(érték szerinti átadás esetén nem változtatható meg a külső változók értéke)

A harmadik példában kiderül, hogy a külső változók eltárolása a lambda függvényben fordítási időben történik.(a lambda függvény létrehozásakor y értéke 5 volt)
imagerz.com/QE4SCktvAwMCX1JMEgVQ

+30 pont

veni_vidi_vici 2013.11.28. 23:56:10

JUnit teszt

Az algoritmus a bitek kinyerésére egy bájtból bekerült egy metódusba, ezt a metódust teszteltem:
imagerz.com/QE4SCktvAwMCX1JPRQVQ

+20 pont

B.Norbi93 2013.11.30. 17:30:05

A SourceForge-on lévő "közös" Yanonymous Constructon mennyire lehet szabadon garázdálkodni? Szóval a git push-t mennyire lehet használni? Vagy inkább csak a lokális repóban commitolgassak?

ICsaba 2013.12.01. 10:47:46

Junit test, az algoritmus kulon metodusban

drive.google.com/file/d/0B4LMuR445FWQV253ZVNrUlktU28/edit?usp=sharing

+20pont
es honoralnam veni_vidi_vicinek a turelmet, es segitseget 5ponttal ha lehet :)

Cvanger 2013.12.02. 13:40:53

goparallel.sourceforge.net/exploring-new-lambda-features-c11/

tartalma tömören:
A lambda függvények a 2011-es c++ verziótól vannak jelen a nyelvben. A lényegük, hogy létre tudunk hozni egy függvényt és azt tárolni egy változóban. Ez eddig csak mutatók használatával volt lehetséges, de annak a szintaxisa bonyorultabb.

szintaxisa: auto myfunc = [](int x) { }, ahol az auto kulcsszónak az a hatása, hogy a függvény tipusát a fordító dönti el és nem kell nekünk megadni. A lambda (érződik, hogy valami állandót akar jelenteni) rész a keretes zárójelek között van, ahol meg lehet adni egy read-only változót, melynek az értéke a függvény deklarációjakor eltárolódik, így a változón végzett későbbi változtatás nem lesz hatással a függvényre.

Mindez videóval:
www.youtube.com/watch?v=abxpEptQVAk

+= 30 pont

VSanyi94 2013.12.09. 14:31:45

A videó elemzése

kepfeltoltes.hu/view/131207/lambda3_www.kepfeltoltes.hu_.png

A videóban elsőnek fellelhető példaprogram annyiban különbözik az előző példaprogramoktól, hogy itt a myfunc kapja egy paramétert és azt kiírja.

kepfeltoltes.hu/view/131207/lambda4_www.kepfeltoltes.hu_.png

A második példaprogramban láthatjuk, hogy ahhoz hogy az y-t a lambda függvény használni tudja, így kell megadni:
auto myfunc =[&y](int x)

kepfeltoltes.hu/view/131207/lambda5_www.kepfeltoltes.hu_.png

Láthatjuk, hogy mi történik, ha referencia nélkül hivjuk meg, akkor a metódus csak olvasni tudja az y értékét, megváltoztatni már nem.

Nézzük meg, hogy mi történik, hogyha az y értékét megváltoztatjuk a lambda függvény létrehozása után:
Referencia nélkül:

kepfeltoltes.hu/view/131207/lambda6.1_www.kepfeltoltes.hu_.png

Referenciával:

kepfeltoltes.hu/view/131207/lambda6.2_www.kepfeltoltes.hu_.png

Láthatjuk, hogyha referencia nélkül hívjuk meg a lambda függvényt, akkor nem vesz tudomást az y megváltozásáról, ugyanis a függvény létrehozásakor létrejött paramétert tárolja el az eljárás.

+30 pont

VSanyi94 2013.12.09. 14:32:27

A"Van-e az objektum-orientált programoknak anyanyelve?" cikk szövésének megismétlése alatt nem tudom, hogy erre gondolt tanárúr. Ha igen, akkor
+20 pont

kepfeltoltes.hu/view/131207/Nagyteso_www.kepfeltoltes.hu_.png

ICsaba 2013.12.10. 20:34:29

valamelyik eloadason volt servlet es glassfish temaval kapcsolatban:

drive.google.com/file/d/0B4LMuR445FWQVHBMc09yLVJIUEU/edit?usp=sharing

+40 pont
süti beállítások módosítása