N88-BASIC、Cで初心者向けプログラミング (3回目)
2022/2/5(土)
N88-BASIC、Cで初心者向けプログラミング (3回目)
制御命令(条件による分岐)
平成の年を入力し平成又は令和を表示する
BASICでは、
10 INPUT "平成"; Y
20 WHILE Y > 0
30 IF Y > 30 THEN PRINT "令和";: Y = Y - 30 ELSE PRINT "平成";
40 IF Y = 1 THEN PRINT " 元 年" ELSE PRINT Y; "年"
50 PRINT
60 INPUT "平成"; Y
70 WEND
C言語では、
#include <stdio.h>
void main(void)
{
int y;
printf("平成? ");
scanf("%d", &y);
while (y > 0)
{
if (y > 30) { printf("令和"); y -= 30; } else printf("平成");
if (y == 1)
{
printf(" 元 年\n");
}
else
{
printf(" %d 年\n", y);
}
printf("\n");
printf("平成? ");
scanf("%d", &y);
}
}
BASICの説明
IF Y > 30 THEN PRINT "令和";: Y = Y - 30 ELSE PRINT "平成";
IF 条件式 THEN .. ELSE .. は1つの行に
書かなければいけません
条件式は0が偽、0以外が真で、真ならTHEN以降を
偽ならELSE以降を実行します
31 > 30は-1(真)、30 > 30は0(偽)になります
..の部分に複数の命令を書くときは:で区切ります
PRINT "令和"; の;は改行しないという意味です
C言語の説明
If (条件式) { ... } else { ... }
で条件式は0が偽、0以外が真です
{}内の命令が1つり時は{}を省略
できますまた、複数行に分けて
書くことができます
31 > 30は1(真)、30 > 30は0(偽)になります
scanfがエラーならscanf_sにして下さい
実行すると31は令和 元 年とでます
0を入力すると終了します
条件式のいろいろ
BASIC
1≦x≦9は、1 <= X AND X <= 9
x<1,x>9は、X < 1 OR X > 9
x ≠ 5は、X <> 5またはNOT X = 5
C言語
1≦x≦9は、1 <= x && x <= 9
x<1,x>9は、x < 1 || x > 9
x ≠ 5は、x != 5または!(x == 5)
演算子の優先順位によって()が必要
になります優先順位が分からない
ときぱ、無駄でも()を付けた方が
分かりやすいと思います
例
NOT (X = 5)など、
NOTと(の間は空白が必要です
(実機では違うかもしれません)
AND ORの前後にも空白が必要です
NL-BASICとblg~.zip(prog003.bas、prog003.c)
は、このブログ(以下のリンク)からダウンロードできます
N88-BASIC、Cで初心者向けプログラミング (3回目)
制御命令(条件による分岐)
平成の年を入力し平成又は令和を表示する
BASICでは、
10 INPUT "平成"; Y
20 WHILE Y > 0
30 IF Y > 30 THEN PRINT "令和";: Y = Y - 30 ELSE PRINT "平成";
40 IF Y = 1 THEN PRINT " 元 年" ELSE PRINT Y; "年"
50 PRINT
60 INPUT "平成"; Y
70 WEND
#include <stdio.h>
void main(void)
{
int y;
printf("平成? ");
scanf("%d", &y);
while (y > 0)
{
if (y > 30) { printf("令和"); y -= 30; } else printf("平成");
if (y == 1)
{
printf(" 元 年\n");
}
else
{
printf(" %d 年\n", y);
}
printf("\n");
printf("平成? ");
scanf("%d", &y);
}
}
IF Y > 30 THEN PRINT "令和";: Y = Y - 30 ELSE PRINT "平成";
IF 条件式 THEN .. ELSE .. は1つの行に
書かなければいけません
条件式は0が偽、0以外が真で、真ならTHEN以降を
偽ならELSE以降を実行します
31 > 30は-1(真)、30 > 30は0(偽)になります
..の部分に複数の命令を書くときは:で区切ります
PRINT "令和"; の;は改行しないという意味です
If (条件式) { ... } else { ... }
で条件式は0が偽、0以外が真です
{}内の命令が1つり時は{}を省略
できますまた、複数行に分けて
書くことができます
31 > 30は1(真)、30 > 30は0(偽)になります
scanfがエラーならscanf_sにして下さい
0を入力すると終了します
BASIC
1≦x≦9は、1 <= X AND X <= 9
x<1,x>9は、X < 1 OR X > 9
x ≠ 5は、X <> 5またはNOT X = 5
1≦x≦9は、1 <= x && x <= 9
x<1,x>9は、x < 1 || x > 9
x ≠ 5は、x != 5または!(x == 5)
になります優先順位が分からない
ときぱ、無駄でも()を付けた方が
分かりやすいと思います
例
NOT (X = 5)など、
NOTと(の間は空白が必要です
(実機では違うかもしれません)
AND ORの前後にも空白が必要です
は、このブログ(以下のリンク)からダウンロードできます