• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Programik do nauki symboli pierwiastków chemicznych, ogólne wskazówki jak zacząć

Object Storage Arubacloud
0 głosów
448 wizyt
pytanie zadane 6 października 2022 w C i C++ przez mgwatupa Nowicjusz (120 p.)
Dzień dobry,
Jestem zupełnie początkującą osobą i próbuję napisać prosty proceduralny programik w C++ do nauki symboli pierwiastków chemicznych. Program ma losować nazwę pierwiastka i pytać o jego symbol. Czy ktoś mógłby mnie pokierować jak to ogólnie ugryźć. Mam parę pomysłów, ale każdy z nich to droga przez setki linijek kodu, a zdaję sobie sprawę, że muszą istnieć prostsze rozwiązania tego problemu. Wystarczy mi wskazówka typu idź tą drogą a nie tamtą. Użyj tego rozwiązania itd.

2 odpowiedzi

+2 głosów
odpowiedź 6 października 2022 przez Apled Dyskutant (9,520 p.)

Najważniejsze będzie to, że musisz powiązać nazwy z symbolami i tutaj najprostszy sposób to będzie mapowanie. Możesz użyć (z bibliotek STL):

- std::map z biblioteki <map>

- std::unordered_map z biblioteki <unordered_map>

Polega to na tym, że tworzysz zbiór par: klucz - wartość, np. 1 - jeden, 2 - dwa (klucz nazywa się first, a wartość to second).

Niestety wszystkie wzory będziesz musiał zmapować ręcznie, więc straci to trochę na czytelności.

Potem musisz losować klucz ze zbioru i sprawdzać czy cin (domyślam się, że chcesz zrobić aplikację konsolową) jest zgodny z wartością klucza.

No i będziesz musiał dodać jakieś sprawdzanie, czy dany klucz już się wcześniej nie wylosował, np. może poprzez usuwanie danego klucza ze zbioru (w ten sposób na pewno nie wylosuje się po raz drugi, bo już go nie będzie)

1
komentarz 6 października 2022 przez mgwatupa Nowicjusz (120 p.)
Dziękuję. Wiedziałem, że musi być jakiś prosty sposób na wiązanie dwóch wartości. Jak się domyślam ten sposób będzie też doskonale działać na przykład dla cennika. Jeszcze raz wielkie dzięki.
+1 głos
odpowiedź 8 października 2022 przez Daaa22 Dyskutant (8,250 p.)

Ja bym zrobił

struct Element
{
    string name;
    string symbol;
};

Potem w mainie

Element element[118]; //ilosc pierwiastkow

I potem niestety ręcznie 

element[0].name = "Hel";
element[0].symbol= 'H';

I zależnie od upodobań zrobił kontrolę czy nie losuje się zbyt często któryś pierwiastek, w najprostszy sposób

Element* element_ptr[3];
int current = 0;

I w głównej pętli po zgadnięciu pierwiastka coś w stylu

element_ptr[current] = &element[/*aktualnie wylosowany*/];
current = (current + 1) % 3;

i przy następnych losowaniach program by sprawdzał czy aktualnie wylosowany pierwiastek nie jest na tej liście, jeżeli jest to losuje jeszcze raz.

Podobne pytania

+4 głosów
3 odpowiedzi 3,977 wizyt
pytanie zadane 15 marca 2018 w Algorytmy przez Utau Użytkownik (900 p.)
+2 głosów
1 odpowiedź 357 wizyt
0 głosów
2 odpowiedzi 1,277 wizyt
pytanie zadane 22 marca 2018 w C# przez quatroz Nowicjusz (120 p.)

92,536 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...