Oto zastępca Logomocji. Właściwie tworzę to samo z tą różnicą, że Python jest środowiskiem całkowicie tekstowym. Nie posiada okienek na poszczególne procedury, a skrypt jest w języku angielskim. Bez wahania można stwierdzić, że jest trudniejszy niż Logo. Oto kilka przykładów funkcji z Pythona:
for i in range(4):
#jeśli tworzymy pętle (w tym przypadku jest to for) to ważne jest, aby wszystko, co znajduję się w #pętli musi zostać napisane po wcięciu (Tab)
fd(30); rt(90)
Po wywołaniu tej funkcji zostanie narysowany kwadrat o boku 30. Przy jakichkolwiek rysunkach należy pamiętać, że w Pythonie "żółw"nie zaczyna patrząc do góry, ale w prawo. Jeśli ktoś dużo pracował w Logomocji, to trudno będzie się przestawić na nowy tryb myślenia.
Wszystko co napiszemy w linijce po znaku # zostaje uznane za nasz komentarz, i jest omijane przez program.
Oczywiście w Pythonie można tworzyć o wiele trudniejsze rysunki,a jest to tylko jeden moduł całego programu. Często przy korzystaniu z grafiki żółwia trzeba skorzystać także z innych modułów np.: math, random itd.
Łączna liczba wyświetleń
Pokazywanie postów oznaczonych etykietą logo. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą logo. Pokaż wszystkie posty
sobota, 14 października 2017
wtorek, 10 stycznia 2017
Trochę przygotowań
Jako, że niedługo drugi etap minilogii na zajeciach informatycznych ćwiczyłam na zadaniach konkursowych. Był to motyw, wachlarz i wycinanka (wachlarza nie skończyłam).
Motyw:
Wycinanka (ta procedura zawierała parametr. Wywołanie na rysunku jest wywołaniem dla wartości parametru :ile 7)
A wachlarza nie ma :).
Te trzy zadanie (bo wachlarz był zrobiony, ale nie do końca) udało mi się zrobić w mniej niż 2 godziny, a że konkurs trwa właśnie 2 godziny mogę być spokojniejsza.
Motyw:
Wycinanka (ta procedura zawierała parametr. Wywołanie na rysunku jest wywołaniem dla wartości parametru :ile 7)
A wachlarza nie ma :).
Te trzy zadanie (bo wachlarz był zrobiony, ale nie do końca) udało mi się zrobić w mniej niż 2 godziny, a że konkurs trwa właśnie 2 godziny mogę być spokojniejsza.
wtorek, 3 stycznia 2017
Od dziś rekurencja
Rekurencja, to inaczej wywoływanie procedury w procedurze. W logomocji przedstawia się to tak, że procedura wywołuje samą siebie tworząc rekurencję. Podstawowymi przykładami rekurencji są drzewa. Takie jak to:
drzewo 100 4
albo to
hibernakus 100 5 ( z elementami losowości)
No albo to
tunel 200 (wiem, że tej rekurencji nie widać, ale jest :] )
drzewo 100 4
albo to
hibernakus 100 5 ( z elementami losowości)
No albo to
tunel 200 (wiem, że tej rekurencji nie widać, ale jest :] )
Kwiatek, kwaitek.kwaitek...
Dziś na zajęciach informatycznych udało mi się zaprogramować kwiatek (procedura wyszła kwaietek, ale nie ważne). Składa się on z sześciokątnego środka i sześciu ramion złożonych z losowej liczby elementów.
Zaczęłam programowanie od zielonego sześciokąta
oto sześciokąt
ukp "czerwony
pod ws 56 lw 60 opu
ukm "zielony3
wielokąt[powtórz 6[np 56 pw 60]]
pod pw 60 np 56 opu
już
Ma on czerwoną obwódkę nie czarna (to nie pomyłka).
Potem dodałam procedury pomocnicze rysujące te mniejsze sześciokąty wypełniające środek.
oto sześciokątm
ukp "czarny
ukm "zielony6
wielokąt [powtórz 6 [np (56/3) pw 60]]
już
oto sześciokątm2
ukp "czarny
ukm "żółty8
wielokąt [powtórz 7 [np (56/3) pw 60]]
już
Jeden jest jaśniejszy od drugiego. Wskazują na to liczby przy kolorach (mogą mieć one wartość od 1 do 12). Im wieksza wartość liczby, tym jaśniejszy jest kolor.
Aby narysować ramię kwiatka zaczęłam od trójkąta.
oto sześciokątm2
ukp "czarny
ukm "żółty8
wielokąt [powtórz 7 [np (56/3) pw 60]]
już
Zmienna "bok oznacza długość boku, który potem będzie się zmniejszał.
Następnie przy rysowaniu pełnego ramienia (co było dość trudne) wykorzystałam długość boku sześciokąta na środku, czyli 56, aby pozmniejszać trójkąty przy powtarzaniu.
oto ramię
niech "bok 56
niech "n 1+losowa 8
powtórz :n[trójkąt :bok pw 60 np :bok pw 120 np (:bok-7)/2 lw 180 niech "bok :bok-7]
pod
powtórz :n [np (56-(7*(:n-(npw-1))))/2 lw 120 np (56-(7*(:n-(npw)))) pw 120]
już
W piątej linijce pierwsze obliczenia dotyczą cofnięcia w miejscu, gdzie trójkąty się stykają. Drugie działanie, to już cofnięcie po pełnej ściance trójkąta. Oba te działanie, to cofnięcia ze ,,szczytu" ramienia.
czerwony- pierwsze obliczenie
niebieski- drugie obliczenia
Procedura końcowa była chyba najłatwiejszą częścią pracy.
oto kwiatek
środek pod pw 120 np 56 lw 120
powtórz 6[ ramię np 56 lw 60]
już
Zaczęłam programowanie od zielonego sześciokąta
oto sześciokąt
ukp "czerwony
pod ws 56 lw 60 opu
ukm "zielony3
wielokąt[powtórz 6[np 56 pw 60]]
pod pw 60 np 56 opu
już
Ma on czerwoną obwódkę nie czarna (to nie pomyłka).
Potem dodałam procedury pomocnicze rysujące te mniejsze sześciokąty wypełniające środek.
oto sześciokątm
ukp "czarny
ukm "zielony6
wielokąt [powtórz 6 [np (56/3) pw 60]]
już
oto sześciokątm2
ukp "czarny
ukm "żółty8
wielokąt [powtórz 7 [np (56/3) pw 60]]
już
Jeden jest jaśniejszy od drugiego. Wskazują na to liczby przy kolorach (mogą mieć one wartość od 1 do 12). Im wieksza wartość liczby, tym jaśniejszy jest kolor.
Aby narysować ramię kwiatka zaczęłam od trójkąta.
oto sześciokątm2
ukp "czarny
ukm "żółty8
wielokąt [powtórz 7 [np (56/3) pw 60]]
już
Zmienna "bok oznacza długość boku, który potem będzie się zmniejszał.
Następnie przy rysowaniu pełnego ramienia (co było dość trudne) wykorzystałam długość boku sześciokąta na środku, czyli 56, aby pozmniejszać trójkąty przy powtarzaniu.
oto ramię
niech "bok 56
niech "n 1+losowa 8
powtórz :n[trójkąt :bok pw 60 np :bok pw 120 np (:bok-7)/2 lw 180 niech "bok :bok-7]
pod
powtórz :n [np (56-(7*(:n-(npw-1))))/2 lw 120 np (56-(7*(:n-(npw)))) pw 120]
już
W piątej linijce pierwsze obliczenia dotyczą cofnięcia w miejscu, gdzie trójkąty się stykają. Drugie działanie, to już cofnięcie po pełnej ściance trójkąta. Oba te działanie, to cofnięcia ze ,,szczytu" ramienia.
czerwony- pierwsze obliczenie
niebieski- drugie obliczenia
Procedura końcowa była chyba najłatwiejszą częścią pracy.
oto kwiatek
środek pod pw 120 np 56 lw 120
powtórz 6[ ramię np 56 lw 60]
już
wtorek, 29 listopada 2016
ROZETA
Dziś na zajęciach dodatkowych udało mi się stworzyc pewien rysunek, a konkretniej rozetę stworzona z mniejszych gwiazdek.
Rozeta 5
Rozeta 9
Wysokość jest stała i wynosi 450. Jeśli ktoś miałby pomysł, jak rozwiązać to zadanie, propozycje można zamieścić w komentarzach ^-^.
Rozeta 5
Rozeta 9
Wysokość jest stała i wynosi 450. Jeśli ktoś miałby pomysł, jak rozwiązać to zadanie, propozycje można zamieścić w komentarzach ^-^.
wtorek, 15 listopada 2016
miniLOGIA
Ostatnio na drzwiach sali 31 głośno o zadaniach z I etapu konkursu miniLOGIA. Postanowiłam wziąć udział w tym konkursie. Termin kończy się 17 listopada, ale ja już ukończyłam zadania i wyglądają one mniejwięcej tak:
Posadzka 18

Panda (obecnie nie mam zdjęcia, ale pojawi się niedługo).
Pas (tu także zabrakło mi grafiki).
Posadzka 18

Panda (obecnie nie mam zdjęcia, ale pojawi się niedługo).
Pas (tu także zabrakło mi grafiki).
wtorek, 18 października 2016
Code Week
Ten tydzień jest europejskim Tygodniem Kodowania(Code Week). Postanowiłam uczcić ten tydzień i z tej okazji zaprogramowałam w logo takie kwadratowe mozaiki:
1.
Wersja 1.2 :>
Wykorzystałam tu procedurę kwadrat (taka podstawowa) z Parametrem :bok. A w procedurze końcowej zamieniłam ją na zmienną lokalną i dodałam parametr :ile.
2.
Wersja 2.2:
Wkrótce pojawi więcej postów z programowania ( a zwłaszcza scratch).
1.
Wersja 1.2 :>
Wykorzystałam tu procedurę kwadrat (taka podstawowa) z Parametrem :bok. A w procedurze końcowej zamieniłam ją na zmienną lokalną i dodałam parametr :ile.
2.
Wersja 2.2:
Wkrótce pojawi więcej postów z programowania ( a zwłaszcza scratch).
wtorek, 11 października 2016
Informatyka z dziś znowu kontynuacja
Trzecim, a zarazem ostatnim zadaniem był kryształ złożony z pięciokątów:
Pierwszym etapem był oczywiście pięciokąt:
oto pięciokąt
powtórz 5[np 70 pw 72]
już
Potem wystarczyło tylko stworzyć procedurę powtarzającą go 10 razy:
oto kryształ
ugp 2
ukp "zielony5
powtórz 10 [pięciokąt pw 360/10]
I znowu ukp i ugp są całkowicie dowolne.
Pierwszym etapem był oczywiście pięciokąt:
oto pięciokąt
powtórz 5[np 70 pw 72]
już
Potem wystarczyło tylko stworzyć procedurę powtarzającą go 10 razy:
oto kryształ
ugp 2
ukp "zielony5
powtórz 10 [pięciokąt pw 360/10]
I znowu ukp i ugp są całkowicie dowolne.
Informatyka z dziś kontynuacja
Kolejne zadanie:
Jest to śnieżynka o określonej liczbie ramion oraz igieł. Odległość miedzy ramionami śnieżynki zmienia charakter całego rysunku.
zaczęłam od stworzenia pojedynczej gałązki
oto gałązka :ile
np 5
powtórz :ile [np 5 pw 45 np 20 ws 20 lw 90 np 20 ws 20 pw 45]
ws :ile*5 ws 5
już
Mając gałązkę możemy już złożyć całą śnieżynkę
oto śnieżynka :n
przypisz "ile :n*5-10
ugp 2
ukp "czerwony5
powtórz :ile[gałązka :ile pw 360/:n]
już
Tak jak w poprzednim zadaniu ugp i ukp są dowolne
Tym razem możemy zauważyć procedurę przypisz, która pojawiła się zamiast niech.
Niech tworzy zmienną lokalną (wyjaśnienia w poprzednim zadaniu), a przypisz tworzy zmienną globalną. Zmienna lokalna jest nie widoczna i nie widzimy co się w niej znajduję. Tymczasem zmienna globalna daje nam możliwość podglądu przechowywanej liczby.
Jest to śnieżynka o określonej liczbie ramion oraz igieł. Odległość miedzy ramionami śnieżynki zmienia charakter całego rysunku.
zaczęłam od stworzenia pojedynczej gałązki
oto gałązka :ile
np 5
powtórz :ile [np 5 pw 45 np 20 ws 20 lw 90 np 20 ws 20 pw 45]
ws :ile*5 ws 5
już
Mając gałązkę możemy już złożyć całą śnieżynkę
oto śnieżynka :n
przypisz "ile :n*5-10
ugp 2
ukp "czerwony5
powtórz :ile[gałązka :ile pw 360/:n]
już
Tak jak w poprzednim zadaniu ugp i ukp są dowolne
Tym razem możemy zauważyć procedurę przypisz, która pojawiła się zamiast niech.
Niech tworzy zmienną lokalną (wyjaśnienia w poprzednim zadaniu), a przypisz tworzy zmienną globalną. Zmienna lokalna jest nie widoczna i nie widzimy co się w niej znajduję. Tymczasem zmienna globalna daje nam możliwość podglądu przechowywanej liczby.
Informatyka z dziś
Dziś na zajęciach dodatkowych z informatyki ćwiczyłam procedury z parametrem pisanie procedur z parametrem. Oto efekt mojej pracy:
Procedura poniżej :)
Zaczęłam od zwykłego pięciokąta:
oto pięciokąt :bok
powtórz 5[np :bok pw 360/5]
już
Parametr :bok jest KONIECZNY. Przyda na późniejszych etapach rysunku.
Następnym etapem pracy był płatek z dodatkowym parametrem :ile
oto płatek :ile
niech "bok 10
powtórz :ile[pięciokąt :bok niech "bok :bok+10]
W tym przypadku parametr :ile określa, ile małych pięciokątów ma się znajdować w tym największym. Parametr :bok nie pojawił się obok parametru :ile. Dlaczego? Pozbyłam się go, tworząc zmienną "bok równą 10.
Procedura ,,niech" tworzy zmienną lokalną dla tej jednej procedury (nie możemy jej użyć w innej procedurze, no chyba że użyjemy procedury zawierającą tą zmienną w innej).
Procedura końcowa ,,kwiatek" wygląda tak:
to kwiatek :ile
ugp 4
ukp "jasnoniebieski4
powtórz 5[płatek :ile pw 360/5]
już
ugp oraz ukp mogą być dowolne :)
Oto przykłady wywołania procedury kwiatek dla parametrów..
:ile 5
:ile 14
:ile 10
Procedura poniżej :)
Zaczęłam od zwykłego pięciokąta:
oto pięciokąt :bok
powtórz 5[np :bok pw 360/5]
już
Parametr :bok jest KONIECZNY. Przyda na późniejszych etapach rysunku.
Następnym etapem pracy był płatek z dodatkowym parametrem :ile
oto płatek :ile
niech "bok 10
powtórz :ile[pięciokąt :bok niech "bok :bok+10]
W tym przypadku parametr :ile określa, ile małych pięciokątów ma się znajdować w tym największym. Parametr :bok nie pojawił się obok parametru :ile. Dlaczego? Pozbyłam się go, tworząc zmienną "bok równą 10.
Procedura ,,niech" tworzy zmienną lokalną dla tej jednej procedury (nie możemy jej użyć w innej procedurze, no chyba że użyjemy procedury zawierającą tą zmienną w innej).
Procedura końcowa ,,kwiatek" wygląda tak:
to kwiatek :ile
ugp 4
ukp "jasnoniebieski4
powtórz 5[płatek :ile pw 360/5]
już
ugp oraz ukp mogą być dowolne :)
Oto przykłady wywołania procedury kwiatek dla parametrów..
:ile 5
:ile 14
:ile 10
Subskrybuj:
Posty (Atom)


















