Hol tanulhatok meg C-ben programozni???

 ( geripapa | 2007. január 2., kedd - 21:31 )

Sziasztok!

Az lenne a kérdésem, hogyan/honnan tanulhatok meg C-ben programozni egyetem és főiskola nélkül. Tudtok javasolni valami tanfolyamot, könyvet, sorrendet amiből egy kezdő összeszedheti magát?
Számtek technikus a szakmám, de a suliban csak belekóstoltunk programozásba, ami a turbo pascallal ki is merült.

Bocs a hülye kérdésért és köszönöm a válaszokat előre is!

Gábor

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Keress egy egyszerű feladatot, vegyél egy jó könyvet és láss
neki. A Pascal jó alap.

> Sol omnibus lucet.

Egyetertek. Szerintem is pascallal indulj tovabb (ez egyebkent is oktatasi celokkal keszult eredetileg, a nyelvi szintaxist is ehhez igazitottak). Ha mar a pascalt kened-vagod sokkal konnyebb lesz megerteni a C-t. ;-)


Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.

Pascal zsákutca. Kimúlt, béke poraira.

A megoldás: Kernighan-Richie C könyve. Anno én is ebből tanultam.
http://cm.bell-labs.com/cm/cs/cbook/

--
Kinek nem inge, ne vegye gatyára

Egyetértek. Pascallal nem nagyon lehet jutni sehova. A Delphi jövője is bizonytalan, a FreePascal meg kb. a hobbistáknak jó, na meg arra, hogy a Turbo/Borland Pascal programokat futtasd vele, ha neadjisten még ma is olyanokra lenne szükséged. Én is a K&R C könyvet ajánlom. A másik, amit állandóan ajánlgattak nekünk a BME-n az a Computerbooks kiadótól a "Programozzunk C nyelven!", de én speciel ezt utálom, mert száraz, referencia-szerű és Borland meg DOS-specifikus dolgok (is) vannak benne. A K&R az logikusan felépített, olvasmányos és érdekes.

Én még a '90-es évekbeli kiadásából tanultam belőle. (A '90-es években.)

És mivel más géphez nem tudtam hozzáférni, amin lett volna C fordító, így egy AT&T féle SysVR4-en tudtam a benne lévő példákat kipróbálni! ;-)
A getc() meg egyéb conio.h-s baromságokat eleve skippeltem/helyettesítettem értelmesen. A megértésen nem változtat.

Viszont rögtön sikerült is érdekes pofonokba belerohannom vele: volt egy remek kis példa benne .dbf fájlok felolvasására. A gép, amin meg a Unix futott, ahol kipróbáltam természetesen nagy-indiános risc procijú volt (m88k), úgyhogy rögtön lehetett is szépíteni a kódot, hogy akkor előbb a dbf-ből felolvasott bájtokat sorbateszem, mert ott csak simán a kis-indián sorrend szerint beleböfögte a .dbf-ba az adatot a beleböfögője.

Viszont mivel előtte volt _rendes_ pascal tudásom, ezért a pointereken már nem ütköztem meg, csak tapasztaltam, hogy itt még jobban oda kell rájuk figyelni. Ennyi.

+1 a Kernighan - Ritchie-re.

+1

Vannak jó Turbo Pascal könyveim. Győrben még mindig ingyen elvihetők. Nem nagyon kapkodnak érte. :)

--
trey @ gépház

Csak nem a Marton-féle kékfehér? :)

"
Vannak jó Turbo Pascal könyveim. Győrben még mindig ingyen elvihetők. Nem nagyon kapkodnak érte. :)"

írtam mailt, megkaptad?

Jaj, azért ne essetek egymásnak mert hülyéket kérdezek! :D

Totál zöldfüles vagyok, bocs ha nektek már hülyeségnek számít amit kérdezek! :)

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

Szi!

Ment pm!

Javaslom először nézz körül a neten, mert tucatnyi oktatóanyagok állnak rendelkezésedre ha utánnakeresel. pl itt és itt, vehetsz könyveket is, amit alkalmankétt 1xübb is kezelni. Ha úgy látod, hogy továbbra is érdekel a téma akkor kezdj el valamiylen nagyobb programokat írogatni, mélyülj el az elméleti részekben, sajátits el új algoritmusokat, nézz bele a neten fellelhető forráskódokba, stb.
Ha tényleg akarod, akkor átverekeded magad minden akadályon, és elsajátítod a nyelvet...

Legolcsóbb, ha bepofátlankodsz egy egyetemi/főiskolai előadáskurzusra, ÉS veszel egy jó könyvet.

Nemtom, egyetemen elég nehéz megtanulni...

Tyson

Nem állítottam, hogy egyszerű. Olcsó;-)(Persze, ha vkinek nem drága az ideje bejárni)

Jaj, ha van ideje akkor olcsó. Bár nem elég...
Tyson

megtanulni nemlehet, de megerteni? ;-)

ajanlom ELTE -n a prognyelvek1/2 eloadasokat. :)

(ps.: C programozokent dolgozom par eve, C++ -al a kurzusok miatt tanultam meg [en vizsgaztam], de volt sok jo dolog amit gsd elmondott pl.]

2007-ben nem c++ és ada volt a prognyelvek?
---
dropbox tárhely igénylés: https://www.dropbox.com/referrals/NTMwMDYwODE5

Pontosan: A-B szakirányon C++ és ada, C szakirányon C++ és java.

2007-ben már voltak szakirányok? 8O

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Plane, ha nem akarod. Annakidejen en sem kulonosebben elveztem elso even a lancolt listat es a buborek rendezest, de be kell latni, hogy azert eleg hasznos volt az.

Ha már van könyv/jegyzet, szvsz keress neten gyakorlat, laboranyagot. Lesz egy csomó példád, feladatod kidolgozva. Mikor középsulis koromban próbáltam gyakorolni programozni, mindig gondban voltam kreatív, nem unalmas feladatok kitalálásával :)
--
"Mégse ment el, valami mailer démon visszaküldte....figyelem már egy ideje, nagy g*ci:))"

Petho" A'da'm: C c. konyve. Nagyon jo, bar nem tudom hol lehet mostanaban beszerezni ('92-es kiadas van meg nekem, kb azokbol az ido"kbo"l). Az ad egy olyan szemleletet, ami szerintem kell ahhoz, hogy valaki jol el tudja sajatitani a C dolgait.

A.

Azaz, Pethő Ádám: abC. Úgy kéne.

Sziasztok!

Nem akartam új topicot nyitni ezért, de nincs valakinek eladó példánya ebből a könyvből? Nagyon szépen köszönöm a segítséget!

Bár nekem nincs (jó az itt a polcon), de szerintem próbáld meg kicsit feltűnőbb helyre posztolni a kérésedet, mint itt az n+1-edik hozzászólás kitudja milyen mélységben, illetve ajánlott még a HUP Adás - vétel - csere fóruma

hehe kicsit szarra olvasva, de ittvan a polcon :D

én úgy tudom, hogy a Kernighan - Ritchie könyvet tartják alapműnek

Hát ehez nemtok hozzá szólni én egy egyszerű hegesztő vok:) de én is megtanulnám hátha nem kellene többet hegesztenem:P

Jól tudod.

Klikk ide, itt a konyv 2006-os kiadasa: http://www.kiskapu.hu/index.php?BODY=BookInfo&OP=details&ID=5907

Nemreg szereztem be en is, mert bar vizsgaztam belole az egyetemen, de jo pap holtig tanul...

A masik szinten ajanlhato konyv a C melle vagy esetleg helyett Stroustup C++-a:
http://www.kiskapu.hu/index.php?BODY=BookInfo&OP=details&ID=19100

Programozas temaban me'g jo lehet meg ez is (ingyenes ebookok): http://www.janiry.com/bruce-eckel/

hmm. én is az új kiadást linkeltem be :)

c++? az meg mi?:)

egy jo nyelv ideje lenne mar felnonotok

kicsi vagyok még hozzá, ez tény ;-)

postfix (de nem az MTA) inkrementálás
--
unix -- több, mint kód. filozófia.
Life is feudal

A C++-t sem erőltetném :) Csak annak szabad, akinek rengeteg szabadideje van és minden egyes programsor sikeres lefordítása növeli adrenalin szintjét.

--
Kinek nem inge, ne vegye gatyára

Akkor már legyen Ada. Szép, átlátható, logikus nyelv, aki Pascallal kezdett, az sem menekül ki a világból...

A K&R könyv nem igazán jó kezdőnek, inkább referencia mű. A Pethő abC-je is jó, van benne néhány fogalmi zavar, de tanulni sokkal jobb, mint a K&R. Adj egy e-mail címet, aztán küldök néhány anyagot, ha tudsz angolul.

Fuzzyman

nekünk ezt adták, pedig előtte életemben nem láttam C-t :) hát mondjuk nem is lettem expert, de fél év alatt amúgy se esélyes.. :)

a 2. részt nem tudom, hogy nekem szántad-e, de jöhet nekem is, ha ráérsz: bervik citromail hu ; köszi

ez sztem baromsag. enis abbol tanultam es ugytunik idaig h sikerrel ;)

Nálam, ha pesti vagy.

Engem is erdekelne, illetve a Computerbooks adott ki anno egy "Programozzunk C nyelven" c konyvet Benko Tiborne, Benko Laszlo es Toth Bertalan szerzoktol az hasznalhato?

Elég régi könyv, nekem annyira nem jött be. Viszont van egy újabb kiadás "Együtt könnyebb C". Ettől se dobtam hátast, de a végén található órai vázlatok, és gyakorló feladatok szerintem jók.

Koszi akkor vasarlas lesz a vege.

Én abból tanultam. Tehát meg lehet belőle. :)
Annyi gond van vele, hogy Borland C specifikus kissé.
Viszont van benne egy pascal vs C fejezet ami elég hasznos. Feltéve, hogy a Pascal-t ismered.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Egy fentebbi hozzászólásra válaszoltam épp, görgess fel, olvasd el mit írtam, mert szerintem nem éri meg megvenni.

Brian W. Kernighan-Dennis M. Ritchie - A C programozási nyelv

ETO: 519.682 C
ISBN 963 10 6100 0 -> 1. kiadás
ISBN 963 11 9931 8 -> 3. kiadás

Csak hogy a könyvtárban is megtaláld ha az új nincs bent.

Érdemes szétnézni a nagyobb egyetemek karainak honlapjain...
pl.:
BME - Programozás alapjai I-II.
http://www.eet.bme.hu/publications/e_books/progr/

Blog: http://tepsi.extra.hu

És az idei tárgyhonlap:
http://www.eet.bme.hu/%7Epoppe/vieea100/

Én is csak azt tudom javasolni, mint elöttem már mások is: magadtól, könyvek és neten talált leírások/példák segítségével. Ez a legjobb.
- Először egy natúr C alap könyvet, ami bevezet a nyelvezet felépítésébe, működésébe
(sokan szídják Angster Erzsébet irományait, de szerintem használhatóak)
- aztán olyan C++ könyvet, ami jól tárgyalja az objektumokat

Ha már megismerted valamelyest az objektum orientált programozás mibenlétét, javaslom ezt:
Bjarne Stroustrub: A C++ programozási nyelv

(Bjarne Stroustrub... A kimondhatatlanul hülye neve miatt én csak Kimondhatatlanul Hülye Nevű Ficzkónak nevezem.)
Valamit azért tudhat a pacák, mivel ő alkotta a C++ nyelvezetet :-)

Hidd el, többre mész, mint egy főiskolai előadáson. A saját tematikád szerint szárnyalhatsz egyik témáról a másikra, mivel te érzed azt, hogy adott pillanatban mi az, amit meg kell fejteni. Ezáltal te magad állítod össze az infókat kész használható tudássá.

------------------------------------
[Debian Sarge; ASUS P4T533-4; 2.4GHz CPU; 512MB RAM; XFree86; FluxBox]

irjuk mar helyesen: Bjarne Stroustrup

Látod? Még leírni sem könnyű!

------------------------------------
[Debian Sarge; ASUS P4T533-4; 2.4GHz CPU; 512MB RAM; XFree86; FluxBox]

Én csak a C++ apjának hívom. Ezt könnyebb leírni. De néha "a bazi nagy c++ könyv írója" :)

!!!Ne zavarjuk össze a topiknyitót!!!

Egyértelműen C-ről beszél és nem C++-ról. Nem tudom van-e értelme
nekiugrani a C++-nak, ha nem kupálódott ki C-ből! Én azt javaslom,
egyelőre a C-re koncentrálj.

A C++ egy MÁSIK programnyelv.

> Sol omnibus lucet.

siman, lehetoleg a C helyett. :)

mondom ezt C programozokent.

És honnan tudod, hogy milyen dolgo C++-t tanulni a C ismerete
nélkül? Csak úgy kérdezem.
> Sol omnibus lucet.

Jó dolog :)
A C és a C++ más-más programnyelv. A gondolkodásmód is különböző. Ezért inkább ne a C-re alapozza a C++ -t. Pláne ne Pascallal alapozzon C-re. Az megint más gondolkodásmód.
A Kiskapu kiadónak van egy egész jó Linux C könyve. Azzal érdemes kezdeni.
--
unix -- több, mint kód. filozófia.
Life is feudal

Én assemblyvel kezdtem, az után nagyon könnyű volt a C.
Azt átláttam, hogy a C++ NAGYON más, és nem nekem való.
(Azért az átjárás nem lehetetlen.) A topiknyitó C-t akar
tanulni, segítsük őt ebben.

A Pascal szerintem egy általános alap. Eredetileg oktató
nyelv volt, azaz ezen keresztül akarták tanítani a
programozást. Ezért kezdik ezzel mind a mai napig szinte
mindenhol.

Ha nagyon el akarok vonatkoztatni a konkrét dolgoktól,
akkor azt mondom: nem a nyelv a lényeg! Kódolni könnyű.
A mögötte lévő tartalmon van a hangsúly. Vannak persze
nyelvek, amik alkalmasabbak egyik vagy másik feladatra,
biztos nem akarnék pl adatbáziskezelőt írni C-ben.
A lényeg az: megtaláld egy probléma megoldását, és
találd meg a megoldáshoz szükséges megfelelő eszközt IS.

És még egy fontos dolog: a programozás veleje az
időzítés (szinkronizálás). Mindig ezzel van a gond.
Ha papíron megoldottad a szinkronizálást, megoldottad
magát a feladatot is.

> Sol omnibus lucet.

Én assemblyvel kezdtem,

nem viccelsz ;] Anno, a dos-os idokben, egy codeview nevu debuggerben veletlenul megnyomtam az f3-at, az valt at C nezetbol vegyes (C+asm) es/vagy vegytiszta asm ne'zetre es csak ne'ztem hogy mi a fene ez ("pop si", tetszett ;]), aztan megtanultam...

C++ NAGYON más

Ez beza igy van... legalabbis en a c++-ban szinte semmire se tudom hasznalni ~10 e'v C-s tapasztalatait... Pl. amit c-ben megszoksz, hogy fv-pointer, callback-ek, minden vacak, azt c++-ban "nem szokta'k", helyette jonnek (allitolag) ezek a virtual-ok meg egyeb ize'k, amik, ha't, e'g e's fold... pedig jo az a callback.

És még egy fontos dolog: a programozás veleje az
időzítés (szinkronizálás).

Ezmiez?

callbacknek mi koze a virtualhoz? :-)
max a funktoroknak...

#include <iostream>

class B
{
public:
   virtual void operator()(int) const =0;
};



void
func(const B& cb, int i)
{
  cb(i);
}


// ---8<---

class C : public B
{
public:
   void operator()(int k) const  { while (k-->0) { std::cout << "ha"; } std::cout << " :)\n"; }
};


int
main()
{
   func(C(),2);
   return 0;
}

nem tudom, melyikre akartál példát írni, mindenesetre ez pont a funktor.

funktort lehet 1, template-tel 2, virtual methoddal.
callback - funktor - virtual, a kollega azt irta, hogy nincs koze a callback-nek a virtualhoz

attol ez meg funktor. alapbol a virtualhoz SEMMI KOZE, az mas kerdes,
hogy igy is tudod hasznalni...

számítottam erre:)
hogyan helyettesíted a callbacket úgy, hogy nem használhatsz callbacket és templateket sem? muszáj lesz polimorfizmust használnod, nemde?

icallbacknek mi koze a virtualhoz? :-)

hat ezaz ;) Egy OO-ban jartas szakembertol kerdeztem meg egyszer, miutan a callback-ek es a fuggvenypointereket visszaado fuggvenyek "letjogosultsagarol" beszelgettunk, hogy egy olyan klasszikus callback-es peldat, mint rendeze's, hogy csinalnak meg OO-ban. Ugye adott valami kvazi bonyolult algoritmus (quick sort vagy balanced tree-n alapulo sort) aminek barmilyen compare() fuggvenyt atadsz mint callback, es akkor azalapja'n rendez. Es erre mondta, hogy ilyenkor azt csinalja'k, hogy a rendeze's egy osztaly, aminek egyik fv-e (a compare) virtual, az osztaly azt hivogatja rendeze's kozben, de egy adott cucc rendezesenel orokoltetned kell ezt, es peldanyositani a virtualt, immaron a cucc rendezesenek megfelelo compare()-vel.

Blah. El se hiszem hogy fent ezt en irtam, lehet hogy nagy hulyese'g ;] Egyszer majd kiprobalom azert, hatha magamtol is...

A.

avagy a compare egy absztrakt osztaly, amibol szarmaztatjuk a konkret compare-eket, es akkor meg callback-szerubb a dolog...

Vagy, mint a java - definialsz egy Comparable interfeszt es csak azok az objektumok sortolhatoak, amik ezt implementaljak (interfesz az olyan, mint egy teljesen absztrakt osztaly - ezzel "oldja meg" a java a tobbszoros oroklodest).

Amugy ez mar messzebbre mutat: a tervezesi mintak kerdeskorere. Es igen, valoban - az ojjektumorientalt paradigmat megtanulni az sokkal inkabb a tervezesi mintak szerinti gondolkodas elsajatitasat jelenti, es nem a nyelvi elemek (class, virtual, interface, template, akarmi) elsajatitasat... Rengetegen tudnak nagyon szepen strukturaltan programozni ojjektumorientalt nyelveken is... (vesd össze: egy igazi programozó bármilyen nyelven tud fortranban programozni:)

Hát, ez egy megoldás a sok közül.

Az stl pl. nem így csinálja. Egy gyors és könnyű példa:

http://www.sgi.com/tech/stl/Multimap.html

Amúgy én ilyen esetben default-ból template-ekkel csinálnám a dolgot. Ha nem lehet template-ként, akkor vagy azt amit Te írtál, vagy vmi olyasmit, amit linkeltem, vsgy a kettő keverékét. Bár sajnos nem szeretem a C++-template-eket, mert csúnyák, de sajan praktikusak. :(

De a józan ész mindig lehetővé teszi, hogy a legegyszerűbb és legátláthatóbb megoldást programozzuk le. :))))

Még egy megoldás: strategy pattern. Tulajdonképpen a Javas comparator minta is ilyen.

Az assemblyben azt szerettem, ami a hátránya :)
Nem tipusos :) Lehetett is trükközni remekül, amikor az ember magát a kódot módosítgatta futás közben. De ez már a régmúlt :(
BTW én a C felé segítettem a kérdezőt, mert C-s könyvet ajánlottam neki.
--
unix -- több, mint kód. filozófia.
Life is feudal

Jó kis overlay-es gépi kódú programok! Nekem minden
programom 50.000 byte volt. PSP+sajátkönyvtár+overlay
terület+stack. Lehet nevetni.

Amikor megcsináltam a saját C könyvtáraimat (ezeket
használom mind a mai napig!), fogtam az assembly listát
és sorról sorra írtam át C-be. Ezen is lehet nevetni (-::

> Sol omnibus lucet.

A programnyelv szerintem nem az, hogy hogyan néz ki az if, meg a for, hanem a gondolkodásmódját kell megérezni és onnan kezdheted el a programozást. Ezért szerintem pascal és c között nem csak az a különbség, ahogy létrehoz szintaktikailag egy for ciklust. Ezért ég és föld egy c-pascal, vagy egy C-C++ összehasonlítás.
--
unix -- több, mint kód. filozófia.
Life is feudal

A szinkronizálással nem kell törődni, egyszer kell megírni a megfelelő könyvtárat (vagy meglévőt felhasználni), aztán többet nincsen gond vele.

Nem lenne szabad úgy programozni, hogy nem lett előtte legalább vázlatosan (nyelvtől függetlenül!!!) megtervezve. Márpedig sokan - helytenelül - így járnak el, eredmény totál gányolás, és dokumentálatlan, átláthatatlan szemétdomb.

Azt hiszem a szinkronizálás (időzítés) kérdéskörben félre
értjük egymást. Nem baj, majd máskor kitérünk erre is (-::

Tényleg assemblyvel kezdtem. És mikor már javában C-ben
írogattam mindent, még akkor is visszanéztem az assembly
kódot, hogy jól csinálja-e a fordító. Később erről
leszoktam. Azt azért elmondanám még, hogy a fordítók
NAGYON jó kódot készítenek!

> Sol omnibus lucet.

Idézet:
A Pascal szerintem egy általános alap. Eredetileg oktató
nyelv volt, azaz ezen keresztül akarták tanítani a
programozást. Ezért kezdik ezzel mind a mai napig szinte
mindenhol.

Oktató nyelvnek szánták? Szerintem nem. Nem a BASIC-el kevered? Annak a nevében is benne van: Beginners' All-purpose Symbolic Instruction Code.

A wikipedia szerint is:

Idézet:
Initially, Pascal was a language intended to teach students structured programming, and generations of students have "cut their teeth" on Pascal as an introductory language in undergraduate courses.

A BASIC leváltására született, mert a BASIC-kal nehéz volt
(mondjuk ki: majdnem lehetetlen) a struktúra orientál
programozás.

> Sol omnibus lucet.

A BASIC megfelel a szelekció-iteráció-szekvencia szentháromságnak, tehát mondhatjuk, hogy struktúrált nyelv, nem?
--
unix -- több, mint kód. filozófia.
Life is feudal

Mondhatjuk, de nem lesz igaz... egyrészt nem ismer eljárásokat csak szubrutinokat (amiket a sorszám alapján talál meg!), másrészt, bár lehet benne struktúráltan programozni, meglehetősen fárasztó:

1000 IF NOT felt THEN 1050
1001 ... THEN-ág
1049 GOTO 1100

1050 ... ELSE-ág
1100 REMARK IF-vége

(Gondolom most jön valaki, aki megpendíti, hogy ilyen meg amolyan kiterjesztett és továbbfejlesztett BASIC mi mindent tud... kétségtelen, de az nem BASIC, hanem mondjuk "BASIC eredetű, de azzal semmilyen irányban sem kompatibilis programozási nyelv")

Más a szemlélete, de nem mondanám nehezebbnek. Szubrutin meg szerintem eljárásnak tekinthető, de nem akarok vallásháborút!
--
unix -- több, mint kód. filozófia.
Life is feudal

Bár, ha belegondolok, hogy begépelt ezer soron belülre bevinni újjabb 15 sort, az elég nehéz, ha a soreleji sorszámozás nem kellően lazán lett megadva.
Akkor lehet újra sorszámozni az egész programot és nézni, hogy hol lettekk elszva a hivatkozások...
--
unix -- több, mint kód. filozófia.
Life is feudal

A Commodore 64-en a Help+ kiegészítéssel #R 100 újraszámozza a sorokat 100-assával és a goto gosub utasításokat is módosítja az új sorszámra.
De más gépeken BASIC-ekeben is van renumber funkció. Tehát ez nem gond.

Amit elfelejtenek, hogy stack nincs (így lokális változók) a szubrutinokhoz, meg paraméterlista, meg visszatérési érték.
Ezekkel már a rekurzív fv.-ket ki is lőttük.

Melegen gratulálok annak, aki a threadben kicsit feljebb egybevette a pascalt és a basic-et.

Azért, ha valami szisztematikus módszerrel sorszámozol, akkor könnyen megoldható, hogy ne keveredj el. Nem arra találták ki, hogy nagy programokat írj benne (a gépek is kicsik voltak, és kezdő nyelvnek is szánták). Pl. a példádat sokkal áttekinthetőbbé, karbantarthatóbbá teszi, ha úgy írod meg, hogy

10       IF NOT feltétel THEN 1000
20          THEN ág első utasítása
30          THEN ág második utasítása
             ...
989         REM THEN ág vége
990         GOTO 2000
1000     REM IF ág eleje
1010        IF ág első utasítás
1020        IF ág második utasítás
...
1999        REM IF ág vége
2000     REM ENDIF
2010     ...

Persze ezzel is van két baj: az első a sorhosszlimit (bár ez a legtöbb implementációban azért nem 72 karakter volt), a másik, hogy az ilyen szabályok betartásához már kell némi gyakorlat, tehát pont a kezdet kezdetén sz*p az ember ahelyett, hogy sikerélménye lenne.
(A hasonló kellemetlenségek a Fortranban épp emiatt kevésbé voltak zavaróak: azt hosszabb programokhoz, gyakorlottabb programozóknak szánták. De ugyanúgy, ahogy a Fortranból is sorban kiiktatták a Fortran 66 kellemetlenségeit (Fortran 77, Fortan 90, Fortran2003), teljesen továbbfejleszthető lenne a basic is egy struktúrált programozásra tényleg alkalmas, a régivel (nagyjából) felülről kompatibilis nyelvvé.
Azt, hogy a szubrutinok is hozzáférnek a hívó szubrutin változóihoz, tényleg elvetemült ötletnek tűnnik ma, de egy 16K-s gépen még így sem lehetett könnyű egy egészen Fortranszerű nyelv interpreterét megírni.)

ez valóban igaz. Ezt én magam is hasonlóan csináltam húsz évvel ezelőtt.
--
unix -- több, mint kód. filozófia.
Life is feudal

De a topiknyitó direkt C-t írt, és nem C++-ot. Minek ráerőltetni olyat, amit nem is akar?

C++-t a C után tanulni felér egy öngyilkossággal. Kell pár év, mire az ember kiheveri a procedurálisról OO személetre történő váltás okozta traumát.

Komolyra fordítva a szót: aki C-ben kezd, az nagyon nehezen alkalmazkodik a C++ által elvárt gondolkodáshoz. Lényegében továbbra is C-ben programozik, csak pl. gcc helyett g++-t fog írni, és egy-két apróság miatt már nem fordulna le sima C fordítóval. Egyszerűen nem éri meg.

Na, pont ez az!
--
unix -- több, mint kód. filozófia.
Life is feudal

Ha Unix közeli környezetben akarsz tanulni, akkor.
http://www.kiskapu.hu/index.php?BODY=BookInfo&OP=details&ID=52091&VISIT=1

Nem akartam új topikot nyitni és lehet, hogy láma kérdés. De tud valaki olyasmi függvényreferenciát mit ez http://hu2.php.net/manual/hu/funcref.php persze C-ben?

Ha UNIX-od van, akkor a "info libc" vagy "tkinfo libc" parancsot kell használnod. Ha Windows-od, akkor valószínűleg az F1-gomb megnyomása a megoldás.

Egyetemi emlékeim alapján ez a 2oldalas cuccos elég mindenhez:)

http://semper.tmit.bme.hu/util/stdc.ps

(najó, posix threading nincs rajta, de az úgyis mélyvíz)

barmilyenlinux:/usr/share/man/man[23]/*

elobbi (man2): rendszerfuggvenyek (alacsonyszintu file i/o, socket-ek, rendszerhivasok, multitaszk, netinet fuggvenyek, kb. ~300 fuggveny es makro van itt, kvazi minden telepitesnel)
utobbi (man3): magasabbszintu konyvtari fuggvenyek (printf, kettes szintu file i/o, stringkezeles, memoriakezeles es az osszes API referencia is idekerul/ gyk. libakarmi-dev dokumentacioi/, nalam kb. ~3000 fv van itt).

A.

helló

Én ebből a könyvből tanultam nem is olyan régen:
Dennis Ritchie - Brian W. Kernighan: A C programozási nyelv
Itt le tudod tölteni:
http://www.windowsceportal.hu/tartalom/ekonyvek/cpl_hu.zip

Ugyanakkor megvenni sem árt, kb~1500huf.

"Ha már megismerted valamelyest az objektum orientált programozás mibenlétét, javaslom ezt:"

Mi az az objektum?!
Én még úgy tudom, hogy annak a folyosóját mostuk bakaruhában! :D :D

El magyarázná valaki, magyarul?!(érthetően)

Meg azt hogy miért, akarja némely "ismertető" anyag
"lerajzolni"(szemlélteni, vagy inkább összezavarni?!) a szilicium chipben a verem helyét és szegletét, meg az "exe" fájl helyét?

Ki az, aki megtudja mondani?

Ez, színvonalában arra emlékeztet, amikor egyik alkoholista (katonai) vezetőm, le akarta rajzolni hogy nyöszörög a magnóba a .
Ez a füllentős katona szemléltetése akart lenni! :D

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

Nem válaszol senki? :(

Jó tudom hogy nektek hülyeség, de nekem nem az! :)
Mer pl "ojjektum" kifejezésre más asszociáció van bennem.
Nem lehet valahogy olyan kif.-seket használni amivel nem az erdőbe vezetik a rosszul asszociáló emberkét?!
Lehet röhögni is, de akkor sem értem! :D

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

Nem, nem hulyeseg a kerdes... Nekem is egy kicsit furcsa hogy minden OO konyv olyan kaliberu peldakkal jon, van az "emberek" osztaly es akkor azonbelul a "ffi" meg a "no" meg a postas meg a vasutas, meg egyebek... Hat, hogy effele peldak meg absztrakciok a gyakorlatban (najo az en gyakorlatomban) mikor jonnek elo", az jo kerdes... Az "OO terveze's" tematikaju konyvek meg tulontul elvontak...

Értem én hogy villanymotor, de mi hajtja!?
A villanymotor egy objetum. Amit hajt, az is. Ami hajtja, az is. ;)

mit tudsz? miért nem érted?

mondjuk ezt érted?:
Az objektum egy osztály egy példánya.
Pl. Ha vannak emberek, ezeknek van keze-lába, és tudnak trollkodni, akkor Pistike -aki az emberek egy példánya- tud trollkodni.
Jelen esetben az objektum Pistike, az emberek pedig mint osztály szerepelt.

Még egyszer.
Szóval "ojjektum != osztály" vagy "ojjektum == pistike"?

De hogy kerül ide az osztály?

"mondjuk ezt érted?:"
Már nem. :D

"Az objektum egy osztály egy példánya."
Az osztály jelentése? (asszociáció)

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

ld. lentebb, helloworld pelda, inkabb ott beszeljuk meg

'osztály' és 'objektum' úgy viszonyul egymáshoz, mint 'könyv' és 'A Kisherceg'.

/* Egye fene, ha offolunk akkor en is beszalok. :-) */

Teljesen jogos egyebkent a felvetesed, az IT-ben (is) az elnevezesek okozzak a legtobb problemat kezdoknek mire megertenek egy-egy temat.

Ha mar oop-nal vagyunk miert ne hozhatnank fel a "method"-ot (modszer), aminek egyebkent semmi koze semmifele modszerhez, mintsem inkabb egy algoritmus logikai leirasat valositja meg egy osztalyon belul.

Aztan "shell" (he'j). 30 evvel ezelott meg megallhatta a helyet, de ma mar szinte minden client-server megoldasnal hivhatnank a kliensoldalt ugyanigy.

Aztan "file". (akta, reszelo) Ugyanezzel a logikaval az osszes adatbazis sort/mezot is hivhatnank ugyanigy, lehetne gyartani okokat is.

Aztan a unixos baromsagokrol mar nem is beszelve, az egy kesz agyrem: cat (macska), nice (kedves, aranyos), daemon (de'mon), skeleton (csontvaz).

Meg szebb amikor ezeket a dolgokat leforditjak mas nyelvekre is, raadasul sokszor rosszul. :-(

Az egyik kedvencem az az oop-ben az "overload" fogalma magyaritva: tultoltes. Az angolban meg ugy-ahogy megallja a helyet, de a magyarban mar messze felrevezeto. Ehelyett nyugodtan lehetett volna "(parameter/argumentum)utantoltes"-nek forditani.

stb.


Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.

Na, a cat-nek semmi köze a macskához :-) "concatenate"

a cat bővítéséből született a dog: url-eket is ki tud írni. Ennek sincs köze a kutyához gondolom...

Annak csak annyi köze van a kutyához, hogy akik írták, ők is macskának nézték a cat-et.

Vilagos, de akkor is hulyen nez ki. :-)


Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.

"az "overload" fogalma magyaritva: tultoltes"

Magyarul pedig túlterhelés. Nekem legalábbis így tanították. A túltöltésnél minden esetre több értelme van.

En tultoltest olvastam vhol, mindenesetre elhiszem. :-)
En azert az "utantoltes"-nel maradnek. /* Pl.: utantoltok ujabb metodusokat, melyek mas argumentumlistaval rendelkeznek, vagy esetenkent uj argumentumokat toltok a meglevok utan. */


Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.

A magyar szaknyelv a "túlterhelés"-t használja, abból a
megfontolásból, hogy pl egy fv nevet többszörösen is
felhasználhatsz tehát maga a NÉV van túlterhelve.

(őszintén: minek két féle függvényre ugyanazt a nevet
használni? Marha szar lehet az ilyen kódot trappelni.)

> Sol omnibus lucet.

Jó az overloading, mert rugalmas kódot tesz lehetővé. A neve meg tök mindegy, hogy mennyire értelmes. Ha van jobb ötlet, felőlem az is lehet a hivatalos mostantól, de mondhatjuk mákostésztának is :) Ilyen alapon a compiler helyett mondhatnánk convertert is, nem? :)
--
unix -- több, mint kód. filozófia.
Life is feudal

itt a hupon rengeteg szakerto van
toluk batran
aztan gyorsan kezdjel neki linux kernelbe kodot kommitolni
koszike
--
"en csak hupot olvasok" al3x
http://litch.eu/blog

"itt a hupon rengeteg szakerto van
toluk batran
aztan gyorsan kezdjel neki linux kernelbe kodot kommitolni
koszike"

Hááát, aki elmagyarázza hogy a klasszikus példában,
"Hello World" Hol az ojjjektum.......?

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

haha, oop hello world, tessek:

a hello_world egy objektum, van egy - maradva a c-nel - char* adattagja, ami a "hello world" stringre mutat. a hello_world a greetings osztalyba tartozik, aminek van egy print metodusa. ez a print annyit tartalmaz, hogy kiirja a kepernyore a char* altal mutatott stringet.

a fentebbi char*-os megoldassal c++-ban

#include <stdio.h>

class greetings
{
public:
   greetings(char*);   // ezek itt a deklaraciok
   void print(); 
private:
   char* ptr;          // olyan mint egy struct, lenyegeben.
};

greetings::greetings(char* _ptr)
{
  ptr=_ptr;
}

void
greetings::print()
{
  printf("%s\n", ptr);
}

int main()
{
   greetings   hello_world("hello world");
   hello_world.print();
   return 0;
}

--

ugyanez igy nez c-ben, ha oop-ot akarunk mimelni:

#include <stdio.h>

struct greetings
{
    char* ptr;
};

void
greetings_ctor(struct greetings* this, char* _ptr)
{
        this->ptr=_ptr;
}

void
greetings_print(struct greetings* this)
{
        printf("%s\n",this->ptr);
}

int main()
{
        struct greetings        hello_world;
        greetings_ctor(&hello_world, "hello world");
        greetings_print(&hello_world);
        return 0;
}

dereng mar a dolog?

b+! Ha példát írsz, akkor normálisat, ne C-gányt!

#include <iostream>
#include <string>

using namespace std;

class greetings
{
public:
   greetings(const string&);   // ezek itt a deklaraciok
   void print(); 
private:
   std::string str;
};

greetings::greetings(const string& _str)
{
  str = _str;
}

void
greetings::print()
{
  cout << str << endl;
}

int main()
{
   greetings   hello_world("hello world");
   hello_world.print();
   return 0;
}

Már printf() -is hiba, nem az a lényeg.
cin/cout állítólag lassú :) , use puts() :)
És majd jönnek a trollok kik azt mondjak a using namespace az ördög műve.

Fun: http://www.icarus.net/johnjo/evolutio.htm

A puts túl lassú. Ott a write(2) :P

Asm böl is meg lehet hívni, az még jobb :)
eax=4, int 0x80
------
gentóhuszár

:D

ne basszatok már fel, felteszem hogy a kollega tud c-ben, ezert kevertem a ket nyelvet, comprende?

szerk.: ráadásul két példa volt, a hasonló részekbe tud kapaszkodni egy c-t ismerő ember, vagy szeretned ha a c-s peldaban a stream operatorok is meg lennenek irva?

Onnan látszik, hogy nem c++ programozó vagy, hogy a string-et nem const referenciával adtad át. :))

Ja, és a mutató másolása is kicsit furi.

Ez egy olyan C++ kód, amin látszik, hogy C programozó írta :)
--
unix -- több, mint kód. filozófia.
Life is feudal

lásd fentebb, te se basszál fel.

Lazuljmá! Senki nem bántott oké? :)
Pere László (Kiskapu kiadó) Prog* C nyelven könyvét tudnám javasolni a t. indítójának. Többet nemtokmondani, kéremkapcsojjaki!
--
unix -- több, mint kód. filozófia.
Life is feudal

kurvanyugos vagyok ma sorry :(

Oké! Nincs problem! :)
--
unix -- több, mint kód. filozófia.
Life is feudal

" a hello_world egy objektum, van egy - maradva a c-nel - char* adattagja, ami a "hello world" stringre mutat. a hello_world a greetings osztalyba tartozik, aminek van egy print metodusa. ez a print annyit tartalmaz, hogy kiirja a kepernyore a char* altal mutatott stringet."

Lassaban nem lehetne? :(

"dereng mar a dolog?"

úgy látszik menthetetlen vagyok.

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

forumtopicban kurvanehez magyarazni azahelyzet.. kontakt me on irc @ freenode, imp_ a nevem ha meg nem leptem ki..

..mar kileptem, de ilyen kihivast ritkan talal az ember, szoval irj emailt hupon keresztul, es kontaktoljunk irc-n/im-en(==msn).

"forumtopicban kurvanehez magyarazni"

Inkább az gondom hogy hiába olvasom a könyveket, netről letöltött doksikat, nem világosodik itt belül! :D
Ezek úgy szólnak, minha kész programozó zseni lenne
a kezdő(zöldfülű). :)

"Tehát az osztály az egy adatstruktúra + a kezeléséhez szükséges programrészletek gyűjteménye, ennek egy példánya az objektum."

Ezt mire feldolgozom........! :)

"+ a kezeléséhez szükséges programrészletek"

Ezek a header-ek?
Bocs ha hülye kérdés! :D

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

Nem a headerek, hanem a függvénymezők. A példában: az adat, az maga az üznet. A kezeléséhez szükséges programrészlet: a kiíratás. Persze ez csak egy példa, ilyen egyszerű feladatra nem érdemes használni. De pl. ha racionális számokkal kell valamit számolnod, akkor:
Adatmezők:
számláló, nevező (egészek), ezek védettek lehetnek (ne lehessen elrontani a törtet, pl 27/0)
Konstruktorok:
létrehozás (másolással, inicializálatlanul, két egészből, stb.)
Operátorok:
*,/ (tört szorzása, osztása törttel, egésszel)
=
<< (kiíratás streamre)
>> (beolvasás)
Függvénymezők:
számláló_kiolvasás() (publikus)
nevező_kiolvasás() (publikus)
egyszerűsítés (lehet rejtett, a műveletek használják)
Ekkor ez egy osztály, és ha azt mondod, hogy

...
racionalis a(3,2);
...

Akkor a egy a racionális osztályba tartozó objektum (egy racionális szám), értéke 3/2.

Még valami, egy jó C++ könyv: Koenig-Moo: Accelerated C++
Épp az az előnye, hogy nem akar először megtanítani C-ben programozni, hanem rögtön OOP szemléletet tanít.

azert mondom, mert ahhoz hogy el tudjam magyarazni, ahhoz tudnom kell, hogy milyen fogalmakkal vagy tisztaban, mit ertesz meg, ezt pedig ugy fogom megtudni, ha rovid kerdeseket teszek fel magyarazas kozben, amikkel igazan nem akarom szetbaszni a forumot.

Ha jol emlekszem az objektum fogalma erdekel. Mivel az ember altalaban vizualisan gondolkodik, megprobalom illusztralni hasonlokeppen. Remelem sikerulni fog. :-) Atfutottama fenti thread-eket, ha jol vettem ki akkor proceduralis nyelveket mar lattal.

Meg mielott beleszaladnek az objektum fogalmaba, eloszor vesezzuk ki a class (osztaly) fogalmat.

Kepzelj el egy tablazatot, ahol a tablazat minden oszlopa egy kulon adatot kepvisel. Egy tablazatba tesszuk oket mert ezek az adatok kesobb kapcsolodnak egymashoz valamilyen logika szerint.

Nezzunk ra egy egyszeru vizualis peldat:

1. Pelda

Osztaly = DolgozokTablazata
Mezok: "Nev" "SzuletesiIdo" "SzuletesiHely" "Lakcim" "Fizetes"

Lathato, hogy a fentiek mind adatmezok, amelyek majd egymassal kapcsolatban levo valos adatokat fognak tartalmazni.

Nezzunk ra egy masik vizualis peldat, ezuttal valodi adatokkal:

2. Pelda

DolgozokTablazataValodiAdatokkal
Objektum1 = "Gipsz Jakab" "1949-02-03" "Budapest" "Aknamezo utca 8." "50000"
Objektum2 = "Jakabovics Gizimari" "1969-07-09" "Paks" "Kekmezo ter 3." "60000"

Tehat, az adatstrukturat, a tarolasi logikat az osztaly (class) irja le, az objektum pedig mar az ezzel a modszerrel tarolt valos adat lesz.

A fentiekben csak az adatokkal foglalkoztunk - mint jellemzo - , ezeket az oop-ban mezoknek (field) hivjuk.

Mint mindenhol itt is szuksegunk lehet algoritmusokra. Pl, ha szeretnenk elore kiszamolni a dolgozok eves szabadsagat, tudnunk kell hozza az eletkorat (Szerk: ez nemtom Mo-n hogy van, lehet, hogy egyseges minden eletkorra). Ezt az algoritmust esszeruen valahova olyan helyre kelle tenni aminek koze van a fenti mezokhoz. Hova tennek mashova, mint ezt is ugyanabba az osztalyba, hiszen a vegen, a kiszamolt szabadsagot is illene tarolnunk valahol, ez pedig egyebkent is kapcsolodik minden dolgozohoz.

Az egyes peldank igy fog alakulni:

3. Pelda

Osztaly = DolgozokTablazata
Mezok: "Nev" "SzuletesiIdo" "SzuletesiHely" "Lakcim" "Fizetes"
Metodusok:

"GetEletkor"
{
VisszateroErtek = MaiDatum() - SzuletesiIdo;
}

Tovabbfejesztettuk az osztalyunkat, most mar kepes megmondani a dolgozo eletkorat is. Viszont esszeru lenne ezt eltarolni, hogy kesobb ne kelljen minden alkalommal ujraszamolni (tiz dolgozonal ez az adat nem tetel, de bonyolultabb feladatoknal + 100000 dolgozonal mar lehet).

Celszeru ezt akkor elvegezni, amikor felvisszuk az uj dolgozot.

4. Pelda

Osztaly = DolgozokTablazata
Mezok: "Nev" "SzuletesiIdo" "SzuletesiHely" "Lakcim" "Fizetes" "Eletkor"
Metodusok:

"GetEletkor()"
{
VisszateroErtek = MaiDatum() - SzuletesiIdo;
}

"TaroldElAzUjDolgozot()"
{
Eletkor = GetEletkor();
UjDolgozoTarolasa();
}

Tehat osszegezzunk:
Az osztaly az, ami meghatarozza a tarolasi strukturat, illetve egyuttal a adatkezeleshez szukseg logikat is hordozza magaval.

Az objektum az maga a valos adat az osztaly altal meghatarozott szabalyok szerint. Ebbol annyi peldanyt hozunk letre ahanyszor tarolni akarunk az osztaly altal meghatarozott formaban. (Vagyis ahany dolgozonk van).

Az osztalyon belul mezo tartalmaz egy-egy adatot. Pongyolan fogalmazva valtozo. (nem helyes a "valtozo" kifejezes, de igy erthetobbe valik a feladatkore)

A metodus az osztalyban definialt olyan algoritmus, mely az adatok - rendszerint belso - kezeleset valositja meg.

Hat diohejban ennyi. ;-)

/* Trollereknek elore leszogeznem, hogy tisztaban vagyok vele, hogy a fenti peldat a valosagban nem igy hasznaljuk, es azzal is, hogy a szintaktikai abrazolast most improvizaltam. Kotekedjenek inkabb egy vodor Palmatex-szel, az pont arra valo! */


Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.

Itt a "greeting" egy osztály. Ez megadja, hogy egy üdvözlethez mi tartozik: kiíratás és egy adatmező, amiben az üdvözlő szöveget tárolod, meg egy-két technikai részlet, pl. egy konstruktor, amivel létrehozol egy üdvözletet (belerakod az üdvözlő szöveget).
Ennek egy példánya a hello_world objektum: ez az üdvözlet osztályba tartozik (van benne üzenet, és kiíratás), és a "Hello Word!" string-et tartalmazza.
Lehetne még egy objektumod:

...
greetings mryxmas("Merry Christmas!");
mryxmas.print();
...

Az objektum létrehozásakor lefut a konstruktor, beállítja a ptr értékét. Utána egy tagfüggvényét használjuk ennek a kiíratására.

Tehát az osztály az egy adatstruktúra + a kezeléséhez szükséges programrészletek gyűjteménye, ennek egy példánya az objektum.

OFF-on
Elég parázs zsongás alakult ki, hogy C meg inkább C++ vagy egyiket igen másikat ne, meg mit mi után.

Szerintem igenis fontos, hogy a C-t tanulja meg az ember előbb alaposan és azután kezdjen el C++-ban próbálkozni. Éspedig azért, mert a C tanulása során elég jól el lehet sajátítani az alapvető nyelvi lehetőségeket, amelyeknek a C++-ban történő felhasználásának a háttere jobban érthetővé válik.

Mindkét nyelvnek (C,C++) vannak alőnyös és kevésbé előnyös dolgai. Attól függően, hogy mi a cél, lehet egyiket, vagy másikat használni. Alkalmasságukat egy adott feladatra szerintem elsősorban nem az effektív lehetőségeik alapján, hanem a feladat mérete, összetettsége alapján lehet meghatározni. Az meg tuti biztos, hogy aki nulláról elkezd C++-t használni, előbb utóbb olyan alapvető problémákon fog fönnakadni és helybentopizni, amelyeket egy alapos C előtanulmánnyal könnyebben lehet venni.

Értem ezalatt a különféle fogalmak fordítási és futásidőbeni létezését, az automatikus és dinamikus tárkezelés problematikáját, pointerkezelést, típusok megértését, inicializását stbstb.
Amíg ezekkel a dolgokkal nincsen tisztában valaki, addig felesleges találkoznia olyannal, hogy konstruktor, meg osztály, meg virtuális függvény.

Szerintem a legtöbb problémát a következetes konvenciók nélküli durbelebumm stílusó programozás jelenti. C-ben alapvetően a pointeraritmetika, meg a kapcsolódó dinamikus tárkezelés és a pointerek inicializálásának dolgai jelentik a fő témát. Ezeket ha valaki jól abszolválja, akkor lehet továbblépni. Addig csak bizonytalan alapokra történő építkezésről beszélhetünk.

OFF-off

Visszatérve a topic témájára, valamilyen olyan könyv(ek) olvasgatása segíthet, amelyek fejlesztőezköz független módon írják le a dolgokat, tehát nem Visual Studio tutorialok, vagy Turbo C, vagy C++ Builder szájízzel öntik a dolgot, hanem magát nyelvet, annak lehetőségeit mutatják meg.

Előzőekben többen is ajánlottak igen jó könyveket. Én anno a Pethő véle C programozási könyvet használtam, meg ami elérhető volt, de sajnos magyar nyelven igen kevés jó anyag volt. Ma más a helyzet.

A K&R C könyvet kezdőknek nem ajánlanám, mert eléggé szőkszavú és nem utolsó sorban kissé elhaladt felette az idő, mivel a C++ fejlődése sok helyen visszahatott a C szabványosulására is.

A Gábor Dénesen használják még azt hiszem most is a C/C++ programozás könyvet, aminek a C-s részét volt szerencsém elkövetni, a C++-osra meg volt szerencsém nemtudni időt szakítani megírni. Szerintem kezdőknek ez a könyv elég tömör és lényegretörő. Nem referencia kézikönyv, azt akárhol lehet találni.

Szerintem ásd elő ezt, vagy ha nem elérhető már, akkor küldök neked egy verziót belöle, ha kell és adsz egy emilcímet.

Üdv,
t

Még annyi, hogy C++-ilag meg mindenkinek tudom ajánlani a "Design and Evolution of C++" Bjarne Stroustrup.

Ebből sokmindent meg lehet tudni a C++ létrehozásának miértjeiről és igen jól le vannak írva benne, hogy egyes nyelvi tulajdonságok mögött milyen fizikai kényszerek vannak, milyen dolgokat kellett mérlegelni, hogy így, vagy úgy valósítsanak meg dolgokat a C++-ban.

Szerintem a C++ programozási nyelv mellett alapkönyv.

Jó tipp, köszi! :) Megpróbálok utána nézni, hogy honnan lehetne beszerezni.
--
unix -- több, mint kód. filozófia.
Life is feudal

Ez egy jó kis vallásháború lett :)
Szerintem tanuljon C-t, ha azt akar. Erre meg már mondtam, hogy Pere László C-könyve is jó. Az legalább Linuxra is jó és olyan dolgokat is elmagyaráz, amit a ComputerBooks C- könyve meg se említ. De IMHO C++ előtt C-t tanulni holtvágány. Vagy vállalni kell azt, hogy jó sok energiával előbb kigyógyul a C-ből és átáll az agya a C++ ra.
--
unix -- több, mint kód. filozófia.
Life is feudal

"De IMHO C++ előtt C-t tanulni holtvágány. Vagy vállalni kell azt, hogy jó sok energiával előbb kigyógyul a C-ből és átáll az agya a C++ ra."

Épp ezt próbáltam (lehet, hogy nem sikerrel, de) megvilágítani, hogy a C-ből éppenhogy egyenes átmenet van a C++-ba, nem pedig kidobott idő a C. Aki mégis ezt gondolja annak a fentebbi témakörök tekintetében a nem alapos ismeretek miatt rossz programozási beidegződései, szokásai vannak, voltak, amelyeket "a C++-hoz le kell vetni". Elismerem, hogy ez nagy szivacs, de nem amiatt, mert a C ilyen vagy olyan.

Komolyan érdemes a fentebb emlegetett Strustrup könyvet elolvasni. Olyan dolgokat tud meg az ember belőle, amitől kissé a "hitvilága" is megváltaozhat. Ajánlom mindenkinek.

Üdv,
t

Megrendeltem az említett könyvet. Sajnos 4-6 hét alatt jön meg :(
Kinéztem magamnak egy PYTHON könyvet. Az sincs raktáron :(
Ehh! Mind1! Majd lesz belőle, oszt majd akkor veszek...
Az, hogy C++ előtt kell-e C-t tanulni...?
Nemtom. Szerintem nem. Nem az az érdekes, hogy pölö egy for ciklus kinézete ugyanolyan C++ alatt, mint C-ben. Ez tök lényegtelen. A lényeg az, hogy karaktertömböt az ember használjon C-ben, de C++ alatt erre van más megoldás, ami C++ osabb. Ha C-tanulással beidegződik a * char, vagy char[], akkor tudatosan kell törekedni arra, hogy az ember megtanulja, hogy van más is C++ -ban arra a problémára, amit addig C alatt így oldott meg. Ez a nem mind1 szerintem.
Az, ha a C-ben mexokott char[] -t használod C++ nyelven, az olyan, mintha a számítógépedet, netedet csak arra használnád, hogy kinyomtasd a leveled és borítékba téve elgyalogolj a postára, hogy eljuttasd a haverodnak ahelyett, hogy e-mailt küldenél. Meg lehet oldani így is, de nem elég elegáns, nem a lehetőségekhez alkalmazkodó megoldás.
--
unix -- több, mint kód. filozófia.
Life is feudal

"Az, ha a C-ben mexokott char[] -t használod C++ nyelven, az olyan, mintha a számítógépedet, netedet csak arra használnád ..."

Nem értek egyet ezzel. Ismét jelezném, hogy feladata válogatja. Ha úgy tetszik C-ben is lehet dolgokat sokféleképpen megoldani. Az hogy a C++ ehhez még hozzárak néhány szabadságfokot, az egy dolog.
Mondjuk például parser írás során a vicinális, nagymennyiségű, bugyuta, de bolondbiztos, gyors feldolgozó funkciókat tutira C-s karaktertömb kezeléssel érdemes csinálni. Ezek után meg ha fel lett olvasva a dolog, akkor az intelligenciát a reportoláshoz, konverzióhoz lehet nyomni C++ módon. A minap épp egy hasonló feladatom volt.

Ezen túlmenően meg, ha nagyobb rendszert fejleszt az ember, ráadásul keresztplatformosan, akkor meg minél inkább a lelkivilágáig le kell menni a C++-nak, azaz saját típusok, opertátorok overloadolva (a new is, alatta saját memmanagerrel). Az alját itt "igénytelen" C-ben csinálja az ember. Volt szerencsém CAD-es rendszerfejlesztéshez, ahol ez elengedhetetlen volt. És én lepődtem meg a legjobban, hogy C-s pofával meg C++-os pofával is meg lehet valósítani szinte ugyanazt hasonló eredménnyel.

:)

Jó, én ezt elfogadom! Akkor én tudtam rosszul, de annyit azért kimondtál, hogy C-ben csináltad az alját :) Azaz bár C++ fordítóval etetted meg a kódot, de C-kódot alkalmaztál :) OK! Nem kekeckedek! :)
Akkor is: Pere László C-könyve rulez! :)
--
unix -- több, mint kód. filozófia.
Life is feudal

Én is kekeckedek :)

todomásom szerint a char, a char* és a char[] is része a C++-nak. Sőőőőt a void és a void* is. :)

Ahogyan a DVD meghajtó is olvassa a CD lemezeket :)
--
unix -- több, mint kód. filozófia.
Life is feudal

Strustrup=Stroustrup

:))

Kernighan & Ritchie könyvet letöltöttem, mos ezen rágom magam át.
Első átfutásra ígéretesnek látszik.
Majd a példa feladatoknál jövök megint a hülye kérdésekkel! :D :D
Most az alapos olvasásnál tartok.

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

k&r c könyv. ~2k huf, nemrég vettem meg, újra kiadták. itt-ott elektronikusan is hozzá lehet jutni. a többi nem olyan jó. ezután érdemes elolvasi Pethő gnu/linux unix c programozását. betekintést ad a gnu libc ezköztárába. ezt e kiskapu adta ki. jó tanulást!

(flamebait)
(oop-t meg szerintem ne erőltessed, ha nem ebből akarsz megélni, ha meg igen, akkor ógyis kell a papír)
(/flamebait)

Pethő? Nem Pere László?
--
unix -- több, mint kód. filozófia.
Life is feudal

de. este volt.

Szerintem tanulj meg eloszor assemblyben programozni, utana mar konnyu lesz a C.
(az assembly meg ugyis jon, ha sokat pascalozol, mert ott szinte mindent csak asm betetekkel lehet megoldani).

A'rpi

+1

------
gentóhuszár

szerintem asm teljesen felesleges, ha az ember nem akar
forditoprogramot tervezni.

C/C++ tudas boven jo sokmindenre.. :)

Meg Reverse Engineeringelni :^P~
______________________________________________________________________
"ONE OF THESE DAYS I'M GONNA CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"

+1
Szerintem is, a magasabb szintű nyelv használatának megvan az az előnye, hogy az _algoritmust_ és az _adatstruktúráidat_ fogod optimalizálni, és nem a MOV-ok és JMP-k számát.
Szerintem ma már csak nagyon speciális feladatok esetén van szükség arra, hogy az ember asm szinten optimalizálgasson, akkor is csak egy-egy függvény egy-egy legbelső ciklusmagját. ezt pedig legjobban akkor tudod megtenni, ha már van egy működő programod, és felméred, hogy mivel megy el benne az idő, megvizsgálod, hogy a lehető legjobb algoritmust használod-e, a lehető legjobb módon tárolod-e az adatokat, és ha ez még mind nem volt elég a kívánt sebességhez, akkor egy-egy részletet átteszel ASM-be.
(Ld. D.E. Knuth és E. W. Dijkstra véleményét az optimalizálásról: "Az idő előtti optimalizálás minden rossz forrása." Ez persze nem jelenti azt, hogy ha már megvan a program, [b]helyesen múködik[b], és tudod, hol telik el az idő, akkor ne lehetne szükség esetén assembly részeket beleépíteni.)
Az viszont szerintem nem kerülhető el, hogy azért valamilyen (MIX-szerű) gép belső működésével, az adatok tárolásának a módjával, a számábrázolás módjával és korlátaival tisztában legyél.

Az eredeti kérdés, hogy hol és miből tanulj meg programozni C-ben?
Otthon, a Kernihghan Ritchie féle zöld könyvből. Ha C kell, akkor ne assemblyt és ne Pascalt tanulj. A C++ persze mindenképpen kelleni fog.

Ha ram halgatsz ne c-t akarjal tanulni inkabb problj meg gondolkozni. A nyelv csak eszkoz ha mindig a leguljabb dolgokat koveted es a kodokat nezed csak bele zavarotsz. En anno ebbol tanultam
"Programming Role-playing Games With DirectX - fly.pdf" es meg volt 1 ami az adatszerkezetekrol es algoritmusokrol szolt.
Mellesleg foiskolaval nagy eselyed van elfelejteni gondolkodni.

És meditálni.

Szegeden februárban vagy márciusban indul gyorstalpaló tanfolyam. Bővebb infó: http://particio.com

Aki küldött emilcímet annak elküldtem egy példányt PDF-ben a munkásságomról.

Szerintem eloszor magaddal tisztazd, hogy mire szeretned "hasznalni" a programozas tudasodat? Tudom, ez elsore hulyen hangzik de, alapvetoen harom teljesen kulon agat latok:

- desktop programok. Itt szinte biztos, hogy OOP fejlesztoeszkozokkel tudsz csak boldogulni. (Persze sokan felhorkannak, hogy lehet C-ben is desktop programot irni, de ez olyan, hogy a versenyautoval is lehet "utcaiautokazni" es utcai autoval is lehet versenypalyan hajtani, egyik sem tul celravezeto)

- hardware kozeli programozas. Linux kernel, celgepek, gadgetek programozasa. Itt egy darabig az OOP meg nem rug labdaba, mert egyszeruen "nem fer el". Ez a C igazi nagypalyaja.

- server oldali kiszolgalo programok. Itt nagyreszt a Java ill. php dominal, bar lattam C-ben es Delphi-ben irt retteneteket is:). A Java OOP a vegtelensegig, meg az int-nek is van Objektum megfeleloje :). A php meg az ami, itt nem szeretnek vitat nyitni :)

Jomagam, Z80 Asm-mel es Turbo Pascal-lal kezdtem, majd Delphi es Java kovetkezett. Ezutan jottek C like nyelvek, C, Perl, Awk stb. Igy utolag a Pascal zsakutca volt, nagyon nem illik a kepbe.

Szereny velemenyem szerint az asm mar a mult, nehany even belul a microcontroller-ekbol is ki fog szorulni. Nem volt rossz az asm gondolkodas a C megertesehez (pointer, pointeraritmetika), de ezert ne ugorj bele :)

A javaban azert van az intnek is objektum-megfelelje, mert tisztan objektumorientalt nyelv, itt nem tudod keverni a strukturalt kodot az objektumorientalttal, mint Pascalban vagy C++-ban. Szal sztem ez nem megmosolyogni valo. Mindenesetre van, amikor nem hatekony. De hat tudjuk jol, elagazas, ciklus, szerkvencia segitsegevel minden megvalosithato. :D

En egyaltalan nem mosolygok rajta, olyannyira, hogy nagyon is elvezem a Java alatti programozast. Szerintem (es ez a szigoru maganvelemenyem) sokkal jobb es kenyelmesebb, mint c++-ban programozni. Sokkal atgondoltabb a felepitese.
Nemregiben egy epuletgepesz hallgato (aki c++-ban programoz) kerdezte, miben jobb a Java mint a C++, azt valaszoltam neki:
Regen a futesszereles csak hegesztessel keszult, mara sokkal hatekonyabban hegesztes nelkul is lehet csinalni.

Sziasztok!

Nagyon szépen köszönöm a segítséget és a sok hasznos linket! Úgy látom az olvasások alapján jó kis témát sikerült feldobnom :)
Azért esett a választásom a C-re, kernel driver modulokat szeretnék írni, külső, saját gyártású perifériák kezelésére. Bár ez még csak 1 álom, meglátjuk meddig jutok.
Már csak azt kellene eldöntenem, melyik disztrót használjam...

Köszönöm mégegyszer a sok hozzászólást, és bocs a kései reakcióért. Eddig nem voltam olyan hosszú ideig netközelben, hogy érdemben végig tudjam olvasni a hozzászólásokat.

Köszönettel Gábor

Mivel temaba vag es nem akartam uj topicot nyitni, ezert ide teszem fel a kerdesemet:
Szeretnem melyebben megismerni a C nyelvet, peldaul, hogy a program honnan tudja, hogy egy tombnek hany eleme van. Viszont nem talaltam meg azt a konyvet, amely kello melysegben mutatja be a nyelvet a standard ismeretek mellett.
Nos, lehet, hoyg ratalaltam az igazira, viszont - mivel nem birom fizikailag kezbefogni, atlapozni - nem tudok rola tul sokat.

Stephen G. Kochan - Programfejlesztes C nyelven

Meg van-e valakinek ez a konyv, es ha igen, tudna-e rola nyilatkozni? Peldaul, hogy:
* tartalmazza-e a standard konyvtari fuggvenyek peldakkal bemutatott hasznalatat
* maguknak a konyvtaraknak a leirasat (melyik fuggvenyeket tartalmazzak)
* a 'felszines' tudas mellett bemutatja-e a hatterben zajlo folyamatokat is
* ...

A masik, amire faj a fogam:

Andrew Koenig - C csapdak es buktatok

Ugyan ez kello melysegekbe merul, viszont nem ad alltalanos informaciokat.

Ki mit ajanl, van-e mas otlet a problemamra? Elore is koszi!

--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)

"a program honnan tudja, hogy egy tombnek hany eleme van"

nem tudja :)

--
NetBSD - Simplicity is prerequisite for reliability

#include <stdio.h>
int main()
{
 int a[200];
 printf("%lu",sizeof(a)/sizeof(int));
return 0;
}

Neha sejti. :)


Amit nem lehet megirni assemblyben, azt nem lehet megirni.

+1

char *ptr = (char*)malloc( 150 );
printf( "%d\n", sizeof(ptr) );

:)))))

http://msdn.microsoft.com/en-us/library/aa366706%28VS.85%29.aspx
semmi sem lehetetlen, de C attol meg eredendoen nem igy mukodik :)

--
NetBSD - Simplicity is prerequisite for reliability

unsigned long int *a= malloc(64);
printf("%lu",(a[-1]& (~7) - (2*sizeof(void*)) ));

Es ez 64-et ir ki nekem, 512-re meg 512 -t :)
De ha meglatnam egy mezei alklamazasban biztos utnem egy bottal a keszitot :)


Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Az eredményül kapott szám mit reprezentál? A tömb elemeit? Ha erre igennel válaszolsz, akkor én tudom rosszul. Mert szerintem nem azt.
--
unix -- több, mint kód. filozófia.
Life is feudal

Ha jol sejtem a memoriaterulet bajtokban megadott meretet. Nezd meg egy int es egy char mereteit, majd az ugyanilyen tipusu tombok sizeof erteket.
Ebbol kovetkezik a tomb elemeinek szama:

tomb_elemei = (sizeof tomb) / (sizeof tomb[0])

--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)

Ez a válasz arra, hogy hány eleme van a tömbnek? Vagy inkább arra válasz, hogy mennyinek van hely foglalva, vagyis mennyi a max elemszám? Nem kell válaszolni, költői a kérdés.
--
unix -- több, mint kód. filozófia.
Life is feudal

Jo, valoban nem tudja, de akkor a sizeof honnan veszi a lefoglalt memoriaterulet meretet? Ez ugyanis mar osszefuggesben van a tomb meretevel...
--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.

Onnan, hogy a sizeof kiértékelése fordítási időben történik, és pl. egy

int array[10];

esetén az 'array' típusa 'int [10]', sizeof(int[10]) pedig egyenlő sizeof(int)*10 -zel.

int main(int argc, char **argv) {
char c99rulz[argc];
return 0;
}

ennel is? :-)

--
NetBSD - Simplicity is prerequisite for reliability

Eheh, gondoltam hogy majd felhozod, de természetesen vla esetén a vízből veszi ki az okszigént a sizeof nem compile-time constant :]

A másodikat ismerem. Nem rossz, felhívja a figyelmet a gyakori hibákra, és elmagyarázza, hogyan lehet elkerülni őket. De nem egy tankönyv jellegű dolog, inkább olyan "egyszer elolvasom tudattágításnak" kategória.

Motiváció és jó tanárok. Az előbbi nekem megvan az utóbbiból inkább hiányt szenvedek. :D

Egyik ismerőeöm most talált egy Autohotkey nevű interpretert, aminek triviálisan egyszerű nyelve, illetve bináris fordítója is van!
Amúgy szerintem pascallal kezdeni felesleges önszopatás... Kezdj perl-el...

vicces, hogy valaki 3 év után új topicot indít egy régiben, de az a legjobb, mikor ezek után mások az eredeti kérdezőnek kezdenek válaszolgatni :)

--
joco voltam szevasz

1, Teach Yourself C/C++ sorozatokat ajánlanám, nekem a KR C-könyv nagyon nem tetszett. Nekem. Ellenben az előbbi nagyon jól követhető, részletesen elmagyaráz mindent, persze érdemes tudni angolul.

2, Ha ezeken átrágtad magad, utána NAGYON SOK gyakorlás, amit persze csak munkák kapcsán fogsz tudni abszolválni, otthoni hobbisufni szinten nemigazán ( ha már az egyetem/fősuli kilőve ).

3, Scott Meyers: Effective C++, és More Effective C++ könyveit ajánlanám az igazán mély tudáshoz. Ezek persze már biztos alapot feltételeznek.

Ha dobsz egy privátot, tudok Neked küldeni egy teljes egyetemi kurzus anyagát ( C/C++), ugyanis tanítottam pár évig.

Krisz

Az a kérdés, hogy mit akarunk megtalnulni:
1./ Programozni
2./ (Tudunk már programozni,) csak a C nyelvet
3./ Programozni, úgy hogy kikötjük a C nyelv használatát.
4./ ...

A téma indítjója (2007-ben :-D), vélhetőleg a 3. változatot akarta. Neki egy Teach ... típusú könyv jó indulás lehet, de a KR sem rossz. A KR könyv azoknak jó, akiknek az algoritmikus gondolkodás magától értetődő. Ha ez nem így van, akkor nyelvtől függetlenül, kísérletet kell tenni az ilyen gondolkodás megtanulására is.

-----
Dropbox tárhely igénylése: https://www.getdropbox.com/referrals/NTI2MzM2MjA5

Örök kérdés maradt, látod :D

-del-

Itt nézz körül, és töltögess: http://www.flazx.com/category1.php

Csak en erzem ugy, hogy a nyelv nem annyira lenyeg mint amennyire itt mindenki hangsulyt helyez ra...?!
Azt meg ertem, hogy funkcionalis nyelv nem ugyanaz mint egy imperativ, vagy OOP, vagy assembly , de tenyleg ennyire szamitana, hogy valaki pascalt tanul vagy C-t, vagy python-t vagy PHP-t vagy akarmit?!
==
`Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea.

Éppenséggel felsoroltál kettő erősen típusos, egy teljesen OO, meg egy gyengén típusos nyelvet példaként.
Elsőre én mindenképpen valami erősen típusos nyelvet tanulnék, mert ezeknek a tanulásával sok olyan fontos "részletre" is fény derül, amit egy tisztán OO vagy gyengén típusos nyelv "elrejt" előled. Elég morgás szokott itt is meg máshol is lenni, amikor olyan rosszul működő programokba sikerül belefutni valakinek, amik azért nem jók, mert a programozója nem ismerte (eléggé) a gép és programozási nyelv mélyebb működését. Ha másért nem is, hát ezért nem mindegy, hogy valaki mivel kezd. Mert utána kevesebb lesz a szívás esetleg azzal a nyelvvel, amivel végül is majd "komolyabb" dolgokat kell alkotni.

subs

--
irj egy e-mailt, ha itt barmi hibat talalsz. ^ ^

Szia!
Itt "beleolvashatsz" a BRIAN W. KERNIGHAN – DENNIS M. RITCHIE : A C programozási nyelv
http://kr-c.freeweb.hu/

Sziasztok!
Nekem is az lenen a kérdésem, hogy egy kezdő, aki életében nem látott még programot sorokban,az mivel kezdje. (Suliban mivel nem volt meg a létszám ezért emelt infónk nem volt, így nem tudtam sehova se járni ilyeneket tanulni:S.) Tervek szerint jövőre egyetem, műszaki fősuli vagy egyetem, és ha jól tudom, C-ben kell megtanulni programokat írni... és ami legnehezebb, le is vizsgázni majd belőle:P:) Nem akarom a fél évre hagyni, nem is biztos hogy megtudnám tanulni:) Inkább neki kezdek valamennyire, de ahhoz a Ti segítségetek kellene!
Van egy nagyon régi Pascalos könyvem: Gordon Erzsébet - Körtvélyesi Gézáné - Sós István - Székely Zoltán: Pascal programozási nyelv, és hogy neki kezdjek ennek, vagy kihagyhatom, és inkább a C-nek kezdjek neki? Teljesen kezdő vagyok, szal algoritmusok, rendezések stb. azt se tudom mi fán terem:)
Mit ajánlatok, hogy kezdjem, mivel?
Előre is köszönöm a válaszokat:)
Pacsee

pascalt felejtsd el, nem erdemes vele idot pazarolni
c-t pedig a K&R nevu konyvbol tanulhatod meg (A C programozasi nyelv, muszaki kiado adja ki nalunk)

--
NetBSD - Simplicity is prerequisite for reliability

-1

Első körben a szigorúan logikus gondolkodást kell programozói szemlélettel elsajátítani.
Ehhez a Pascal tökéletes, jobb is, mint a C, mert a C-nél "könyékig olajos" érzeted lesz, mire egy egyszerű programozási példafeladatot megoldasz.

Ha a programozási szemléleted már megvan, lehet tovább menni C felé.

pascal miatt utaltam a programozast sokaig. aztan jott a C
mi ertelme lenne pacalt tanulni? meg short curcuit sincs benne, agybeteg. :)

--
NetBSD - Simplicity is prerequisite for reliability

Jah, de te már akkor is wannabe C programozó voltál, szóval tökmindegy mit toltak volna beléd ;)

szerintem aki nem programozott még rendes nyelveken, az vért izzad, ha C-vel kezd. a pascal sokkal-sokkal barátságosabb ilyen szempontból.

Másik suliban is előszór TurboPascalt vettek, és utána kezdték C++-szal, vagy C-vel... előtte meg adatbázis programozás (MS Acces).
Pascal könyvet tudtok javasolni? TurboPascal, vagy sima Pascal? Aki Pascal-t ajánlotta, mert jobban hasonlit C-re, mivel ott is mindent le kell írni, míg a TurboPascalban már könnyített a dolog. Nem tudom ti értetek jobban hozzá, úgyhogy akkor valami tipp?:D

Pascalozzal kezdetnek.
Borland Pascal 7.0 -t szerezd be.
Ha alap pascal peldakkal megvagy, akkor szanj egy-ket honapot a Turbo Visionre, meg az OOP ra - alapnak tokeletes.
Csinalj egy-ket egyszeru progrmaot Turbo Visionnel, aztan felejtsd el a strukturalis nyelveket, a tovabbiakban foglalkozz csak OOP -vel.

Van ajándékba néhány C könyvem.
Átvehető Gyulán, Békéscsabán illetve Békés megyében elég sokfelé járok.

A C nyelvet én teljesen amatőr módon, könyvekből és gép mellett kipróbálva tanultam. A filozófiáját kell leginkább megérteni! Nagyon érdekes és fontos például a változókezelés, a paraméterátadás ill. veremkezelés megértése. A változókezelés és a verem nagyon összefügg! A lokális változókat például oda helyezi el, míg a statikus változók máshol vannak.
De hát ezeket inkább a könyvből!

Nekem az a véleményem, hogy tanfolyamokért pénzt adni nem szabad!
(Persze nem az iskolai oktatásról beszélek)
Mindent meg lehet tanulni önerőből, ha van egy kicsi kitartás és akarat!

a szamitogep elott:)

Nem értem, hogy miért kell mindenfélével erőlködni. Ha valakinek matematikát akarnak tanítani, azt is először összeadni-kivonni tanítják meg, nem differenciál egyenleteket megoldani...

Először az alapokat. Arra a Pascal is nagyon jó nyelv.

Utána lehet szopni a pointerekkel C-ben. Egy kezdőt eléggé meg tud zavarni (jó, tudom, vannak itt 260-s IQ-val rendelkező zsenik, akik ASM tudást már az anyatejjel szopták ki...)

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

a pascalt senkinek nem ajánlanám, főleg nem egy kezdőnek, hogy elrontsa.

++
Műkedvelők gyönyörködhetnek benne, de kár időt áldozni rá. Akkor már inkább C++, Java, PHP, Python. Algoritmusokat pedig nyelvfüggetlenül is lehet tanulni.
--
unix -- több, mint kód. filozófia.
Life is feudal

hatpedig szokja csak meg a szigort.
nemlenne ennyi foshulladekszarautocastonelcsuszoidiota programnak ( nagyfiuk : szoftver ) nevezett akarmi.

A számítógéped mellett. (Persze közben a C-vel foglalkozni! Nem egyébbel!)

Hali!

Van itt egy könyv, Ivor Horton - Beginning C From Novice to Professional, 4th edition.

itt

(Valaki belinkelt fentebb egy oldalt, ahol egy listából ez tűnt a legszimpatikusabbnak. Garanciát nem vállalok... :] )

Sok google találaton átástam magam, mire találtam egy helyet, ahonnan végre le is lehetett szedni, gondoltam, hátha valakit pont ez érdekel...

Egész jó könyvnek tűnik, csak nem vágom ennyire az angolt, és inkább még magyarul tanulnék programozni:D

nem tudom, hány éves vagy, de szerintem reálisan tanulj előbb nyelveket, aztán töltsed az idődet programozással. hidd el, a nyelvtanulásra nagyjából 17-20 éves korodig tud rendesen lenni időd, programozni meg lehet tanulni később is. persze ha még csak 10 éves vagy, akkor visszaszívtam :)

ez mondjuk C++, de igaz a C-re is szerintem.
http://abstrusegoose.com/249

[semmi, hülyeség :D sry -- töröltem]