Discuss Scratch
- Discussion Forums
- » 日本語
- » Scratchスクリプトクイズ
- honnkon
- Scratcher
55 posts
Scratchスクリプトクイズ
(略)quoteするとBBCodeは次のようになっていました。
演算(+,-,*,/,^,xを/のなしで答えなさい。
(略)
演算(+,-,*,/,^,xを/の[なにか v]なしで答えなさい。
どういういみか分からないです。詳しい説明をしてください。
どもども。署名でーす。署名についてはこちらへどうぞ。(最終更新:2024/04/27 15:58ごろ)
キーワード2「は」。1から順番に並べると文ができるので、それをコメントする。
自分のサイト
https://www.honnkon.tech
セーブコードマネージャー作ってみた(何か特殊なものの共有にも使えるかも)
JavaScriptだけだといろいろやるのには無理があるか。
=================宣伝======================================
ボールゲーム
https://scratch.mit.edu/projects/935455978/
スイカゲームのようなもの!本日のスコアランキング、昨日のスコアランキング、全期間でのスコアランキング付き!
https://scratch.mit.edu/projects/888203639/ 的当てゲーム
https://scratch.mit.edu/projects/888190209/ ビル経営ゲーム(v6)パッケージ版
https://scratch.mit.edu/projects/890766250/ 鉛筆クリッカー
https://scratch.mit.edu/studios/33863663/ 短編アニメ(現在休止中 再開は不明)
https://scratch.mit.edu/studios/34232284/ スクラニメ
https://scratch.mit.edu/projects/900505681/ ∞ Fizz Buzz
Brainf*ckのインタープリンタ作ってみました
https://scratch.mit.edu/projects/945473537/
HQ9+のインタープリンタ作ってみました
https://scratch.mit.edu/projects/945470350/
「Hello, World!」の比較
https://scratch.mit.edu/projects/934847040/
===========================================================
ここまで見るほど暇なら秘密のキーワードを見つけてくれるのかな?
キーワード3「限」。キーワードは5つ。
キーワード1「円周率」。もう全部見つけたかな?
キーワード4「りが」。もう全部見つけたかな?
やっほー。この文字が見えているという事は何かしたんだね。
何かっていうのはDevtoolsを使ってるか拡張機能を使ってるかその他のことをしてるってことね。
ちなみに隠し文字があるけど、見つけられたかな?
キーワードが入っているよ。キーワード5「ない」。もう全部見つけたかな?
「まだ見つけてない!」という人は、探してみてね。
すべて見つけたらプロフィール(https://scratch.mit.edu/users/honnkon)にコメントしてね。
- Catapult-
- Scratcher
100+ posts
Scratchスクリプトクイズ
#2820
上の方で指摘されている通り、問題文の中で一部題意が読み取れない部分がありましたが、「演算ブロックのうち、四則演算を用いずに四則演算をせよ」という解釈で回答します
結果を変数 (return) に代入します。
加算
負の小数が絡む切り捨て除算はあまり理解しておらず、なんか言語によって流派があるっぽいので除算は間違っているかもしれません。
追記 : この量のブロックプラグインはあんまりだと思ったのでプロジェクトを共有しました。
上の方で指摘されている通り、問題文の中で一部題意が読み取れない部分がありましたが、「演算ブロックのうち、四則演算を用いずに四則演算をせよ」という解釈で回答します
結果を変数 (return) に代入します。
加算
[return v] を (x) にする減算
[return v] を (y) ずつ変える
[return v] を (x) にする乗算
もし <(y)に[-]が含まれる::operators> なら
[return v] を ([絶対値 v] (y)::operators) ずつ変える
でなければ
[return v] を ([-] と(y)) ずつ変える
end
[return v] を ([ln v] ([絶対値 v] (x)::operators)::operators) にする除算
[return v] を ([ln v] ([絶対値 v] (y)::operators)::operators) ずつ変える
[return v] を ([e^ v] (return)::operators) にする
もし <<<(x)に[-]が含まれる::operators> = <(y)に[-]が含まれる::operators>> ではない> なら
[return v] を ([-] と(return)) にする
end
もし <(y)=(0)> なら
もし <(x)=(0)> なら
[return v] を [NaN] にする
でなければ
もし <(x)>(0)> なら
[return v] を [infinity] にする
でなければ
[return v] を [-infinity] にする
end
end
でなければ
[return v] を ([ln v] ([絶対値 v] (x)::operators)::operators) にする
[return v] を ([-]と([ln v] ([絶対値 v] (y)::operators)::operators)) ずつ変える
[return v] を ([e^ v] (return)::operators) にする
もし <<(x)に[-]が含まれる::operators> = <(y)に[-]が含まれる::operators>> なら
[return v] を ([切り下げ v] (return)::operators) にする
でなければ
[return v] を ([切り上げ v] ([-]と(return))::operators) にする
end
end
負の小数が絡む切り捨て除算はあまり理解しておらず、なんか言語によって流派があるっぽいので除算は間違っているかもしれません。
追記 : この量のブロックプラグインはあんまりだと思ったのでプロジェクトを共有しました。
Last edited by Catapult- (March 30, 2024 05:46:36)
- kencyan
- Scratcher
100+ posts
Scratchスクリプトクイズ
#2823を参考として減法、乗法を作ってみました。
減法
乗法
減法
[return v] を (x) にする
もし <(y) に (-) が含まれる> なら
[計算用 v] を [2] にする
[結果 v] を [] にする
((y) の長さ) 回繰り返す
もし <<((y)の(計算用)番目の文字) = []> ではない> なら
[結果 v] を ((結果) と ((y)の(計算用)番目の文字)) にする
end
[計算用 v] を (1) ずつ変える
end
[return v] を (結果) ずつ変える
でなければ
[return v] を ([-] と (y)) ずつ変える
end
乗法
[return v] を [0] にする
もし <(y)に(-)が含まれる> なら
[計算用 v] を [2] にする
[結果 v] を [] にする
((y) の長さ) 回繰り返す
もし <<((y)の(計算用)番目の文字) = []> ではない> なら
[結果 v] を ((結果) と ((y)の(計算用)番目の文字)) にする
end
[計算用 v] を (1) ずつ変える
end
(結果) 回繰り返す
[return v] を (x) ずつ変える
end
もし <(x)に(-)が含まれる> なら
[計算用 v] を [2] にする
[結果 v] を [] にする
((return) の長さ) 回繰り返す
もし <<((return)の(計算用)番目の文字) = []> ではない> なら
[結果 v] を ((結果) と ((return)の(計算用)番目の文字)) にする
end
[return v] を (結果) にする
end
でなければ
[return v] を ([-] と (return)) にする
end
でなければ
(y) 回繰り返す
[return v] を (x) ずつ変える
end
end
Last edited by kencyan (March 31, 2024 10:25:08)
- Catapult-
- Scratcher
100+ posts
Scratchスクリプトクイズ
#2828
jsのfloat型の安全に扱える数の限界が2^53-1 = 9007199254740991であることを利用して、減算を短縮してみました。23Bです。
追記 : 文字列操作による短縮バージョン。19B
jsのfloat型の安全に扱える数の限界が2^53-1 = 9007199254740991であることを利用して、減算を短縮してみました。23Bです。
もし<(y)に[-]が含まれる::operators>なら
[return v] を (([-]と((y)を[9007199254740991]で割ったあまり::operators))を[9007199254740991]で割ったあまり::operators) にする
[return v] を <[-0.5]<((y)を[-1]で割ったあまり::operators)>ずつ変える
[return v] を (-1) ずつ変える
[return v] を ( ([-]と((y)を[1]で割ったあまり::operators))を[1]で割ったあまり::operators) ずつ変える
でなければ
[return v] を ([-]と(y)) にする
end
[return v] を(x)ずつ変える
追記 : 文字列操作による短縮バージョン。19B
もし<(y)に[-]が含まれる::operators>なら
[return v]を[00]にする
((y)の長さ) 回繰り返す
[return v]を( (return) と ( (y) の ((return)の長さ) 番目の文字::operators) )にする
end
でなければ
[return v] を ([-]と(y)) にする
end
[return v] を(x)ずつ変える
Last edited by Catapult- (April 3, 2024 09:54:23)
- tsmcoder
- Scratcher
100+ posts
Scratchスクリプトクイズ
減算です。
「絶対値」ブロックが使えないとのことでしたので、#2823をもとに、絶対値を別の方法(文字列操作)で求めました。あ、#2829の追記と被った
(22ブロック)
「絶対値」ブロックが使えないとのことでしたので、#2823をもとに、絶対値を別の方法(文字列操作)で求めました。あ、#2829の追記と被った
(22ブロック)
[return v] を (x) にする
もし <(y) に [-] が含まれる::operators> なら
[y' v] を () にする
[y.index v] を (1) にする
((y) の長さ) 回繰り返す
[y.index v] を (1) ずつ変える
[y' v] を ((y'::variables) と ((y) の (y.index::variables)番目の文字::operators)) にする
end
[return v] を (y') ずつ変える
でなければ
[return v] を ([-] と (y)) ずつ変える
end
Last edited by tsmcoder (March 31, 2024 09:43:38)
- tsubuanman
- Scratcher
100+ posts
Scratchスクリプトクイズ
皆さんなかなか張り切っていますが、加法、減法の代わりはこれで十分だと思います。
[答え v] を (x) ずつ変える
[答え v] を (y) ずつ変える
Last edited by tsubuanman (March 31, 2024 10:47:11)
(´・ω・`)
- tsmcoder
- Scratcher
100+ posts
Scratchスクリプトクイズ
#2831
「減法を加法に直して計算する」という計算過程から見ればそれでも十分かもしれませんが、
そもそもの「式」が違うことを再現できないと思います。。
答えは同じだが式は違うことの例↓
それと、「答え」が実行前に0である前提なので、最初に以下を入れておいた方がいいと思います。(前回の実行結果を引きずってしまうため)
「減法を加法に直して計算する」という計算過程から見ればそれでも十分かもしれませんが、
そもそもの「式」が違うことを再現できないと思います。。
答えは同じだが式は違うことの例↓
((1) + (1))
((1) - (-1))
それと、「答え」が実行前に0である前提なので、最初に以下を入れておいた方がいいと思います。(前回の実行結果を引きずってしまうため)
[答え v] を [0] にするそれか元々xにすると短縮できます。
[答え v] を (x) にする
Last edited by tsmcoder (March 31, 2024 10:34:42)
- ito-noizi
- Scratcher
100+ posts
Scratchスクリプトクイズ
それで減法の代わりになりますか? 皆さんなかなか張り切っていますが、加法、減法の代わりはこれで十分だと思います。。[答え v] を (x) ずつ変える
[答え v] を (y) ずつ変える
一部のScratcherは量産型作品作ってるけど。
気が向いたときに改造して。
また一つ賢くなるのを繰り返していって。
プログラミング力を高めてってるんじゃないんか。
それってすごく良いことじゃん。
- tsubuanman
- Scratcher
100+ posts
Scratchスクリプトクイズ
Last edited by tsubuanman (March 31, 2024 11:03:53)
(´・ω・`)
- tsubuanman
- Scratcher
100+ posts
Scratchスクリプトクイズ
#2837
「「答え」が実行前に0である前提でプログラムを書いてしまっている」、というのは私が
補足
何度もプログラムを試す場合は便宜上
例えば、xが1、yが2、zが3の場合、
「「答え」が実行前に0である前提でプログラムを書いてしまっている」、というのは私が
[答え v] を [0] にするを使用していることになりませんか。
[答え v] を (x) ずつ変えるはxとyをその値ずつ変えているだけです。
[答え v] を (y) ずつ変える
補足
何度もプログラムを試す場合は便宜上
[答え v] を [0] にするは必要になると思いますが、必ずしも計算が0から始まるとは限らないです。
例えば、xが1、yが2、zが3の場合、
((z)+((x) + (y)))//答えは6は成り立ちますが、
[答え v] を (z) にするは成り立ちません。
[答え v] を [0] にする
[答え v] を (x) ずつ変える
[答え v] を (y) ずつ変える//答えは3
Last edited by tsubuanman (March 31, 2024 11:07:02)
(´・ω・`)