Czytano 354558 razy przez 26279 osoby. Aktualnie 3 osób.
OD ZABAWY KOLEJKĄ DO PROGRAMOWANIA Andrzej Przemysław Urbański Program edukacyjny TRAIN 2.0 na dyskietce 3.5''wersji komercyjnejWydanie HTML ze skróconą i pozbawioną ilustracji instrukcją użytkowania programuCopyright ( text + program ) by Andrzej P. Urbański, Poznań 1995-1996 KolejkaNo i przyszła gwiazdka. Piotrek i jego rodzice siedzieli przy wigilijnym stole po skończonym posiłku.
- A teraz zobaczymy co nam przyniósł Mikołaj - powiedział Tata.
Piotrek zerwał się od stołu i podbiegł do choinki. Chwycił pierwszą paczkę z brzegu i już brał się do jej rozpakowywania.
- To nie Twój prezent. Spójrz na tę dużą paczkę w głębi - uspokajała Mama.
Piotrek posłusznie zabrał się za rozpakowywanie wskazanej paczki. Oczom jego ukazało się kolorowe pudełko z postacią chłopca pochylonego nad swoją zabawką położoną na podłodze.
- Kolejka, kolejka - zakrzyknął chłopiec.
- Wreszcie mam tę kolejkę - kontynuował. I zaczął wyciągać z pudła lokomotywę, wagoniki, odcinki torów, kilka budynków stacji oraz wiele innych przedmiotów, których przeznaczenia jeszcze nie rozumiał. Mimo to zabrał się do montowania torów i już po chwili stał tor długi na cały pokój z regularnie rozmieszczonymi stacjami. Ustawił kolejkę na początku toru i uruchomił przyciskiem. Kolejka ruszyła zatrzymując się na chwilę po kolei na każdej ze stacji. Wreszcie stanęła na stacji oznaczonej napisem KOŃCOWA. Przeniósł więc znowu kolejkę na początek toru i uruchomił powtórnie. Kiedy zabawa zaczęła go nudzić rodzice zachęcili chłopca by położył się spać pozostawiając dalszą zabawę do następnego dnia.Zwrotnice
Po śniadaniu Piotrek znowu zabrał się do zabawy kolejką jednak teraz zauważył, że w pudełku znajdują się również zakręty i zwrotnice i zaczął je stosować w układanych torach kolejki. Po uruchomieniu kolejki okazało się, że zatrzymuje się ona nie tylko na stacjach ale również przed zwrotnicami nakazując zdecydować bawiącemu się nią, w którym kierunku ma się dalej poruszać. Zabawa była ciekawsza niż poprzedniego dnia, gdyż kolejka w ten sposób przemierzała różne drogi zależnie od udzielanych odpowiedzi.
Bawił się więc Piotrek cały dzień, zmieniając przebieg torów kolejki, gdy tylko udawało mu się przemierzyć kolejką wszystkie możliwe trasy w danym układzie.
Odgadywanie pomyślanego pojazdu
Kilka dni później po śniadaniu Ojciec zapytał Piotrka:
- A jak zabawa Twoją kolejką ?
- Kolejka jest całkiem fajna, ale już trochę zaczyna mnie nudzić - odpowiedział Piotr.
- O, widać nie poznałeś jeszcze wszystkich jej możliwości - mówi Ojciec.
- A co ona może mieć za możliwości ? Zwyczajnie jeździ między stacjami i zwrotnicami pytając na każdej zwrotnicy gdzie ma jechać dalej - stwierdza syn.
- No właśnie. Wystarczy, że dodamy na stacjach różne pytania i odpowiedzi a kolejka będzie mogła rozwiązywać różne zadania.
- Jak to. Jakie zadania ? - pyta zaciekawiony Piotruś.
- Na przykład może nam pomóc odgadnąć jaki pojazd widzimy przed sobą pytając o różne widoczne jego cechy - odpowiada Ojciec.
- Ale jak ułożyć pytania i odpowiedzi ? - znowu pyta Piotr.
- Wyobraź sobie, że to ja widzę jakiś pojazd i Ty mnie musisz zapytać - proponuje Ojciec.
- Dobrze. Więc pytam Ciebie czy pojazd porusza się na szynach czy nie ?.
- świetne pierwsze pytanie. Najpierw wyobraź sobie, że opowiedziałem TAK. A co Ty na to ? - pyta Ojciec.
- To ja odpowiem, że to jest pociąg - szybko mówi Piotrek.
- No nie. Trochę się pośpieszyłeś. Słyszysz ten turkot ? - pyta Ojciec.
- Tak, rzeczywiście zapomniałem o tramwaju. To może zapytam najpierw czy pojazd jedzie po ulicy i jeśli tak to odpowiem, że to jest tramwaj a jeśli nie... - tu chwilę chłopiec się zastanawia - to jeszcze zapytam czy potrafi ciągnąć wagony, bo jeśli nie, to będzie drezyna.
- świetnie. Możemy więc już ułożyć wszystkie tory po twierdzącej odpowiedzi na pierwsze pytanie - zauważa Ojciec.
Po chwili stoi ułożona sieć kolejowa złożona z trzech zwrotnic, sześciu stacji i wielu odcinków torów.
- Pozostaje się zastanowić jak rozróżnić pojazdy nie poruszające się na szynach. Na przykład jak odróżniłbyś swój rower od mojego samochodu ? - pyta Ojciec.
- Po prostu zapytałbym o to czy ma silnik - odpowiada.
- Tak, ale nie ma go również pojazd Marianki - zgłasza wątpliwość Ojciec.
- To jeszcze bym zapytał czy ma pedały bo przecież wózeczki dziecinne ich nie mają. Nieprawdaż ? - odpowiada po chwili Piotr.
- No to już możesz dobudować dalszy kawałek sieci Twojej kolejki i zastanowić się co to będą za pojazdy z silnikiem - proponuje Ojciec.
- To już wystarczy tylko zapytać czy pojazd ma dwa koła i jeśli tak to będzie motocykl, a jeśli nie to samochód - gotową odpowiedź przedstawia Piotrek.
- No nie tylko samochód. Może być to również traktor, spychacz, koparka itp. Ale to już odrębny problem rozróżnić te wszystkie pojazdy więc możemy pozostawić je razem. Programowanie strukturalnePiotr bawił się ustawianiem kolejki w swoim pokoju, gdy drzwi otworzyły się i do pokoju wszedł ojciec.
- Co za bałagan - zawołał od progu.
- Ależ tato. Przecież ja tylko rozbudowuję nasz program odgadujący pomyślany pojazd - tłumaczył się Piotr.
- Dobrze. Ale czy koniecznie musisz krzyżować tory i wykorzystywać aż tyle zakrętów. Patrzę na te tory i zupełnie nie rozumiem jak następują obliczenia - mówi ojciec.
- Rzeczywiście. Trochę się zaplątałem w tych rozjazdach. Ale to nie takie proste zachować porządek przy tylu zwrotnicach i stacjach - tłumaczy się chłopiec.
- Bo musisz programować strukturalnie - powiedział Ojciec.
- A co to oznacza ?
- Programowanie strukturalne najogólniej rzecz biorąc polega na składaniu programu jakby z pudełek tak, że pudełka całkowicie mieszczą się jedno w drugim i z zewnątrz cały program wydaje się bardzo prosty bo jest jednym pudełkiem. Po otwarciu pudełka mamy we wnętrzu kilka pudełek połączonych ze sobą w czytelny sposób.
- Ale skąd wezmę te pudełka ? - pyta zdezorientowany chłopiec.
- Nie musisz ich wcale posiadać. Wystarczy, że możliwe będzie wyobrażenie sobie zamknięcia jakiejś części programu. Jeśli tak będzie to program jest strukturalny. W praktyce musisz stosować jak najprościej realizowane trzy elementy: sekwencję, alternatywę i iterację.
- Ale nie mam takich torów ? - mówi chłopiec.
- Sekwencja oznacza, że łączysz pudełka jedno za drugim. Alternatywa, że stosujesz zwrotnicę dla równoległego prowadzenia dwóch torów, które potem łączą się w jeden. Iteracja, że tworzysz zamkniętą pętlę z torów, do których jest tylko jedno wejście i jedno wyjście.Pociąg pośpiesznyPiotrek bawi się kolejką, aż w pewnym momencie pyta siedzącego w pokoju Ojca:
- Tato, a jak zrobić pociąg pośpieszny ?
- A czym ma się różnić pociąg pośpieszny od zwykłego ? - pyta z kolei Ojciec.
- Pośpieszny zatrzymuje się tylko na wybranych stacjach, a ten pociąg zatrzymuje się na każdej stacji - odpowiada chłopiec.
- Ten pociąg będzie się zatrzymywał na każdej stacji, przez którą przejeżdża, ale możemy tak ułożyć tory, że jeśli będzie to pośpieszny to będzie omijał mniej ważne stacje - proponuje Ojciec.
- Dobrze. Zróbmy tak - zgadza się chłopiec.
- No to najpierw musimy wstawić stację z pytaniem czy jest to pociąg pospieszny. Następnie wprowadzamy zwrotnicę, która rozróżni naszą odpowiedź i jeśli będzie to pociąg pośpieszny to skręci w lewo.
- Dobrze już układam odpowiednie tory - zapala się Piotrek.
- Teraz musimy ustalić, że w pierwszym wagonie będziemy przechowywać liczbę, która wskazuje czy jest to pociąg osobowy (wtedy będzie tam 0) czy pośpieszny (wtedy będzie to 1) - powoli wyjaśnia Ojciec.
- Tylko jak się wstawia liczby do wagonów ? - pyta Piotrek.
- Zupełnie podobnie jak umieszcza się towary w wagonach. Potrzebna jest odpowiednia rampa przeładunkowa na stacji, na którą wjedzie pociąg zaraz po rozgałęzieniu - odpowiada Ojciec.
- Ach to potrzebne są dwie stacje na jednej będziemy zawsze ładować zero a na drugiej zawsze jeden - szybko podchwytuje chłopiec i zaczyna dołączać odpowiednie stacje i rampy.
- Ale skąd wziąć zero i jeden ? - zastanawia się.
- Zauważ, że w pierwszym wagonie umieszczono już zero a w drugim jeden. Wykorzystaj je do odróżniania pociągu przez zawartość trzeciego wagonu - podpowiada Ojciec.
- Tylko co dalej z tymi torami ? - zastanawia się znowu.
- Teraz możesz połączyć je z powrotem w jeden tor, bo już będziemy umieli rozróżnić czy to pociąg pośpieszny czy osobowy na podstawie zawartości pierwszego wagonu - pomaga Ojciec.
- Aha to już wiem jak zabezpieczyć stację osobową przed przejazdem pociągów pośpiesznych. Wystarczy ustawić przed nią zwrotnicę z rampą, która zbada czy w pierwszym wagonie jest liczba 1 i wtedy skieruje pociąg jako pośpieszny na obwodnicę zamiast bezpośrednio na stację - tłumaczy syn.
- Słusznie. Widzę, że na pewno sobie poradzisz z dalszym układaniem kolejki - kończy Ojciec.Szkolne zadanie Gauss'aOjciec pracuje przy biurku, a Piotr ze znudzoną miną kręci się po pokoju.
- Widzę, że się nudzisz. A ja mam sporo pracy i nie mogę się tobą zająć. Więc dam Ci zadanie, które niegdyś dawali nauczyciele matematyki swoim uczniom gdy musieli zająć się inną pracą - mówi Ojciec.
- A będzie to ciekawe zadanie ? - pyta chłopiec.
- To zależy od tego jak na nie spojrzeć. Zadanie polega na zsumowaniu wszystkich liczb od 1 do 100 - odpowiada Ojciec.
- A to nieciekawe. Dużo liczenia i nic przyjemności - mówi zniechęcony Piotr.
- A właśnie, że nie. Wielki matematyk Gauss gdy był jeszcze w Twoim wieku spojrzał na to zadanie w niecodzienny sposób i znalazł klarowne, proste rozwiązanie wymagające tylko kilku operacji arytmetycznych.
- A jak on to zrobił - pyta zaciekawiony chłopiec.
- Gdybym Ci teraz powiedział to nie byłoby zadania. Ale ty z kolei masz kolejkę. Spróbuj ją zaprzęgnąć do pracy - proponuje Ojciec.
- Dobrze, spróbuję - odpowiada chłopiec i zagłębia się w myślach.
- Potrzebuję pętlę, aby "w kółko Macieju" powtarzać dodawanie nowej liczby do sumy - mruczy pod nosem i buduje tor składający się ze zwrotnicy na początku i jednej odnogi wracającej z powrotem na zwrotnicę i drugiej idącej w kierunku końca toru.
- Potrzebuję też dwóch wagonów w jednym będę pamiętał aktualną sumę liczb a w drugim aktualnie dodawaną liczbę - kontynuuje Piotr.
- W pętli będę miał dwie stacje. Jedna będzie powiększała sumę a druga będzie powiększała o 1 aktualnie sumowaną wartość. Jeśli ta wartość przekroczy 100 to wyjdę z pętli. A przed pętlą jeszcze trzeba ustalić sumę na zero i aktualną liczbę na 1. No i po pętli dodać wyświetlanie wyniku - kończy tryumfalnie budowę swojej sieci kolejki.
Uruchamia kolejkę i po dłuższym czasie potrzebnym kolejce do wykonania stu okrążeń toru odczytuje na głos wynik:
- Tato, ta suma wynosi 5050. A jak Gauss rozwiązał to zadanie ?
- Po prostu zauważył, że sumując po kolei pary liczb z początku i końca podanego ciągu otrzymywał zawsze tę samą sumę 101. A ponieważ takich par było 50 więc wynik 5050 uzyskał licząc w pamięci - odpowiedział Ojciec.
- To piękne rozwiązanie. A dzisiaj w programie telewizyjnym jest film o ciekawym tytule "Defilada z komputera". Może byśmy go razem obejrzeli - proponuje Piotrek.
- Słyszałem o tym filmie dużo dobrego. Więc go sobie obejrzyj. A ja niestety muszę iść do pracy. Opowiesz mi jak wrócę. Cześć. - mówi Ojciec i wychodzi z domu.Defilada z komputeraPułkownicy Czerwony i Niebieski spotykają się na naradzie u Generała.
- Rozkazuję zorganizować wspólną defiladę pododdziału Czerwonych beretów i pododdziału Niebieskich Beretów - mówi Generał.
- Tak jest Panie Generale - odpowiadają zgodnie pułkownicy Czerwony i Niebieski.
- Czerwone Berety mają iść tuż za Niebieskimi Beretami. Dla porządku wszystkie szeregi mają mieć równą liczbę żołnierzy - kontynuuje Generał.
- Tak jest Panie Generale.
- Proszę uzgodnić szczegóły - mówi Generał i wychodzi z pokoju.
- Zobaczymy ilu mamy razem żołnierzy - mówi pułkownik Niebieski - u mnie jest 56.
- A u mnie 77 więc razem 133 - odpowiada pułkownik Czerwony.
- No to nie tak łatwo będzie ustawić żołnierzy w równolicznych szeregach - zauważa pułkownik Niebieski.
- Jeśli przyjmę, że ty potrafisz ustawić swoich 56 żołnierzy w określonym szyku to i ja będę umiał ustawić taką samą część moich żołnierzy więc pozostanie mi już tylko 21 do uzgodnienia ustawienia z tobą - spostrzega po chwili pułkownik Czerwony.
- A skoro ty potrafisz ustawić swoich 21 żołnierzy to i ja będę mógł ich odliczyć co da mi 35 żołnierzy do uzgodnienia z tobą - mówi Niebieski.
- Spróbuj jeszcze raz odjąć moich żołnierzy od swoich bo ja mam ich mniej. Radzi po chwili pułkownik Czerwony.
- Ach właśnie, więc zostanie mi ich tylko 14-tu - posłusznie wykonuje Niebieski.
- No to teraz ja odejmę tych twoich 14-tu i zostanie mi siedmiu - mówi Czerwony.
- Mnie też zostało siedmiu - zauważa Niebieski.
- A więc mamy rozwiązanie, możemy ustawić po siedmiu żołnierzy w rzędzie - mówi uradowany Czerwony.
Nagle drzwi otwierają się i wpada Generał.
- Panowie to ma być porządna defilada więc rozkazuję by wzięły w niej udział całe oddziały - krzyknął Generał i wyszedł.
- Ja mam 1001 żołnierzy w oddziale. A ty ilu masz ? - pyta Czerwony.
- A ja mam 1078. Czeka Nas długi wieczór liczenia - spostrzega Niebieski.
- A co będzie jak znowu wpadnie Pan Generał z nowym pomysłem ? Albo w ostatniej chwili ktoś się rozchoruje ? - martwi się Czerwony.
- Wiesz, mam pomysł - mówi Niebieski. Mam w biurze komputer. Zaprogramujemy naszą metodę i już zawsze komputer nam to szybko rozwiąże.
- Dobry pomysł. Prowadź.
Po chwili obaj pułkownicy siedzą przed komputerem w biurze Niebieskiego.
- Musimy najpierw ustalić komórki na obliczane wartości - mówi Niebieski wpisując słowa Czerwony i Niebieski.
- Teraz napiszemy operacje jakie komputer będzie musiał wykonywać - kontynuuje Niebieski.
- Ale może byłyby potrzebne dwa komputery skoro zadanie rozwiązywaliśmy we dwóch ? - pyta Czerwony.
- Wystarczy jeden. Przecież pracowaliśmy na zmianę. A teraz to mógłbym już robić sam - odpowiada Niebieski.
- Pamiętasz, że powtarzaliśmy nasze obliczenia tak długo aż obie liczby nie zrównały się - kontynuuje Niebieski i zapisuje na klawiaturze "Jak długo Czerwony różny od Niebieski wykonuj:".
- A teraz od większej odejmij mniejszą - radzi Czerwony.
- Słusznie. Ale najpierw muszę sprawdzić, która jest większa. Zapiszę więc "Jeśli Czerwony > Niebieski to zmniejsz Niebieski o wartość Czerwony inaczej zmniejsz Czerwony o wartość Niebieski" - mówi Niebieski.
- No teraz każ mu policzyć - mówi Czerwony.
Niebieski posłusznie nakazuje komputerowi liczenie według zadanego programu. Ale komputer uparcie milczy.
- Racja. Przecież zapomnieliśmy o zaprogramowaniu naszej komunikacji z komputerem - mówi Niebieski.
- Najpierw napiszemy instrukcje, które zapytają nas o dane - kontynuuje Niebieski i pisze: "czytaj Czerwony i czytaj Niebieski".
- A teraz instrukcje wyjścia - mówi dalej i pisze "wyprowadź Czerwony".
Po ponownym uruchomieniu programu komputer pyta o liczby. Niebieski wpisuje 56 i 77 a komputer posłusznie wyświetla 7.
- Działa. Działa. - okrzyki Niebieskiego i Czerwonego zagłusza telefon od Generała.
- Ilu żołnierzy w rzędzie będzie maszerowało na defiladzie ? - pyta Generał.
- Chwileczkę Panie Generale - Niebieski błyskawicznie uruchamia program i wystukuje 1001 i 10078.
- Jedenastu - odczytuje liczbę wyświetlaną na monitorze.
- To doskonale - odpowiada Generał.Defilada a kolejkaNastępnego dnia po obejrzeniu filmu Piotrek streszcza go Ojcu i zaraz proponuje.
- Tato. A moglibyśmy ułożyć tory tak żeby kolejka realizowała ten algorytm, który wymyślili pułkownicy z filmu ?
- świetny pomysł. Ale muszę Cię sprostować, bo algorytm ten podał już w starożytności Euklides. A może spróbowałbyś odgadnąć ilu zwrotnic i nastawni będzie nam potrzeba?
- Chyba dwie. Jedną żeby zbadała czy przypadkiem liczby nie są sobie równe. Drugą by stwierdziła, która liczba od której jest większa. Ale pozostają jeszcze zjazdy na wspólny tor...Aha przecież tu są takie uboższe zwrotnice tylko do tego celu - domyślił się Piotrek.
- Słusznie.
- To zaraz spróbuję sam zestawić tory - powiedział Piotrek.
I zabrał się do pracy, która zajęła mu około godziny. W tym czasie Ojciec wyjął komputer z teczki i intensywnie pracował przy biurku, aż pracę przerwały mu okrzyki Piotrka.
- Patrz Tato. Moja kolejka planuje defiladę - wołał.
- Dobrze. Wpisz liczby 21 i 35 - polecił Ojciec.
Piotrek wykonał polecenie i uruchomił kolejkę. Kolejka kilkakrotnie zawróciła w pętli po czym zatrzymała się na stacji KOŃCOWA.
- Jaki wynik? - zapytał Ojciec.
- Siedem. Więc wszystko jest poprawne - odpowiedział syn.
- Nie bądź taki pewien. By zagwarantować sprawne działanie programu trzeba by wykonać znacznie więcej testów a i tak nie moglibyśmy mieć całkowitej pewności poprawnego działania programu - podsumował Ojciec.Odgadywanie pomyślanej liczbyPiotr oglądał w telewizji pokazy mistrza magii, który prezentował znakomite sztuczki z odgadywaniem kart. Po spektaklu spojrzał na Ojca i zapytał:
- Tato. Mógłbyś mnie nauczyć jakiejś sztuczki z odgadywaniem kart ?
- Niestety, zapomniałem już wielu sztuczek. Ale możesz je znaleźć w książkach, na przykład matematycznych. Chociaż... Mógłbym Cię nauczyć sztuczki z szybkim odgadywaniem liczb - odpowiedział Ojciec.
- Zademonstruj mi ją Tato.
- Pomyśl sobie jakąś liczbę od 1 do 100. Jak będę Ci podawał liczbę to mi odpowiesz czy zgadłem czy też liczba jest mniejsza czy większa od zadanej - mówi Ojciec.
- Dobra. Pomyślałem. Zgaduj - mówi Piotr.
- Pięćdziesiąt - mówi Ojciec.
- Liczba jest mniejsza.
- 25.
- Znowu mniejsza.
- 13.
- Zgadłeś Tato. I to jak szybko. Nauczysz mnie? - prosi chłopiec.
- To dosyć proste. Musisz zawsze pamiętać tę liczbę, od której szukana jest większa i drugą od której szukana jest mniejsza. Gdy masz zadać pytanie wybierasz liczbę jak najbliższą średniej z tych dwóch liczb. Rozumiesz ? - pyta Ojciec.
- Chyba tak. Pomyśl Tato jakąś liczbę.
- Już pomyślałem.
- 50.
- Mniejsza.
- 25.
- Mniejsza.
- 13.
- Mniejsza.
- 7.
- Brawo. Zgadłeś - chwali Ojciec.
- Wiesz co. Wpadłem na pomysł, że odgadywać mogłaby kolejka - mówi chłopiec.
- świetna myśl. Ty popracuj nad programem a ja zrobię porządek w moich dokumentach.Problem cioci ogrodniczkiPewnego dnia przyszła ciocia Magdzia. Rozpoczęła się rozmowa na tematy rodzinne, aż w pewnym momencie Ciocia powiedziała:
- Właściwie to przyszłam ze sprawą do Twojego męża, ale go nie widzę.
- Tak, właśnie jest w pracy - odpowiedziała mama.
- A jaki masz problem ? - zapytała z zainteresowaniem.
- Jak wiesz zajmuję się urządzaniem ogródków. I właśnie wczoraj przyszedł do mnie pewien zamożny gość z niezwykłym problemem. Chce mianowicie by obsadzić mu krzewami róż prostokątny plac z przejściem pośrodku - zaczęła opowiadać Ciocia.
- I cóż w tym niezwykłego? Przecież już nieraz wykonywałaś podobne prace - zapytała z niedowierzaniem mama.
- Tak. Ale ten gość chce by krzewy były rozmieszczone w dokładnie równych odległościach w obydwu trójkątnych polach. Wzięłam rozmiary placu, ale nie mogę znaleźć takich trójkątów. Więc pomyślałam sobie, że może pomógłby komputer.
Na te słowa słuchający dotąd bez zainteresowania Piotruś nagle przestał jeść i zaczął wpatrywać się w gościa po czym poprosił:
- A mogłabyś Ciociu narysować plan tego placyku.

Rys. 1 Przykładowy podział kwadratowego placu na klomby i ścieżkę.
Ciocia Magdzia wzięła do ręki długopis i zaczęła rysować:
Po czym narysowawszy powiedziała:
- Narysowałam przykładowe rozmieszczenie kępek kwiatów, ale tu już z daleka widać, że odległości są nierówne. Trzeba odpowiednio dobrać proporcje boków trójkątów i ilości klombów by wszystko się zgadzało, ale tego ja już nie potrafię.
- Ale to przecież jest proste. To są boki trójkątów prostokątnych, dla których znane jest twierdzenie Pitagorasa. Wystarczy więc dobrać taką trójkę liczb całkowitych by równanie było spełnione i cześć - po chwili zastanowienia wykrzyknął Piotrek.
- Dobrze, dobrze. Ja już tak próbowałam ale to wcale niełatwo znaleźć takie trzy liczby całkowite, które spełniają warunek - odpowiedziała mu Ciocia.
- Ale przecież ja mam kolejkę, która nie takie rzeczy potrafi liczyć. Więc zaraz zestawię tory i przyniosę Ci wyniki - zapewnił i ruszył do pracy.
- Najpierw, wstawię warunek, który sprawdza czy trzy liczby spełniają warunek bycia trójkątem prostokątnym i jeśli tak to wynik będzie wyświetlany - mówił zestawiając tory.
- A ile ma być tych róż ? - zwrócił się z zapytaniem do Ciotki.
- Między 80 a 120 - odpowiedziała mu Ciotka.
- A więc otoczę tę instrukcję trzema pętlami na wartości kolejnych boków tak by dwukrotna ich suma mieściła się w zadanym przedziale - mówił dalej Piotr.
- No gotowe - powiedział w końcu i uruchomił kolejkę.
Kolejka zaczęła krążyć, a tymczasem nadchodził zmierzch. Po godzinie nie było jeszcze wyników, ale w zamku zachrobotał klucz i po chwili do pokoju wszedł Ojciec. Piotr od razu zajął Ojca problemem róż i szczegółowo mu objaśnił swoje rozwiązanie.
- Wspaniale. Widzę, że już doskonale rozwiązujesz problemy programistyczne. A długo ta kolejka już liczy ? - zapytał w końcu.
Piotr posmutniał i spuścił głowę.
- Nic się nie martw. Po prostu ten kolejkowy komputer jest za wolny - szybko powiedział Ojciec i zaraz wyjął z teczki swój przenośny komputer. Rozłożył go na biurku i uruchomił program.
- Użyjemy takiego prastarego języka programowania BASIC i zapiszemy w nim Twój algorytm - powiedział i w ciągu kilku minut wprowadził program.
- A teraz przetłumaczymy ten program na wewnętrzny język maszyny i uruchomimy - powiedział i wykonał odpowiednie czynności. Po chwili na ekranie zaczęły z wolna sunąć trójki liczb.
- O są wyniki - powiedział chłopiec.
- Zaraz je wydrukujemy i damy Cioci te rozwiązania do wyboru najlepszego - powiedział Ojciec.Usprawnione rozwiązanie problemu sadzenia różNastępnego dnia Ojciec zastał Piotra zamyślonego nad swoją kolejką.
- Tato. Czemu ona nie potrafi rozwiązać problemu róż - powiedział w końcu.
- Potrafi. Tylko robi to zbyt wolno. Jest po prostu bardzo powolnym komputerem - wyjaśniał Ojciec.
- I nic się nie da zrobić ? - zapytał smutnie Piotr.
- Tego nie powiedziałem. Dla każdego problemu możemy wziąć rozwiązanie pierwsze z brzegu lub zastanowić się nad nim dogłębnie i próbować podać rozwiązanie najsprawniejsze z możliwych to jest wymagające jak najmniej kroków by znaleźć wynik - powiedział Ojciec.
- A mógłbyś się zastanowić czy istnieje lepsze rozwiązanie problemu róż ? - poprosił chłopiec.
- Może spróbujemy zrobić to razem. Zgoda ?
- No pewnie. Jestem gotów - raźno odpowiedział Piotr.
- Najpierw napisz równanie Pitagorasa - powiedział, a Piotr posłusznie napisał:

- A teraz przenieśmy jeden z boków na drugą stronę:

- Czy przypominasz sobie to wyrażenie z prawej strony ? - zapytał Ojciec.
- Ależ tak. To jest wynik skróconego mnożenia. Zaraz to rozpiszę:

- No właśnie. A teraz wylicz a - polecił Ojciec a chłopiec posłusznie zapisał:

- A teraz pomyśl. Jakie to muszą być liczby c-b i c+b by a było liczbą całkowitą? - zapytał Ojciec.
- Zarówno c-b jak c+b muszą być kwadratami jakichś liczb całkowitych.
- No to wprowadź zmienne pomocnicze:

- Bardzo dobrze. Teraz zapisz jak wyliczać na podstawie p i q wartości boków trójkąta - znowu polecił Ojciec:

- Widzisz teraz wystarczy przeszukiwać p i q (gdzie zawsze p > q) by otrzymywać boki trójkąta. Musisz teraz tylko ustalić zakres przeszukiwania.
- To proste. Najpierw Ci napiszę ile będziemy mieć róż - odpowiedział chłopiec pisząc:

- Teraz wystarczy podstawić za q 1 i wyliczyć p na podstawie minimalnej liczby róż, a potem wyliczyć z p wartość q - objaśniał dalej.
- Tylko zauważ, że kolejka nie ma operatora pierwiastkowania i będziemy musieli wyliczyć p badając kolejne liczby naturalne od 1 dla spełnienia warunku przewyższania minimalnej liczby róż. Teraz to już sobie poradzisz z programem. Ja idę z mamą na spacer - powiedział Ojciec zostawiając Piotra pochylonego nad kolejką.Kolejka z komputeraNo i przyszła gwiazdka. Piotrek i jego rodzice siedzieli przy wigilijnym stole po skończonym posiłku.
- A teraz zobaczymy, co nam przyniósł Mikołaj - powiedział Tata. Podeszli z Mamą do choinki i rozpakowywali swoje prezenty. Słychać było głosy zachwytu.
- Chodź, Piotrek, tu jest też coś dla ciebie - zawołała mama.
Piotrek posłusznie podszedł i zaczął rozpakowywać płaski pakiecik.
- Ach, to nowy program do mojego komputera - ucieszył się. Po czym otworzył podręcznik do programu i zaczął czytać:
OD ZABAWY KOLEJKą DO PROGRAMOWANIA
Program ten jest spełnieniem moich dziecięcych marzeń o posiadaniu kolejki elektrycznej z dużym zestawem szyn, zakrętów, zwrotnic i wagonów. Dzisiaj program komputerowy pozwala mi nie tylko korzystać z praktycznie nieograniczonego zestawu tych elementów, ale również nie potrzebuję dużego pokoju. Wszystko mieści się w bardzo pojemnych dziś pamięciach komputera. Kolejkę w całości i różnych fragmentach można obserwować na ekranie. Składa się ją i steruje jej ruchem z użyciem komputerowej myszki. Moja kolejka przewozi również towary, ale jak na razie są to tylko liczby. Na stacjach możemy wykonywać różne operacje na zawartościach wagonów, a zwrotnice przełączają się pod wpływem różnych zawartości wagonów w nadjeżdżającym pociągu. Można się zastanawiać, po co taka kolejka? Przecież komputer jest znacznie droższy niż najdroższa kolejka i wcale nie bardziej atrakcyjny szczególnie dla młodszych dzieci. Moja kolejka jest jednak zabawką edukacyjną. Z jej pomocą możemy poznać zasady programowania w chyba najprostszy z możliwych sposobów. Programowanie z użyciem graficznych łączników (szyn i zwrotnic) nie jest tak całkiem nowe. Już we wczesnym etapie rozwoju informatyki stosowano graficzną postać zapisu programów - tzw. schematy blokowe. Jednak wtedy urządzenia wejściowe i wyjściowe komputerów, a także ich mała moc obliczeniowa, nie pozwalały na bezpośrednie używanie grafiki. Zapis graficzny tłumaczono na różne, mniej i bardziej skomplikowane, znakowe języki programowania. Spośród setek języków programowania programiści znają najwyżej kilka i czasem trudno znaleźć jeden wspólny dla wielu język programowania. Za to schematy blokowe znają i rozumieją wszyscy informatycy, a dzięki pokazaniu ich związku z dziecięcą kolejką podstawy programowania może zrozumieć każdy.Instalacja programu i ogólne uwagi eksploatacyjne
Instalacja programu polega na skopiowaniu zawartości dyskietki w wybrane miejsce na dysku twardym komputera (np. programem Menedżera Plików) oraz wybraniem w Menedżerze programów systemu WINDOWS opcji Nowy z Menu Plik w celu uwidocznienia programu w postaci obrazka (zwanego ikoną) tutaj będzie to obrazek kolejki.
Po uruchomieniu programu ujrzymy winietkę informującą o programie oraz pojawi się niewielkich rozmiarów Główne Okno programu, którego szczegółowy opis znajduje się w następnym rozdziale. Jednak najczęściej z okna głównego będziemy dwukrotnym przyciśnięciem rysunku (ikony) lokomotywy przechodzić do okna postaci graficznej. Tak, że zaznajamianie się z Oknem Głównym możemy pozostawić na później.
Graficzną postacią programu w TRAIN operuje się na dwóch poziomach. Na poziomie wyższym składamy schemat blokowy programu (inaczej elementy torowiska kolejki) i definiujemy zmienne i stałe (wagony i ich zawartości). Na poziomie niższym każdy blok schematu możemy wypełnić dwoma rodzajami informacji: tekstową i schematami przepływu (inaczej rampami przeładunkowymi).
Powyższy podział odzwierciedla przeznaczenie lewej części okna na schemat blokowy, prawej części na zmienne i ich wartości a środka na schematy przepływu. Tekstami związanymi z każdą instrukcją pozwala manipulować dodatkowe okno.
Schematy blokowe tworzymy używając jednego z trzech elementów umieszczonych na panelu u góry okna postaci graficznej. Każdy z nich możemy umieścić w dowolnej części schematu jednak zawsze w układzie pionowym i zawsze pomiędzy blokiem początku i końca schematu. Stosujemy tutaj przeciąganie i upuszczanie elementów. W przypadku bloku instrukcji nie rozgałęziającej się upuszczenie kończy proces wstawiania. Natomiast bloki z rozgałęzieniami wymagają jeszcze wskazania jeszcze punktu, do którego ma nastąpić (warunkowe) przeniesienie wykonywania programu i przyciśnięciem myszy utrwalić ten wybór. Możemy również później przenieść ramię instrukcji (bez)warunkowej przyciskając klawisz myszy po boku instrukcji, z której wychodzi to ramię. Dalej postępujemy jak po upuszczeniu instrukcji. Przytrzymując klawisz Ctrl i lewy klawisz myszy możemy rozpocząć proces przeciągania i upuszczania dowolnej instrukcji schematu. Jedynym miejscem upuszczenia takiej instrukcji może być kosz na śmieci, co spowoduje jej usunięcie ze sch
ematu. Przyciśnięcie lewego klawisza myszy na elementach schematu powoduje otwarcie pośrodku okna pola schematów przepływu danych konkretnej instrukcji lub (w uproszczeniu) całej widocznej części schematu. Natomiast przytrzymując dodatkowo klawisz Shift powodujemy otwarcie okna pozwalającego manipulować tekstem związanym z daną instrukcją. Prawym klawiszem myszy możemy wskazywać miejsce, w którym ma rozpocząć się wykonywanie programu (częsty błąd polega na zapomnieniu przestawienia punktu wykonywania programu na początek przy kolejnym uruchamianiu wykonywania programu).
Zmienne i stałe w programie możemy definiować zmieniając dotąd nadane im nazwy oraz nadając im wartość początkową. Jeśli choćby raz użyliśmy jakiejś zmiennej w programie to jej wartość początkowa zostanie ustalona zgodnie z zapisem na liście zmiennych i wartości. Nazwy i liczby możemy przenosić do okna edycji (umieszczonego na panelu po prawej stronie okna) przyciskając odpowiednią zmienną lub stałą na liście. Z kolei wartości z okna edycji możemy umieszczać na liście stałych lub zmiennych przez przeciąganie i upuszczanie przy czym zgoda na upuszczenie pojawi się tylko wtedy, gdy ciąg znaków jest liczbą całkowitą nad polem stałych lub unikalną nazwą zmiennej nad polem zmiennych.środek okna przeznaczony jest do prezentacji grafu przepływu danych. W przypadku gdy nie wskazaliśmy instrukcji prezentowany jest tylko ogólny szkic przepływu danych pomiędzy zmiennymi lub stałymi, a określonymi instrukcjami. Po wybraniu instrukcji pojawia się już szczegółowy graf przepływu dotyczący tej instrukcji. Na graf przepływu składają się operatory arytmetyczne i porównania oraz łączące je i zmienne linie ze strzałkami wskazującymi na kierunek przepływu wartości. Specjalne znaczenie ma lewa krawędź pola, które w przypadku instrukcji warunkowych pozwala wskazać warunek, od którego spełnienia zależy dalszy przebieg programu. W przypadku braku takiego wskazania domyślnie w trakcie wykonywania o dalszy kierunek przepływu programu zapytywany jest użytkownik. W przypadku instrukcji bezwarunkowej znaczenie lewej krawędzi jest inne i polega na komunikacji z użytkownikiem. Jeśli skierujemy tam jakąś obliczoną wartość to zostanie ona wyprowadzona na ekran użytkownikowi. Jeśli natomiast zacznie stamtąd drogę to o wartość zostanie zapytany użytkownik. W ten sposób możemy przekazywać jedynie wartości liczb całkowitych.
Natomiast komunikację tekstową w programie zapewnia okno tekstowe (uruchamiane przez SHIFT+lewy klawisz myszy na odpowiedniej instrukcji), w które możemy wpisać dowolny tekst przeznaczony dla użytkownika programu.
Tworzenie grafów przepływu danych w programie umożliwiają umieszczone u góry okna operatory, które musimy tylko przeciągać i upuszczać na pulpicie oraz łączyć ze sobą, zmiennymi i lewą krawędzią ekranu przyciskając lewy klawisz myszy co pozwala tworzyć proste, a przez złożenie wielu prostych również łamane, które umożliwiają czytelne połączenie dowolnych punktów pola. Przy łączeniu należy uważnie dołączać argumenty do operatorów asymetrycznych ('-', '/', '', '(') ponieważ pierwszym argumentem staje się automatycznie pierwszy w kolejności dołączony i sprawą użytkownika pozostaje uczynić ten wybór czytelnym na ekranie (np. przez dołączenie pierwszego argumentu z lewej a drugiego z prawej strony). Wynik operatora porównania odsyłamy zawsze na lewą stronę ekranu.
Ta witryna wykorzystuje pliki cookies do przechowywania informacji na Twoim komputerze. Bez nich strona nie będzie działała poprawnie. W każdym momencie możesz dokonać zmiany ustawień dotyczących cookies.