Ready/Run

Takie sobie archiwum listingów ze starych magazynów komputerowych


Imieniny Cioci Kloci
  • Język programu: Locomotive Basic
  • Platforma: Amstrad
  • Kod zamieszczono w Bajtek 05/1989
  • Autor listingu: Roman 'Rozmek' Poznański
  • Listing nadesłał: Faust

Stan listingu:

0
Listing niesprawdzony - świeżo po OCR lub przepisaniu


Cześć Maluchy!
Wczoraj były imieniny ukochanej cioci Kubusia, Cioci Kloci, a Kuba nawet nie wysłał jej kartki z życzeniami. A przecież ona zawsze pamięta o każdym święcie. Cóż robić, Kubuś wyśle dzisiaj kartkę z przeprosinami, ale swoją drogą przydałoby się zaradzić temu na przyszłość. Ale jak?


Do dzisiaj medycyna nie znalazła niestety skutecznego medykamentu poprawiającego pamięć. Tak więc nie szukajmy ratunku w pigułkach, maściach i rozmaitych miksturach. Może więc lepiej zanotować wszystko w kalendarzu? Ale przecież w kalendarzu Kubusia imieniny Cioci Kloci zakreślone są grubym, czerwonym flamastrem, a on i tak o nich zapomniał. Stosunkowo najlepiej do przypominania nadaje się mama. Ona wszystko doskonale pamięta. Mama jednak nie przypomni o swoich imieninach, Dniu Kobiet czy Dniu Matki.
Kogo by więc poprosić o tę przysługę? Ten ktoś musi mieć dobrą pamięć i dużo cierpliwości. Kubuś dobrze wie, kto ma najlepszą pamięć i nigdy się nie znudzi. To oczywiście komputer. Spróbujmy teraz, razem z Kubusiem nauczyć komputer przypominania nam o tym, o czym sami możemy zapomnieć.
Popatrzmy jaki program napisał Kubuś i prześledźmy jego działanie. Pierwsza część programu (linie 100—180) umożliwia podanie komputerowi aktualnej daty. Komputer pyta najpierw o dzień (linie 130 i 140), a następnie o miesiąc (linie 150 i 160). Rok nie jest mu potrzebny, ponieważ program w wersji napisanej przez Kubusia przypominać ma jedynie o terminach stałych, takich jak urodziny i imieniny.
Komputer nie przyjmie odpowiedzi, które z założenia są błędne, np. nie przyjmie liczby 13 jako numeru miesiąca. Dzieje się tak, dzięki liniom 145 i 165, w których sprawdzane jest, czy wpisana przez użytkownika liczba jest całkowita i czy nie wykracza poza dozwolony przedział. Dla zmiennej dzień wynosi on <1—31>, dla zmiennej miesiąc <1—12>.
Teraz komputer przechodzi do porównywania daty podanej jako dzisiejsza z terminami przechowywanymi w pamięci, a konkretnie w liniach DATA (linie 1000—5000) na końcu programu. Informacje w liniach danych zapisywane są w ściśle ustalonej kolejności. Najpierw dwie zmienne liczbowe, dzień i miesiąc, a następnie tekst określający czego dotyczy zapamiętany termin. Ostatnia wartość wynosi 100 i oznacza koniec zapisu, a dla komputera koniec odczytywania danych.
Komputer wczytuje dane z jednej linii (dotyczące jednego terminu) (linie 200—230). Warunek w linii 210 umożliwia wyskoczenie z pętli po wczytaniu wszystkich danych. Następnie termin porównywany jest z dzisiejszą datą (linie 240—270). Jeśli do wyznaczonego terminu pozostało dziesięć lub mniej dni informacja o nim ukazuje się na ekranie.
Zapewne zauważyliście, że terminy obliczane są tak, jak gdyby wszystkie miesiące miały po 31 dni. Nie powoduje to jednak większego błędu, gdyż dla nas ma znaczenie liczba dni pomiędzy stosunkowo bliskimi terminami a nie liczba dni, które upłynęły od początku roku. Tak więc błąd może wynosić 1 dzień w przypadku miesięcy 30 dniowych i 3 dni w lutym, jeśli ma on 28 dni. Błąd ten powstaje pod koniec miesięcy „krótszych“, gdy i opóźnia komunikat o 1—3 dni.
Program można uzupełnić o dodatkowe funkcje. Może on na przykład informować ile lat kończy nasz solenizant (choć nie jestem pewny, czy wszystkie panie byłyby zadowolone). W każdym razie linie danych należy wypełnić datami imienin, urodzin i rocznic naszych znajomych i uruchamiać ten program chociaż dwa razy w tygodniu. Jeśli tak zrobisz, z pewnością nie zapomnisz o żadnym z nich. A może także nie zapomnisz o przyjaciołach Kubusia?

 

Imieniny Cioci Kloci