typ wyliczeniowy enum - zadanie 6.1 z kuźni programistów

0

przerabiam po kolei zadania z kuźni i mimo, że serwis pada i nikt już się nim nie zajmuje, to postanowiłem, że przerobię go całego. próbuję przebrnąć przez zadanie dotyczące zastosowania typów zmiennych. niestety, cała teoria odnośnie enum na stronie ogranicza się do treści zadania:

------START

Dane są typy wyliczeniowe:

 enum figury
{
     dziewiatka = 9,
     dzisiatka,
     walet,
     dama,
     krol,
     as
};

enum kolory
{
     pik = 40,
     trefl = 60,
     caro = 80,
     kier = 100
};

Napisz program, który za pomocą polecenia cin pobierze od użytkownika dwie liczby całkowite oddzielone spacją, np. "11 60". Program za pomocą polecenia cout wyświetli opis karty, jaka zakodowana jest w podanych liczbach. Przykładowo dla danych wejściowych "11 60" program wyświetli: "walet trefl". Jeżeli użytkownik poda pierwszą liczbę spoza zakresu 9..14 lub drugą inną niż 40, 60, 80 lub 100, program wyświetli komunikat: "niepoprawna wartosc".

KONIEC----------

http://www.kuzniaprogramistow.pl/node/17de/17

poszperałem w internecie i znalazłem kilka stron odnośnie słowa kluczowego enum, oraz przeczytałem poświęcony mu fragment w "od zera do gier kodera" mimo to i tak nie rozumiem do końca celowości stosowania tego rozwiązania, a jak rozwiązać to zadanie, to już w ogóle nie mam pojęcia.

powyższy kod po prostu zdefiniował listę stałych, do których przypisane są określone wartości, ale jak to się ma do napisania tego programu? przecież mogę napisać go nie korzystając w ogóle z powyższego kodu.

rozwalają mnie rosnące wykładniczo skróty myślowe stosowane w poradniku. brak jakiegokolwiek kontaktu z twórcami serwisu tylko potęguje wqrwa.

jestem kompletnie zielony w temacie, więc proszę o proste wyjaśnienie. zakładam, że program mam napisać na podstawie wiedzy zdobytej w kursie, a do tej pory wspomniano tylko o pętlach, if-ach i switch-u. nic więcej.

z miejsca pozdrawiam ciuli z kuźni programistów. pomysł fajny, tylko szkoda, że zapał słomiany i strona przez to dogorywa.

1

Cel jest prosty -> żeby nie stosować w kodzie magicznych liczb albo jakichś stringów w których ktoś sie moze pomylic.
Na przykład piszesz jakiś generator grafów i pozwalasz użytkownikowi podać typ takiego grafu - skierowany ważony, nieskierowany ważony, skierowany nieważony, nieskierowany nieważony. I jak to chcesz zrealizować? Enum pozwoli na wygodne użycie literału który określa typ :)

2

Enum pozwala grupować pewne elementarne wartości po to, żeby nie były one "magicznymi liczbami". Nic więcej, nic mniej. Może ewentualnie prostymi mechanizmami ograniczać Cię do wartości, jakie może przyjąć dane wyliczenie.

enum class Wyliczanka: int{
	JEDEN = 1,
	DWA,
	CZTERY = 4,
	SIEDEM = 7
};

Wyliczanka wyliczanka = Wyliczanka::JEDEN; //ok
wyliczanka = Wyliczanka::CZTERY; //ok
wyliczanka = 8; //error
0

<quote="1135642">

Wyliczanka wyliczanka = Wyliczanka::JEDEN; //ok

Za co odpowiada ta pogrubiona wyliczanka?

1

Szukaj uważnie ;)

enum class Wyliczanka: int...
0

w tym zadaniu nie musisz stosować typu wyliczeniowego enum, ponieważ nie masz takiego wymagania postawionego w zadaniu. Zadanie możesz napisać na if-ach i switch-ach. kod będzie długi i brzydki, ale to są początki i NIE MA co się spodziewać na początku mega konkretnego, krótkiego kodu :) pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1