N88-BASIC、Cで初心者向けプログラミング (5回目)

2023/1/3(火)
N88-BASIC、Cで初心者向けプログラミング (5回目)
 
温度の単位変換 [2021/4/16(金)~4/18(日)の記事です]
 
N88-BASIC(VL,NL,XL-BASIC)とC言語で
温度゚CをK,゚Fに変換する簡単な
プログラムを作ります
 
セルシウス度(摂氏)をC(゚C)
ケルビン(絶対温度)をK( K) = C + 273.15
ファーレンハイト度 (華氏)をF(゚F) = (9/5)C + 32
 
行番号 命令(Enterキー)
でプログラムが記憶されます
以下、(Enterキー)の記述を省略しますが
1行毎に入力して下さい
 
RUN
 で、行番号の小さい順に実行されます
LIST
 で、プログラムが表示されます
SAVE "ファイル名"
 で、プログラムをファイル名.basファイルに保存できます
LOAD "ファイル名"
 で、プログラムを読込みます
 
行番号は後から間に入れられるように
10,20,30...または100,110,120...
の様に10ずつ増やすと良いでしょう
 
10 INPUT C
 で、? が表示され入力状態にできます
10 INPUT ,C
 で、? を消すことが出来ます
10 INPUT "摂氏(゚C) = "; C
 で文字表示も出来ます
(;の代わりに,を使うと? が消えます)
 
四則演算(×÷+-)は、* / + - を使います
 
左辺 = 右辺 は、等しい事の定義ではなく
右辺の計算結果を左辺の変数に代入する
と言う意味になります
 
K = C + 273.15
F = (9/5)C + 32 = C×9÷5+32
はBASICでは
 
20 K = C + 273.15
30 F = C * 9 / 5 + 32
 (スペースは見やすくするためでなくても可)
 
40 PRINT C;
 でCの値を表示できます
 (;がないと改行されます)
40 PRINT C; "゚C"
 でCの値と文字列゚Cを表示できます
 (;と"の間のスペースは無くても同じです)
 
今回は
 0 ゚C = 273.15 K = 32 ゚F
と表示するため
40 PRINT C; "゚C ="; K; "K ="; F; "゚F"
 としました
 
1行打つ毎にEnterキーを押して記憶させ
RUNすると動きます(SAVEを忘れずに)
 
VL,NL,XL-BASICの場合は
メモ帳に上記プログラムをコピー&ペーストし
(名前を付けて保存でANSIを選択)保存
そのファイルを
LOADするかNL-BASICの画面に重ねるか
NLBasic01.exeに重ねるて下さい
 
NL-BASICでは、行番号のないプログラム
を読込むと自動で行番号が付きます
SAVE "ファイル名",N(Enterキー)で
行番号なし保存も可能です
 
次に
 
10 INPUT "摂氏(゚C) = "; C
20 K = C + 273.15
30 F = C * 9 / 5 + 32
40 PRINT C; "゚C ="; K; "K ="; F; "゚F"
 
をC言語で書きます
 
10 INPUT "摂氏(゚C) = "; C
printf("摂氏(゚C) = ");
scanf_s("%lf", &c);
 
20 K = C + 273.15
k = c + 273.15;
 
30 F = C * 9 / 5 + 32
f = c * 9 / 5 + 32;
 
40 PRINT C; "゚C ="; K; "K ="; F; "゚F"
printf(" %.2f ゚C = %.2f K = %.2f ゚F\n", c, k, f);
 
となります
%.2fは%fでも良く、.2は小数点以下2桁表示の意味です
Cの命令は;で区切りますので命令の最後は;を書きます
 
2言語は違いはありますが、似てもいます
Cの入出力は命令ではなくライブラリなので
使用するための宣言が必要です
#include <stdio.h>
 
また、使用する変数はあらかじめ宣言する
必要があります(ここでは倍精度実数型にしました)
double c, k, f;
 
Windowsではプログラムが終了すると
ウインドウが閉じてしますため
キー入力待ちをして、数値が入力されると終了
するようにしました
scanf_s("%lf", &c);
 
コメント(実行されない注釈文)は
BASICでは、’以降
Cでは/*と*/の間です
まとめると以下のようになります
 
#include <stdio.h> /* printf scanf_sを使用するのに必要 */
void main(void)
{
double c, k, f; /* 倍精度実数 (floatは単精度) */
 
printf("摂氏(゚C) = ");
scanf_s("%lf", &c);
k = c + 273.15;
f = c * 9 / 5 + 32;
printf(" %.2f ゚C = %.2f K = %.2f ゚F\n", c, k, f);
 
scanf_s("%lf", &c); /* 数値入力で終了 */
}
 
コンパイル(アセンブラに変換)してリンクして
.exeを作り実行します
 
C言語はポインターが難しくとっつきにくいイメージですが
(アセンブラやBASICでPOKE,PEEKなどの経験者にとっては簡単?)
ポインターを理解していなくても作れる
プログラムから慣れていくと良いと思います
 
 
N88-BASIC互換?VL,NL,XL-BASICと
blg~.zip(prog005.bas,prog005.c)は
以下のリンクからダウンロードできます

https://ulprojectmail.blogspot.com
Readme.txtを読んで遊んで下さい














 

このブログの人気の投稿

NEWS

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