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

Első hét - "You ready! Lets go!"

2012.09.18. 09:06 nb

Fort Minor - Remember The Name (OFFICIAL Video) HD

2012p2_1.png

Prog2

Mivel a hallgatóság legalább fele nem nálam volt, így a klasszikus kezdést eltoltuk eggyel, s helyette az alábbi labormunka volt/lesz:

Milyen Java van a gépen?

$ java -version

JDK letöltése

$ cd Downloads
$ tar xvzf jdk[agresszív TAB gomb nyomkodás]
$ export PATH=/home/hallgato/Downloads/jdk[TAB]/bin:$PATH

Most milyen van?

$ java -version

Főtéma

Az 1. ea. módosított polártranszformációs normális generátor első C++ osztályának átítása Java-ba. A Java programozó API programozó, tehát amikor a

 u1 = std::rand () / (RAND_MAX + 1.0);

sort írod át, akkor az API doksi java.lang csomagja Math osztályának random metódusát kell tanulmányoznod!

  • Az első 3-nak 1 trófea (blogra kérem a labor után az itteni nickneveket).
  • További egy trófea aki 1000 generált random átlagát megmondja (a programjával persze).
  • További 3 trófea, aki 1000000 generáltnak elkészíti a hisztogramját.

Java esettan.

Az alábbi esettanulmányokat dolgozzuk fel:

37 komment

A bejegyzés trackback címe:

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

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.

mamenyaka (törölt) 2012.09.18. 15:31:21

+1 program
+1 átlag
+3 hisztogram

j0Co 2012.09.18. 19:56:36

+1 program
+1 átlag

szales 2012.09.22. 18:39:05

Java esettanulmányon vagyok és össze akartam rakni a városi hangya példafeladatot. De nem működik..
Van eclipsem, Android SDK-m és Android ADT pluginom.
Létrehoztam egy projektet és benne a forrásfájlokat. AndroidManifest.xml , layout/main.xml , values/string.xml a példában leírtaknak megfelel. Kértem api kulsot és beraktam az xml-be. Elindítom és az emulátorban meghal, a logcat alapján kiszűrtem, hogy nagyjából mi baja van. A VarosiHangyaItemizedOverlay.java -ban az ujReteg metóduson belül váltódik ki NullPointerException . Kérdésem csak annyi, hogy én rontottam el vmit vagy ezzel lehet kezdeni vmit?

szales 2012.09.23. 14:50:15

@nb: Igen az alapján. De sikerült ma délelőtt belőni. Az volt a baj, hogy a pdfből nem másoltam ki a createItem metódust és amikor az IDE sírt érte akkor beírtam sajátot és az okozta a crasht... Kipróbáltam autóban is tiszta vicces volt. Csak bizonyos távolságokban mutatta a hangyákat aztán így nem volt olyan érdekes. Ezért az ujReteg metódus ezen része a felelős?:
if (retegek.size() < 200){
retegek.add(overlay);
}
else {
retegek.poll();
retegek.offer(overlay);
}

populate();

nb · http://fersml.blog.hu 2012.09.23. 17:54:12

@szales: itt buszon tesztelek: youtu.be/QStgBZ6JfAU

A A VarosiHangyaActivity osztály
locationManager.requestLocationUpdates(
android.location.LocationManager.GPS_PROVIDER, 500, 1.0f,
varosiHangyaLocationListener);

részében érdemes állítgatni: developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates%28java.lang.String,%20long,%20float,%20android.location.LocationListener%29

Az ujReteg-ben valami olyasmivel próbálkoztam a sorral, hogy ne legyen végtelen sok hangya, hanem max 200.

szales 2012.09.23. 20:53:55

@nb: A buszon tesztelést már néztem az is tök jó, mondjuk a kocsival kicsit gyorsabban mentem :D .

Azért gondoltam az ujReteg-re mert ott van a 200-as limit de akkor majd megpróbálom a requestLocationUpdates-t módosítani.

vkrisz14 2012.09.24. 17:10:37

Pagerank megoldása:

public class Pagerank {

void kiir ()
{
int i;
int db=PRv.length;
for (i = 0; i < db; ++i)
System.out.println(PRv[i]);
}

double tavolsag (double PR[], double PRv[])
{
double osszeg = 0.0;
int i;
int n=PRv.length;
for (i = 0; i < n; ++i)
osszeg += (PRv[i] - PR[i]) * (PRv[i] - PR[i]);

return Math.sqrt (osszeg);
}

double L[][] = {
{0.0, 0.0, 1.0 / 3.0, 0.0},
{1.0, 1.0 / 2.0, 1.0 / 3.0, 1.0},
{0.0, 1.0 / 2.0, 0.0, 0.0},
{0.0, 0.0, 1.0 / 3.0, 0.0}
};

double PR[] = { 0.0, 0.0, 0.0, 0.0 };
double PRv[] = { 1.0 / 4.0, 1.0 / 4.0, 1.0 / 4.0, 1.0 / 4.0 };

void szamol()
{
int i, j;

for (;;)
{

for (i = 0; i < 4; ++i)
{
PR[i] = 0.0;
for (j = 0; j < 4; ++j)
PR[i] += (L[i][j] * PRv[j]);
}
if (tavolsag (PR, PRv) < 0.00000001)
break;

for (i = 0; i < 4; ++i)
PRv[i] = PR[i];

}
}

public static void main(String args[])
{
Pagerank pr= new Pagerank();

pr.szamol();
pr.kiir ();
}
}

zacsesz.ceh 2012.09.24. 17:38:26

//PageRank rendes +3 pont
public class PageRank {
double[][] L = {
{0.0, 0.0, 1.0/3.0, 0.0},
{1.0, 1.0/2.0, 1.0/3.0, 1.0},
{0.0, 1.0/2.0, 0.0, 0.0},
{0.0, 0.0, 1.0/3.0, 0.0}
};
double PR[] = { 0.0, 0.0, 0.0, 0.0 };
double PRv[] = { 1.0/4.0, 1.0/4.0, 1.0/4.0, 1.0/4.0};

public void kiir() {
for(int i = 0; i < PR.length; i++)
System.out.println(PR[i]);
}

public double tavolsag(double[] PR, double[] PRv) {
double osszeg = 0.0;

for (int i = 0; i< PR.length; i++) {
osszeg += (PRv[i] - PR[i]) * (PRv[i] - PR[i]);
}

return Math.sqrt(osszeg);
}

public void szamol () {
for(;;) {
for(int i = 0; i < PR.length; i++) {
PR[i] = 0.0;
for(int j = 0; j < PRv.length; j++) {
PR[i] += (L[i][j] * PRv[j]);
}
}

if(tavolsag(PR, PRv) < 0.00000001)
break;

for (int i = 0; i < 4; i++) {
PRv[i] = PR[i];
}
}
}

public static void main(String args[]) {
PageRank pr = new PageRank();
pr.szamol();
pr.kiir();
}
}

// Elfolyik a PageRank. +1 pont

Toma89 2012.09.24. 19:01:41

H 14-16 Gyakorlat
PageRank JAVA változat: +3 pont

public class PageRank
{

static void prKiir (double[]tomb, int db)
{

for (int i = 0; i < db; ++i)
System.out.println (tomb[i]);
}

static double prTavolsag (double[]PR, double[]PRv, int n)
{
double osszeg = 0.0;

for (int i = 0; i < n; ++i)
osszeg += (PRv[i] - PR[i]) * (PRv[i] - PR[i]);

return Math.sqrt (osszeg);
}
public static void main (String[]args)
{

double[][] L = {
{0.0, 0.0, 1.0 / 3.0, 0.0},
{1.0, 1.0 / 2.0, 1.0 / 3.0, 1.0},
{0.0, 1.0 / 2.0, 0.0, 0.0},
{0.0, 0.0, 1.0 / 3.0, 0.0}
};

double[] PR = { 0.0, 0.0, 0.0, 0.0 };
double[] PRv = { 1.0 / 4.0, 1.0 / 4.0, 1.0 / 4.0, 1.0 / 4.0 };

for (;;)
{

for (int i = 0; i < 4; ++i)
{
PR[i] = 0.0;
for (int j = 0; j < 4; ++j)
PR[i] += (L[i][j] * PRv[j]);
}
if (prTavolsag (PR, PRv, 4) < 0.00000001)
break;

for (int i = 0; i < 4; ++i)
PRv[i] = PR[i];

}

prKiir (PR, 4);

}

}
Mi történik, ha egy lapnak nincs kimenő linkje? (Az előző program felhasználásával válaszoljunk!) Töröljük például a JP <- M linket! +2 pont

kepfeltoltes.hu/120924/PageRank1_www.kepfeltoltes.hu_.png - PageRank elfolyása.

Mi történik, ha egy lap csak magára mutat? (Az előző program
felhasználásával válaszoljunk!) JP->M linket módosítsuk
M->M linkre. +2 pont

kepfeltoltes.hu/120924/PageRank2_www.kepfeltoltes.hu_.png - Az M lapot kivéve mindegyik elfolyik, az M lap értéke tart az egyhez.

selvi 2012.09.24. 22:03:54

Csanki Gergő
PageRank 3+2+2 pont

mamenyaka (törölt) 2012.09.25. 12:43:38

pagerank javaban +3
7. feladat +2
8. feladat +2

bensz92 2012.09.25. 13:20:26

bensz92

3 + 2 + 2 pont PageRank

mamenyaka (törölt) 2012.09.25. 13:27:19

+2(?) végtelen ciklus javítása

thevr 2012.09.25. 13:30:31

PageRank Java +3 pont
7. feladat +2 pont

selvi 2012.09.25. 15:52:25

valaki nem tudja-e esetleg lett-e újabb oldal mennyiség feladva erre a hétre olvasni? Ha igen akkor meddig?

nb · http://fersml.blog.hu 2012.09.25. 15:58:29

@selvi: maradt az első ea. fóliáin feladott korábbi kötelező olvasmány, az előadás a laborkártya részt nyomta le, tehát kártya lehet a jövő héten (utolsó laboron talán említettem is, hogy az egyik éppen belekerült a közös feladathalmazba is) de persze ellenőrzöm szúrópróba szerűen a 3 dolgot nem értettem és megkérdeztem a kollégám, illetve a kollégámnak válaszoltam részeket is.

Taksi 2012.09.25. 16:08:58

Új vagyok még itt.
Szóval, minden megoldott feladatot a legutolsó bejegyzés alá kell írni?
Illetve a laboron szerzett esetleges pontokat is ide kell kommentelni?

lllll (törölt) 2012.09.25. 16:37:03

Nem voltam első előadáson, és lenne pár kérdésem.

* Hol érhetők el az előadás fóliái?
* Mi az a "könyv", amit olvasni kell, és hol lehet elérni?
* A "binommal" váltott kérdéseknek milyen nyomot kell hagynia, hogy igazolható legyen?
* Mi ez a laborkártya dolog?
* Akinek nincs binomja, és akar egyet, írjon!

Stopi 2012.09.25. 17:09:56

Pagerank +3
A számok egyeztek az órán kijött számokkal

@lllll: Jobb sávban fent ott vannak ppt-ben
A könyv pedig:"(Nyékyné Java könyvből mazsolázni, az első 50 oldal már kötelező)
Nyékyné Gaizler Judit [et al.], Java 2 : útikalauz programozóknak : 5.0 8. átdolg., bőv. kiad. "
A binom beszélgetés meglegyen digitális formában. Pl e-mail

thevr 2012.09.27. 18:43:36

@Taksi: Így igaz. Ha az órán megoldottál valamit sikeresen, és azt ellenőriztetted is, az esetben az aktuális (és persze témába vágó) poszthoz kell kommentelned, hogy hány pontot szereztél, és hogy mi volt az, illetve adott esetben forráskódot is kell/lehet.

Taksi 2012.09.29. 15:20:58

@Komzsikjanos: Köszi. :)

Thorles 2012.10.01. 22:57:33

Kérdésem lenne a közösséghez. Felraktam a linuxot(legújabb ubuntu) a gépemre, és mikor elindítom, hát finoman szólva is elég csúnya/teleszórta a képernyőt kék és piros pixelekkel meg hasonlók./ Ugyanígy nézett ki a Gparted-es live cdnél is. Ati Radeon hd 6570-esem van. Tapasztalt már valaki ilyen problémát? Vagy esetleg valami megoldás tipp?

holhen 2012.10.04. 22:11:45

@Thorles: Igen volt. Kattints a System Settingsre, Displays, ha be van kapcsolva a Mirror displays, akkor kapcsold ki, és állítsd be a felbontásodat.

Más: Megpróbáltam én is itthon összerakni a Hangyát, de irtó sokáig tölti az ADT Plugint. Ez normális vagy valamit rosszul csinálok?

holhen 2012.10.05. 16:52:06

Valószínűleg Tanár úr meg fog ölni, de nekem végül is Windows alatt sikerült addig eljutnom a Hangyával, hogy nincs fordítási hibám. Egyetlen probléma, hogy a beállított Android szimulátor nem akar beindulni, csak az "Android" felirat villog rajta már fél órája... Mit lehet ilyenkor tenni?

holhen 2012.10.05. 16:55:21

@holhen: A progi végül is elindult de csak az emberkémet mutatja négyzethálóban és kivételeket dobál. Számítógépen ennyit kell tudnia vagy még kell rajta ügyködnöm?

nb · http://fersml.blog.hu 2012.10.06. 12:41:12

@holhen: Az emberke egy hangya ugye? (Bár a kép bármi lehet nyilván, de emberke egy nagyon korábbi forrásokban volt a default)

Kérdésed kapcsán: a debug.keystore-os móka rendben megvolt, a kapott API kulcsot betetted az osztály XML leírásába?

holhen 2012.10.06. 17:17:33

@nb: Igen, később rájöttem, hogy a képet rosszul tettem be, és azért az emberkét mutatta, most már hangya lett belőle, igen. :) Egyébként a kulcsigénylést nem tudom hogy kell Windows alatt csinálni, a leírás csak Linuxról és Macről szól... Viszont Linux alatt csak fagyogatott, aztán mikor letöröltem és újratettem, nem akarta az Androidot feltelepíteni rendesen... Ezért lett Windows, csak ott meg a kulcsigénylés nem stimmel.

nb · http://fersml.blog.hu 2012.10.06. 17:48:42

@holhen: elvben nincs különbség, hiszen a JDK keytool-os progijait használod. A jegyzet pontjai szerint jártál el az igénylésnél? Gugli adta vissza az API kulcsot?

holhen 2012.10.06. 18:23:00

@nb: Még nem jártam el sehogy, csak megnéztem a leírást a neten, és ott az van írva, hogy máshogy kell Winen... De majd megnézem mindjárt. :)

nb · http://fersml.blog.hu 2012.10.06. 18:30:52

@holhen: www.inf.unideb.hu/~nbatfai/konyvek/MOBP/mobp.book.xml.html#varosihangya

a 6. ponttól, ha probléma van a debug.keystore-val, akkor 2. poszt kommantjében a válasz. Érdemes minden kérdést a legfrissebb posztban feltenni, azt olvassák legtöbben.

holhen 2012.10.06. 19:22:58

@nb: Nem tudom, ezt a hibaüzenetet dobja: "A megadott nevet <keytool> a rendszer nem ismeri fel belső vagy külső parancsként, futtatható programként vagy kötegfájlként."
süti beállítások módosítása