Discuss Scratch
- Discussion Forums
- » 日本語
- » Scratchスクリプトクイズ
- tuneninemuihito
-
41 posts
Scratchスクリプトクイズ
では問題を出させてもらいますね。任意のリストに任意の数値が入っているとき、それを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
-
39 posts
Scratchスクリプトクイズ
#3495
これでどうでしょう。
<((foo) / (20)) = (((foo) / (20))の[絶対値 v]
これでどうでしょう。
- 23hayabusa
-
33 posts
Scratchスクリプトクイズ
問題を出させて頂きます。任意の定数
ただし、
(x)にある数が入っているとします。その変数xが正の数の時は
(正の数?)がtrue、xが負の数の時はfalseになるスクリプトを最小ブロック数で実現してください。
ただし、
<[] contains []?>の3つのブロックは使ってはいけません。ここでは、0も正の数に含めるとします。
if <> then
end
if <> then
else
end
Last edited by 23hayabusa (July 18, 2025 06:57:05)
- dragon_sub
-
6 posts
Scratchスクリプトクイズ
#3507
set [正の数? v] to <<(x) > [0]> or <(x) = [0]>>
Last edited by dragon_sub (July 18, 2025 07:11:02)
- dragon_sub
-
6 posts
Scratchスクリプトクイズ
#3507
x=0のときInfinityになり、それが0より大きいことを利用しました。
set [正の数? v] to <((1) / (x)) > [0]>
x=0のときInfinityになり、それが0より大きいことを利用しました。
Last edited by dragon_sub (July 18, 2025 07:46:20)
- 23hayabusa
-
33 posts
Scratchスクリプトクイズ
これが私が用意していた正解です。[正の数? v] を <(x) = ((x)の[絶対値 v] ::operators)>にする
ですが、
#3507set [正の数? v] to <[.*] < (x)>
set [正の数?] to <((1) / (x)) > [0]>
も正しいことがわかったので、正解はこの3つにしておきます。
dragon_subさん、掲載遅れてすみません。
Last edited by 23hayabusa (July 20, 2025 10:03:47)
- tuneninemuihito
-
41 posts
Scratchスクリプトクイズ
色々と間違ってました、本当にすみません。修正しました…
任意のデータが複数個入ったリストを、逆順に並び替えるプログラムを1スクリプト完結で作成して下さい。
但し使用可能なブロックは、
尚、の()番目等にlast等の文字を使用してはいけません。(必要であれば(リストの(リストの長さ)番目)などを使用して下さい)
何かしらの区切り文字等を使用する場合は_を使用して下さい。
任意のデータが複数個入ったリストを、逆順に並び替えるプログラムを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
-
500+ posts
Scratchスクリプトクイズ
#3515
質問です。
リクエストの入ったリスト以外のリストで回答したり処理用のリストを作成してもいいですか?
質問です。
リクエストの入ったリスト以外のリストで回答したり処理用のリストを作成してもいいですか?
- tuneninemuihito
-
41 posts
Scratchスクリプトクイズ
いいえ、データの入っているリストをそのまま使用して下さい #3515
質問です。
リクエストの入ったリスト以外のリストで回答したり処理用のリストを作成してもいいですか?
- U-Y-Scratch
-
500+ posts
Scratchスクリプトクイズ
分かりました。いいえ、データの入っているリストをそのまま使用して下さい #3515
質問です。
リクエストの入ったリスト以外のリストで回答したり処理用のリストを作成してもいいですか?
- ef_cudaran
-
91 posts
Scratchスクリプトクイズ
もしも「番目」を使ってもいいという条件なら
対応するのは恐らく99999項目までです。
([list v]の長さ::list)を[list v]に追加するこんな感じになりますね…(19blocks)
([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)番目を削除する//忘れてました。
対応するのは恐らく99999項目までです。
Last edited by ef_cudaran (July 22, 2025 14:46:19)
- tuneninemuihito
-
41 posts
Scratchスクリプトクイズ
本当にごめんなさい、解答案にミスがあって色々おかしくなってました。
修正しましたのでご確認お願いします。
修正しましたのでご確認お願いします。
- ito-noizi
-
100+ posts
Scratchスクリプトクイズ
色々と間違ってました、本当にすみません。修正しました…
任意のデータが複数個入ったリストを、逆順に並び替えるプログラムを1スクリプト完結で作成して下さい。
但し使用可能なブロックは、()回繰り返すと
end
[list v]の( )番目に[]を挿入する
[list v]の( )番目を削除する
([list v]中の[]の場所)
([list v]の長さ::list)([list v]の( )番目 :: list)が一回のみ使用できます。
尚、の()番目等にlast等の文字を使用してはいけません。(必要であれば(リストの(リストの長さ)番目)などを使用して下さい)
何かしらの区切り文字等を使用する場合は_を使用して下さい。
https://scratch.mit.edu/projects/1157625312/
条件に沿わないので今回は答えにならないと思いますが
こういう方法があるようです。トリッキーで面白い。