Zmiany

Skocz do: nawigacji, wyszukiwania

Odgadywanie daty urodzin

Dodane 4031 bajtów, 12:43, 23 mar 2017
/* Część II */
# Pomnóż tę sumę przez 20 i znów dodaj 77.
# Pomnóż przez 5, dodaj liczbę złożoną z dwóch ostatnich cyfr roku, w którym się urodziłeś.
 
Na koniec prosi gracza, aby ten podał mu, jaką otrzymał liczbę.
 
[[Plik:Ur2.PNG]]
 
''Rys. 2 Kolejne działania matematyczne''
 
 
Zasada odgadnięcia daty urodzenia jest bardzo prosta. Wystarczy, że od otrzymanego wyniku odejmiemy liczbę 38885. Wówczas otrzymany wynik oznajmi nam datę urodzenia gracza, gdzie dwie ostatnie cyfry wskazują rok, dwie środkowe - miesiąc, a pozostałe - dzień urodzenia.
 
Załóżmy, że gracz urodził się 22 października 1976 roku. Wykonując kolejno wskazane działania, otrzyma następujące rezultaty pośrednie:
 
20 * 22 + 77 = 517
 
5 * 517 + 10 = 2595
 
20 * 2595 + 77 = 51977
 
5 * 51977 + 77 = 259961
 
A zatem odpowiedź, którą poda duszkowi, jest liczba: 259961. Po odjęciu od niej liczby 38885 otrzymamy '''221076'''.
 
Problemem jest tutaj, w jaki sposób pokazać na scenie tę datę? Podanie np. wyniku 221076 nie będzie z pewnością zbyt łatwe do odczytania jako 22 października 1976 roku. A może 2076 roku?
 
W tym celu należy rozważyć dwa przypadki:
 
* gracz urodził się w XX wieku - wówczas początkowymi cyframi roku będą 19;
* gracz urodził się w XXI wieku- wówczas początkowymi cyframi roku będą 20.
 
Oczywiście bardzo łatwo można zmodyfikować program w przypadku gracza, który urodził się w innym wieku :-)
 
Zatem po uruchomieniu programu duszek pyta użytkownika, w jakim wieku się urodził:
 
[[Plik:Ur3.PNG]]
 
''Rys. 3 Zapytanie o wiek, w którym urodził się gracz''
 
 
Kolejnym problemem, który możemy zauważyć jest sytuacja, gdy użytkownik urodził się w dniu złożonym z liczby jednocyfrowej. Wówczas otrzymany ostateczny wynik będzie liczbą pięciocyfrową. Zatem dwie ostatnie cyfry wskażą rok urodzenia, druga i trzecia - miesiąc, a pierwsza cyfra - dzień urodzenia.
 
 
W celu poprawnego wyświetlenia na scenie daty urodzin, stwórzmy pięć zmiennych:
# '''wynik''' - tutaj zapiszemy liczbę, którą gracz otrzyma po wykonaniu wszystkich działań matematycznych (czyli jego odpowiedź na pytanie duszka: “Jaką liczbę otrzymałeś?”)
# '''data''' - wynik, który otrzymamy po wykonaniu działania: “odpowiedź - 38885”
# '''dzień''' - to będzie zmienna wskazująca dzień urodzin
# '''miesiąc''' - to będzie zmienna wskazująca miesiąc urodzin
# '''rok''' - to będzie zmienna wskazująca rok urodzin
 
Wartość zmiennych tuż po uruchomieniu programu ustawiamy na 0.
 
[[Plik:Ur4.PNG]]
 
''Rys. 4 Ustawienie początkowych wartości dla zmiennych''
 
 
Następnie po wpisaniu odpowiedniej liczby przez gracza, która jest odpowiedzią na pytanie: “Jaką liczbę otrzymałeś?”, ustawiamy zmienne wynik i data:
 
[[Plik:Ur5.PNG]]
 
''Rys. 5 Ustawienie wartości dla zmiennych wynik i data''
 
 
Zajmijmy się '''pierwszym przypadkiem:''' gracz urodził się w XXI wieku, a otrzymany ostateczny wynik jest liczbą pięciocyfrową. Wówczas możemy wyświetlić datę jego urodzin w następujący sposób (gdzie dzień, miesiąc i rok urodzin oddzielamy np. kropką):
 
[[Plik:Ur6.PNG]]
 
''Rys. 6 Wyświetlenie daty urodzin gracza w I przypadku''
 
 
'''II przypadek:''' gracz urodził się w XXI wieku, ale ostateczny wynik jest liczbą sześciocyfrową. Datę jego urodzin możemy wyświetlić w następujący sposób:
 
[[Plik:Ur7.PNG]]
 
''Rys. 7 Wyświetlenie daty urodzin gracza w II przypadku''
 
 
Zatem skrypt do wyświetlenia daty urodzin w przypadku XXI wieku może wyglądać następująco:
 
[[Plik:Ur8.PNG]]
 
''Rys. 8 Wyświetlenie daty urodzin gracza urodzonego w XXI wieku''
 
 
W przypadku gdy gracz urodził się w XX wieku, należy jedynie zmodyfikować sposób wyświetlenia roku urodzin: zamiast 20 pojawi się tu 19.
 
Przykładowy skrypt projektu może wyglądać w następujący sposób:
 
[[Plik:Ur9.PNG]]
 
''Rys. 9 Wyświetlenie daty urodzin gracza urodzonego w XX wieku''
 
 
 
'''Ciekawostka:'''
 
Przytoczona liczba 77, którą się dwukrotnie dodaje, może być zastąpiona każdą inną liczbą k z tą jedną zmianą, że zamiast 38885, czyli 505 * 77, odejmować trzeba będzie 505 * k.
1495
edycji