C# gond: form grafika refresh után gond van

Fórumok

Hali!
Nem tudom, tud-e valaki segiteni. Szigorlat beugron akadok el. Tavaly ez miatt kivagtak, de azota sem tudom a megoldast....

formra kirajzoltatni otven db veletlenszeru kort (pontot) es egy teglalapot. Ahany pont a teglalapban van, azt irja ki (es szinezze at).

Namost, nekem _elsore_ mukodik, viszont ha az Ujraindit gombra kattintok, akkor vagy jo eredmenyt ir vagy nem...Egyszeruen keptelen vagyok rajonni, miert csinalja ezt velem. Erzem, hoyg az ActiveForm.Invalidate es ActiveFrom.Refresh lehet a gubanc, de nem tudok rajonni....


public class kor
{
int x;

public int X
{
get { return x; }
set { x = value; }
}
int y;

public int Y
{
get { return y; }
set { y = value; }
}
public kor()
{ }
public kor(int xx, int yy)
{
this.x = xx;
this.y = yy;
}
}


public partial class Form1 : Form
{
Random veletlen = new Random();
Brush ecset = new SolidBrush(Color.Blue);
Brush ecsetzold = new SolidBrush(Color.Green);
Pen cerkazold = new Pen(Color.Green);
kor[] korok = new kor[50];
int db = 0;
public Form1()
{
InitializeComponent();
}

private void panel1_Paint(object sender, PaintEventArgs e)
{
//ActiveForm.Refresh();
//ActiveForm.Invalidate();
db=0;
Graphics grobj = e.Graphics;
Rectangle reglalap = new Rectangle(veletlen.Next(10, 300), veletlen.Next(10, 200), veletlen.Next(10, 300), veletlen.Next(10, 300));
grobj.Clear(Color.White);
for (int i = 0;i <50; i++)
{
korok = new kor();

korok.X = veletlen.Next(300);
korok.Y = veletlen.Next(300);
grobj.FillEllipse(ecset,korok.X,korok.Y,5,5);

}
//int teglalapbfx = veletlen.Next(10,300);
//int teglalapbfy = veletlen.Next(10,300);
//int teglalapjax = veletlen.Next(teglalapbfx + 300);
//int teglalapjay = veletlen.Next(teglalapbfy + 300);

// grobj.DrawRectangle(ecsetzold, teglalapbfx, teglalapbfy, teglalapjax, teglalapjay);
grobj.DrawRectangle(cerkazold, reglalap);

db = 0;
for (int i = 0; i < 50; i++)
{
if ((korok.X > reglalap.X && korok.X < reglalap.X + reglalap.Width) &&
(korok.Y > reglalap.Y && korok.Y < reglalap.Y + reglalap.Height))
{


db++;
grobj.FillEllipse(ecsetzold,korok.X,korok.Y,5,5);


}
label1.Text = db.ToString();




}

}

private void button2_Click(object sender, EventArgs e)
{
ActiveForm.Close();
}

private void button1_Click(object sender, EventArgs e)
{
db = 0;
//ActiveForm.Dispose();
ActiveForm.Invalidate();
ActiveForm.Refresh();
}
}

Hozzászólások

Nagy segítség lenne, ha:
- indentált kódot tennél fel (hogy talán már ránézésre segíthessek)
- minimális kódot tennél fel (3 helyen van db=0, fölösleges kommentek, button2, stb.)
- forduló kódot tennél fel (korok helyett korok[i] sok helyen, biztos a fórum ette meg)
- teljes kódot tennél fel (hogy ne nekem kelljen dizájnerből újra összerakni)
- megmondanád, mi a pontos hiba (összeraktam a projektet, futtattam, mindig pont annyit írt ki, ahányat zöldre színezett, és pont a táglalapon belüliek lettek beszínezve)

Esetleg a téglalap széleire rajzolt körök kezelése a véleményes. A FillEllipse x,y koordinátája nem a kör közepe, hanem a bal felső sarka. Tehát rajzold a köröket x-2,y-2,5,5 koordinátákkal, akkoir pont x,y lesz a középpont.

--
joco voltam szevasz

Bocs, de az elso szot nem ertem. Indentalt?
- minimalis? Ez az :)
- Fordult.
- Jogos. http://celtic.aion.hu/bmfnik/Celtic_Beugro.zip
- Az, hogy idonkent teljesen idiota erteket ir a benne levo pontokrol, Refresh gomb utan.
Parszor jo, aztan tisztan latszik, hogy legalabb ot benne van, kiirja, hogy nulla. Benne van egy, sok kint, kiirja, hoyg 27.
- Ez a hiba :( Valami a Refresh korul lesz, nem nullazza a DB valtozot vagy nem tudom, de neha idiota erteket ir.

- Koszi, az jogos, tenyleg a szelen levo is gond, de azzal nem is torodtem. Ez zavart, hogy miert ir neha idiota erteket.

--
http://www.micros~1

Az identalas azt jelenti, hogy ami egy fuggveny/ciklus/elagazas ala kerul, azt beljebb kezded n szokozzel/tabbal amig az a fuggveny/ciklus/elagazas tart. Ha code tag-be teszed a kodot a szerkesztoben, akkor meghagyja az eredeti szerkezetet. Ha eredetileg sem volt identalva (es amiatt nem tudod mi az), akkor sokkal nagyobb gondjaid lesznek a szakmaban, mint egy kisebb C# project, akkor elobb annak kezdj neki.

--
I never let my children watch big band performances on TV. Too much sax and violins. - sickipedia

Ja, ertem. Nem tudtam, hoyg a kod formazasat jelenti :) Fonokom is mindig cseszeget erte, hogyha irok egy scriptet, nem nyomogatom a tabot szorgalmasan a fv/feltetel/ciklus/stb belsejeben :)

VS identalta, de idonkent belejavitottam, aztan azert lett olyan ocsmany.
Mindegy, prog.hu-s sracok szerint szedjem szet kulon eljarasba a pontok
generalasat es kirajzolasat. Megtettem:

http://celtic.aion.hu/bmfnik/Celtic_Beugro_v2.zip
--
http://www.micros~1

Tedd fel az egész projektek valahova, mert így marha sok idő mire valaki kijavítja.

(NIK ? :) )


ActiveForm.Invalidate();
ActiveForm.Refresh();

Felesleges Invalidate() utan Refresh()-t hivni. Az Invalidate csak megjeloli a teruletet, hogy ha van szabad CPU ido, akkor rajzolja ujra, a Refresh meg egybol ujrarajzoltatja.

// Csak nem szigorlat beugro? :)

----------------
Lvl86 Troll

Megvan a hiba:

a gombok és a label NE legyen benne a panelban.
Tehát ne a gyereke legyen, hanem a formra menjen, mivel amikor valamit újra kell rajzolni, pl a gombot, az egész panel szórakozik, mindjárt feltöltöm valahová a projetet

Szerk: innen letöltheted

Közben én is átnéztem a prog.hu-s topicot és a megcsinált programodat, és programozás szempontjából az a megoldás sokkal jobb. Nekem is sikerült elkövetni azt a hibát, hogy rajzoláskor nem csak rajzolunk. "Sajna" ezek a rajzoló metódusok meglehetősen gyakran hívódnak, így tényleg nagyon érdekesen tudnak viselkedni, ha a rajzolóval generálunk mindent.

Egyébként sok sikert a holnapi szigorlathoz!

Nagyon koszi. Ramfer, mert ha most sem sikerul, jovore nem tudok milyen targyat felvenni :( Vagyis egyetlenegyet, ami visszavan, meg vmi szabadon valaszthatot. Aztan annyi haladekot adtam magamnak (mar megint), hogyha ebben a felevben sem sikerul, akkor esetleg meg utoljara nyaron megprobalom (akkor mar harom felev fizetosom lesz vissza), ha akkor sem, akkor bucsuzok az iskolatol. Nincs szuksegem erre a stresszre.

--
http://www.micros~1

Ertem mar! Szoval nem volt hulyeseg, ahoyg csinaltam, csak
- vagy a gombok ne keruljenek a panelra
- vagy kulon eljaras vegezze a kirajzolast es a generalast (szoval itt a panelben
nincs benne a generalas, csak a kirajzolas)

Akkor megnyugodtam, megsem vagyok olyan hulye, csak valamirol nem tudtam es nem vettem figyelembe.
Mondjuk, nekem azert nem tunt fel, mert hiaba mozgattam az egeret folotte, nem generalta ujra a rajzot.

--
http://www.micros~1

igen, amúgy nálam is csak a label ugrált összevissza, gondolom valami side-effect lehet, bár gőzöm sincs, hogy melyik saját vagy gyári metódus okozza. Mondjuk a saját megoldásra úgy jöttem rá, hogy mivan ha... és kihúztam a gombokat meg a labelt a panelből a formra. Gondolom nem papíron vagy egy egyszerű szövegszerkesztőn kell írni a kódot, így ez is hasznos tipp lehet, még ha a többiek le is torkolnak ezért. Illetve érdemes még megnézni egyes metódusok, mint pl a refresh névtúlterheléseit, mert hasznos következtetéseket lehet belőle levonni, ha ismeretlen vizekre tévedsz. Legalábbis nekem így szokott működni.

Na végül is leeset a nagy tantusz a hibával kapcsolatban, a prog.hu-n az utolsó hozzászólásban. Ugyebár amikor a gomb a panelen van, ha a gombot újra kell rajzolni akkor az alatta levő panelt is újrarajzolja, és amiatt ugrál a label.
Tehát akkor lényegében a megoldás, hogy a rajzoló metódusban csak rajzoljon :)

Pedig hat a reszleges kodban belul van :) Vagy nem...Kellett volna hozza a form1.designer.cs is, abbol rogton kiderul...

Oke, csak en azt hittem, valamit a kodban cseszek el, erre az aprosagra nem gondoltam...Ezerszer atneztem, db valtozo nullazodik, megfelelo helyen novekszk meg minden, megse jo...

--
http://www.micros~1

Be is idezem az utolso prog.hu-s commentet:

Amúgy a hiba az volt, hogy a Paint metódusban generáltad a koordinátákat, mint mondtam.
Hiába teszed a gombot máshová, ez a hiba megmarad.

A Paint metódust, nem csak a Form létrejöttekor, illetve a Refresh kiadásakor hívódik meg, hanem a rendszer is meghívhatja ha szügségét érzi, mint mondtam korábban.

Próbáld ki, az eredeti kódoddal, hogy minimalizálod az alkalmazást, majd vissza. A pontok és a téglatest koordinátái megváltoznak. Mivel a rendszer újra rajzolta a formot, így lefutott a Paint metódus és új helyre kerültek az objektumok.

Ez talán még nem is zavarhat annyira téged, de akkor próbáld a következőt.
A form előtt mozgas át egy másik kisebb formot.
Elég csúnyán maszatossá válik a form, mivel a rendszer újra rajzolja az ablakkal takart területet, de csak azt és nem az egészet. És minden újra rajzolásnál a pontok új helyre kerülnek és előfordulhat, hogy nem lesz az egész pont vagy az egész téglatest kirajzolva, csak egy része.

Szóval az egyedüli megoldás, hogy a Paint-ban nem módosítod a koordinátákat, csak rajzolsz.

--
http://www.micros~1

Csak megjegyzeskeppen, a mai szigorlat beugro:

1. Hozzon letre panel/PictureBox hasznalataval sakktablat. A sakktabla egy negyzetere kattintva jelenjen meg ott egy kiralyno, ha volt, tunjon el.

2. Modellezze a "8 kiralyno egy sakktablan" feladatot a fenti formon. Folyamatosan irja ki, hany kiralyno van fent es hogy utik-e egymast.

(Nem szo szerinti, de a lenyeg ez volt)
Ido: 60 perc.

--
http://www.micros~1

Hat, itthon ulok....Amikor kiraktam 64 db pictureboxot es rajottem, hoyg nem ugrik be, hoyg tudok mindegyikhez egy darab esemenykezelot rendelni ( 64-et meg nem irok meg :), akkor feladtam. Ja, annyit meg tudtam csinalni, ha egy kepre kattintasz, akkor megjelent vmi windows kep (nem volt kedvem kiralynot rajzolni), de eltuntetni nem tudtam.
Igy negyedora utan felalltam es eljottem, a masodik reszenek neki se lattam.

--
http://www.micros~1

hmm. ehhez azért eléggé kell ismerni a nyelvet. Mondjuk szigón el is várják, az első részét a feladatnak már megcsináltam, igaz kellett hozzá egy óra, ennek a fele a c# referenciáját bújtam.

szerk: az első fele működik, fel is van töltve, innen töltheted. Ha valamit nem értesz belőle akkor írj. A második fele (ott lesz ahol van egy szép if(ture) lesz) fel lesz töltve, amint kijövök a saját zavaromból.

Nekem a kurva nagy gondom ott van, hoyg szep az az elvaras, de ezert loszart sem adtak. Tudom, sajat munka meg hasonlok, de nalunk az OOP-alap az loszart nem ert (Sipos M, ha mond valamit a nev). Ezert mentem neki haromszor a VEP-nek, mert igazabol ott tanultam meg az OOP-alapokat.

Raadasul estin alapbol felezve az oraszam, "hat ezt sajnos nem tudom leadni, de term. kovetelni fogom a zh/vizsgan, hiszen ugyanolyan diplomat kapnak, mint a nappalisok, ugyanazt kel tudniuk". Anyad.

Jajbocs, kicsit felment az agyvizem, koszi a megoldast :) Atnezem mindjart.

Amugy suigobeugron voltak durvabbak is, a progmatosok meg a Fazekas-gimit vegzettek csak rohognek rajta, de en kibuktam a "haromszog plusz egy pont, bent van a haromszogben vagy nicns"-tipusu beugron, aminek koze nincs a programozashoz, de jo kis matek, 60 perc alatt.
Es abban a felevben csupa hasonlo csodas feladat volt...ahhoz kepest ez mar emberib, csak felkeszulni nehez ra :)

--
http://www.micros~1

Fogalmam sincs, hogy estiseknek kik a gyakvezetők, de nappalin ennyire nem vészes. Bár én nem tanácsolom senkinek se, hogy nulla programozási ismerettel jöjjenek egyetemre. Viszont, ami nagyon zavart, hogy hatalmas különbség van a gyakvezetők között. Van aki megakar tanítani, van aki elvárja, hogy mindent tudjál és ezt különböző nehézséggel követelik... Első félévben persze nem te döntesz kit választasz, nekem hatalmas mázlim volt, hogy egy olyan emberhez kerültem, akinek a tudása is megvan, a képessége is és megtett mindent, hogy felhozza azokat az embereket elfogadható szintre, akiknek nulla volt a tudása. Én úgy mentem oda, hogy voltak programozási alapismereteim, ezért az OOP maga nem volt megterhelő, de nem vagyok biztos abban, hogy egy bizonyos tanárnál (Csink) is akadály nélkül ment volna. A legjobb prog tanár egyértelműen Miklós Árpád (tudásban és előadói szinten is), viszont a zh-kon összesz*rod magad.

En szeretek Legradihoz kerulni :) Ha OOP-tanar oke lett volna, akkor meg nem zavarna, barkihez kerulnek, talan meg kedvelnem is a programozast, legalabb annyira, hogy elvezettel lassak neki egy feladat megoldasanak, meg akarjam oldani. Najo, mondjuk az AAO is vicc volt: ritka matrixokkal kapcsolatos algorimusok, matrixok lancszorzasa, mint alapalgoritmusok. Ja, hoyg csak masodik felevben lesz Linearis algebra, ahol megtanuljak, mi az a matrix? Kellemetlen, akkor is meg kell tanulniuk. Sajnos, tobbre nincs ido, nezzenek korbe a wikipedian es mas algoritmust tartalmazo oldalakon, nagyon erdekes algorimusokat talalnak, en tobbet nem tudok leadni az anyagbol.

--
http://www.micros~1

""haromszog plusz egy pont, bent van a haromszogben vagy nicns"-tipusu beugron, aminek koze nincs a programozashoz, de jo kis matek, 60 perc alatt."
Ez miert is nem programozas? Igaz, nem API hasznalat (ha te ezt erted programozas alatt), de attol meg programozas. Amugy sokfelekeppen meg lehet oldani, a legegyszerubb ami most eszembe jut: legyen ABC az eredeti haromszog, P a pont. Szamitsuk ki a PAB,PAC,PBC haromszogek teruletet (ha maskent nem megy, Heron-keplettel, ez kozepiskolas anyag). Ha a T(PAB)+T(PAC)+T(TPBC) >T(ABC) akkor kivul van a pont, amugy meg belul. Kesz.

Heron-keplet NEM kozepiskolas anyag. Legalabbis tobbektol hallottam. En nem tanultam, de kozepiskola is esti volt, tehat azt hittem, azert.

Es azert nem programozas, mert nem azt nezte, hogyan tudsz egy feladatra algoritmust alkotni es lekodolni, hanem hogyan ismered a koordinata-geometriat. Term. a Pithagorasz-tetel is programozas lenne, ha ugy nezem (szamolja ki adott derekszogu haromszog ket oldalabol a harmadikat), de ebben nem az a lenyeg. Az programozas, hoyg "irja fel a Toldi hatodik versenek elso ket sorat, a szavakat egymas ala" ? Ha ugy nezem, igen, elvegre "maga tanulta a Toldit" es meg tudom oldani a szoveg szavakra bontasat. Ha ugy nezem, nem, mert itt pl. a programozas az lenne, hoyg "kerjen be egy tetszoleges szoveget es bontsa szavakra"

--
http://www.micros~1

en tanultam gimiben.

a programozas meg errol szol: mar meglevo ismeretekbol kihozni az adott feladat megoldasat, vagy olyan eszkozt, ami kozelebb visz hozza.
ha valaki diplomat akar, az, hogy gondolkodni tudjon, szerintem teljesen jogos elvaras. nem kell linearis algebra ahoz, hogy el tudj kepzelni tablazatokat, es azon algoritmusokat implementalj. nem azt kertek, hogy sajatertekekre epitkezve bizonyits be valamit, vagy hogy ird le a Moore-Penrose pszeudoinverz tulajdonsagait, meg mikor letezik. az linearis algebra, ez meg programozas.

amire te gondolsz, mint programozas, azt favagasnak hivjak maximum, es az eg ovjon mindenkit tole.

En meg nem tanultam. Sot, eskudni mernek, az orszag kozepiskolajanak 90%-ban nem tanitjak.

Ize. Amig nem ismered a matrix fogalmat, hogyan kepzelsz el ra epulo algoritmusokat? Ha nem ismered a nyul fogalmat, honnan ismered a husveti tojas kesziteset?

Amire en gondolok, azt duhnek hivjak.

--
http://www.micros~1

"Amig nem ismered a matrix fogalmat, hogyan kepzelsz el ra epulo algoritmusokat?"
Ezek szerint nem ismertel haromszogeket meg pontokat sem, hiszen ezzel volt a legnagyobb problemad.
A matrixokrol szolo alapismeretek (definicio, muveletek, determinanas, inverz es ilyenek) pedig leadhatok 60 percben, illetve egy A4-es oldalon elfer. Ha nem ismeritek a fogalmat, szolni kell, hogy mondjak el. Nem csak a tanar hibaja, ha a diak olyat tanul, aminek nem ismeri az elofelteteleit, mert nem volt meg ra lehetosege. Szolni kell, az oktatas half-duplex kommnunikacio. Nalunk a villamosmernokok nem tanultak a Laplace-transzformalast analizisbol, pedig szamukra alapveto dolog. A problema megoldasa nem az lett, hogy jo, akkor Laplace-os tobbtarolos feladatokat nem vesznek villamossagtanbol, hanem az, hogy heti ket oraval tobb matekjuk lett es igy mar siman belefer.

Mar irtam, nalunk direkt feleztek az orakat. Assembly tanar volt olyan rendes, aki azt mondta, hogy tart konzultacios lehetoseget (es sugva hozzatette, hogy rendes ora lesz, de ennyiben keptelen leadni, de ezt ne terjesszuk). Ja, meg a java-tanar ugyanigy, mert a szunet miatt nem ot, hanem negy alkalom lett volna.

update: bocs, elso felere nem valaszoltam. Term. ismertem a pontot es a haromszoget. Azt nem ismertem, hogyan szamoljam ki ebbol, hogy benne van-e vagy nem. Soha hasonlot nem tanultam. Nyilvan, ha ez egy otthoni, munkahelyi feladat, akkor utanezek a neten, konyvben, akarhol. Itt a vizsgan nemcsak algoritmust kell ra alkotnom es lekodolnom, hanem ra kell jojjek 60 perc alatt, hogy hogyan keszitsek ra egyaltalan algoritmust.

--
http://www.micros~1

"Soha hasonlot nem tanultam. Nyilvan, ha ez egy otthoni, munkahelyi feladat, akkor utanezek a neten, konyvben, akarhol. Itt a vizsgan nemcsak algoritmust kell ra alkotnom es lekodolnom, hanem ra kell jojjek 60 perc alatt, hogy hogyan keszitsek ra egyaltalan algoritmust."
A mernokok sem csak olyan problemakat tudnak megoldani, amit tanultak, pont ez a mernokseg lenyege. Ha nem igy lenne, sehogyan sem szuletnenek uj dolgok. Azert adtak egy ilyen peldat, hogy aki nem ismerne esetleg modszert ra, rajohessen kb 5-10 perc alatt, kb. ekkora ennek a problemanak az algoritmikus nehezsege. Nem kertek arra, hogy oldd meg a "ket poligon tavolsaga a sikon" problemat, az tenyleg nemtrivialis. Azonban ez egy trivialis problema.

a matrix egy tablazat, amiben valamilyen ertekek vannak. ezek tetszoleges algebrai kifejezesek lehetnek. van sora, oszlopa. egy adott elemre ugy tudunk hivatkozni, hogy megadjuk a sor, es az oszlopindexet, pl a_{1,2} az elso sor 2. oszlopanak eleme.

tessek, ezt elolvasni es felfogni maximum masfel-2 perc. es maris meg tudom neked tanitani, hogy hogy kell pl matrixot szorozni...

olyan nehez?

Tehat szerinted John Carmack vagy mindenki mas, aki geometriai algoritmusok leprogramozasaval foglalkozik, matematikus, pontosabban csak matematikusoknak szabad ezzel foglalkozni, ez nem programozas? A jatekfejleszteshez, barmifele 2d vagy 3d grafikahoz nagyon komoly matematikai tudas kell, megis programozas: nem mindegy, milyen modszerrel oldod meg a problemat, nem mindegy, hol dontod el, hogy eleg a pontossag, sok trade-off van, memoriakezeles ilyen alkalmazasoknal.
Amit toletek kertek, az alapveto dolog, egy diplomas mernoknek ilyet tudnia KELL, onmagatol is, mivel alapveto mernoki dolog, hogy ismered a koordinatageometriat. Azert a Heron-kepletet mondtam, mert az szerepel a negyjegyu fuggvenytablazatban, mi tanultuk is kozepiskolaban, de ezen kivul felsobb matematikai modeszer is van, vektorialis szorzat. Meg hat persze lehet integralgatni is, es sok minden mashogyan is meg lehet oldani a teruletszamitas problemajat.

Hatigen. Nekem sem a hardveres/halozati/infobiztonsag targyakkal volt a problemam...
Bar, en eredetileg az egyetlen kitoresi pontnak hittem a felsooktatast, aztan rajottem, hogy rosszabb a helyzet: az egyetlen kitoresi pont a fovaros. Vagy 3-4 masik nagyvaros az orszagban....

--
http://www.micros~1

Nagyon koszi. Kozben megkaptam a tanar megoldasat is. Term. nem PictureBox, normal DrawRectangle eljarassal rajzol.

Ez a nagy bajom, nem tudom eldonteni, hogy a kod melyik resze fontos es melyik elhanyagolhato, de ugy tunik, a lenyeg, hoyg legyen sakktabla, nem kell a kiirasban szereplo PictureBox szocskaval torodni :) Fel is raktam (Ket beugro volt, a masik a megoldas elemzese alapjan szakaszokat kirajzoltatni, ha metszik egymast, ne engedje kirajzolni, ha letezo szakasz kezdo- vagy vegpontjahoz eleg kozel kattintasz, torolje)

Tudom, az en hibam, de rohadtul nem emlekeztem az egyenes egyenletere, most utana kellett neznem.
http://celtic.aion.hu/bmfnik/softszigcucc/WindowsFormsApplication1.zip

--
http://www.micros~1

Nem mondtam eg yszoval sem, hogy ma kezdtem a sulit. Es emlitettem, hogy 3x mentem neki a VEP-nek, mire sikerult, az harom felev (nem teljesen egymas utan, ugye csak evente indulnak a targyak, nekem annyi szerencsem volt, hogy eppen valtozott a tananyag es igy ket felevben egymas utan mehettem a VEP-re. Aztan ujra mar csak egy ev mulva.)

Mindenesetre annak a nonek a tanitasa nagyon csunya hatassal volt kesobb - nemcsak nalam, van meg par (volt) osztalytarsam.

EGyebkent ebbol latszik, hogy mit er, ha valaki "programozas tanitasbol" doktoral. Meg a konyve szinvonalan, ma is kiver a viz, ha a kezembe kerul a konyv.

--
http://www.micros~1

A gond ott van, hogy annak a nonek kellett volna engem megtanitania az OOP alapjaira. Jo, tudom, tanuljam meg otthon, de ez igy negyven fele nem annyira egyszeru. Az ember megismerkdett anno a BASIC-kel, aztan megtanulta, hoyg a strukturalt programozas (Pascal pl) mennyivel jobb. Utana, masik fosulin, harom felevben csak C-t tanult. Ra egy evre idepottyan, es egyik pillanatrol at kellene allnia egy inkompetens tanar utmutatasaval a gondolkodasanak strukt. progrol OOP-re. Kozben elmelet oran (ahogy mar irtam) matrixok lancszorzasa es hasonlo izgalmas algoritmus van, holott azt se tudja, mi az a matrix, tehat az algoritmust nem tudja mihez kotni. Nem erti, miafasrol van szo. Namindegy, valami itt sztem nem stimmel.

--
http://www.micros~1

A szigorlat beugrónak nem is ez a lényege szerintem. Csak egy szűrés, hogy legyen fogalmad egy-két dologról. Az eseménykezelés ilyen mélységben valóban nem nehéz. Viszont ami mögötte van az már kicsit szebb. A delegatek megfelelő használatát sem tudja mindenki egyből elsajátítani, az aszinkron metódushívásoknál meg nélkülözhetetlen...

Azért az aszinkron metódushívás és a delegáltak nem része az eseménykezelésnek, csupán az eseménykezelés a delegáltak segítségével van megvalósítva .NET-ben.

Egyébként ne mond már nekem, hogy ez bonyolult:


Panel[,] panels = new Panel[8,8];

private void CreateTable()
{
  bool black = true;

  for (int i = 0; i < 8; i++)
  {
    for (int j = 0; i < 8; j++)
    {
      var p = new Panel();
      p.Position = new Point(i * 80, j * 80);
      p.Background = (black) ? Color.Black : Color.White; // Lehet, hogy más a neve, de a VS megmondja
      p.OnClick += new MouseEventArgs(DoSomething); // Felet kiegesziti a VS...

      black = !black;

      panels[i,j] = p;

      this.Controls.Add(p);
    }
  }
}

private void DoSomething(object sender, MouseEventArgs e)
{
  // ..
}

Ez kb. 2p volt leírni. Ez kb. a beugró fele, maradék időben meg van idő kitalálni a 8 királynős dolgot.

----------------
Lvl86 Troll

"A szigorlat beugrónak nem is ez a lényege szerintem. Csak egy szűrés, hogy legyen fogalmad egy-két dologról. Az eseménykezelés ilyen mélységben valóban nem nehéz."

Mint írtam is a beugró nem erről szól. És teljes mértékben igazad van.
Csak arra akartam kilyukadni, hogy az eseménykezelés sem olyan egyszerű, ha elmélyedünk benne. Ezt haladó progon be is mutatták, viszont a hp nem előfeltétele a szoft szignak azthiszem.

A .NET nem kepes arra, hogy egy 8x8-as ciklusban letrehozzon uj contol-okat? Ezt en ezzel csinalnam (ha ertenek .NET-hez). Amikor letrehozom, akkor lehet, hogy trukkozni kell, mondjuk egy mapben letarolnam, hogy melyik control melyik mezot jelenti, es az egyetlen, kozos esemenykezelo ebbol deritene ki, hogy epp melyikre kattantak.
Onnantol kezdve meg az utesek egyszeruek, a kiralyno kirajzolasa (akar webrol/sakkprogrambol prtscr-el lewarezolt keppel) trivialis.

--
I never let my children watch big band performances on TV. Too much sax and violins. - sickipedia

Valóban nem nehéz, de stresszhelyzetben 60 perc alatt megcsinálni mindent tökéletesen nem egyszerű. Haladó programozáson egy viszonylag egyszerű saját komponenst kellett létrehozni, aztán reflexióval megvizsgálni egy adott könyvtárban található szerelvényeket. Az 50. percben rájöttem, hogy elcsesztem az elején már és kezdhetem előről... Itthon 15 perc alatt megírtam hibátlanul. Ilyenkor a legegyszerűbb dolgok is gondot okozhatnak, persze ez személyfüggő. Valaki halálnyugodtan csinálja végig a vizsgákat.

Szerencsére megkaptam a felmentést a beugró alól, viszont SZTT-t megszívtam, marad a köv vizsgaidőszakra a szigorlat...

nem az hogy nem elfogadott, hanem egyszerűen idegen:). Ez lehet főleg azért van, mert kevés a színvonalas és jó, magyar nyelvre építkező könyv, de leginkább azért, mert az informatika default nyelve az angol. Ha ne adj isten leülsz majd valahol programozni és elakadtál, vagy dokumentációt keresel, a google-be begépelve a szerelvény szót, csak csatlakozókat fogsz találni:)
Sokan próbálják honosítani a különböző angol nyelvű, informatikai kifejezéseket, amivel nincs is baj, mert valahol megengedhető (pl a cloud -> felhő fordítás szerintem elfogadható kategória).

tőlem lehet neki szerelvény, ha tudja az angol megfelelőjét. De egy interjú során, két egyenrangú partner (tudásban, szemléletben és személyes "tetszik" faktorom alapján), az lenne a nyerő, aki nem fogja nekem az egyébként rendkívüli módon elcseszett magyar fordításokat visszaböfögni. Ha a tanárnak ez kell, szíve rajta, de nemhinném hogy az onnan való kikerülés után a tanár bármikor fizetést oszt majd a szegény volt diáknak

Ez egy faszság. Ha gyépés tanáraid vannak, akkor részvétem, de egy normális tanár, ha olyat mondasz, amit nem adott le, de igaz, akkor látni fogja, hogy érdekel a téma, és örül, hogy nem csak semmirekellők járnak az osztályába. Ez a szituáció attól még nagyon messze van, hogy "többet tudj" a tanárnál.

Mintha mar mondtam volna mashol is: nem egyformak a tanarok (ahogy a tanulok sem). Valamelyik azt szereti, ha mondatrol mondatra visszaadod, amit akar (akkor is, ha hulyeseg), van amelyik meg kivancsi arra, hogy mit tudsz. Mint akozepiskolaban: nem mindegy, hoyg felolvasod a tanar diktalasat arrol, hoyg "a kolto ezt akarta mondani" vagy ertelmezed, ahogy gondolod, nyilvan a tanari gondolatok alapjan. Vagy nem mindegy (szinten kozepiskola), hoyg evszamokat magoltatnak be veled vagy arra kivancsiak, hoyg ket esemeny hogyan fugg ossze. A keves oraszam es a viszonylag nagy tanuloletszam miatt a felsooktatasban ez ugy csapodik le, hogy 1. vizsgan megprobalod kitalalni, mit var a tanar es lehetoleg a masodik vizsgan atmesz.

Nagyon sok tanarom volt, aki pl. tanitani nem, de visszakerdezni szeretett. Nem erdekelte, mit tudsz, csak az, hogy par adatot fejbol el tudj mondani. Persze volt masfajta is, azokkal nincs is bajom.

--
http://www.micros~1

Tudom. Masnal a stressz adrenalin-novelo, teljesitmenyfokozo, nalam ellenkezoleg: total dekoncentraltta tesz.

HP: az egy vicc tantargy. Foleg az ossz 7 oraban (amibol ketto ugye zh). Mondjuk ennyibol a java is az, ot oraban....

Jaigen, ot alkalom, nem ot ora. Egy alkalom 80 perc. Raadasul nekem csak egy tanar van HP-ra, akarmikor veszem fel...(VEP-nek haromszor futottam neki, mindharomszor masik tanar volt). Hmm, ha meglenne a HP 2 zh feladata, szivesen beideznem.... Elvileg a szalkezeles lenne a lenyeg, de azt nyolcvan percben megoldani....(ui. a szalkezeles a zh utolso 10%-a. A tobbi az normal programozas...De a tobbi nelkul maganak a tantargynak a lenyegi reszet se tudod megcsinalni....)

--
http://www.micros~1

Uhh, megértelek. Ilyen csekély óraszámban értelmetlen. Nálunk 12 alkalom volt (1 alkalom ~ 90 perc), de a követleményben szereplő témaköröknek csak a felét vettük. A szálak és szikronizációjuk nem éppen 90 perces tananyag, így is csak felületessen rágtuk át. (mi 3 alkalmon keresztül gyűrtük, de megérte)

a concurrencyre egy felev sem eleg, ilyen alapon akkor ne tanitsunk semmit...
[a Concurrency in Practice alapmu (ha Javaban nezzuk, de amugyis nagyon jo konyv, nyelvfuggetlenul nezve az elejet), de az biztos, hogy nem konnyu esti olvasmany.]

a hallgato feladata otthon kepezni magat, az iskola ehhez csak tampont tud lenni.

"a hallgato feladata otthon kepezni magat, az iskola ehhez csak tampont tud lenni."
Hatalmas plusz1, ez nem olyan, hogy van Nemzeti Alaptanterv, es azt kell tudni es kesz. Az egyetemeken szakembereket kepeznek, akik a jelenben is barmikor helyt tudnak allni. AZ iskola szemleletet ad, a tobbi az a hallgato dolga. Senkinek nem fognak Silverligth 8.5 oktatast tartani, legalabbis felesleges. Aki tud programozni egy adott paradigma szerint, az vesz ket konyvet, az egyik a nyelvrol, a masik az API-rol szol, es kesz, tud Silverlightban programozni.

Igen, csak az a tampont minden izeben recseg-ropog. Egy haznak is kell alapozas, mire az asszonyka belsoepiteszkent berendezi. En ertem, hogy a felsooktatas feladata megtanitani olyan dolgokat, amit alsobb szinten kellett volna, de sajnos nicns sehol se lefektetve, hogy mit is kellene tudnom, mire felsobb szintre kerulok.

Egyebkent a matek (es par targy) is nehez volt, ott megsem haborogtam, mert olyan tanarok voltak. Nem ragtak a szadba, nem akartak megtanitani, hanem elmondtak, hoyg ennyit kell tudni, anyag vazlatat leadtak es kesz. Ha vazlatot sem kapsz, akkor kurva nehez kitalalni (pl. szigorlaton), hogy "nagyon szepen leirta, de en innen hianyolok egy mondatot, ami SZERINTEM kulcsmondat". Jaaaa...Igen, a hallgatonak ki kellett volna talalnia, hiszen mernok lesz, hoyg az a tanar szerint kulcsmondat. Nyilvan, ha mas javitja, mast talal kulcsofontossagunak. Szoval erre mondom, hoyg az alapok sincsenek vilagosan lefektetve es ezt ki lehet talalni, de kb. a sokadik vizsgan. (Volt par targy, amire ugy mentem el elso vizsgara, hogy egyaltalan tudjam, miafaszt fog kerdezni?)
--
http://www.micros~1

a matek az matek, egy egzakt dolog. egy komplexebb API -t felhasznalva programozni meg egy masik. az egyiket ha elkezded egy uton, egyfelekepp lehet folytatni (temakort kivalaszt, aztan azon beluli fogalmakat hasznal), mig egy programozasi nyelven ugy fejezed ki magad, ahogy akarod; ezert van az, hogy masnak mas a fontos.

pl en JMSnel az aszinkroniztast, es az event-driven archot emelem ki, mas meg a platformfuggetlenseget. kinek van igaza?

A kerdest sem ertem, hulyeseget meg nem akarok valaszolni.
Azt mindenesetre fenntartom, hogy amig xy-nak az a fontos, hogy minden idiota adatot beteve tudj (tehat lexikalis tudas, vizsgan konnyu visszakerdezni), addig a masiknak meg az, hogy megertsd az anyagot. Namost, amig nem tudod, milyen tanarba futottal bele, addig csak remenykedhetsz, hogy jo uton indultal...

--
http://www.micros~1

Matekkal nálunk az a gond, hogy ahhoz, hogy te azt gyakorlatban használni tudd értelmes dolgokra, ahhoz kevés. Naaagyon kevés. (Bár az ELTE-s kollégák is azt mondják, hogy náluk is azelőtt fejezik be a matek tanítást, mielőtt megtudnák, hogy miért szívtak évekig :) Főleg egy ELTE-hez képest.

Vicces, hogy mindenki a szoftver szigorlatot szidja és senkit nem zavar az a 10-15 kreditnyi villanytan és elektro, amit a Kandóból örököltünk. Vagy még találnék 10-20 kreditnyi tárgyat, aminek sok értelme/haszna nincs, vagy csak szimplán a hallgatók 99%-a ahelyett, hogy megtanulná, végigpuskázza, mert leszarja, lehetne tanítani olyan dolgokat, amik talán nagyobb valószínűséggel fog neki kelleni.

Értem én, hogy nem szakbarbárokat szeretnének képezni, de ha úgy se tanulja meg a többség, akkor minek?

----------------
Lvl86 Troll

"Értem én, hogy nem szakbarbárokat szeretnének képezni, de ha úgy se tanulja meg a többség, akkor minek?"
Értem én, hogy sokan diplomát akarnak a semmire, de akkor ugye azzal is tisztában lesznek, hogy az a diploma nem ér semmit. Persze lehet mutogatni, meg büszkének lenni rá, de magasabb fizetést nem a több papírra adnak.

Probléma ezzel csak annyi, hogy a munkához szükséges dolgokat nem tanítják meg rendesen ("időhiány"), ellenben tanulunk legalább 60 kreditnyi egyéb dolgot, ami 99%-s valószínűséggel az életben nem fog kelleni.

Nem a semmire akarok diplomát, hanem __használható__ tudást. Legalábbis ezért jelentkeztem az nagy felsőoktatásba jó pár évvel ezelőtt...

----------------
Lvl86 Troll

Nem is akarjak megtanitani, az egyetem nagy resze szemleletkialakitas. A tobbi meg a sajat szabadidod. Az mar kerdes, hogy versenykepessegi szempontbol nem utolso dolog, ha egy egyetem tanit technologiat, sot fontos is ez, de nem ez az elsodleges feladata, hanem a szemlelet atadasa. Ezt tobb-kevesebb sikerrel teszi meg, mert a legtobb hallgato ugy megy oda, hogy "Flasht fogunk tanulni? Fotosopp lesz? Huh, en a PHP-hoz nem ertek, de Javazni tudok, az is jo, nem?" es ekozben olyan alapfogalommal nincs tisztaban, mint allapotgep.

Erdekes, nekem az Elektro-vonallal (digtech, elektro, digrendszerek) sose volt gondom. Leszamitva persze Geczy-papat, aki olyan tanar, amilyen :) Legfeljebb az, hoyg keves oraszamban tanultuk :) Lehet, hogy inkabb villanymernokire kellett volna mennem? Merthogy egy mernok-informatikus ebben az iskolaban inkabb programozo (most hagyjuk a minoseget, olyan, amilyen), en pl. sokkal szivesebben szigorlatoztam volna elektro targyakbol. Vagy lehetne tobb Archi-targy is :) Abbol is szivesebben szigorlatoztam volna :) Mindig nezek, amikor masok sirnak, hoyg milyen keves ido van Archi-vizsgan: nekem a fele is eleg volt. Nem lett otos, de a kettesnel jobb.

Ugyanez van prog-targyaknal: en vert izzadok, mas meg a felenel beadja....Nekem sok a prog.targy, a szigorlat meg a csucsa. Holott nem programozo suli, hanem elvileg _informatikus_.

--
http://www.micros~1

Mashol mintha masvalaki azt mondana, hogy az egyetemnek/foiskolanak nem konkret megvalositast kellene mutatnia, hanem szemleletet. Sok topicban van rola szo, hogy mi ttud egy diplomas programozo.

Nekem az a megkozelites szimpatikus, hogy foiskola (BSC)= gyakorlat-orientalt, egyetem (MSC) = inkabb elmeleti.

Ez az iskola NEM programozo-kepzo. Ezt mar mashol is mondtam. Se nem rendszergazda-kepzo, se halozatimernok-kepzo. Viszont mindegyikbol valamennyit tudni kell. Nekem az az erzesem, programozasbol tul sokat a tobbi karara.

--
http://www.micros~1

Netan nem villannyal megy a szamitogep? Vajon a tapegysegek (es amugy diodak, tranzisztorok, stb) ismerete abszolut lenyegtelen egy informatikusnak? Nem kell ismernie se a nyomtato, se a monitor mukodeset?

Nem azt mondtam, hogy szivesen szigorlatoztam volna elektronikabol. Azt mondtam, hogy "sokkal szivesebben" mint szoftver-bizbaszbol.

Ne felejtsd el, hogy NEM programozo-kepzes zajlik. Altalanos informatikus. Ahhoz pedig ugyanugy hozzatartozik az archi is, barmennyire lehet utalni.

--
http://www.micros~1

Igen, ertsetek meg egymast. De egy villmernoknek nem kell tudnia, mi az az observer pattern vagy mi a test-driven development elonye, hatranya vagy eppen mi az a dependency injection. Nekem sem kell tudnom, mi a kulonbseg a PIC16F877, a PIC18F4554 es tarsai kozott. Az az o feladata. De attol meg persze, van atfedes, de minimalis (pontosabban ezen a szinten minimalis, mas szerint maga az atfedes ismerete mar er egy diplomat)

Talan mert nem szakbarbar. Talan mert mernok. Roppantul nem art, ha tudja is, hogy ami a kezeben van, kb. hogy mukodik, nemcsak egy "fekete doboz". Nyilvan nem kell a melysegig ismernie, de ne csak nezzen ra.

Talan sikerult valamiben nem egyet ertenunk? Marmint azon a teren, hogy mihez is kell ertenie egy "mernoknek" ?

Update: jut eszembe, tanultunk iranyitastechnikat is. Ami lehet, hogy hatalmas hulyeseg, de sztem egy info mernoknek nagyon is kell. (Jo, hat nem ugy, ahoyg Gec'zy-papa leadta, az egy rossz vicc, gyakorlaton egy fiatal srac tartotta, ott ertettem meg, mi is ez az egesz)
Igaz Pecsen anno atestek ezzel rendesen a paci masik oldalara, mert nem eleg, hoyg ket felev volt belole, hanem meg allamvizsgara is kellett...

--
http://www.micros~1

Javítsatok ki, ha tévedek, de nem árthat az ekkora átfedés. Villanyos haverom mikroelektronikából írta a szakdogáját, s tőlük például bőven elvárták, hogy faragja meg c-ben, asm-ben adott mikrovezérlős áramkörök szoftverét. Abszolút programozói feladat, mégis tanulták. Utólag azt mondja, nem ártott, mert így villamosmérnökként hozzá tud szagolni a programozó munkájához, közösen tudják kialakítani a koncepciót, ami mentén dolgoznak. S a programozóinak sem árt, hogy a tervezőjük nem habokra rajzolgat, hanem van némi gőze a témáról, s nem tol ki a bitfaragókkal.

Nem vagyok villamosmérnök, s nincs mellettem a haver, hogy megkérdezzem :D
Viszont azok az eszközök, amiket terveznek, fejlesztenek, biztosan átlátható a számára, mert eleve ebből diplomázott, s neki kellett a szoftvert is írni hozzá. Tehát gyanítom, hogy a szakterületén igaz a fenti állítás.
Az általad felhozott példa már valószínűleg másik szakterület, abban igazad lehet.

Haladóprog tananyag ennél picit bővebb volt nálunk még régebben, mint a szálkezelés. Pontosan már nem emlékszek mi volt még, szálkezelésből Thread, BackgroundWorker, lock/Monitor, System.Reflection, külső program futatása és kimenetének beolvasása meg még egy-két dolog asszem. Igaz, nekünk hetente volt, nem kéthetente.

Mondjuk a NIK-n nem túl sok a prog, pl. programtervezési mintákat nagyon-nagyon hiányolok, pedig még a sokak által lesajnált GDF-n is tanítják...

----------------
Lvl86 Troll

Na, ezzel sem kell tobbet foglalkoznom. Ugy dontottem, az utolso proba a szigorlatra (nincs kedvem jovo felevre 50+ ezreket fizetni, hoyg az egy darab szigorlat targyat felvegyem). Penteken lesz az utolso alkalom ebben a felevben, ugye szokas szerint az mehet, aki ebben a felevben mar probalta. Azzal az apro modositassal, hoyg limitalt a letszam, szoval esti 8, nappali 24 fo mehet. 15 orakor megnyitva a jelentkezes, 15:20-kor mar betelt a letszam.

Ennyi, tolem lerombolhatjak az iskolat, beszanthatjak a helyet, bevethetik soval, kivancsi lennek, a szoftveres tanarok egy resze hol talalna akkor munkat (nyilvan van olyan, foleg a fiatalabbak kozott, akik biztos konnyen talalnanank. Az idosebbeket mar nem hiszem)

--
http://www.micros~1

Hát én 15:00-tól 15:04-ig egyfolytában kattintgattam a felvételre. Láttam amikor 0/24 volt a létszám, utána felvettem, akkor már 7/24 volt kettőt frissítettem az oldalon és már 24/24 volt. Ez kb 20 mp volt. Ennyi. 20mp 50+ ezer forint. Ilyen gyorsan se telik meg a suli tárcája...

Ez a mindenkit levágunk utáni rész.

Most olvasom a levlistát egyébként. (Abban viszont tényleg igazuk van azoknak, akik azt mondják, hogy ott volt a követelményrendszer, el lehetett volna olvasni. - Egyébként NIK-s követelményrendszerek még úgy-ahogy rendben is vannak. Próbáltál már szabadon választhatóhoz keresni? Esélytelen)

----------------
Lvl86 Troll

En irtam is a levlistara, megpedig idezetet a Galaxis Utikalauzbol, azt a reszt, amikor Arthur hazat bontjak:

"-Magának is joga volt hozzá, hogy javaslatokat tegyen, vagy tiltakozást jelentsen be a kellő időben jegyezte meg.
-A kellő időben, mi?! - süvöltötte Arthur. - A kellő időben? Akkor hallottam elöször az egészről, amikor beállított ide egy
munkás tegnap. Megkérdeztem, azért jött-e, hogy megpucolja az ablakot, mire ő azt felelte, hogy nem, hanem azért, hogy szétrombolja a házat.Persze nem ezzel kezdte. Dehogy. Előbb letörölt pár ablakot, s megvágott öt fontra. Csak aztán mondta meg.
-De Mr. Dent, a tervek az elmúlt kilenc hónapban rendelkezésére álltak a helyi tervezőirodában!
-O, hogyne! Én is egyenesen odamentem, hogy megnézzem őket, mihelyst hallottam a dologról, tehát tegnap délután. Maguk aztán nem erőlködtek valami nagyon, hogy felhívják rájuk a figyelmet, ugye? Ugy értem, hogy például szóltak volna valakinek, vagy ilyesmi.

-De hiszen a tervek ki voltak állítva.

-Ki voltak állítva? Éppenséggel a pincébe kellett lemennem, hogy megtaláljam őket.
-Ott van a kiállítási részleg.
-Zseblámpával.
-Talán leszakadt a villanyvezeték.
-Meg a lépcső.
-Nézze, végül is megtalálta a feljegyzést, nem?
-O, hogyne - felelte Arthur -, megtaláltam. Egy használaton kívüli vécében elsuvasztott, bezárt iratszekrény fenekén volt kiállítva, az ajtón a következő felirattal: Vigyázz! A leopárd harap! "

Ki a fenenek jutna eszebe, hogy valtoztatnak azon a kurva szoftszigon, raadasul ilyen aljas modon? Tenyleg ki vn rakva, tenyleg atnezhettem volna, de eszembe se jutott, hogy valtoztatnak rajta erdemi modon... Raadasul a Neptun-mukodese miatt ez a jelentkezes igazi rulett-algoritmussal ment: ha szerencsed van, jelentkeztel, ha nem, hat nem.

--
http://www.micros~1