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 tizenegyedik előadás, fizikailag

2011.04.28. 10:05 nb

2011. április 28-án megtartottuk a tizenegyedik előadást, megint csak írtunk katalógust, mert 100 alattinak tűnt a létszám: és valóban, tegnap is éppen 79-en voltunk...

 

"Tudjon főhős lenni abban a forráskódban!"

 

A végleges előadások itt elérhetőek: nehogy.fw.hu/

19 komment

Címkék: előadás tron

A bejegyzés trackback címe:

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

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 2011.04.28. 20:46:51

A mai védés jó hangulatú összejövetel volt, már-már a közelgő szóbeli vizsgák érzés és élményvilágát vetítette előre.

A számok nyelvén: 1 órába 5 hallgatótársunk fért bele, akik közül ketten sikeresen védtek (és a többiek sem voltak ortogonálisak a szakmára :) kis további készüléssel csont nélkül fognak védeni.

Amit esetleg érdemes megosztani a közösséggel: a poszt videórészlete szellemében a forráskódot olvassuk, azt rajzoljuk! Tehát ne verset szavaljunk és rajzoljuk elképzeléseinket, s közben homályosan mutassunk általában a kódra, hanem éppen fordítva: soronként csorogjunk a programon és értelmezzük azt!

Méhány konkrét észrevétel:
- a C++ kódban, amikor a fa építését nézzük (a << túlterhelésénél)

// az aktuális csomópontnak, ahol állunk azt üzenjük, hogy
// jegyezze már be magának, hogy nullás gyereke mostantól van
// küldjük is Neki a gyerek címét:
fa->ujNullasGyermek (uj);

az itteni "->" nyilat ne keverjük már a papírra rajzolt nyilakkal, hogy a "fa mire mutat" ez a nyíl (például a)

nehogy.fw.hu/wp-content/uploads/Prog1_6.pdf
7. fólia

értelmében értendő!!!

- ezzel kapcsolatos, hogy a kommenteket akkor érdemes kidobni, ha már megy fejből is... :)
Esetünkben a fa az aktuális csomópontra mutat, azaz a fa->ujNullasGyermek (uj); az aktuális csomópont objektum ujNullasGyermek() metúdusát hívja majd, egészen pontosan ezt:

// Aktuális csomópont, ímhol legyen a "gy" mutatta csomópont a bal oldali gyereked!
void ujNullasGyermek (Csomopont * gy) {
balNulla = gy;
}

Painkiller19910110 2011.04.29. 09:05:08

Tisztelt Tanár Úr!

Küldtem egy mailt az nbatfai-s címére, arra mi a válasza?

nb · http://fersml.blog.hu 2011.04.29. 10:10:08

@Painkiller19910110: kicsit igaz le vagyok most maradva, de nem látok mailt, az egyetemi nbatfaisat írod, ugye? Mikor küldted?

Painkiller19910110 2011.04.29. 10:36:41

@nb: elküldtem az unidebes címre, eltoltam az előbb :)

Painkiller19910110 2011.05.01. 14:00:10

Tanár Úr,
Szeretném megtudni hogy jövőhéten a saját beadandómat kell védenem vagy a másikat, elküldtem az előadás fóliákon található email címére a programot.

kovdog 2011.05.01. 15:18:23

Az a kérdésem, hogy ez mit jelent, és főleg a ~ jel érdekelne
~Verem()
{
delete[]verem ;
}

kovdog 2011.05.01. 15:48:32

a 7. előadás utolsó kártyáját próbálgatnám (((Mi történik...........)),de nem találom az int.h-t, hogy hol lenne, esetleg melyik előadásban volt ez teljesen megtalálható?

nb · http://fersml.blog.hu 2011.05.01. 16:05:00

@kovdog: Az osztály nevével megegyező, ~ betűvel kezdődő tagfüggvény a destruktor... vagy az irányban érdeklődsz, hogy miért éppen így jelölik?

nb · http://fersml.blog.hu 2011.05.01. 16:05:57

@kovdog: az előadásokban képpel van, rántsd le az SVN-ből (oda ráadásul a "debug logolást" be is gépeltem az Int.h és Int.cpp-be is)

kovdog 2011.05.01. 16:09:32

@nb: és akkor ugyanebben a kódban a constructor az mi?(ha van egyáltalán)

kovdog 2011.05.01. 16:13:49

még mindig ehhez a kódhoz--> 7.előadás/16.dia-->
a főprogramban u=v ez miért kellett ez mit csinál a veremmel? és az u.pop() illetve v.pop() az mit csinál?

phloriaN 2011.05.01. 19:12:14

@kovdog: Ugyanabban a kódban elvileg az osztály vagy struktúra neve kell hogy legyen a konstruktor amit többféle módon is meg lehet hívni a feladattól függően. A destruktornak is ugyanaz a neve csak egy ~ jel van előtte.
példa:

class Valami
{
...
public:
...
Valami(){} //ez a konstruktor amit többféle módon lehet hívni (paraméterekkel vagy nélkülük)
...
~Valami(); //ez a destruktor, ami a konstruktorral létrehozott objektumok által lefoglalt erőforrásokat szabadítja fel használatuk megszűnte után (használata nem kötelező)
...
};

ui: Remélem nem írtam hülyeséget :)

kovdog 2011.05.01. 19:31:30

@phloriaN: köszi szépen, így már felfogtam :D

kovdog 2011.05.02. 18:01:24

Ma volt egy olyan kártya, hogy : "A C nyelvben függvényhíváskor milyen sorrendben kerülnek a paraméterek a verembe?"(ha jól emlékszem) Erre szeretnék választ kapni, köszönöm.

kovdog 2011.05.04. 21:16:35

7.előadás/16.dia-->
a főprogramban u=v ez miért kellett, ennek mi a funkciója?

phloriaN 2011.05.04. 22:29:12

Abban a példában az u és a v a Verem osztály egy-egy példányai amit a Verem v(512); illetve a Verem u; parancsokkal hozhatsz létre. A v verem az alapértelmezettől eltérően 512 méretű míg a második az alapértelmezetten beállított 1024 méretet kapja meg (amit a konstruktorban állított be).
Az u=v egy szimpla értékadás ahol az u megkapja v elemeit. Ezt azonban alapesetben nem lehetne így felírni, ezért van szükség az egyenlőségjel túlterhelésére ami ebben a részben van:

Verem& operator=(Verem& v)
{
...
}

Remélem segített. Ha valamit nem jól írtam akkor javítsatok ki!

nb · http://fersml.blog.hu 2011.05.05. 09:09:32

@kovdog: annyival egészíteném ki phloriaNt, hogy ez már ismétlő fólia, az eredeti a 6/21-től kezd, a másoló értékadás, igen.

nb · http://fersml.blog.hu 2011.05.05. 09:11:38

@phloriaN: illetve az a defenzív taktika, hogy pontosan megírjuk /ahogy írtad itt: Verem& operator=(Verem& v) {}/, hogy mi történjen másoló értékadáskor, így nem érnek meglepetések :)

nb · http://fersml.blog.hu 2011.05.05. 09:30:43

@kovdog: nézd pl. a 8/10 ismétlő fóliát:

C-ben nyilván "C-szerű" a paraméterátadás, azaz

- a paraméterek fordított sorrendben mennek a verembe (nézd meg a PUSH-okat a példában) így
- a verem tetején az első paraméter lesz (az alján meg az utolsó)
- a hívó takarít (azaz a ő állítja vissza a vermet)
süti beállítások módosítása