Wpis z mikrobloga

Wychodzę dzisiaj z betą mojej strony do nauki programowania :D
Coś a'la Scratch, układa się bloczki i z tego wychodzi działający kod. Całość jednak dla osób trochę bardziej zaawansowanych.
Głównym celem jest przybliżenie tajników OOP.
Delikwent układa/pisze kod, a potem może śledzić jak w trakcie jego wykonywania zmienia się stos i sterta w pamięci komputera.
Ciągle jest tam trochę niedociągnięć, ale coś już działa :V
Zacząłem to pisać jako projekt prywatny, a ostatecznie przekształciłem to w moją pracę inżynierską.
Kto kliknie, ten będzie zarabiał 15 tyś. złotych miesięcznie - sprawdzone info ( ͡º ͜ʖ͡º)
Teraz muszę popracować tylko nad stworzeniem trochę większej liczby lekcji, a z tym jak na razie jest cienko :D

Tutaj stronka z IDE: TREPL

#programowanie #scratch #naukaprogramowania #trepl
Lord_Fixer - Wychodzę dzisiaj z betą mojej strony do nauki programowania :D
Coś a'la...

źródło: comment_VRWj3YS4G1FB7uB8Hk76OJZqfBgZWXm7.jpg

Pobierz
  • 38
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Lord_Fixer: No szkoda, że nie da się dać superplusa, bo byłby w pełni zasłużony. co do projektu to kliknąłem na razie tylko raz, wczytałem sobie przykładową obsługę kolejki i może jednak dało by się te placeholdery obsłużyć inaczej niż przez skakanie tych bloczków? bo bardzo irytująco to wygląda... I druga uwaga na szybko - jest sobie print.pop(), sama funkcja pop nie ma parametrów, więc czemu w wywołaniu jest placeholder na
  • Odpowiedz
@Lord_Fixer: I jeszcze pytanie - jak zmienić typ zwracanej z funkcji wartości? np. number z funkcji pop chciałem zmienić na string i jakoś nie mogę wykombinować jak to zrobić
  • Odpowiedz
@Darjo:

może jednak dało by się te placeholdery obsłużyć inaczej niż przez skakanie tych bloczków?

Hmm, będę musiał więc nad tym pomyśleć. Wcześniej było tak, że one bezpośrednio nie skakały, a była dodana animacja ich rozszerzania. Nie wiem jednak, czy to by rozwiązywało ten problem - minie po pewnym czasie zaczęło to denerwować :D

sama funkcja pop nie ma parametrów, więc czemu w wywołaniu jest placeholder na wpisanie parametru?

Pleceholder
  • Odpowiedz
@Darjo:

jak zmienić typ zwracanej z funkcji wartości?

Można to zrobić na kilka sposobów. Po pierwsze musisz usunąć ten stary typ zwracany. Albo go kliknij i wciśnij delete, albo przeciągnij do kosza. Następnie musisz dodać nowy typ. Albo kliknij w placeholder i wpisz "string" - wybierz odpowiedni bloczek z listy. Alternatywnie możesz go przeciągnąć z toolboxa.
Wiadomo, że nie jest to równie szybkie jak zwykłe klepanie kodu, ale jednak dość
  • Odpowiedz
@Lord_Fixer: ok, z usuwaniem to dopiero później trasha zauważyłem, teraz działa. ale jak już usunę to tylko przeciąganie nowej mi działa, wpisanie tam string czy void powoduje błąd: no field of that name was found in the scope.

i jeszcze jedno - czy przy przeciąganiu jest/powinien być jakiś "duszek" z tym co się przeciąga? bo u mnie na chrome jak coś przeciągam to nie widać tego że przeciągam i co
  • Odpowiedz
@Darjo:

wpisanie tam string czy void powoduje błąd

Kolejna rzecz więc do zmiany. Ogólnie (jak na razie) jest różnica między bloczkiem string, a bloczkiem w którym wpiszesz string. Ogólnie bloczki typów są brązowe. W toolboxie masz je w kategorii "Types", a wpisując ręcznie "string" musisz z tej wyskakującej listy zjechać strzałkami w dół i wybrać odpowiedni bloczek. Ale dobrze, że zwróciłeś na to - uwagę do zmiay.

czy przy przeciąganiu jest/powinien
  • Odpowiedz
@Lord_Fixer: zrobiłem program z rekurencją nieskończoną i chyba nie działa tak jakbym się spodziewał. oczywiście spodziewałem się, że będzie coś w stylu "Execution error: RangeError: Maximum call stack size exceeded" ale przy uruchamianiu krokowym nie zostało to zobrazowane, tzn. mam wrażenie, że błąd został wywołany już w trakcie tworzenia obiektu klasy która miała funkcję z rekurencyjnym wywołaniem a nie dopiero przy wywołaniu tej funkcji. no bo marzyło mi się, że
Darjo - @Lord_Fixer: zrobiłem program z rekurencją nieskończoną i chyba nie działa ta...

źródło: comment_v6azxgV1c3YyGOFEz2RKjYQHGfg7TGtQ.jpg

Pobierz
  • Odpowiedz
zrobiłem program z rekurencją nieskończoną i chyba nie działa tak jakbym się spodziewał

@Darjo:
Bład w IDE polegający na tym, że nie robi przerw na wyświetlanie zmian w tego typu programie. Jeżeli odhaczysz sobie tick "temporary values" to powinno działać prawidłowo. Ale rzeczywiście nie ma jeszcze wykrywania przepełnienia stosu :D

A dodałem duszki podczas przenoszenia - powinny działać prawidłowo :)
  • Odpowiedz
@Lord_Fixer: Jakbyś chciał uzupełnić czymś tutoriale to łap Sito Erastotenesa {"element":"Program","params":[[{"element":"VariableDeclaration","params":["tab",{"element":"Array","params":[{"element":"Int","params":[],"visible":false},"100"],"visible":false}],"visible":false},{"element":"ForLoop","params":[{"element":"VariableImplicitDefinition","params":["i",{"element":"RawData","params":["2"],"visible":false}],"visible":false},{"element":"Less","params":[{"element":"RawData","params":["i"],"visible":false},{"element":"RawData","params":["100"],"visible":false}],"visible":false},{"element":"Increment","params":[{"element":"RawData","params":["i"],"visible":false}],"visible":false},[{"element":"Set","params":[{"element":"ElementAt","params":[{"element":"RawData","params":["tab"],"visible":false},{"element":"RawData","params":["i"],"visible":false}],"visible":false},{"element":"RawData","params":["i"],"visible":true}],"visible":false}]],"visible":false},{"element":"ForLoop","params":[{"element":"VariableImplicitDefinition","params":["i",{"element":"RawData","params":["2"],"visible":true}],"visible":true},{"element":"Less","params":[{"element":"Multiply","params":[{"element":"RawData","params":["i"],"visible":true},{"element":"RawData","params":["i"],"visible":true}],"visible":true},{"element":"RawData","params":["100"],"visible":true}],"visible":true},{"element":"PostIncrement","params":[{"element":"RawData","params":["i"],"visible":true}],"visible":true},[{"element":"If","params":[{"element":"Equal","params":[{"element":"ElementAt","params":[{"element":"RawData","params":["tab"],"visible":true},{"element":"RawData","params":["i"],"visible":true}],"visible":true},{"element":"RawData","params":["0"],"visible":true}],"visible":true},[{"element":"Continue","params":[],"visible":true}]],"visible":true},{"element":"ForLoop","params":[{"element":"VariableImplicitDefinition","params":["j",{"element":"Multiply","params":[{"element":"RawData","params":["2"],"visible":true},{"element":"RawData","params":["i"],"visible":true}],"visible":true}],"visible":true},{"element":"Less","params":[{"element":"RawData","params":["j"],"visible":true},{"element":"RawData","params":["100"],"visible":true}],"visible":true},{"element":"Set","params":[{"element":"RawData","params":["j"],"visible":true},{"element":"Add","params":[{"element":"RawData","params":["j"],"visible":true},{"element":"RawData","params":["i"],"visible":true}],"visible":true}],"visible":true},[{"element":"Set","params":[{"element":"ElementAt","params":[{"element":"RawData","params":["tab"],"visible":true},{"element":"RawData","params":["j"],"visible":true}],"visible":true},{"element":"RawData","params":["0"],"visible":true}],"visible":true}]],"visible":true}]],"visible":true},{"element":"ForLoop","params":[{"element":"VariableImplicitDefinition","params":["i",{"element":"RawData","params":["2"],"visible":false}],"visible":false},{"element":"Less","params":[{"element":"RawData","params":["i"],"visible":false},{"element":"RawData","params":["100"],"visible":false}],"visible":false},{"element":"PostIncrement","params":[{"element":"RawData","params":["i"],"visible":false}],"visible":false},[{"element":"If","params":[{"element":"NotEqual","params":[{"element":"ElementAt","params":[{"element":"RawData","params":["tab"],"visible":false},{"element":"RawData","params":["i"],"visible":false}],"visible":false},{"element":"RawData","params":["0"],"visible":false}],"visible":false},[{"element":"Print","params":[{"element":"RawData","params":["i"],"visible":false}],"visible":false}]],"visible":false}]],"visible":false}]],"visible":true}
  • Odpowiedz