üzenetek

hozzászólások


tobal
(tag)
Blog

Hát, nem mondom, hogy mindenhol pontos a megfogalmazás, de túl nagy ferdítések nincsenek, és kezdők számára így tényleg érthetőbb. Gratula hozzá.


Zwiebel
(tag)
Blog

Köszönöm szépen :R


SLD
(tag)

Egy nagyon fontos dolog hiányzik: példakód.
Biztos vagyok benne, hogy az előző írásban a "több elméletet" nem a példakód rovására, hanem a mellé bepakolására értették.
Így most dobálózol x szóval, amit Te értesz, akinek van programozási tapasztalata az is ért, de aki most kezdi, annak ez nem több mint a bio-aktiregularisz vagy mi, az Activia reklámokban... És azt a joghurtot sem azért eszik annyian mert áltudományos szavakat mondanak a reklámban, hanem mert egy szemléltető ábrán látják, ahogy eltűnik az alany gyomra és helyette csomó kis gömböcske egy nyíl alakban a nemi szervre mutat...
Szóval tégy be kérlek szemléltető ábrát -> példakódot, esetleg kommentekkel minden sorba, hogy mi mit csinál.. Nem kell extra, csak hozza létre a változókat írassa ki és kész, hogy lássa a tanuló gyakorlatban érvényesülni a leírtakat. (Pl. egy példakódon sokkal jobban el tudnád magyarázni a definíció és a deklaráció közti különbséget is.)

Véleményem szerint azért jó lesz ez, csak próbáld még inkább egy kezdő szeméből nézni a dolgokat, inkább feltételezd az olvasóról, hogy egy bogár, mint hogy egy szuperinteligens űrlény.


fred741
(csendes tag)

Az is nagyon fontos, hogy attol hogy definialtal egyvaltozot(azaz helyet foglaltal neki) az erteke meg nincs beallitva.
Nagyon fontos, hogy a definialt valtozoknak kezdoerteket adj! :)

Egyebkent tenyleg egesz jo,ertheto leiras. :)


Zwiebel
(tag)
Blog

Köszönöm szépen, betettem egy példakódot :) Remélem, hogy nem hagytam ki belőle semmit!


Zwiebel
(tag)
Blog

Köszönöm, javítottam :R


Vladi
(nagyúr)
Blog

Igen, jó lenne kicsit didaktikusabban. :K
Hogy olyan nem műszaki értelmiségiek is megértsék, mint pölö én. :D
(Ellenpélda a full circle magazinban lévő C sorozat. Na az kínai. :U )

Egyébként hajrá a sorozathoz!


sh4d0w
(nagyúr)
Blog

Hű, az nagyon tré... :K


TheVeryGuest
(senior tag)

"...előfordító indirektívát jelöl..." :] Mi az az indirektíva? Mert olyan van, hogy direktíva, egyébként utasítást, parancsot jelöl, melyet az jelen esetbe az előfordítónak címzünk.

Ez amit publikáltál egyébként eddig nem nagyon C++ specifikus, talán ez a két sor az, amiből rá lehet jönni, hogy ez nem C:
"- C++ nyelvben kettő logikai érték van : igaz (1) vagy hamis (0)
- Felsorolt konstansokat enum konstansoknak nevezzük."

Hiányolom a tematikát. Ez most egy sorozatnak egy része, vagy ez minden?

Egyébként mi értelme van kimásolni valamit egy magyar könyvből vagy fordítani angolból? Te jót gyakoroltál vele és ennyi. Meg megvan a benne leszek a TVben feeling. Szerintem először is azt kellene tisztázni, hogy kinek érdemes elkezdeni C/C++-szal foglalkozni. Ehhez tudni kell, hogy ez egy szigorúan típusos, gépközeli gépi kódra fordított nyelv. Gyakorlatilag egy C/C++ fordító egy kurva intelligens assembler. Tehát, ha valaki kezdő és C++-ozni akar az két dolgot jelenthet:
*valami funkciót akar megvalósítani, nagyrészt Ctrl+C-Ctrl+V használatával itt-ott átírva,
*érdekli a gépközeli programozás és szeretne jól megtanulni C/C++-ban programozni, mert érdekes, vagy ne adj isten ebből akar majd egyszer élni.
Az elsőnek érdemes inkább más nyelvet választania, a másodiknak meg nem kell a kedvcsináló, ő úgyis venni fog egy könyvet, vagy letölti a legutolsó ingyen elérhető C++ szabvány draftját.

Definícióról meg deklarációról meg önmagában nem érdemes beszélni. Ez a tankönyvek többségénél is hiba. Mert leírják a szabályokat, de azt nem, hogy miért ilyen. A preprocesszor direktívák és a deklaráció/definíció is akkor nyer értelmet, amikor az ember először rak össze egy komplex több modulos SWt. Ott kiderül, hogy mire is való a deklaráció, az extern előtag, a define/if(n)def guardok.

Ugyanez elmondható a típusok leírásáról. Élő embert nem láttam, aki unsigned long int-et kiírta volna az életben. Úgyis unsigned long-lesz, kivéve, ha karakterre fizetnek. Szóval az előállítható típusnavek felére nincs szükség, mert élő kódban nem fogsz vele találkozni.
A volatile teljesen felesleges egy kezdőnek ilyen alapon jöhetett volna a register meg az auto is. Egyébként eléggé kevéssé valószínű, hogy másik program módosítja az értéket, főleg a mai virtual address space-es világban, inkább egy másik thread használja, vagy valami hardveres regiszter olvasása szokott ilyen lenni, és azt jelzi a fordítónak, hogy ne optimalizáld ki ennek a változónak az írását olvasását CPU regiszterek használatával, mert bármikor megváltozhatnak a jelen kód futásától függetlenül.

Csodálom, hogy az export kulcsszóval nem foglalkoztál, mert már csak az lenne haszontalanabb lévén, hogy a fordítók 99%-ában nincs implementálva, de a szabványban benne van.

Egy kezdőnek, egyébként ezekre a dologra van szüksége:
*egy könvyvre a nyelvről valami olyan nyelven, amit ért.
*tanulásra készített kódrészletekre és feladatokra
*egy jó listára, hogy az adott fordító hibaüzenetei mit jelenthetnek, milyen hibára utalhatnak (a 2.96-os g++ hibaüzenetei például iszonyat szemetek voltak, pontosvesszőhiba esetén a következő sorra hivatkoznak meg ilyenek keményen szokni kell)


Zwiebel
(tag)
Blog

Köszönöm a kommenteket! :R

TheVeryGuest:
Ezzel nem igazán értem, hogy mit akarsz mondani:
"Egyébként mi értelme van kimásolni valamit egy magyar könyvből vagy fordítani angolból? Te jót gyakoroltál vele és ennyi."

Nem könyvből másoltam és nem is fordítottam! Az egészet fejből írtam. Ha ez nem így történt volna, akkor szerintem nem igazán maradtak volna ki belőle olyan dolgok amiket te most leírtál ide. ;)


#21810944
(csendes tag)

Köszönöm az írást, hasznos volt! Épp kapóra jött, a közeljövőben a c++ lesz a tananyag.
:R


Benmartin
(senior tag)

Sziasztok!

1.) Az int mióta változó? Én úgy tudtam típus.
2.) Ha leírod a típusmódosítókat, miért nem írod oda, hogy mire lehet használni?
3.) Az int tárolási intervalluma egyáltalán nem biztos, hogy annyi lesz, mint amit te odaírtál, a signed int-é már válószínűbb.
4.) Nem említettél minden típust. Hol a wchar_t?
5.) A double valós típus? Oké, hogy képes valós számot ábrázolni, de arra a float is képes, akkor az is valós típus? Vagy valótlan? Kétszeres pontosságú lebegőpontos szám tárolására használatos adattípus.
6.) Az adattípusok mérete számítógép, fordító, OS függű, mindenkori méretét a float.h és limits.h fejállományokból olvashatjuk ki.
7.) A bool az egy 1 bájtos változó, szerintem nem csak két értéke lehet, hanem 256 féle.
8.) Említést tettél az enumról, de gyakorlatilag semmit nem mondtál róla, az enum pedig típus, nem konstans, más kérdés, hogy azt tartalmaz.
9.) A konstansok csoportokra bontottad, a típusokat egyáltalán nem
10.) Különbséget tettél a definíció és a deklaráció között, bár az általad használt esetekben minden deklaráció egyben definíció volt, így mi értelme volt?

És ez most nem tízparancsolat. :D
Többen kifejtették már, miért nincs ennek így értelme.


N3ST1C
(tag)

Nagyon jó lett. Így tovább ;)


Benmartin
(senior tag)

Na tessék már rám is hatással van a hülyeség, szóval a bool az egy 1 bájtos típus. :)


isti84
(csendes tag)

Üdv!

Jó a cikk, de 1-2 dolog kimaradt, nem jelölted azt hogy a long illetve short no meg az unsigned miként módosítja a számok intervallumait. A char típus nem csak kis számok tárolására alkalmas, abban tárolsz karaktereket.

Az előzőhöz képest sokkal jobban sikerült, ha így haladunk akkor a végéra könyv lesz belőle.

Üdv!


isti84
(csendes tag)

A C-ben nincs logikai érték, a C++-ban van 1 bájton tárolja a bool értékeket, mivel ez egy előre definiált típus két numerikus értékkel. C-ben int-tel oldották meg a dolgot, ha 1 igaz, ha más értéket vesz fel, akkor hamis


SLD
(tag)

Hmm, 7.) -essel vitatkoznék. Egy bool típusú változó valóban egy bájtot foglal normál esetben, és valóban megadhatsz neki 256-ot értékként, sőt 600.000.000-t is, de végül minden ami nem 0 az 1 lesz. Szóval végeredményben, _csak_ 0 és 1, false és true lehet.

A sorozatnak meg valóban _így_ nincs észlelhető értelme, ám én jelenleg a fő hibát az igénytelenségnél (vagy az igénytelenség nem felismerésében) látom, ami viszont egy fejleszthető képesség / érzék vagy valami...
És ha van kedve, miért ne csinálja? Árt valakinek? Aki eddig is tartózkodott ettől a nyelvtől, az a csomó rendszertelen és félinformáció miatt továbbra sem fog belevágni, aki meg tényleg meg akarja tanulni, az már - ahogy TheVeryGuest írta - vett magának egy könyvet a témában. Nagyon nagy hülyeséget meg nem tud írni, mert a kommentekben javításra kerül, aki meg nem olvassa el hozzá őket, az magára vessen... Tehát bizonyos szempontból minden marad úgy, ahogy eddig. Feltéve persze, hogy a következő részekben nem érünk el jelentős javulást. (Ez tudom fura egy szemlélet és nem túl fair a bátortalan kezdőkkel szemben, de ez van.)

Zwiebel:

Az becsülendő, hogy mindezt fejből írtad, ám ez meg is látszik rajta.
Egy igényes cikket legalább egy hétnyi kemény könyvolvasásnak és googlizásnak kell megelőznie (ált. az a jó amikor már azzal a kérdéssel kelsz reggel és fekszel este, hogy: biztos így van ez?), hogy minőségi cikk születhessen. És emellett nem csak a tartalom helyességére kell figyelni, hanem a tálalásra is, pl. ott van még csomó formázó gombocska, amiket még nem használtál, pedig sokat dobhatna rajta. Meg el kéne dönteni, hogy mit mivel jelölsz, mert néha a felsorolt szöveg feltűnőbb mint a cím. Ha pedig egy könyvben írtnál nem tudod jobban megfogalmazni, akkor meg idézd azt, nem szégyen forrást használni.

[ Szerkesztve ]


Benmartin
(senior tag)

Helló!

Ezt most miért mondod nekem?


dabadab
(titán)
Blog

A cikkel van par problema:

1. Teljesen koncepciotlan: nincs semmi strukturaja, nem jut el sehonnan sehova, nem igazan magyaraz el semmit, a mindenfele felosztasok teljesen esetlegesek es erosen furcsak (a konstansok harom nagy tipusa a decimalis, az okta meg a hex? WTF?).

2. Tele van hibakkal: konkret targyi tevedesek, befejezetlen mondatok.

3. A szerzo lathatoan nem ert a C++-hoz - es bar van a regi mondas, miszerint aki ert hozza, az csinalja, aki meg nem, az tanitja, de...


Nunder
(őstag)
Blog

Nagyon hasznos, köszönjük! Így talán könnyebb lesz elsajátítani.

üzenetek