Discuss Scratch

tuneninemuihito
Scratcher
41 posts

Scratchスクリプトクイズ

shidaken wrote:

では問題を出させてもらいますね。任意のリストに任意の数値が入っているとき、それを1番めから小さい順に並べ替えるプログラムを作ってください。プロジェクト共有推奨
また、変数は使っても構いません

バブルソート
(Lが入力リスト)

(L :: list)

set [a v] to [0]
set [b v] to []
repeat ((length of [L v] :: list) - (1))
change [a v] by (1)
set [b v] to [0]
repeat ((length of [a v] :: list) - (a))
change [b v] by (1)
if <(item (b) of [list v] :: list) > (item ((b)+(1)) of [list v] :: list)> then
insert (item ((b)+(1)) of [list v] :: list) at (b) of [L v]
delete ((b) + (2)) of [L v]
end
end
end

多分あってる

Last edited by tuneninemuihito (July 15, 2025 15:07:08)

ba2eChi16
Scratcher
39 posts

Scratchスクリプトクイズ

#3495
<((foo) / (20)) = (((foo) / (20))の[絶対値 v]

これでどうでしょう。
abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

実際に試してから投稿することをおすすめします。
yuito2013
Scratcher
100+ posts

Scratchスクリプトクイズ

⬆️(3505#)を投稿されたときに作ってた回答集(正解・不正解)リンク変数の数を想定解にを含み忘れてしまいました。そのため、変数抜きでカウントしました。あと回答の変数、常時実行プログラムは数に含んでいません。まだまだ回答を受け付けています!
23hayabusa
Scratcher
33 posts

Scratchスクリプトクイズ

 問題を出させて頂きます。任意の定数
(x)
にある数が入っているとします。その変数xが正の数の時は
(正の数?)
がtrue、xが負の数の時はfalseになるスクリプトを最小ブロック数で実現してください。
 ただし、
<[] contains []?>
if <> then

end

if <> then

else

end
の3つのブロックは使ってはいけません。ここでは、0も正の数に含めるとします。

Last edited by 23hayabusa (July 18, 2025 06:57:05)

dragon_sub
Scratcher
6 posts

Scratchスクリプトクイズ

#3507
set [正の数? v] to <<(x) > [0]> or <(x) = [0]>>

Last edited by dragon_sub (July 18, 2025 07:11:02)

ef_cudaran
Scratcher
91 posts

Scratchスクリプトクイズ

[正の数? v] を <(x) = ((x)の[絶対値 v] ::operators)>にする
tsmcoder
Scratcher
500+ posts

Scratchスクリプトクイズ

#3508

dragon_sub wrote:

set [正の数? v] to <<(x) > [0]> or <(x) = [0]>>
これでブロック数を削減できます。#3511により撤回
set [正の数? v] to <(x) > [-1]>

Last edited by tsmcoder (July 18, 2025 07:24:43)

Ke0
Scratcher
1000+ posts

Scratchスクリプトクイズ

#3510
それでは負の小数が検討できません
dragon_sub
Scratcher
6 posts

Scratchスクリプトクイズ

#3507
set [正の数? v] to <((1) / (x)) > [0]>

x=0のときInfinityになり、それが0より大きいことを利用しました。

Last edited by dragon_sub (July 18, 2025 07:46:20)

Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

#3507
set [正の数? v] to <[.*] < (x)>
23hayabusa
Scratcher
33 posts

Scratchスクリプトクイズ

ef_cudaran wrote:

[正の数? v] を <(x) = ((x)の[絶対値 v] ::operators)>にする
これが私が用意していた正解です。
ですが、

Catapult- wrote:

#3507
set [正の数? v] to <[.*] < (x)>

dragon_sub wrote:

set [正の数?] to <((1) / (x)) > [0]>

も正しいことがわかったので、正解はこの3つにしておきます。
dragon_subさん、掲載遅れてすみません。

Last edited by 23hayabusa (July 20, 2025 10:03:47)

tuneninemuihito
Scratcher
41 posts

Scratchスクリプトクイズ

色々と間違ってました、本当にすみません。修正しました…

任意のデータが複数個入ったリストを、逆順に並び替えるプログラムを1スクリプト完結で作成して下さい。
但し使用可能なブロックは、
()回繰り返す
end

[list v]の( )番目に[]を挿入する

[list v]の( )番目を削除する

([list v]中の[]の場所)

([list v]の長さ::list)

([list v]の( )番目 :: list)
が一回のみ使用できます。
尚、の()番目等にlast等の文字を使用してはいけません。(必要であれば(リストの(リストの長さ)番目)などを使用して下さい)
何かしらの区切り文字等を使用する場合は_を使用して下さい。

Last edited by tuneninemuihito (July 22, 2025 14:45:52)

U-Y-Scratch
Scratcher
500+ posts

Scratchスクリプトクイズ

#3515
質問です。
リクエストの入ったリスト以外のリストで回答したり処理用のリストを作成してもいいですか?
tuneninemuihito
Scratcher
41 posts

Scratchスクリプトクイズ

U-Y-Scratch wrote:

#3515
質問です。
リクエストの入ったリスト以外のリストで回答したり処理用のリストを作成してもいいですか?
いいえ、データの入っているリストをそのまま使用して下さい
U-Y-Scratch
Scratcher
500+ posts

Scratchスクリプトクイズ

tuneninemuihito wrote:

U-Y-Scratch wrote:

#3515
質問です。
リクエストの入ったリスト以外のリストで回答したり処理用のリストを作成してもいいですか?
いいえ、データの入っているリストをそのまま使用して下さい
分かりました。
yucca42
Scratcher
100+ posts

Scratchスクリプトクイズ

#3515
リストに入っているデータを取得する方法が無いように見えるが、値を入れ替える方法は存在するのか?
長さ2のリストで考えてみても値を入れ替える方法が思いつかない…
(任意のデータの定義不足を疑う)

Last edited by yucca42 (July 22, 2025 13:08:45)

ef_cudaran
Scratcher
91 posts

Scratchスクリプトクイズ

もしも「番目」を使ってもいいという条件なら
([list v]の長さ::list)を[list v]に追加する
([list v]の([list v]の長さ::list)番目)回繰り返す
[list v]の([list v]の長さ::list)番目に([list v]の([list v]の([list v]の長さ::list)番目)番目)を挿入する
[list v]の([list v]の([list v]の長さ::list)番目)番目を削除する
[list v]の(1)番目に()を挿入する
end
([list v]の([list v]の長さ::list)番目)回繰り返す
[list v]の(1)番目を削除する
end
[list v]の([list v]の長さ::list)番目を削除する//忘れてました。
こんな感じになりますね…(19blocks)
対応するのは恐らく99999項目までです。

Last edited by ef_cudaran (July 22, 2025 14:46:19)

tuneninemuihito
Scratcher
41 posts

Scratchスクリプトクイズ

本当にごめんなさい、解答案にミスがあって色々おかしくなってました。
修正しましたのでご確認お願いします。
ito-noizi
Scratcher
100+ posts

Scratchスクリプトクイズ

tuneninemuihito wrote:

色々と間違ってました、本当にすみません。修正しました…

任意のデータが複数個入ったリストを、逆順に並び替えるプログラムを1スクリプト完結で作成して下さい。
但し使用可能なブロックは、
()回繰り返す
end

[list v]の( )番目に[]を挿入する

[list v]の( )番目を削除する

([list v]中の[]の場所)

([list v]の長さ::list)

([list v]の( )番目 :: list)
が一回のみ使用できます。
尚、の()番目等にlast等の文字を使用してはいけません。(必要であれば(リストの(リストの長さ)番目)などを使用して下さい)
何かしらの区切り文字等を使用する場合は_を使用して下さい。

https://scratch.mit.edu/projects/1157625312/
条件に沿わないので今回は答えにならないと思いますが
こういう方法があるようです。トリッキーで面白い。

Powered by DjangoBB