Diskuze: Dátový typ
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 14 zpráv z 14.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Vlastní číslo můžeš nasimulovat třeba přes struct, na kterém si napíšeš vlastní operátory.
Diki kámo, ale mne ide skôr o syntax. Radšej by si mi mohol napísať presne príkazy.
Najvacsia sranda je to, ze tebe sa "teraz nechce hladat po nete". Takze my
ostatni sa ideme pretrhnut, aby sme ti pomohli.
To si pis, ze ti niekto poradi....
Tak vieš kedže sa táto stránka vola ITnetwork tak predpokladám, že je tu skupina ľudí, ktorí majú s programovaním dobré skúsenosti. Podľa teba sa mám pýtať kde ??? Niekde na nejakej kuchárskej stránke alebo kde??? A prosím ťa už mi tu nespamuj, diki.
"Diki kámo, ale mne ide skôr o syntax. Radšej by si mi mohol napísať presne príkazy." = "Napiš to za mě". Tímhle stylem se nic nenaučíš a navíc, když není vidět tvoje vlastní snaha, tak Ti nikdo odpovědět ani nemusí.
Co třeba si vygooglit, co je to struct, popř. se podívat tady na fórum? A potom se zeptat, když Ti nebudou další kroky jasné?
Proč s tím obtěžovat komunitu, když například syntax příkazu najdeš za 20 vteřin hledání?
Skupina lidí se zkušenostmi s programováním se nerovná bandě otroků, na které luskneš a oni ti beze slova napíšou příkazy, abys mohl udělat Ctrl + C Ctrl + V. Trochu slušnosti by to chtělo, ne?
Pokud tě chápu správně, tak tvým datovým typem má být interval, což C/C++ přímo nepodporuje. Pokud jej chceš nativně, podívej se na Pascal/Delphi, kde můžeš zadefinovat svůj typ, celočíselný od 0 do 50, následovně:
Type
TMujTyp = 0..50;
Pokud víš, co představují hodnoty 0-50, pak můžeš použít výčtové
typy (ENUM).
Pro definici výčtového typu enum se užívá formát:
enum jméno_výčtu { seznam_položek } seznam_proměnných;
Konstantám uvnitř seznamu položek standardně přiřazuje překladač celočíselné hodnoty od nuly, počínaje konstantou stojící v seznamu nejvíce vlevo. Každá další konstanta směrem vpravo je o jednu vyšší než předchozí konstanta. Standardní přiřazení hodnot překladačem lze změnit, ale to ty nepotřebuješ.
Nové jméno pro již existující typ lze vytvořit pomoci TYPEDEF.
Pro použití typedef se užívá obecný formát:
typedef staré_jméno nové_jméno;
Tedy můžeš použít obdobu, viz. následující kód:
enum eBarvy { cervena, zelena, zluta, modra, bila, cerna };
typedef enum eBarvy mojebarvy;
mojebarvy barvy;
Kde konstanta cervena = 0, zelena = 1, zluta = 2, modra = 3, bila = 4 a cerna = 5.
Diki, nad tým enum som tiež rozmýšľal, ale skôr by som potreboval niečo ako písal Martin Dráb, že si proste zadefinuješ dátový typ na istom intervale a viem, že to majú byť celé čísla. Martin napísal, že c++ také niečo nepodporuje takže som z toho trochu zmätený.
Ono i do toho enumu můžeš dostat hodnotu, která v jeho definici přímo není napsaná. Takže se nedá říci, že by to úplně hlídalo ty hranice. Pascal/Delphi je myslím hlídá o něco lépe.
Otázka je, k čemu takový typ potřebuješ. Nestačí ti ty meze hlídat ručně? Stejně ty proměnné toho typu budou reprezentovány jako integery (třeba enum, min. v Cčku, je prostě integer), takže tady nic neušetříš.
Aha ok, tak potom použijem asi len ten enum. A ďakujem všetkým za pomoc (teda aspoň tým čo napísali niečo zmysluplné) .
Zřejmě jsem se ve svém předchozím příspěvku nevyjádřil dostatečně
jasně. Tak jinak..
Mějme následující kód:
enum eBarvy { cervena, zelena, zluta, modra, bila, cerna };
typedef enum eBarvy mojebarvy;
mojebarvy barvy;
Nyní se pokus odpovědět na 5 následujících otázek:
Jinak výborný dotaz k tématu vznesl pan Dráb. K čemu takový typ
potřebuješ?
Napiš co chceš řešit. Dle mého si totiž úlohu, kterou chceš řešit,
nesmírně komplikuješ a hledáš něco zbytečně extra co není potřeba.
Zobrazeno 14 zpráv z 14.