この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
ouj18 [2018/06/02 22:25] kanemune |
ouj18 [2021/05/24 18:29] klab [「ユークリッドの互除法」プログラム(16分頃)] |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
# 放送大学「コンピュータとソフトウェア('18)」 | # 放送大学「コンピュータとソフトウェア('18)」 | ||
放送大学「コンピュータとソフトウェア('18)」でのドリトルとサクセスの利用について説明します。 | 放送大学「コンピュータとソフトウェア('18)」でのドリトルとサクセスの利用について説明します。 | ||
- | 放送では、第8回と第10回でドリトルのプログラミングを、第11回でサクセスのプログラミングを扱っています。 | + | 放送では、第8回と第9回と第10回でドリトルのプログラミングを、第11回でサクセスとSQLのプログラミングを扱っています。 |
番組のシラバス(2018年度):http://www.ouj.ac.jp/hp/kamoku/H30/kyouyou/C/joho/1570285.html | 番組のシラバス(2018年度):http://www.ouj.ac.jp/hp/kamoku/H30/kyouyou/C/joho/1570285.html | ||
ライン 211: | ライン 211: | ||
} | } | ||
} | } | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ---- | ||
+ | ## 第9回の内容 | ||
+ | ### 「ユークリッドの互除法」プログラム(16分頃) | ||
+ | ドリトルのプログラムは「[オンライン版](http://jsdolittle.eplang.jp/djs/?src=e3818be38281e3819fefbc9de382bfe383bce38388e383abefbc81e4bd9ce3828b20efbc88e99d92efbc8920e7b79ae381aee889b220e38286e381a3e3818fe3828ae58b95e3818fe380820a)」から実行できます。左側にプログラムを書いて、「実行」を押すと、右側に結果が表示されます。 | ||
+ | |||
+ | <code> | ||
+ | x=126。 | ||
+ | y=35。 | ||
+ | 「全部!(x!=y)(x>0)(y>0)本当」!の間「 | ||
+ | 「x>y」!なら「x=x-y」実行。 | ||
+ | 「x<y」!なら「y=y-x」実行。 | ||
+ | 」実行。 | ||
+ | ラベル!(x)作る。 | ||
+ | </code> | ||
+ | |||
+ | ### 「選択ソート」プログラム(21分頃) | ||
+ | |||
+ | <code> | ||
+ | c=配列!6 4 3 7 1 8 2 5 作る。 | ||
+ | ラベル!(c)作る 次の行。 | ||
+ | n=c!要素数?。 | ||
+ | 「|i| | ||
+ | e=n-i+1。 | ||
+ | 「|s| | ||
+ | 「(c!(s)読む) > (c!(e)読む)」!なら | ||
+ | 「t=(c!(s)読む)。 | ||
+ | c!(s)(c!(e)読む)上書き。 | ||
+ | c!(e)(t)上書き | ||
+ | 」実行。 | ||
+ | 」!(e)繰り返す。 | ||
+ | 」!(n-1)繰り返す。 | ||
+ | ラベル!(c)作る 次の行。 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ### 「二分探索」プログラム(28分頃) | ||
+ | |||
+ | <code> | ||
+ | c=配列!1 3 4 7 8 10 12 13 15 作る。 | ||
+ | n=c!要素数?。 | ||
+ | q=7。 | ||
+ | start=1。 | ||
+ | end=n。 | ||
+ | 「start<=end」!の間「 | ||
+ | m=floor((start+end)/2)。 | ||
+ | 「(c!(m)読む)==q」!なら「結果=q」実行。 | ||
+ | 「q<=(c!(m)読む)」!なら「end=m-1」実行。 | ||
+ | 「(c!(m)読む)<=q」!なら「start=m+1」実行。 | ||
+ | 」実行。 | ||
+ | 「結果==q」!なら「ラベル!(結果)作る」 | ||
+ | そうでなければ「ラベル!『見つからない』作る」 | ||
+ | 実行。 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ### 「ハノイの塔」プログラム(36分頃) | ||
+ | |||
+ | <code> | ||
+ | Hanoi=「 | ||
+ | |n from to work| | ||
+ | 「n>0」!なら「 | ||
+ | !(n-1) (from) (work) (to) Hanoi。 | ||
+ | ラベル!("円盤"+n+"を"+from+"から" | ||
+ | +to+"に移動させる。")作る 次の行。 | ||
+ | !(n-1) (work) (to) (from) Hanoi。 | ||
+ | 」実行。 | ||
+ | 」。 | ||
+ | !3 "A" "B" "C" Hanoi。 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ### 「クイックソート」プログラム(40分頃) | ||
+ | |||
+ | <code> | ||
+ | クイック=「|対象 ; 結果 n 閾値 小さい方 | ||
+ | 大きい方 v | | ||
+ | 結果=対象。 | ||
+ | n=対象!要素数?。 | ||
+ | 「n>1」!なら「 | ||
+ | 閾値=対象!(n) 読む。 | ||
+ | 小さい方=配列!作る。 | ||
+ | 大きい方=配列!作る。 | ||
+ | 「|i| | ||
+ | v=対象!(i)読む。 | ||
+ | 「v<閾値」!なら「小さい方!(v)書く」 | ||
+ | そうでなければ「大きい方!(v)書く」 | ||
+ | 実行。 | ||
+ | 」!(n-1)繰り返す。 | ||
+ | 結果=配列!作る | ||
+ | (!(小さい方)クイック) | ||
+ | (閾値) | ||
+ | (!(大きい方)クイック) | ||
+ | 連結。 | ||
+ | 」実行。 | ||
+ | 結果。 | ||
+ | 」。 | ||
+ | |||
+ | 入力=配列!5 3 7 2 8 6 1 4 作る。 | ||
+ | ラベル!(入力)作る 次の行。 | ||
+ | ラベル!(!(入力)クイック)作る 次の行。 | ||
</code> | </code> | ||