główna strona  Logo
dobry dla dzieci
od lat 6 do 106
 
Malkontenci twierdzą, że Logo nie przydaje się w procesie dydaktycznym, bo jego oryginalne właściwości nie pozwalają na przeniesienie doświadczeń do innych języków programowania. Moim zdaniem to taka sama prawda, jak to, że umiejętność gry w szachy nie pomaga podczas jazdy na wrotkach. I co z tego? Właśnie przez swą odmienność Logo wyzwala z rutyny, pokazuje nowe horyzonty i uczy elastyczności w rozwiązywaniu problemów. Przecież i tak wykorzystujemy niewielki ułamek możliwości naszego umysłu, więc dodatkowa przygoda go nie zrujnuje, a na pewno wzbogaci.
w kilku słowach
Język programowania Logo wywodzi się od mechanicznych zabawek, których ruchy można było programować za pomocą ograniczonego zestawu nieskomplikowanych poleceń. Jeżdżącego po podłodze elektronicznego żółwia wyposażono w pisak, który mógł zostawiać na podłożu ślad przebytej drogi.
Popularyzacja komputerów osobistych pozwoliła na przeniesienie tresury robota-żółwia do wirtualnej rzeczywistości, redukując praktycznie do zera koszty takiego przedsięwzięcia. Ponadto składnia języka jest na tyle prosta, że już po kilku minutach nauki można pisać pierwsze programy.
Z drugiej strony, w tym języku nie widać ograniczeń do jakiegoś konkretnego obszaru zastosowań, można go więc użyć do realizacji praktycznie każdego zadania.
Przykładem może być klasyczna zagadka znana jako wieże Hanoi. Dysponując zestawem krążków różnej wielkości lub np. monet, ułożonych w stos zwężający się ku górze, należy przenieść je po jednej na drugi stos, korzystając z jednego pomocniczego stosu tak, aby nigdy większy krążek nie leżał na mniejszym.
Pokazany obok program napisałem w latach 80 w ciągu kilkunastu minut, korzystając ze świetnej implementacji Logo na komputerze Atari 800 XL, jako przyczynek do dyskusji o wyższości BASIC-a nad innymi językami programowania. Niedoszły autor analogicznego programu w BASIC-u skapitulował, gdy mając już ponad setkę wierszy był wciąż daleki od ukończenia pracy.
to hanoi :n
  make "h 10 make "a [] make "b [] make "c [] make "dly 60
  pu ht repeat :n [queue "a product repcount 20] display
  mov count :a "a "b "c show "Done.
end

to display
  cs next -1 dsptower :a next 1 dsptower :b next 1 dsptower :c next -1
  wait :dly
end

to next :i
  rt 90 fd product :i 300 lt 90
end

to dsptower :stk
  if not emptyp :stk [dspelem last :stk fd :h dsptower bl :stk bk :h]
end

to dspelem :w
  rt 90 pd
  fd :w/2 lt 90 fd :h lt 90 fd :w lt 90 fd :h lt 90 fd :w/2
  pu lt 90
end

to mov :n :x :p :y
  if :n > 0 [mov :n-1 :x :y :p push :y pop :x display mov :n-1 :p :x :y]
end
to całkiem proste
Oto opis poszczególnych procedur, linijka po linijce:
hanoi główny program, liczba krążków jako parametr display wyświetla bieżący stan układanki next przechodzi do rysowania innego stosu dsptower rysuje wieżę określoną parametrem dspelem rysuje element o szerokości podanej parametrem mov procedura rozwiązująca zadanie  
Program uruchomisz bez trudu w bezpłatnym FMSLogo. Pakiet zawiera okienkowe środowisko uruchomieniowe, a także szczegółowy opis składni i bogaty wybór przykładów.
 
opiekun: Janusz Wiśniewski :: rejestracja odwiedzin 2447 gości
desk