N88-BASIC,Pythonプログラミング入門 (2回目)

2024/3/15(金)
N88-BASIC,Pythonプログラミング入門 (2回目)
 
1~nまでの自然数の和を求める
 
■ 初めに
▼ 表記
N88-BASICは以後BASICと省略する事にします
(他のBASICでも動くかもしれません)
またBASICの処理(命令など)は小文字で書いても
自動で大文字に変換されます
 
▼ 和の公式を使う方法
n = 10のとき
S = 1 + 2 + … + 10
= 1 + 2 + 3 + 4 + 5
+10 + 9 + 8 + 7 + 6
= (10+1)×10/2 = 11 × 5 = 55
= (n+1)n/2
よって
   n
S = Σi
   i=1
= 1 + 2 + … + n-1 + n
= n(n+1)/2
 
▼ 順番に足す方法
sum = 1
sum = sum + 2
sum = sum + n
のように1~nまでを順に足すことで求まります
 
この方法は和を積に変えると階乗になり
応用が効きます
 
今回は練習もかねて順に足す方法で求めます
 
 
■ コード
▼ Python
print('1~nまでの自然数の和')n = int(input('n = '))
if n < 0:
    exit()sum = 1
for i in range(2, n+1):    sum = sum + iprint(f'1 ~ {n} までの和は {sum} です') 
 
▼ BASIC
10 PRINT "1~nまでの自然数の和"
20 INPUT "n = ", N
30 IF N < 0 THEN END
40 SUM = 1
50 FOR I=2 TO N
60   SUM = SUM + I
70 NEXT
80 PRINT "1 ~"; N; "までの和は"; SUM; "です"
 
 
■ 説明
▼ print
pythonの表示処理です
print('文字')            … 文字を表示して改行
print('文字', end = '')  … 文字を表示
print(変数)              … 変数の値を表示して改行
print(f'文字1{変数}文字2')
文字1と変数の値と文字2を表示し改行
その他の書き方の説明は省略します
 
BASICの表示処理です
PRINT "文字"   … 文字を表示して改行
PRINT "文字";  … 文字を表示
PRINT 変数     … 変数の値を表示して改行
PRINT "文字1"; 変数; "文字2"
文字1と変数の値と文字2を表示し改行
PRINT USINGなどの説明は省略します
 
 
▼ input
pythonの入力処理です
文字表示し入力待ちになるので文字を入力します
変数 = input('文字')         … 入力を変数へ
変数 = int(input('文字'))    … 入力を整数にし変数へ
変数 = float(input('文字'))  … 入力を実数にし変数へ
 
BASICの入力処理です
文字表示し入力待ちになるので入力します
INPUT "文字", 変数  … 入力を変数の型に変換し変数へ
INPUT "文字"; 変数  … ? が追加表示ありで同上
 
 
▼ 変数の型
pythonは
整数型(int)  … 整数(桁数はメモリーが許す限り無制限)
実数型(float) … 実数(64bits倍精度浮動小数点数)
文字列型(str) … 文字(文字数は実質無制限?)
その他、ブール型、リスト型などは説明省略
型は自動で変化する
a = 1  … 整数型
a = 1.2  … 実数型
a = '文字'  … 文字列型
 
BASICは
A% 整数型(INT)      … 整数(16bits補数 -32768~32767)
A! 単精度実数型(SNG) … 実数(32bits単精度浮動小数点数)
A# 倍精度実数型(DBL) … 実数(64bits単精度浮動小数点数)
A$ 文字列型(STR)     … 文字(文字数0~255文字)
型は%!#$を付けて区別する(デフォルトではAはA!と同じ)
DEFINT AでAから始まる変数A…はA…%と同じになる
(DEFSNG, DEFDBL, DEFSTRなど
 
 
▼ if
pythonは
if 条件1 and 条件2:
    処理1
    処理2
elif 条件3:
    処理3
else:
    処理4
処理5
条件はa < 0など(<, >, <=, >=, !=, ==, など)で
andはすべての条件が成り立っている時
orは少なくとも1つの条件が成り立っている時
処理1,処理2または処理3または処理4を
実行したのち処理5を実行します
exit()は終了です
if, elifの順に成り立っているかどうか判断します
(elifが複数ある時は上から順です)
 
BASICは
IF 条件1 AND 条件2 THEN 処理1: 処理2 ELSE IF 条件3 ELSE 処理4
処理5
IFとELSEの組み合わせになりますが1ぎ
 
 
▼ for
pythonは
for i in range(a, b, c):
    処理1
    処理2
処理3
i = aとしてc>0ならi<bの間(c<0ならi>b)の間
処理1,処理2を実行し
i = i + c … iをcだけ増す
を繰り返す
iの条件が満たされ無くなれば
処理3から実行される(処理3がなければ終了される)
forの終わりはインデント処理1の前のタブ(空白)
がforの位置と同じに戻ることで判断される
 
BASICは
FOR I=A TO B STEP C
  処理1
  処理2
NEXT
処理3
I = AとしてC>0ならI≦Bの間(C<0ならI≧B)の間
処理1,処理2を実行し
I = I + C … IをCだけ増す
を繰り返す
Iの条件が満たされ無くなれば
処理3から実行される(処理3がなければ終了される)
FORの終わりはNEXTで判断される
 
 
■ あとがき
sum = sum + i
sum = sum * iにすると階乗を求めるコードになります
print内容は適当に変えてみてください


VL,NL,XL-BASICとdlg~.zip(py002.bas, py002.py)は

以下のリンクからダウンロードできます

https://ulprojectmail.blogspot.com

Readme.txtを読んで遊んで下さい























このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)