Hirdetés

2024. május 1., szerda

Gyorskeresés

Hozzászólások

(#21) isti84 válasza Benmartin (#18) üzenetére


isti84
csendes tag

Üdv!

Nem neked szólt! Valamiért behalt a böngészőm és nem jkelenített meg 1-2 dolgot a hozzászólásokból, mint pl, azt a kb 10 pontots megjegyzésedet :D

Elnézést mégegyszer.

Üdv

Kockák előre!!! :D

(#22) orbano válasza dabadab (#19) üzenetére


orbano
félisten

remélem kevesen tanulnak C++-t a stroustrup könyv (és Porkoláb advancd C++ órái) nélkül. a cikk szerzője tuti hogy még csak kirakatban sem látta, különben tudná és értené, hogy hogyan is épül fel a nyelv. sajnos sokan tanulnak így C++ul, nem csoda, hogy sok a lassan készülő, bugos, memory leakes program.

A vér nem válik VAZZE!™

(#23) orbano válasza SLD (#17) üzenetére


orbano
félisten

a
bool L = false;
L = true == 23
az igaz értéket ad vissza?

A vér nem válik VAZZE!™

(#24) SLD válasza orbano (#23) üzenetére


SLD
tag

Nem, persze hogy nem. Ez esetben számként kezeli őket és persze, hogy 1 nem lesz egyenlő 23-al. Én erre gondolok:

#include <iostream>
using namespace std;

int main() {
bool b = 600000000;
cout << b << endl;
cout << sizeof(b) << " bájt" << endl;
return 0;
}

Tehát, alapértékként megadhatunk neki akár ennyit is, de ezt a compiler szépen konvertálja 1-re vagy 0-ra. Jelen esetben 1-re.
De pl. vehetjük a Te példádat is, ha később a b-nek (nálad L-nek) 23-at adsz értékként és kiíratod, akkor az újra 1 lesz, mert megtörtént a típusátalakítás a compiler által. Sőt ha már nagyon igaz-hamis vizsgálatot szeretnél akkor lehet így is csinálni:

#include <iostream>
using namespace std;

int main() {
bool b = 600000000;
cout << b << endl;
b = 23;
if(b) {
cout << b << endl;
}
cout << sizeof(b) << " bájt" << endl;
return 0;
}

Szerk: BEGIN

Sőt csinálhatjuk ezt is, hogy még szemléletesebb legyen (persze ez nem a szép módja a típuskonverziónak, de példának jó):

#include <iostream>
using namespace std;

int main() {
bool b = 600000000;
cout << b << endl;
b = 23;
if(b == (bool) 569) {
cout << b << endl;
}
cout << sizeof(b) << " bájt" << endl;
return 0;
}

Szerk:END

Remélem így már érthető mire akartam kilyukadni.

Azt meg végképp nem értem miért Te és miért nem Benmartin kérdez ilyeneket, hisz ő írt hülyeséget... no mindegy.

#22 :

Aki tud németül, annak szintén jó választás lehet a: C++ von A biz Z, Jürgen Wolf-tól. Ellentétben a magyar kiadásokkal ez most éppen 2009-es és nem a 2001-es fordításának 2006-os kiadása...

#21 isti84 :

Pedig akár szólhatott volna Neki is...

[ Szerkesztve ]

(#25) orbano válasza SLD (#24) üzenetére


orbano
félisten

én csak "oktatási célzattal"/kukacoskodásból kérdeztem a dolgot, mert félreérthetőnek tartottam, jómagam tisztában vagyok még úgy-ahogy a C++ működésével kapcsolatban (Porkolábnál 20 perc alatt szereztem meg a 4-es gyakjegyet, ha mond ez Neked valamit :D)

A vér nem válik VAZZE!™

(#26) SLD válasza orbano (#25) üzenetére


SLD
tag

Ok, igaz. Néha túl lövök a célon. :))
De remélem, így 3 példával már nem félreérthető :D
(Meg azt is hogy nem én tudom rosszul, bár a g++ fordító mellém állt, mindhárom esetben)

Ő nála hacsak fizika helyett nem infot/programozást választok egy ideig nem fogok megfordulni, de elhiszem, hogy ez egy pozitívum :)

(#27) Benmartin válasza SLD (#24) üzenetére


Benmartin
senior tag

Miért írtam hülyeséget?

(#28) SLD válasza Benmartin (#27) üzenetére


SLD
tag

#12-es hozzászólás, 7-es pont:

"A bool az egy 1 bájtos változó, szerintem nem csak két értéke lehet, hanem 256 féle."

Javításra került a mondat, a 14-es hozzászólásban erre:

"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."

Egy bool típusú változó értéke az Istenért, NEM LEHET 256 féle, hány féle képpen kell még leírnunk ezt Neked?! Csak, csak is kizárólag KÉT ÉRTÉKET VEHET FEL.
Ezért hívják boolean-nak, George Boole nyomán.
Nem is értem, hogy honnan jött ez Neked, de itt egy példa, hogy lásd a te feltevésedet gyakorlatban:

0 = hamis;
1 = kicsit hamis;
2 = hamiskás;
3 = majdnem hamis;
4 = közel hamis;
...
253 = közel igaz;
254 = majdnem igaz;
255 = teljesen igaz.

Komolyan gondolod, hogy a gép különbséget tud tenni ezek között?!

Nincs baj azzal ha tévedsz, azzal van baj, hogy tévesen javítasz ki valakit, majd utána ahelyett, hogy utánanéznél, tetteted a hülyét...

Ha nem hiszed, itt van a #24-esben pár példakód, fordítsd le, próbáld ki. De kérlek ne valami szabványt nem követő fordítót használj, mint a C topicban tetted, mert persze hogy azzal még ilyen hülyeségeket is tudsz csinálni...
Ha esetleg nem emlékeznél a C topicos részekre itt egy kis emlékeztető: [link]

A többi Olvasótól elnézést ezért a sok cifra formázási karakterért, csak már nem tudom, hogyan lehetne jobban felfogatni a lényeget Benmartin-nal...

(#29) godga


godga
csendes tag

Pár megjegyzést fűznék a cikkhez, cikksorozathoz és a hozzászólásokhoz...
1. Cikksorozat: Jó ötlet, gyenge-közepes megvalósítás. A fő hiba, hogy igazán senkinek sem szól. Kezdők ezzel semmit nem tudnak kezdeni, kezdőknek példák kellenek, magyarázatokkal. Középhaladók, már túl vannak ezen a szinten, a fölött pedig legyintenek...
2. Cikk: Példák nélkül ez így olyan mint egy gyengén összerakott fogalom gyűjtemény, pontatlan fogalmazással, hiányokkal, félrevezető magyarázatokkal.
3. Szerző: Példás, hogy ilyen lelkesedéssel írod a cikket, és a kommentekre is reagálsz, de saját véleményem szerint vagy több időt kellene a cikkek írására fordítani, vagy kicsit még várni kellett volna, egy intenzív tanulófázis végezetéig...
4. Egyetemi/főiskolai prog órák: c++ oktatása egy minimális készség kialakítására alkalmas csak, megjegyzem Stroustrup bibliája egy c++ kezdőkönyv, onnan még nyelvi szinten is lehet bőven fejlődni, programozás elméletben pedig nagyon-nagyon sokat...

Ne nézzé, számojjá!!! - Ismeretlen gyakvezér utolsó szavai...

(#30) Benmartin válasza SLD (#28) üzenetére


Benmartin
senior tag

Most komolyan minek tovább folytatni ezt? Nagyon jól tudom, hogy mit akartál a példával mondani, ha beírom a boolnak hogy 234, akkor az true, mert 0-tól eltér, és ha kiíom, akkor is 1 lesz, mert true. Inkább csak félreértetted, amit mondani akartam a 7-es ponttal.

Idegeskedni meg kár ezért.

(#31) Benmartin válasza Benmartin (#30) üzenetére


Benmartin
senior tag

Csak, hogy tisztább legyen:

#include <iostream>
using namespace std;
struct A
{
bool a:1,b:1,c:1,d:1,e:1,f:1,g:1,h:1;
};
A t;
int main()
{

t.e = 1;
t.f = 0;
t.g = 1;
t.h = 0;

// (1010)2 = 10, maximális tárolható érték: 2^8-1 = 255, plusz 0, tehát 256 féle érték

cout << t.a * (1 << 7) + t.b * (1 << 6) + t.c * (1 << 5) + t.d * (1 << 4)
+ t.e * (1 << 3) + t.f * (1 << 2) + t.g * (1 << 1) + t.h << endl;

cout << sizeof(t) << endl;
return 0;
}

(#32) SLD válasza Benmartin (#30) üzenetére


SLD
tag

Valóban félreértettem, illetve inkább túlságosan "csőlátásban" néztem a hozzászólásodat. Ennek a csőlátásnak pedig egyik paramétere az volt, hogy ez egy kezdőknek szóló cikk második része, ahol még sem a bitekről, sem a bitműveletekről, sem a memóriában foglalat helyről nem esett szó, tehát nyílván a kritika is igyekszik megtartani ezt a szintet. Tévedtem.
Azt is elismerem, hogy mindig is könnyelműen bántam a lehetetlen, esélytelen szavakkal, valamint ezeknek szinonimáival, pedig pont a programozás/számtech. az ahol csak a hardware és az emberi találékonyság szab határt.

Idegeskedtem volna? Én csak a lényeget akartam kiemelni; és látod, végre sikerült megértened és rájönnöd, hogy én félreértettem már az elejétől fogva, szerintem sikerként könyvelhetjük el.

De azt továbbra is nehezemre esik elhinni, hogy Te szerinted, Zwiebel-nek, ahelyett, hogy a bool igaz vagy hamis lehet, azt kellett volna írnia, hogy "a bool értéke 256 féle lehet, ugyan eredetileg logika értékek tárolására szánták, de egy kis biteltolással pik-pak megvagyunk és máris használhatjuk valami tök másra mint amire kitalálták."
Szóval én elhiszem, hogy már kezdettől fogva erre gondoltál azzal a mondattal, de ha erre gondoltál, akkor ez a tipikus szőrszálhasogatás és látod mekkora galibát tud okozni.

Mindenestre: köszönöm!
Itteni első hozzászólásodig még sosem gondoltam arra, hogy bool-t használjak char helyett kis számok (avagy nem logikai értékek) tárolására... Mindig úgy indultam neki, hogy: miért is használná az ember saját fejét egy szög beveréséhez, ha ott a kalapács is...
Tanulságos és eredményes volt itteni beszélgetésünk... bár kicsit pazarló, de valamit valamiért.

(#33) Benmartin válasza SLD (#32) üzenetére


Benmartin
senior tag

Mert nyilván én is csak kötekedtem, velem is szoktak, én is szoktam, ez ilyen. :) És én sem így tárolnék kis számokat, de attól még lehetséges.

Copyright © 2000-2024 PROHARDVER Informatikai Kft.