Discuss Scratch

SDomer
Scratcher
8 posts

Zaokrąglanie

Potrzebuję pomocy z blokiem -
(zaokrąglij ())
Otóż chcę, żeby mógł zawsze zaokrąglać do wyższej liczby np. do 5 gdy podam odpowiedź 2.
Z góry dzięki za pomoc ;-)
MentolMen
Scratcher
1000+ posts

Zaokrąglanie

Nie da się tego zrobić. Musisz zrobić skrypt na zaokrąglanie Najsensowniej będzie zrobić taki skrypt i umieścić go w bloku definiowanym.
Jeżeli ma to być dla liczb bez przecinka to mogę Ci pomóc i go zrobić.
SDomer
Scratcher
8 posts

Zaokrąglanie

Byłoby świetnie, bo skryptów nie ogarniam :-)
MentolMen
Scratcher
1000+ posts

Zaokrąglanie

Okej już się biorę do roboty. Chwile mi to zajmie.
MentolMen
Scratcher
1000+ posts

Zaokrąglanie

Kilka pytań co do tego:
Co w wypadku gdy ostatnia liczba to 0 ?
Jeżeli liczba do zaokrąglenia to 6 to wtedy też w górę, czy do 5 ?
SDomer
Scratcher
8 posts

Zaokrąglanie

1. To wtedy powinno wyjść 0
2. Tak, zawsze w górę.

Last edited by SDomer (May 3, 2018 12:59:09)

SDomer
Scratcher
8 posts

Zaokrąglanie

Otóż potrzebuję dokładnie, żeby
(((odpowiedź)) / (5))
zaokrąglała się do wyższej liczby np 6/5=2
MentolMen
Scratcher
1000+ posts

Zaokrąglanie

To będzie ciężkie
Bo scratch nie ma opcji edytowania jakiejś liczby
wykonalne ale skrypt będzie długi i ze dwie/trzy zmienne + listę zajmie
Długo mi to zajmie. myślę, że 30 minut max. ale może się napotkam an jakieś problemy
MentolMen
Scratcher
1000+ posts

Zaokrąglanie

Do jakiej liczby po przecinku ma to zaokrąglać?
Może napisz do czego to jest potrzebne Ci.
To bardzo skomplikowane akurat.
SDomer
Scratcher
8 posts

Zaokrąglanie

Mam zadanie z informatyki w którym, cytując “Jedno opakowanie tynku starcza na pokrycie 5m2 powierzchni ściany. Stwórz program, który w zależności od podanej przez użytkownika powierzchni ściany, wskaże ile opakowań tynku będzie potrzebne do jej pokrycia.”
A, i nie potrzebuje ułamków :-)
MentolMen
Scratcher
1000+ posts

Zaokrąglanie

Są projekty projekty które to robią.
https://scratch.mit.edu/projects/180282092
https://scratch.mit.edu/projects/191415180
Możesz użyć tych projektów.

Last edited by MentolMen (May 3, 2018 13:24:37)

SDomer
Scratcher
8 posts

Zaokrąglanie

Dzięki ,ale mam problem z “zajrzeniem do środka”. nie mogę zobaczyć jak jest to zbudowane :-(
MentolMen
Scratcher
1000+ posts

Zaokrąglanie

https://scratch.mit.edu/projects/180282092
Wszystkie skrypty:
definiuj Remove commas
ustaw [hh v] na [0]
ustaw [temp v] na []
usuń (wszystko v) z [acceptedchars v]
usuń (wszystko v) z [twmp v]
dodaj [0] do [acceptedchars v]
dodaj [1] do [acceptedchars v]
dodaj [2] do [acceptedchars v]
dodaj [3] do [acceptedchars v]
dodaj [4] do [acceptedchars v]
dodaj [5] do [acceptedchars v]
dodaj [6] do [acceptedchars v]
dodaj [7] do [acceptedchars v]
dodaj [8] do [acceptedchars v]
dodaj [9] do [acceptedchars v]
dodaj [.] do [acceptedchars v]
powtórz (długość (num)) razy
zmień [hh v] o (1)
jeżeli <[acceptedchars v] zawiera (litera (hh) z (num)) ?> to
dodaj (litera (hh) z (num)) do [twmp v]
ustaw [temp v] na (połącz (temp) i (litera (hh) z (num)))
end
end
ustaw [num v] na (temp)

definiuj Round (num) to the nearest (placeval)
ustaw [RoundedNum v] na ((placeval) * (zaokrąglij ((num) / (placeval))))

kiedy kliknięto zieloną flagę
czekaj aż <nie <wciśnięty klawisz myszy?>>
powiedz [Hello!]
czekaj aż <wciśnięty klawisz myszy?>
zapytaj [Which number would you like to round?] i czekaj
ustaw [num v] na (odpowiedź)
zapytaj [What place value would you like to round it to? (Ex: For the tenths place you would put 0.1, for the tens place you would put 10.)] i czekaj
Remove commas :: custom
Round (num) to the nearest (odpowiedź) :: custom
powiedz (połącz (połącz [Your original number was ] i (num)) i (połącz (połącz [, rounded to the nearest ] i (połącz (odpowiedź) i [, so your rounded number is ])) i (połącz (RoundedNum) i [!])))
czekaj aż <wciśnięty klawisz myszy?>
powiedz [Did I get it right?]
czekaj aż <nie <wciśnięty klawisz myszy?>>
czekaj aż <wciśnięty klawisz myszy?>
powiedz [Click the green flag to try again!]
czekaj aż <nie <wciśnięty klawisz myszy?>>
czekaj aż <wciśnięty klawisz myszy?>
powiedz []
zawsze
obróć w prawo o ((50) / (odległość do [wskaźnik myszy v])) stopni
zmień efekt [kolor v] o ((15) / (odległość do [wskaźnik myszy v]))
sklonuj [siebie v]
zmień kolor pisaka o (0.5)
end
Ten ostatni skrypt to raczej “dla piękności” ale pokazuje jak użyć bloku
Trochę kiepsko, że nie możesz zobaczyć jak to zrobić. W takim razie musiałbyś przepisywać cały skrypt

Drugi projekt łatwiejszy ale działający dobrze

kiedy kliknięto zieloną flagę
ustaw [Output v] na [0]
Round (26) to the nearest (7) :: custom

definiuj Round (Input) to the nearest (Input2)
jeżeli <<[0.5] < (((Input) / (Input2)) - ([podłoga v] z ((Input) / (Input2))))> lub <[0.5] = (((Input) / (Input2)) - ([podłoga v] z ((Input) / (Input2))))>> to
ustaw [Output v] na (([sufit v] z ((Input) / (Input2))) * (Input2))
w przeciwnym razie
ustaw [Output v] na (([podłoga v] z ((Input) / (Input2))) * (Input2))
end
Osobiście polecam ten skrypt bardziej, bo jest krótszy, a działa.
SDomer
Scratcher
8 posts

Zaokrąglanie

Dzięki wielkie :-)
MentolMen
Scratcher
1000+ posts

Zaokrąglanie

Ale odpowiedź na zadanie, które musisz zrobić jest łatwa.
kiedy kliknięto zieloną flagę
zapytaj [Podaj powierzchnię] i czekaj
powiedz (połącz [Potrzebujesz ] i (połącz ([sufit v] z ((odpowiedź) / (5))) i [ puszek farby])) przez (2) s
Na przyszłość po prostu napisz jakie masz zadanie
SDomer
Scratcher
8 posts

Zaokrąglanie

Ok, będę pamiętał
AANNTTOONNII
Scratcher
1000+ posts

Zaokrąglanie

Zaokrąglanie w górę jest bardzo proste:
to sufit, czyli -
([sufit v] z (cośtam))
A co do zadania to zrobisz je tak:
kiedy kliknięto zieloną flagę
zapytaj [Ile m2 powierzchni chcesz pokryć?] i czekaj
powiedz ([sufit v] z ((odpowiedź) / (5)))

Last edited by AANNTTOONNII (May 10, 2018 14:08:10)

AANNTTOONNII
Scratcher
1000+ posts

Zaokrąglanie

Samo zaokrąglanie do 5 też jest łatwe:
definiuj zaokrąglij do 5 (liczba)
powiedz ((zaokrąglij ((liczba) / (5))) * (5))
MentolMen
Scratcher
1000+ posts

Zaokrąglanie

Przecież napisałem to
AANNTTOONNII
Scratcher
1000+ posts

Zaokrąglanie

MentolMen wrote:

https://scratch.mit.edu/projects/180282092
Wszystkie skrypty:
definiuj Remove commas
ustaw [hh v] na [0]
ustaw [temp v] na []
usuń (wszystko v) z [acceptedchars v]
usuń (wszystko v) z [twmp v]
dodaj [0] do [acceptedchars v]
dodaj [1] do [acceptedchars v]
dodaj [2] do [acceptedchars v]
dodaj [3] do [acceptedchars v]
dodaj [4] do [acceptedchars v]
dodaj [5] do [acceptedchars v]
dodaj [6] do [acceptedchars v]
dodaj [7] do [acceptedchars v]
dodaj [8] do [acceptedchars v]
dodaj [9] do [acceptedchars v]
dodaj [.] do [acceptedchars v]
powtórz (długość (num)) razy
zmień [hh v] o (1)
jeżeli <[acceptedchars v] zawiera (litera (hh) z (num)) ?> to
dodaj (litera (hh) z (num)) do [twmp v]
ustaw [temp v] na (połącz (temp) i (litera (hh) z (num)))
end
end
ustaw [num v] na (temp)

definiuj Round (num) to the nearest (placeval)
ustaw [RoundedNum v] na ((placeval) * (zaokrąglij ((num) / (placeval))))

kiedy kliknięto zieloną flagę
czekaj aż <nie <wciśnięty klawisz myszy?>>
powiedz [Hello!]
czekaj aż <wciśnięty klawisz myszy?>
zapytaj [Which number would you like to round?] i czekaj
ustaw [num v] na (odpowiedź)
zapytaj [What place value would you like to round it to? (Ex: For the tenths place you would put 0.1, for the tens place you would put 10.)] i czekaj
Remove commas :: custom
Round (num) to the nearest (odpowiedź) :: custom
powiedz (połącz (połącz [Your original number was ] i (num)) i (połącz (połącz [, rounded to the nearest ] i (połącz (odpowiedź) i [, so your rounded number is ])) i (połącz (RoundedNum) i [!])))
czekaj aż <wciśnięty klawisz myszy?>
powiedz [Did I get it right?]
czekaj aż <nie <wciśnięty klawisz myszy?>>
czekaj aż <wciśnięty klawisz myszy?>
powiedz [Click the green flag to try again!]
czekaj aż <nie <wciśnięty klawisz myszy?>>
czekaj aż <wciśnięty klawisz myszy?>
powiedz []
zawsze
obróć w prawo o ((50) / (odległość do [wskaźnik myszy v])) stopni
zmień efekt [kolor v] o ((15) / (odległość do [wskaźnik myszy v]))
sklonuj [siebie v]
zmień kolor pisaka o (0.5)
end
Ten ostatni skrypt to raczej “dla piękności” ale pokazuje jak użyć bloku
Trochę kiepsko, że nie możesz zobaczyć jak to zrobić. W takim razie musiałbyś przepisywać cały skrypt

Drugi projekt łatwiejszy ale działający dobrze

kiedy kliknięto zieloną flagę
ustaw [Output v] na [0]
Round (26) to the nearest (7) :: custom

definiuj Round (Input) to the nearest (Input2)
jeżeli <<[0.5] < (((Input) / (Input2)) - ([podłoga v] z ((Input) / (Input2))))> lub <[0.5] = (((Input) / (Input2)) - ([podłoga v] z ((Input) / (Input2))))>> to
ustaw [Output v] na (([sufit v] z ((Input) / (Input2))) * (Input2))
w przeciwnym razie
ustaw [Output v] na (([podłoga v] z ((Input) / (Input2))) * (Input2))
end
Osobiście polecam ten skrypt bardziej, bo jest krótszy, a działa.




Hmmm….
Wygląda na dużo bardziej skomplikowane niż



AANNTTOONNII wrote:

Samo zaokrąglanie do 5 też jest łatwe:
definiuj zaokrąglij do 5 (liczba)
powiedz ((zaokrąglij ((liczba) / (5))) * (5))

Powered by DjangoBB