Tabela pokazująca kodowanie cyfry miesięcy w zależności od roku urodzenia.
Program który napisałam w C++ pod Visual Studio 2019 (Windows).
Ten sam program w C++ w wersji standardowej z objaśnieniami zamieszczonymi poniżej.
Program w C# pod Visual Studio i replit (dotnetfiddle wymaga zmian).
Przykładowe wyniki uzyskane na platformie replit. (Tam najłatwiej było mi powtórzać wykonanie już skompilowanego kodu).
Objaśnienia do 3. załącznika:
tak jak jest napisany bez żadnych zmian zadziała pod replit skompilowany przez kompilator clang, zadziała pod Linuxem skompilowany przez g++, itd.;
aby zadziałał pod onlinegdb oraz cpp .sh należy użyć nazw zmiennych zapisanych tylko znakami ASCII (nie można użyć polskich liter);
aby zadziałał pod CodeBlocks pod Windows nazwy zmiennych oraz komunikaty z printf muszą być zapisanych tylko znakami ASCII (nie można użyć polskich liter).
Już kiedyś wspomniałam jak ważne jest aby pytający podawali nazwę środowiska pod którym program ma działać. Chociaż zwykle się cieszę gdy jest chociaż podana nazwa języka programowania. :)
Wyjaśnienie
Algorytm tworzenia 6 pierwszych cyfr jest następujący:
Ostatnie 2 cyfry czterocyfrowego roku urodzenia
2 cyfry miesiąca urodzenia zmodyfikowane w zależności od roku urodzenia:
dla lat 1800‒1899 dodane 80,
dla lat 1900‒1999 dodane 0 (czyli bez zmiany),
dla lat 2000‒2099 dodane 20,
dla lat 2100‒2199 dodane 40,
dla lat 2200‒2299 dodane 60.
2 cyfry dnia urodzenia, czyli zapisane z zerem dla dni od 1 do 9.
Program w ogóle nie sprawdza poprawności wprowadzanych danych. W tym konkretnym przypadku program byłby sporo dłuższy, bo jest dużo do sprawdzania:
poprawność wprowadzenia formatu rrrr-mm-dd,
zakres lat,
zakres miesięcy,
zakres dni (różny dla różnych miesięcy i lat...).
1 votes Thanks 0
REGNAD
Nie żeby coś, ale w poleceniu jest C++, nie C#
Odpowiedź
Załączniki:
Objaśnienia do 3. załącznika:
Już kiedyś wspomniałam jak ważne jest aby pytający podawali nazwę środowiska pod którym program ma działać. Chociaż zwykle się cieszę gdy jest chociaż podana nazwa języka programowania. :)
Wyjaśnienie
Algorytm tworzenia 6 pierwszych cyfr jest następujący:
Ostatnie 2 cyfry czterocyfrowego roku urodzenia
2 cyfry miesiąca urodzenia zmodyfikowane w zależności od roku urodzenia:
2 cyfry dnia urodzenia, czyli zapisane z zerem dla dni od 1 do 9.
Program w ogóle nie sprawdza poprawności wprowadzanych danych. W tym konkretnym przypadku program byłby sporo dłuższy, bo jest dużo do sprawdzania: