Re: basic [OFF]
2007, Oct 18 - Pirity Tamas Gabor wrote : Ha jól hiszem, Lajber Zoltan írta az alábbiakat: Biztos, hogy nem C-vel kell kezdeni. Eros a gyanum, hogy a Pascal nem rossz kezdes. jobb, mint a php, vagy a visbas. Hogyúgyvan. Hello, igy a vege fele csak annyit, h szerintem is jo a python kezdesnek. par erv, ami eszembe jutott: elterjedt hordozhato szinte barmire jo jo doksik, akar magyarul is tiszta, logikus szintaktika kivetelkezeles nem kikenyszeritett OO gondolkodas, az elejen siman elboldogulhat a kiskolok class-ok nelkul is laza tipusok, csak annyira kell figyelni rajuk, h ne felejtse el h leteznek interaktiv interpreter, tanulni total jo rovid tanulasi es fejlesztesi ido gyors sikerelmeny 1000 modul szoveges/grafikus felulet(ek) stb... Atti _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
Szerintem ennek megfelelően a kezdő programozóknak csakis a strukturált módszerrel szabad kezdeniük, mert ha azzal nem boldogulnak nem fogják tudni az OOP-t alkalmazni. Ez kb. olyan hogy előbb írni meg kell tanulni. en is igy gondolom. A saját véleményem: A nyelvet illetően a saját tapasztalatom alapján, a C tökéletesen alkalmas mindkettőre, én már bánom, hogy sok, nagyon sok időt vesztegettem az egyéb (basic/pascal) nyelvekre, hozzáteszem meg lehetett tanulni velük sok mindent/bármit, de az egyenes út a C-n keresztül vezet, nyilván tanultam belőlük, de azt a C-ből is meglehet tanulni a nyelv teljes kihasználása nélkül, csak egyszerűen. Szerintem a C gondolkodásmódja elengedhetetlen a jó programok írásához (legalább is technikailag jó). ezt is. de c-vel kezdeni sztem sokkal nehezebb, mint basic-el es basic-bol nagyon konnyu atlepni a c-be. mivel c-bn is lehet basic programokat irni :D de elobb utobb el c-esedik a gondolkodasmod. udv Csaba _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Azért voltak ott más változások is, és sajnos a szabvány csak egy dolog. Például a // nem volt benne a szabványban (talán most sincs), és mégis szinte minden fordító ismeri. A hangsúly a szintén van. Persze ott a azert elege szabvanyos a c ma mar. egy bme-s c fuggelekben taltam egy jo kis menu programot ami nagyon jol bovitheto es fuggveny pointerekkel mukodott. unix-ra irodott es siman at tudtam ulteni pic16f877-ra ami egy kis mikrovezerlo 14k flash-el es par szaz byte ram-al. udv Csaba _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Feladó: Lajber Zoltan [EMAIL PROTECTED] Dátum: 2007. október 16. kedd du 7:22 ... A masik ilyen klasszikus hiba, amire pl a C forditok haklisak, ha inicializalatlan valtozokat hasznal. Ez ez is hordozhatosag, mert senkinem garantalja, hogy az uj valtozo csupa 0 bitekbol fog allni. Ez csak az automatikus változókra igaz. A szabvány szerint a statikus változók kezdőértéke 0 kell legyen. Más kérdés, hogy ezt nem jó kihasználni. Üdv: GyL _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Feladó: khraath [EMAIL PROTECTED] Dátum: 2007. október 16. kedd du 7:41 ... Amúgy is mindegy, mert a könyveket a fordítók készítői nem olvassák, csak mi, és sajnos a könyvek írói sokszor a fordítókat nem használják, amiket mi... Na ezért nem szabad (csak) kipróbálni valamit. Meg kell nézni a szabványban. ... De, ha jobban megnézed, akkor most is van, hogy nem csak platform, hanem fordítóhoz kapcsolódó függőségek/makrók vannak a programok kódjában. Vagy info gcc-ben szét nézzel. Sok helyen előfordúl (főleg Cpp-s részekben), hogy a Borland modelt követjük, vagy éppen ATT-t. Már pedig valami különbségnek kell lennie, ha különböző modelek létetznek a szabványra. Éppen ezeket kellene kerülni. Persze nem a Linux kernelben, mert azt kifejezetten gcc-re írják. Nyilván van rá ok - ezt nem tudom. Attól, hogy valahol találunk egy új lehetőséget, még nem kell okvetlenül használni. Csak komoly indokkal. Minden új lehetőség visszafelé inkompatibilitást okoz. Üdv: GyL _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Éppen ezeket kellene kerülni. Persze nem a Linux kernelben, mert azt kifejezetten gcc-re írják. Nyilván van rá ok - ezt nem tudom. Persze, hogy van rá ok. A szabvány nem dogma rendszer, hanem olyan szabályok összesége, ami (elméletben) biztosítja a hordozhatóságot, és a nyelv működését. Pont ezért nem tilthatnak, vagy szabályozhatnak mindent, mert az akár nyelv használhatóságát is veszélyeztetné egyes platformokon, vagy akár összeségében is. Például a szabványokban legtöbbször egyes algoritmusokra (mint rendezés, keresés), csak az van megszabva, hogy milyen gyors legyen, és nem maga a megvalósítás. Ezzel lehetőséget adnak a fordítók íróinak, hogy platformtól, esetleg helyzettől függően más és más megvalósítást használjanak, ami a program hordozhatóságát, sebeségét igen csak javítja, de akár ugyan ennyi gonddal is járhat. Na meg a szabványban is vannak kiskapuk, és még ahol nincsenek, ott is lehet máshogy értelmezni a leírtatkat. Nem nagyok a fordítók közötti különbségek, és ha ismerünk egy ilyen problémát, akkor nem tart a legtöbbször öt percnél tovább átírni a kódot. Elég ritka, hogy keresztplatformos fejlesztésen kívül máshol is megjelenének konkrét problémaként ezek kivételek, bár a legtöbb fordító (lásd gcc) pontos listát vezet róluk. Attól, hogy valahol találunk egy új lehetőséget, még nem kell okvetlenül használni. Csak komoly indokkal. Minden új lehetőség visszafelé inkompatibilitást okoz. Nem csak új nyelvi elemekre vannak ilyen kivételek. Például Cpp-ben a sablonok feldolgozására több model is létezik, és nem ma került a sablon a nyelvbe. Khraath _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
Ha jól hiszem, Gábriel Ákos írta az alábbiakat: Ezert a pascal kimondottan jo elso nyelvnek szerintem. Fegyelmet, rendet tart az emberke fejeben. Egy java vagy c++ class-ban mar elveszik a sok hatterinfo mellet a lenyeg. Ezt nem tudom. Talán igaz lehet, de nem szabad túl sokat Pascaloznia. Mondjuk egy évet. Átlag középiskolás nem programozik többet. Sőt. -- PTG It is bad luck to be superstitious. -- Andrew W. Mathis Debian 3.0 -- Linux 2.6.22.6 _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
Lajber Zoltan [EMAIL PROTECTED] wrote: Ez az objektum orientaltsag ep olyan buzzwordne tunik, mint (jo par) evvel ezelott a strukturalt programozas. Mondjuk, hogy vannak problemak, amikre kifejezetten adja magat az OO megoldas (pl. GUI, egyes jatektipusok (warcraft, tetris, stb), egyes storage problemak), de nem ez az altalanos eset. Szerintem lenyegesebb, hogy tud-e valaki problemat megoldani, vagy nem. Mondjuk hogy a gondolkodasmodot kell elsajatitani, nem a konkret nyelvet. A programnyelv csak eszkoz. van amit konyebb, van amit bonyolultabb lekezelni egy vagy masik nyelven. ja, de pascalban parhuzamosan programozni azert nem trivialis iirc (bar en csak szabvanyos pascalt meg turos (turbo) pascalt lattam). A hatekony nyelvek nem alkalmasak kezdok oktatasara, mert pontosan ah atekonysag miatt tul sokat tudnak. Nem muszaj mindent hasznalni, es nem muszaj gany kodot irni akkor sem, ha a nyelv megengedi. Ezzel egyutt szerintem is jo a pascal elso nyelvnek -- de ugyanilyen jo valamelyik scriptnyelv, ahol nem lehet elrontani a sztringkezelest meg hasonlo alapdolgokat, es lehet az algoritmusokkal foglalkozni. Ezert a pascal kimondottan jo elso nyelvnek szerintem. Fegyelmet, rendet tart az emberke fejeben. Egy java vagy c++ class-ban mar elveszik a sok hatterinfo mellet a lenyeg. En mindenkeppen strukturalt nyelvvel kezdenek, az oo (meg a funkcionalis stb :) raer kesobb. Tenyleg nagyon jol lejetett programozni tanitani a regi gepek (c64, spectrum) basic-jevel: bekapcsolta a kezdo a gepet, es irta a programot. Ne csinald, nosztalgiam lesz ;-) de teljesen igaz. Basicben es Pc-s (DOS-os) turbopascalban is azt szerettem anno, hogy keves erofeszitessel es egyszeru koddal lehetett latvanyos eredmenyt elerni, kepernyore irni, inputot beolvasni, sot rajzolni vagy zenelni (c+4 basicjeben is lehetett, c64-en valamelyik basic-kiterjesztes kellett hozza), es egy kezdonek (is) jo a sikerelmeny. viszont: ha nem gyerek a tanonc, hanem valaki felnott, akinek rovidesen konkret programokat kell irni _a sajat munkaja segitesere_ (pl. adatfeldolgozas, etc) akkor olyan nyelvet oktatnek neki, amiben a tipikus problemait meg fogja tudni oldani. Ha ez VBscript, akkor azt. Ha ez C, akkor azt. Van, akinek eleg mesterember szinten programozni; ha a gondolkodasmodot elsajatitja, akkor ugyis barmikor tovabb tud fejlodni. udv raas -- Those who say it cannot be done should not interrupt the person doing it. -- Chinese proverb _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Feladó: Laszlo Baranyai [EMAIL PROTECTED] Dátum: 2007. október 16. kedd de 7:30 A TP 6.0 (~1997) mar tudott OOP-t. Lehet, hogy nem tanitottak, vagy tanultak, de mar tudta. En is C/C++ -t hasznalok (most), de azert igaz, ami igaz. Hogy a GNU Pascal tudja-e, az passz. Csakhogy nem TP 6.0-t kellene tanítani, hanem Pascalt. Az pedig _nem_ OO. És a szabványos Pascal elég használhatatlan. Azt pedig meg kell tanitani, hogy nem kipróbálni kell, hanem megnézni a könyvben, nehogy dokumentálatlan funkciót használjon az ember, ami a másik fordítóban már másképp van vagy épp nincs. (Persze a végén azért próbálni is kell.) A Pascallal és annak tanításával ez a legnagyobb baj: mindenki a TP-vel azonosítja, így a program nem hordozható. Üdv: GyL _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
On Tue, 16 Oct 2007 13:32:30 +0200 Gyimesi László [EMAIL PROTECTED] wrote: A Pascallal és annak tanításával ez a legnagyobb baj: mindenki a TP-vel azonosítja, így a program nem hordozható. Amíg nem akarjuk hordozni, addig ez nem is érdekes. Nem enterprise szoftverről van szó :) -- Üdvözlettel, Gábriel Ákos -=E-Mail :[EMAIL PROTECTED]|Web: http://www.i-logic.hu =- -=Tel/fax:+3612391618|Mobil:+36209278894 =- _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Feladó: Gábriel Ákos [EMAIL PROTECTED] Dátum: 2007. október 16. kedd du 1:37 Amíg nem akarjuk hordozni, addig ez nem is érdekes. Nem enterprise szoftverről van szó :) Pedig nem ebből kellene kiindulni. Az általános szabály a hordozhatóság, és néha, ha muszáj, lehet kivételt tenni. Különben igénytelenségre nevelünk. Üdv: GyL _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Ha jól hiszem, Gyimesi László írta az alábbiakat: Csakhogy nem TP 6.0-t kellene tanítani, hanem Pascalt. Az pedig _nem_ OO. És a szabványos Pascal elég használhatatlan. Azt pedig meg kell tanitani, hogy nem kipróbálni kell, hanem megnézni a könyvben, nehogy dokumentálatlan funkciót használjon az ember, ami a másik fordítóban már másképp van vagy épp nincs. (Persze a végén azért próbálni is kell.) A Pascallal és annak tanításával ez a legnagyobb baj: mindenki a TP-vel azonosítja, így a program nem hordozható. Nem hiszem, hogy egy középiskolás tananyagban a kód hordozhatósága csak kicsit is számítana. Legalábbis sose találkoztam még olyannal, akinél ez egyátalán szempont lett volna, és szerintem ez jó is így. -- PTG Dime is money. Debian 3.0 -- Linux 2.6.22.6 _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Ha jól hiszem, Gyimesi László írta az alábbiakat: Feladó: Gábriel Ákos [EMAIL PROTECTED] Dátum: 2007. október 16. kedd du 1:37 Amíg nem akarjuk hordozni, addig ez nem is érdekes. Nem enterprise szoftverről van szó :) Pedig nem ebből kellene kiindulni. Az általános szabály a hordozhatóság, és néha, ha muszáj, lehet kivételt tenni. Különben igénytelenségre nevelünk. Túróst. -- PTG Neil Armstrong tripped. Debian 3.0 -- Linux 2.6.22.6 _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Ha jól hiszem, Pirity Tamas Gabor írta az alábbiakat: Ha jól hiszem, Gyimesi László írta az alábbiakat: Feladó: Gábriel Ákos [EMAIL PROTECTED] Dátum: 2007. október 16. kedd du 1:37 Amíg nem akarjuk hordozni, addig ez nem is érdekes. Nem enterprise szoftverről van szó :) Pedig nem ebből kellene kiindulni. Az általános szabály a hordozhatóság, és néha, ha muszáj, lehet kivételt tenni. Különben igénytelenségre nevelünk. Túróst. Bocsánat mindenkitől, hirtelen azt hittem, hogy a linux-flame-en vagyunk. -- PTG Sank heaven for leetle curls. Debian 3.0 -- Linux 2.6.22.6 _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
On Tue, 16 Oct 2007, Pirity Tamas Gabor wrote: Túróst. Bocsánat mindenkitől, hirtelen azt hittem, hogy a linux-flame-en vagyunk. En ugyan erdeklodve olvasom a threadet, de azt hiszem mar eleg messze kerultunk a linux-tol... a listaadmin meg alszik :-) vagy no route to...? Lehet, hogy tenyleg a flame-en kellene folytatni? -- sZs _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Szia A TP 6.0 (~1997) mar tudott OOP-t. Lehet, hogy nem tanitottak, vagy tanultak, de mar tudta. En is C/C++ -t hasznalok (most), de azert igaz, ami igaz. Hogy a GNU Pascal tudja-e, az passz. Dolgoztam Delphis cégnél, és akkor Object Pascalt is megnéztem. Én voltam a hülye, mert nem írtam, hogy az OOP alatt én a Simulás viselkedés alapú OOP-t értem(lásd C++), márpedig az Object Pascal nem ezt a szemléletet követi. Tényleg csak egy réteg a strukturált rész felett. A viselkedés alapú szemlétet lényege pont az, hogy egy objektumot NEM az adattagok, hanem a viselkedése(függvényei) határoznak meg. Ezért lehet a C++-ban elrejteni az adatagokat még a gyermek osztályok elől is (igaz, nem teljesen),ami egy bázis osztálynál nagyon jól jöhet, és persze ezért lehet függvényobjektumokat létrehozni. Khraath _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
On Mon, 15 Oct 2007, khraath wrote: Ez ugye vicc? Amit pascalban nem lehet megírni, azt egyátalán nem lehet megírni... Légy szives, ha lehetne, definiálj egy absztrakt tárolót. Mondjuk egy sima vermet, amiben bármilyen számtípust tárolhatsz. Futtás időben legyen a feltöltés valós, egész, és mondjul komplex számokkal véletlenszerűen. Persze feltétel a helyes visszaolvasás (helyes típusba). Valószínüleg ki lehetne préselni a megoldást, de egy jó darabig eltartana, és az adatbiztonsággal is gondok lennének, ami ebben az esettben a legfontosabb. Mert? Pascalban is van pointer, ha jól emlékszem, szóval olyan rekordokat kell tárolni a veremben, aminek egyik mezője tárolja a típust, a másik az értékre mutató pointert. Persze Java-ban sokkal egyszerűbb lenne megcsinálni, mert van reflection - viszont nem a reflection-nel kell elkezdeni a programozás tanítását. [...] Nem túl kellemes első évesen Pascal után Objektum orientáltságot, generál programozást tanulni. Mert? Pascalban is lehet rávezető feladatot adni, struktúrális nyelven is lehet objektum-orientáltan programozni, a f(object, data); és a object-f(data); között nincs akkora különbség. Az öröklődés persze már tényleg új dolog. Bye,NAR -- Beware of bugs in the above code; I have only proved it correct, not tried it. _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Feladó: Andras HORVATH [EMAIL PROTECTED] Dátum: 2007. október 16. kedd du 2:34 ... Tok mindegy, hogy min (TP-n, bash shell scripten vagy visual basicen) tanulja meg a nebulo az alapokat (valtozo, feltetel, ciklus, stb); utanamajd valtasz, ha bonyolultabb koncepciok is erdekelnek. Ha OOP- Amikor programot írsz 1. algoritmust gyártasz a fejedben 2. leírod egy programnyelven. Nagyon nem mindegy, hogy mennyit kell küzdeni a nyelv szintaxisával. Pláne, ha mindkettőt egyszerre tanulod. A bash meg a Basic jól megnehezíti az algoritmusírást. A C-ben sokkal több mindent le lehet írni, mint amennyi általában kell. Nem véletlen, hogy az 1990-es ANSI C szabvány nem kötelező mellékletében le volt írva, hogy mit nem szabad használni abból, amit egyébként a fordítónak tudnia kell. Ebből a szempontból a Pascal a jobb. Csak hát tudjuk, hogy a gyerek lehetőleg azt fogja használni az iskola után, amit ott tanult, és ha igazi programot akar írni, akkor már másra is kell gondolni. Üdv: GyL _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
On Tue, 16 Oct 2007, khraath wrote: változó deklarálásokkal, vagy hasonló dolgokkal kellene foglalkozni, és Ez szerintem csak elony. Lehet hogy a nyelv kesobb konvertal ide/oda, de indulaskor legyen tisztaba a kulonbozo formatumok elonyeivel es hatranyaival. Kulonosen azzal, hogy valassza ki a feladathoz illot. Udv, -=Lajbi=- LAJBER ZoltanSzent Istvan Egyetem, Informatika Hivatal HTH=Hope This Helps, YMMV=Your Mileage May Vary, HAND=Have A Nice Day _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
Mert? Pascalban is van pointer, ha jól emlékszem, szóval olyan rekordokat kell tárolni a veremben, aminek egyik mezője tárolja a típust, a másik az értékre mutató pointert. Persze Java-ban sokkal egyszerűbb lenne megcsinálni, mert van reflection - viszont nem a reflection-nel kell elkezdeni a programozás tanítását. Igen. Akár C-ben, de hol az adat biztonság fordítási időben? Persze futás időben lehet hiba üzenetet írni, ha mégis valami gond van, de attól gond nem múlik el. Ha egy repülőtéri irányító rendszerhez kellene írnom egy hasonló szerkezetet, akkor biztosan nem választanám ezt a módszert, hanem valami olyan megoldást keresnék, ami nem lenne egyenes út a Repülő katasztrófák sorozatba. Itt nem a példa megoldása volt a lényeg, hanem, hogy még az általánosan használható nyelvek, mint a Pascal, sem mindenhatóak. Ne is beszéljünk az olyan nyelvekről, mint a Prolog. Mert? Pascalban is lehet rávezető feladatot adni, struktúrális nyelven is lehet objektum-orientáltan programozni, a f(object, data); és a object-f(data); Nagyon sok a különbség a kettő között. Lehet, hogy nem látod, de sok van. Az, hogy írás módban nagyon hasonlít, és a végeredmény azonos lesz, nem jelenti, hogy a működés is megegyezik. Itt van rá egy példa: f(object, data) Eddig jó, de ha mondjuk több Object típus is létezik (pl GUI-ban több féle widget is van), akkor vagy megírsz egy külön függvényt mindegyikhez, vagy mutatót adsz át. Na már most, a kód használóját mi akadályozza meg, hogy Objectként adjon át egy nem Objectet? Semmi. A fordító se fog szólni. Persze f-ben ellenőrízheted a dolgot, de szinte biztos, hogy egy hiba üzenet lesz és kész. De még f hívása előtt se mész semmire azzal, hogy tudod, hogy nem Object. Megoldani nem tudod, csak jelezni a problémát. Másik oldal: mi garantálja, hogy f nem vágja tönkre objectet? Honnan tudom, hogy csak a data mezőhöz nyúlt? Cpp-ben például ez(f(data)) egy virtuális függvény lesz, ami egyrészt biztosítja, hogy bármely Object leszármazott saját megvalósítást adjon f-nek, és persze garantált, hogy object egy Object (vagy leszármazottja). Ha véletlenül (vagy hanyagságból) benézed mégis a dolgot, akkor a fordító biztos leáll hibával. Mivel az object saját f-jét hívtad, így nagyon valószínű, hogy nem rontja el magát. Tanúság: jól megirt osztály szerkezet nem csak a végfelhasználótól, hanem még a karbantartótól, és más kód felhasználóktól is véd (azaz magadtól ;)). Khraath _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
On Tue, 16 Oct 2007, Gyimesi László wrote: Amikor programot írsz 1. algoritmust gyártasz a fejedben 2. leírod egy programnyelven. Nagyon nem mindegy, hogy mennyit kell küzdeni a nyelv szintaxisával. Pláne, ha mindkettőt egyszerre tanulod. A bash meg a Basic jól megnehezíti az algoritmusírást. A C-ben sokkal több mindent le lehet Sajat tapasztalatom: ha tul szabad a nyelv (v.o.: alkalmas valos feladatok megoldasara), akkor nem kenyszeriti ki a tanulobol az elso pont alapos elvegzeset. Mert meg tudja csinalni mas nyelven. En most ket verziot tartok jonak programozni tanulni: -kb 1 ev pascal, majd C -python, eleinte szigoruan oo nelkul. Aztan ki (kellene) derulni, hogy a paciensnek az awk, a C vagy a java lesz-e a jobb. Vagy a fortran :) Udv, -=Lajbi=- LAJBER ZoltanSzent Istvan Egyetem, Informatika Hivatal HTH=Hope This Helps, YMMV=Your Mileage May Vary, HAND=Have A Nice Day _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
On Tue, 16 Oct 2007, khraath wrote: attól gond nem múlik el. Ha egy repülőtéri irányító rendszerhez kellene írnom egy hasonló szerkezetet, akkor biztosan nem választanám ezt a Repteri iranyitast nem tudom, de kb 10 eve a rep. feledelzeti programokban (amelyek a gep iranyitasaval es az _elsodleges_ navigacioval kapcsolatos muszereken fut ) meg dinamikus memoria foglalast se engedelyezett az amerikai hatosag. Udv, -=Lajbi=- LAJBER ZoltanSzent Istvan Egyetem, Informatika Hivatal HTH=Hope This Helps, YMMV=Your Mileage May Vary, HAND=Have A Nice Day _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
On Mon, Oct 15, 2007 at 05:55:05PM +0200, Also-Antal Csaba wrote: igen. de ettol fuggetlenul nekem mindig herotom volt tole. akkor mar miert nem C... A C olyan, mint egy eles kes. Komoly munkara kivalo, de gyereket enni tanitani nem az igazi... Gabor -- - MTA SZTAKI Computer and Automation Research Institute Hungarian Academy of Sciences - _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
On Tue, 16 Oct 2007, khraath wrote: Mert? Pascalban is van pointer, ha jól emlékszem, szóval olyan rekordokat kell tárolni a veremben, aminek egyik mezője tárolja a típust, a másik az értékre mutató pointert. Persze Java-ban sokkal egyszerűbb lenne megcsinálni, mert van reflection - viszont nem a reflection-nel kell elkezdeni a programozás tanítását. Igen. Akár C-ben, de hol az adat biztonság fordítási időben? Az interface-en. A Pascal szintaktikát már rég elfelejtettem, de C-ben valami ilyesmit lehetne csinálni: void push_float(struct stack *s, float f); void push_int(struct stack *s, int i); int pop_float(struct stack *s, float f); // 0 a visszatérési érték, ha OK int pop_int(struct stack *s, int i); // -1, ha rossz típus, -2 ha üres verem Persze futás időben lehet hiba üzenetet írni, ha mégis valami gond van, de attól gond nem múlik el. Ha mindenféle típust lehet betenni a verembe, akkor minden nyelven le kell kezelned ezt a hibát. [...] Itt nem a példa megoldása volt a lényeg, hanem, hogy még az általánosan használható nyelvek, mint a Pascal, sem mindenhatóak. Ne is beszéljünk az olyan nyelvekről, mint a Prolog. Pedig az általános nyelv pont attól általános, hogy mindenfélét lehet benne írni :-) Persze nem célszerű mondjuk Fortranban írni adatbázist, de lehet. Mert? Pascalban is lehet rávezető feladatot adni, struktúrális nyelven is lehet objektum-orientáltan programozni, a f(object, data); és a object-f(data); Nagyon sok a különbség a kettő között. Lehet, hogy nem látod, de sok van. Az, hogy írás módban nagyon hasonlít, és a végeredmény azonos lesz, nem jelenti, hogy a működés is megegyezik. Itt van rá egy példa: f(object, data) Eddig jó, de ha mondjuk több Object típus is létezik (pl GUI-ban több féle widget is van), akkor vagy megírsz egy külön függvényt mindegyikhez, vagy mutatót adsz át. Megírok különböző függvényeket és mutatókat adok át. Nézd meg pl. a GTK-t, grafikus objektum orientált library C-ben. Nem szép, de működik. Na már most, a kód használóját mi akadályozza meg, hogy Objectként adjon át egy nem Objectet? Miért Object-et kellene elfogadni? Az említett GTK-ban pl. GtkWidget* típust lehet átadni, vagy GtkButton* típust, vagy amit akarsz. Semmi. A fordító se fog szólni. Persze f-ben ellenőrízheted a dolgot, de szinte biztos, hogy egy hiba üzenet lesz és kész. De még f hívása előtt se mész semmire azzal, hogy tudod, hogy nem Object. Megoldani nem tudod, csak jelezni a problémát. Másik oldal: mi garantálja, hogy f nem vágja tönkre objectet? Honnan tudom, hogy csak a data mezőhöz nyúlt? C-ben is el lehet rejteni az struktúra mezőit. Bye,NAR -- Beware of bugs in the above code; I have only proved it correct, not tried it. _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Mire gondolsz? A C nyelv 1974-ben jelent meg fordító és a Unix forrásprogram formájában. 1976-ban pedig az első C könyv (Kernighan-Ritchie), amit kvázi szabványnak lehet tekinteni. 1989 végén az ANSI szabvány, . Változó láthatóságban nem volt különbség, legfejlebb a függvénydeklarációk bővültek ki felfelé (majdnem) kompatibilisen, és a változó deklarációk egy kicsit (pl. const). Azért voltak ott más változások is, és sajnos a szabvány csak egy dolog. Például a // nem volt benne a szabványban (talán most sincs), és mégis szinte minden fordító ismeri. A hangsúly a szintén van. Persze ott a -, és a . operátorok kérdése. Ezek jelentése is változik fordítónként. Aki fejlesztett kereszt-platformra, és több fordítót is kellett használni, biztos találkozott ilyen hibával. Számunkra nem jelentős egyik sem, de képzeld magad egy első programot író középiskolás helyébe, aki nem tudja, hogy miért nem működik a könyvbeli példa. Gondolj bele, hány órát ültünk az első időben egy hiba felett, mert nem tudtuk, hogy a fordító éppen miért sír. A C fordítók sokszor félrevezető hiba üzenetet adnak, és sok tapasztalat kell, hogy tudjuk, mikor miért jelenik meg egy hiba üzenet. Ezen a levelező listán is minden 5-6 szállból egy valami fordítási hibával foglalkozik. Szinte minden forrásból telepítésnél vannak figyelmezezések (a kernelben is). Sokkal jobb egy olyan nyelven kezdeni, ahol nincsenek ilyen kezdő buktató problémák. Első időben amúgy sem a gyors, megbízható program az elsődleges cél, hanem a működkő program. Első programomnál nem nagyon foglalkoztatott, hogy 0.1 másodpercet javíthatnék rajta, ha más rendezést használok, vagy nem szabadítottam fel magam után megfelelően az erőforrásokat (nem tudtam róla :)). Most meg 3 napig nézegetek egy láncolt listát, hogy hogyan lehetne még gyorsabb a létrehozás, meg a szürés, és miként tudnék még néhány kilobyte memóriát spórolni a new hívásokból, hogy biztosan elég legyen a memória az összes elemnek. Vagy milyen új memória kezelőt készítsek, hogy ha elfogy mégis tudjak valamit felszabadítani. Khraath _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Ez szerintem csak elony. Lehet hogy a nyelv kesobb konvertal ide/oda, de indulaskor legyen tisztaba a kulonbozo formatumok elonyeivel es hatranyaival. Kulonosen azzal, hogy valassza ki a feladathoz illot. Előny, ha olyan nyelvre lépsz tovább, ahol ez fontos, mint a C, vagy Java, de mi van azokkal, akik PHP-val folytatják? Nekik fontos tudni, hogy a C-ben csak a blokk elején deklarálhatsz változót? Vagy, egy C-snek, hogy a Javaban hogyan vezetünk be egy új függvényt, és hogyan kell megadni a kivételeket? Vagy melyik stream átalakítás után mi lesz az eredmény? Vagy egy Java programozó tudja, hogy az enum-ok hogy kerülnek a memóriába Cpp-ben? Vagy, hogy a bitset hogyan működik, és hogyan lesz tárolva? Természetes, hogy egy függvénynek a használat előtt legalább deklarálva kell lennie, vagy a változók sem a semmiből tűnek elő, de a többit elég később megtanulni az adott nyelvnél. Teljesen igazad van, ha egy adott nyelvet, és annak oktatását nézzük, de álltalánoságban nem várhatod el még azt sem, hogy az ősnyelvek viselkedését ismerjék a programozók, vagy a piacon éppen felfutott nyelvek minden apró szeszélyével tisztába legyenek. Szerintem a tanár dolga, hogy az adott nyelv ilyen sajátoságait elmondja, vagy általánosan beszéljen arról, hogy az általában minden nyelvben megtalálható típusok (char, int, float) közül egy adott problémánál mit érdemes használni. Fejlődni meg gyakorlással, forrás olvasással, és a referencia bújással lehet. Referenciában ott a szabály, a forrásokban pedig különböző megoldások, a gyakorlat meg eldönti, hogy éppen mi a jó. Khraath _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Feladó: khraath [EMAIL PROTECTED] Dátum: 2007. október 16. kedd du 5:45 Azért voltak ott más változások is, és sajnos a szabvány csak egy Hogyhogy is? dolog.Például a // nem volt benne a szabványban (talán most sincs), és mégis szinte minden fordító ismeri. A hangsúly a szintén van. Persze ott a -, és a . operátorok kérdése. Ezek jelentése is változik fordítónként.Aki fejlesztett kereszt-platformra, és több fordítót Mire gondolsz? Nem találkoztam ilyennel. Minden C könyvben benne van, hogy x - yugyanaz, mint (*x).y Ezt nehéz többféleképpen érteni... A prioritás is szabványos. is kellett használni, biztos találkozott ilyen hibával. Számunkra nem jelentős egyik sem, de képzeld magad egy első programot író középiskolás helyébe, aki nem tudja, hogy miért nem működik a könyvbelipélda. Gondolj bele, hány órát ültünk az első időben egy Nem állítom, hogy C-vel kell kezdeni. De abban biztos vagyok, hogy Pascallal nem. Üdv: GyL _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
On Tue, 16 Oct 2007, Gyimesi László wrote: Nem állítom, hogy C-vel kell kezdeni. De abban biztos vagyok, hogy Pascallal nem. Biztos, hogy nem C-vel kell kezdeni. Eros a gyanum, hogy a Pascal nem rossz kezdes. jobb, mint a php, vagy a visbas. Udv, -=Lajbi=- LAJBER ZoltanSzent Istvan Egyetem, Informatika Hivatal HTH=Hope This Helps, YMMV=Your Mileage May Vary, HAND=Have A Nice Day _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Mire gondolsz? Nem találkoztam ilyennel. Minden C könyvben benne van, hogy x - yugyanaz, mint (*x).y Ha jól emlékszem (régen volt, még nem mingw-t használtam és volt Windows a gépemen) a Visual Studio 6 alatt volt gondom. Szerinte nem, és át kellett írnom az összes x-y-t (*x).y -ra. Sajnos a hiba üzenetre nem emlékszem. Amúgy is mindegy, mert a könyveket a fordítók készítői nem olvassák, csak mi, és sajnos a könyvek írói sokszor a fordítókat nem használják, amiket mi... Csak azért ezt írtam, mert mély nyomot hagyott bennem, hogy éjjel kettőkor reboot után az elvileg kész programmal még volt egy jó félórás köröm. De, ha jobban megnézed, akkor most is van, hogy nem csak platform, hanem fordítóhoz kapcsolódó függőségek/makrók vannak a programok kódjában. Vagy info gcc-ben szét nézzel. Sok helyen előfordúl (főleg Cpp-s részekben), hogy a Borland modelt követjük, vagy éppen ATT-t. Már pedig valami különbségnek kell lennie, ha különböző modelek létetznek a szabványra. Khraath _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Igen :) Most magyaraztam valakinek, hogy miert kerul egy sql tabla varchar mezojebe 0, amikor a bemeno ertek _51... Nem ertette, hogy a php-ban egy kifejezesben a string atalakul integer-e, majd vissza. Nem tudom min not fel, de foleg a php miatt nem volt tisztaban a tipusok jelentosegevel. Sajnos ez igaz, de akár Pascal alatt is nevelkedhetett, mert ezt már a php dokumentációban kellett volna megnéznie, és nem tette, ami ugye valamit elárúl :D. A masik ilyen klasszikus hiba, amire pl a C forditok haklisak, ha inicializalatlan valtozokat hasznal. Ez ez is hordozhatosag, mert senki nem garantalja, hogy az uj valtozo csupa 0 bitekbol fog allni. Hát ez nagyon igaz. Én is -Wall -pedantic -kal fordítok, amíg fejlesztek. Jogosan is szól, már volt nekem is ilyen hibám figyelmetlenség miatt. Oktattal mar? En foleg egyetemistakat es felnoteket tanitottam/tanitok. De nagyon massziv idokorlatok vannak. Ha jol kitalalt feladatot kap, akkor gyakorolni fog oran kivul is. De nagyon nehez am jol kitalalt tanpeldat csinalni: ne legyen tul mesterkelt, hajanal fogva elocibalt, de ne is legyen tul bonyolult... Megnyugtatok mindenkit, hogy csoportokat még nem vezettem téves ösvényekre. De tanított már egy-tíz tanár, és kevesebben voltak a jók, mint a rosszak. Gondolom ezért se akartam soha órát tartani. Túl nagy a felelőség, és nem hiszem, hogy jól tudnék oktatni. Abban viszont igazad van, hogy kevés az idő. Egy gyakorlatnak 2-4 órásnak kellene lennie, mint más szakokon a laboroknak, de nekünk csak 50 perc jutott (minusz katalógus). Ez nagyon sok idot igenyel a tanartol is, es sajnos neki is egyre kevesebb van. 80-100 diakbol 2-nek annyira kell a tanar, hogy felevente fel orat beszelgessenek, es ekkor a tanar tereli, kesz. Ok ugyis tudnak programozni. A tarsasag 60%-a az eletben nem fog tudni programozni (bar esetleg programozo lesz...), de legalabb erzi, hogy milyen nehezseges vannak, es mesterember szinten megoldja/elkeruli/el tudja mondani masoknak, hogy mi a baj. Sajnos több, mint 60%. Mível rövid a gyakorlat, és a zh sok helyen gépnél van, vagy definiciókat, meg hasonlókat kell vissza böfögni (aminek persze lenne értelme, ha lenne gyakorlati kérdés is). Öszintén bevalom, hogy én is írtam másnak kötelező programot, és nem titok, hogy egyes kollégisták gyakorlatilag kötelező program írásával szerzik a sörre valót, így minden diákokon múlik, ha nem akar tanulni, akkor nem is kell, mert egy jó puskával, és egy kis anyagi befektetésel meg lehet a féléve (és van pofájuk jobb jegyet szerezni, mint aki készült rendesen :@). Khraath _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
Ha mindenféle típust lehet betenni a verembe, akkor minden nyelven le kell kezelned ezt a hibát. Nem voltam elég pontos. A mutató átalakításból adódó hibát megspórolhatod, és ezt a hibát mindig programozó követi el, és nem a fordítója, vagy a felhasználója. Például Cpp-ban, ha kicsit ügyes vagy, akkor megoldható, programozói hanyagságból (rossz dokumentálás, vagy annak figyelmetlen olvasása) ne tuszkolj be valami olyan dolgot, ami nem oda való. Pontosabban megpróbálhatod, de valószínűleg egy hiba üzenet lesz a jutalmad. Javaban ehhez hasonlót még nem csináltam, de gondolom ott is van valami jelzés. Pedig az általános nyelv pont attól általános, hogy mindenfélét lehet benne írni :-) Persze nem célszerű mondjuk Fortranban írni adatbázist, de lehet. Pont erre gondoltam én is :P. Megírok különböző függvényeket és mutatókat adok át. Nézd meg pl. a GTK-t, grafikus objektum orientált library C-ben. Nem szép, de működik. Köszönöm, nézem folyamatosan, bár ha tehetem inkább a gtkmm-et nézem ;). Ráadásul nem csak működik, hanem nagyon jól is működik. Mióta használom nincs GUI problémám, ha Windowson is működnie kell a programnak. Az API rondának ronda, de vannak rondábak is. Miért Object-et kellene elfogadni? Az említett GTK-ban pl. GtkWidget* típust lehet átadni, vagy GtkButton* típust, vagy amit akarsz. Hát igen... Amit akarsz... Múltkor is csináltam egy ilyen bakit, és nem nagyon értettem, hogy miért nem működik úgy, ahogy én szeretném :P. Nem figyeltem oda, és a nagyon_hosszu_sok_parameteres_fuggvenynek egy phulye_nevu_valtozo_mert_meg_ez_nem_volt adtam át, és egy másik hasonlót kellett volna :D. Nagyon jó a Gtk-s megoldás, csak éppen igen nagy a kódja, és annyit nem akartam írni, és a problémát csak részben oldja meg. C-ben is el lehet rejteni az struktúra mezőit. Teljesen igaz, de ha Gtk megoldást összehasonlítod a gtkmm-es wrapper megoldással, akkor látni fogod, hogy a kettő közül a gtkmm a jobb ebből a szempontból :D (főleg a dialógusoknál, mint a FileChooser). Abban viszont teljesen igazad, hogy lehet jó objektum orientált könyvtárat írni egy struktúrált nyelvben is, de ha nem muszáj, akkor nem próbálkoznék vele. Iszonyatos lusta vagyok, és nem bonyolítom az életem, ha nem muszáj. Ahol sebeség kell, oda írok egy C függvényt, ahova egy jó adatbázis, oda egy Cpp-s osztály szerkezetet. Szerencsémre ezt a két nyelvet jól lehet kombinálni (extern, szállkezeléssel, processzekkel). Khraath _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
On Tue, 16 Oct 2007, khraath wrote: Sajnos ez igaz, de akár Pascal alatt is nevelkedhetett, mert ezt már a php dokumentációban kellett volna megnéznie, és nem tette, ami ugye valamit elárúl :D. Pascal kikenyszeriti doksi olvasas nelkul is :) Gondolom ezért se akartam soha órát tartani. Túl nagy a felelőség, és nem hiszem, hogy jól tudnék oktatni. Ez jut meg eszembe: http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf Es szerintem zarjuk le, mielott nagyon flame lenne :) Udv, -=Lajbi=- LAJBER ZoltanSzent Istvan Egyetem, Informatika Hivatal HTH=Hope This Helps, YMMV=Your Mileage May Vary, HAND=Have A Nice Day _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
khraath írta: Most meg 3 napig nézegetek egy láncolt listát, hogy hogyan lehetne még gyorsabb a létrehozás, meg a szürés, és miként tudnék még néhány kilobyte memóriát spórolni a new hívásokból, hogy biztosan elég legyen a memória az összes elemnek. Vagy milyen új memória kezelőt készítsek, hogy ha elfogy mégis tudjak valamit felszabadítani. :). Absztrakt programozás előnyei :). Forth rlz. Absztrakt, tömör, nem cseszed el a vermet :). Mégse terjedt el... k-atti- _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
Szia! a logo-t nem ismrem tulzottan, meg alapozashoz talan a basic a legjobb. Régen tényleg így volt, de ma már inkább a Pythont ajánlanám a tényleges alapozáshoz. Nagyon egyszerű rajta tanulni, és az objektum orientált programozást is lehet vele oktatni. Persze, ez igaz a PHP-ra, vagy Delphire is, de szerintem (és ez tényleg személyes vélemény) ezeken a nyelveken nem lehet a megfelelő viselkedés alapú gondolkodást elsajátítani(pl. PHP3), ami a későbbi C++-hoz szükséges (már ha ebbe az irányba haladnátok tovább). Plusz a Pythont oktatásra találták ki :P. Ja, grafikus megoldás lehet a PyGtk, ami persze (mint minden Gtk változat/wrapper) keresztplatformos. Ha nagyon kicsikről van szó, akkor én is a logot ajánlom. Linuxon elég sok megvalósítás van. pl. a KTrutle (KDE base-ben van elvileg, ovisoknak), vagy a lhogho - http://lhogho.sourceforge.net/, végül a usblogo - http://www.cs.berkeley.edu/~bh/logo.html Khraath -- khraath [EMAIL PROTECTED] _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
khraath írta: Szia! a logo-t nem ismrem tulzottan, meg alapozashoz talan a basic a legjobb. Régen tényleg így volt, de ma már inkább a Pythont ajánlanám a tényleges alapozáshoz. Ha már a Python szóbakerült, akkor a DrPython vagy a Geany egészen jó fejlesztői munka környezetet adnak hozzá. Szerintem is nagyon jó a Python tanulásra. Az OO közelebb áll az ember gondolkodásához is, feltéve ha előtte nem gyurták nagyon bele a struktúrált szemléletet. Az OO kezdés a továbbiakban is nagy előny Java, PHP, C++ stb irányába. De ha a számtechtanárnak akarnak a gyerkőcök előre tanulni, akkor Basic Vagy Pascal. A legtöbb öregszaki tanár csak ezeket ismeri ha egyáltalán valamit. -dejo- _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
khraath írta: Régen tényleg így volt, de ma már inkább a Pythont ajánlanám a tényleges alapozáshoz. Ha nagyon kicsikről van szó, akkor én is a logot ajánlom. pl. a KTrutle (KDE base-ben van elvileg, ovisoknak), vagy a lhogho - http://lhogho.sourceforge.net/, végül a usblogo - http://www.cs.berkeley.edu/~bh/logo.html Hmm. Az ovisok nemhogy angolul nem tudnak, de olvasni se. A python meg jó oktatásra, de NAGYOBBAK oktatására. Üdv, János _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
Szia! Hmm. Az ovisok nemhogy angolul nem tudnak, de olvasni se. A python meg jó oktatásra, de NAGYOBBAK oktatására. Nem volt korcsoport kikötve. Bár a basic miatt általános iskolára tippelnék. Valóban nem tudnak az ovisok olvasni. De angolul biztosan nem kell megtanulni senkinek. A python.hu-n olyan jó leírások, és referenciák vannak magyarul, hogy erre semmi szükség. Bár cpp-ből lennének ilyen jó anyagok! Amúgy meg, aki tud gépelni, az pont annyira olvasni is tud. Ez az egy biztos, mert Spectrummal kezdtem (pontosabban a bátyám), és én is tudtam használni. Sőt! Azon írtam meg az első programomat... A KTrutle inkább játék, mint igazi nyelv. Nem hiszem, hogy a krumplifej bácsi és a pingvin öltöztető mellé egy bonyolult magas absztrakciókra képes nyelv került... Bár lehet, hogy tévedek, sose használtam. A legjobb az lenne, ha a közép iskolák átálnának Pascalról Pythonra, vagy Javara, mert valljuk be a Pascal felett eljárt az idő... Magasabb absztrakciókra alkalmatlan sajnos. Középiskolában én is szerettem, de azóta sokat tanultam, főleg azt, hogy nagyon sok rossz szokást a Pascal miatt vettem fel, amiről nehezen szoktam csak le... Ezért se szoktam kezdésnek a Javat, vagy Pascalt ajánlani, mert a kezdők egyből felveszik a rossz szokásokat, mint az interfacek halmozása, öröklés használata ott is, ahol beágyazást is használhatna, na és persze a kedvencem: Repül a kivétel: ki tudja hol áll meg? Ki tudja hol áll meg s kit hogyan talál meg? El is szokás kapni, amit eldobtunk. Ez az első, amit mindenki elfelejt, pedig nem véletlenül kell megadni a kivételeket a deklarációban... -- khraath [EMAIL PROTECTED] _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
Ez ugye vicc? Amit pascalban nem lehet megírni, azt egyátalán nem lehet megírni... Légy szives, ha lehetne, definiálj egy absztrakt tárolót. Mondjuk egy sima vermet, amiben bármilyen számtípust tárolhatsz. Futtás időben legyen a feltöltés valós, egész, és mondjul komplex számokkal véletlenszerűen. Persze feltétel a helyes visszaolvasás (helyes típusba). Valószínüleg ki lehetne préselni a megoldást, de egy jó darabig eltartana, és az adatbiztonsággal is gondok lennének, ami ebben az esettben a legfontosabb. Nem vagyok Pascal ellenes. De objektum orientáltság vagy generál programozás oktatására alkalmatlan. Mível a vezető nyelvek objektum orientáltak, magas színtű elvonatkoztatásra képesek, így elég nehéz Pascal után hirtelen váltani. Egyre inkább kimarad a C, mint ugró deszka, és ez sokszor meg is látszik (a fennti példa C-ben egy jó félóra alatt megoldható). Nekem nem gond, de amíg sokan kardoskodnak a Pascal mellett, főleg olyanok, akik nem programozó, hanem más, mérnőki szakra járnak/jártak (nekik tényleg nagyon hasznos a Pascal), addig sokkal nehezebb lesz a váltás. Nem túl kellemes első évesen Pascal után Objektum orientáltságot, generál programozást tanulni. Főleg, mint tudjuk a mai egyetemi oktatás: tanulj otthon, 45 perc gyakorlat, 5 perc késés (tanár), 10 perc katológus, többi meg Windows start. A legyen Pascal, ne legyen Pascal vita egyetlen vesztese az, aki elvileg a legérintettebb: a programozó, és így később a felhasználói. A C nyelv nem kezdőnek való, a gyerek sem vadász késsel tanul meg enni. A Delphit pedig meg kell fizetni ugye. Mert komponensek nélkül valahogy nem az igazi... Amúgy is a Pascalos Hanoi tornyai hagyományt követve elég sok hiba van a függvénykönyvtárban... :D oriasi hibat kovetnek el azzal, hogy matekoznak az info oran Nem olyan nagy hiba a matekozás. Az a baj, hogy matematikailag vezetnek le mindent. Az algoritmusok nagyon fontosak, és ezekhez kell a matematika. Minden program szívében ott van egy adatbázis, néhány számítás, és valójában ez határoza meg egy program minőségét, és nem a 3D-s csilogó külső. Jó példák erre a játékok. Ha jól van megírva a motor, akkor a minimum követelményen is szépen fut (Imperium Galactica, Haegemonia, stb.), ha meg szar, akkor szagat, sír még az optimum alatt is. Elég sokat optimalizálok, de még soha nem kezdtem a fájl menüben :D. Az lenne a jó, ha nem a sin függvényt kellene elkészíteni, hanem egy tetszőleges rekurziv trigonometrikus függvényt megoldása lenne a feladat. Tárolók készítéséhez, és adatok feldolgozásához, szűréséhez elengedhetetlen az alapvető adatszerkezetek, és algoritmusok ismerete. Khraath _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
On Mon, 15 Oct 2007, khraath wrote: programozás oktatására alkalmatlan. Mível a vezető nyelvek objektum orientáltak, magas színtű elvonatkoztatásra képesek, így elég nehéz Ez az objektum orientaltsag ep olyan buzzwordne tunik, mint (jo par) evvel ezelott a strukturalt programozas. Szerintem lenyegesebb, hogy tud-e valaki problemat megoldani, vagy nem. A programnyelv csak eszkoz. van amit konyebb, van amit bonyolultabb lekezelni egy vagy masik nyelven. A hatekony nyelvek nem alkalmasak kezdok oktatasara, mert pontosan ah atekonysag miatt tul sokat tudnak. Ezert a pascal kimondottan jo elso nyelvnek szerintem. Fegyelmet, rendet tart az emberke fejeben. Egy java vagy c++ class-ban mar elveszik a sok hatterinfo mellet a lenyeg. Tenyleg nagyon jol lejetett programozni tanitani a regi gepek (c64, spectrum) basic-jevel: bekapcsolta a kezdo a gepet, es irta a programot. Nem kellet neki mast tanitani (fajlok, konyvatark, ikonok...). Igy tudott koncentralni a feladatra. Udv, -=Lajbi=- LAJBER ZoltanSzent Istvan Egyetem, Informatika Hivatal HTH=Hope This Helps, YMMV=Your Mileage May Vary, HAND=Have A Nice Day _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
tart az emberke fejeben. Egy java vagy c++ class-ban mar elveszik a sok hatterinfo mellet a lenyeg. Javaban igazad van, de C++-ban nem, csak éppen az MSDN-hez vagytok szokva. Jól megirt osztályok mellett pont a lényegre lehet koncentrálni. Csak arra kell figyelni, hogy mire készül az osztály (konténer, bázis, konkrét, stb.), és a minimális osztály felületre. pl: void Database::refresh_tables() { std::for_each(tables_.begin(),tables_.end(),std::mem_fun(Table::refresh)); } Ennél elvonatkoztatottaban, tömörebben nehéz fogalmazni, és szerintem a lényeg elég jól látszik. Ugyanez C-ben (Gtk-hoz hasonló módszer): int refresh_database_tables(Database* db) { int ret = 0; for(int i = 0; i get_tables_size(db); ++i) { if ((ret=refresh_table(get_databse_table(db,i)))!=0) return ret; } return ret; } Természetesen mindent meg lehet objektum orientált programok, vagy nyelvek nélkül oldani, még mindig az asm a legjobb nyelv. A jól megirt OO program segít a fejlesztőnek munka közben. A gond csak az, hogy C++-ban is sokszor látom, hogy ugyanúgy egy függvényben van minden összezsúfolva, mint régen a rosszul megirt C programokban. 200 soros függvények mellett nem csoda, hogy nem lehet átlátni az egészet. Módszer igen egyszerű: az alacsony színtű műveleteket próbáljuk meg kezelő- osztályokban elrejteni, és később ezeket használni, és a megfelelő függvény- objektumokat. Sokat használok C-t, de ha egy programomban adatbázisra van szükségem, akkor biztosan C++-ban kezdek neki. Persze soha nem fogok C++-ban drivert írni, vagy stream titkosítót, de az nagyon is valószínű, hogy a titkosítóhoz készítek valami wrappert, és használni fogom a C++-os adatbázisomban titkosításra. Pascal tényleg jó első nyelvnek, csak utána nem Javara, vagy C++-ra kellene ugrani, hanem egy kis C-t, Pythont esetleg PHP tanulni, és úgy váltani. Megfeletkeztél a görgetősávról! Az nagyon fontos! Már első órán le kell diktálni a gyerekek vonalas füzetébe! ;) De utáltam ezeket a marhaságokat. Néha nagyon hiányzik a magnó dörmögése, na meg a kék képernyő, amit még akkor senki se utált. Első Linuxomat is azért raktam fel (gcc-s kötelező programok mellett), hogy egy kis sebeséget leheljek a gépembe és elüzzem a kék halát. Két tányér levest benyomtam, mire volt egy startmenüm, most meg egy pohár teát sincs időm behozni (ugyanaz a gép még mindig, csak 5 év telt el :D). Khraath _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic [OFF]
Nem vagyok Pascal ellenes. De objektum orientáltság vagy generál programozás oktatására alkalmatlan. A TP 6.0 (~1997) mar tudott OOP-t. Lehet, hogy nem tanitottak, vagy tanultak, de mar tudta. En is C/C++ -t hasznalok (most), de azert igaz, ami igaz. Hogy a GNU Pascal tudja-e, az passz. Udv.: Laci -- Laszlo Baranyai [EMAIL PROTECTED] Corvinus University of Budapest _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
Also-Antal Csaba írta: linux-ra keresek egyszeru mezei, nem visual basic-et, amiben grafikus utasitasok is vannak. van ilyen? olyasmi lenne jo ami a comodore-okban volt, amit egy gyerek is konnyen tud hasznalni. udv Csaba http://www.thefreecountry.com/compilers/basic.shtml Előbb Goglezni kellene... :-P Különben meg gyereknek kell tanulni? Iskolában tanulnak ilyesmit? _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux
Re: basic
Molnár István wrote: Also-Antal Csaba írta: linux-ra keresek egyszeru mezei, nem visual basic-et, amiben grafikus utasitasok is vannak. van ilyen? olyasmi lenne jo ami a comodore-okban volt, amit egy gyerek is konnyen tud hasznalni. udv Csaba http://www.thefreecountry.com/compilers/basic.shtml Előbb Goglezni kellene... :-P Különben meg gyereknek kell tanulni? Iskolában tanulnak ilyesmit? ezt en is megtalatam de nem akartam napokat azzal tolteni, hogy kibogaraszam melyik is lenne jo. biztosan fognak tanulni ilyesmit de most erdekli. udv Csaba _ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux