「旧課程(-2012年度)高等学校数学B/数値計算とコンピューター」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎台形公式: サポートが終了して久しいpython2向けのコードだったので、python3様に書き直した。
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎ユークリッドの互除法: python3対応。Shemeと同じく再帰を使った。
タグ: 2017年版ソースエディター
26 行
実際の計算には計算機を用いると(特に2数が大きいときには)便利である。
 
;[[Python]]によるプログラム例:<syntaxhighlight lang=python3>
def euclid(m, n):
<syntaxhighlight lang="python">
def print(f"euclid({m}, {n})"):
leftif (n == 450):
right = 30 return m
return euclid(n, m % n)
assert (left > 0 and right > 0),"not a positive number"
def exactly_divides_the_other():
if (left > right):
if (left % right == 0):
return True
elif (left < right):
if (right % left == 0):
return True
return False
while(not exactly_divides_the_other()):
if (left > right):
left = left % right
elif (right > left):
right = right % left
#Then we get a mcd. The smaller number is that.
if (left < right):
return left
elif (left > right):
return right
 
print (euclid(45,30))
print(euclid(45,28))
#ok that work well if I put
print(euclid(30,28))
#(left ,right)= (45 ,30)
</syntaxhighlight lang="python">
#(45 ,28),(30 ,28)
;実行結果:<syntaxhighlight lang="Scheme"text>
euclid(45, 30)
euclid(30, 15)
euclid(15, 0)
15
euclid(45, 28)
euclid(28, 17)
euclid(17, 11)
euclid(11, 6)
euclid(6, 5)
euclid(5, 1)
euclid(1, 0)
1
euclid(30, 28)
euclid(28, 2)
euclid(2, 0)
2
</syntaxhighlight>
 
;[[Scheme]]によるプログラム例:<syntaxhighlight lang="Scheme">
<syntaxhighlight lang="Scheme">
(define (euclid m n)
(let ((r (modulo m n)))