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

2022/2/2(水)
N88-BASIC、Cで初心者向けプログラミング (2回目)
 
繰り返し
1から10まで足すといくつ?
 
ここでは、n(n+1)/2を使わずに
計算させてみましょう
(因みに、10(10+1)/2 = 55)
 
BASICでは、
10 S = 0
20 FOR I=1 TO 10
30   S = S + I
40 NEXT
50 PRINT S
 
C言語では、
#include <stdio.h>
void main(void)
{
    int i, s;
 
    s = 0;
    for (i = 1; i <= 10; i++)
    {
        s = s + i;
    }
    printf("%d\n", s);
}
 
BASICの説明
FOR I=1 TO 10
NEXT
は簡単に言うとI=1~10まで
1ずつ増やしながら
FOR,NEXT間を繰り返した後、
次の命令に行きます
 
 1回目 S = S + IはS =  0 +  1 =  1
 2回目 S = S + IはS =  1 +  2 =  3
 3回目 S = S + IはS =  3 +  3 =  6
 4回目 S = S + IはS =  6 +  4 = 10
 5回目 S = S + IはS = 10 +  5 = 15
 6回目 S = S + IはS = 15 +  6 = 21
 7回目 S = S + IはS = 21 +  7 = 28
 8回目 S = S + IはS = 28 +  8 = 36
 9回目 S = S + IはS = 36 +  9 = 45
10回目 S = S + IはS = 45 + 10 = 55
で、PRINT Sで55と表示されます
 
C言語の説明
int i, s;は、整数型変数iとsを作ります
 
for (i = 1; i <= 10; i++)
{
}
はi = 1を実行後、
i <= 10なら{}内を実行し
i++(iを1増す)を実行しi <= 10
が成り立っている間繰り返します
i <= 10でないなら}の次に行き、
printf("%d\n", s);
でsの内容が表示されます
printfは第1回を見てください
 
もう1つの繰り返し文
WHILEを使って同じものを
作ると、
 
BASICでは、
10 S = 0
20 I = 1
30 WHILE I <= 10
40   S = S + I
50   I = I + 1
60 WEND
70 PRINT S
 
C言語では、
#include <stdio.h>
void main(void)
{
    int i, s;
 
    s = 0;
    i = 1;
    while (i <= 10)
    {
        s = s + i;
        i = i + 1;
    }
    printf("%d\n", s);
}
 
WHILE,WEND間やwhile {}の{}内を、
I <= 10が成り立っている間、
繰り返します
C言語では
s = s + i;は、s += i;
i = i + 1;は、i++;
と書いても同じです
 
比較演算子は以下の通りです
      =    ≠   ≧  ≦  >  <
C言語 ==   !=   >=  <=  >  <
BASIC =    <>   >=  <=  >  <
 
次に、階乗を求めてみましょう
3人の並べ方は3!=3×2×1=6通りです
先頭は3人から1人選ぶので3通り、
2番目は残り2人なので2通り、
3番目は残り1人なので1通り、
3通りそれぞれに2通りの選び方が
あるので、3×2×1=6通りになります
1~nまでの積をn!(nの階乗)と言います
n人の並べ方は、n!通りあり、
5人の並べ方は、5!=120通りあります
 
nを入力してn!を表示します
 
BASICでは、
10 INPUT "n"; N
20 K = 1
30 FOR I=1 TO N
40   K = K * I
50 NEXT
60 PRINT "n! ="; K
 
C言語では、
#include <stdio.h>
void main(void)
{
    int i, k, n;
 
    printf("n? ");
    scanf("%d”, &n);
    k = 1;
    for (i = 1; i <= 10; i++)
    {
        k = k * i;
    }
    printf("n! = %d\n", k);
}
 
BASICの説明、
INPUT "n"; N
n ?を表示し入力された数値をNに入れます
;(セミコロン)の代わりに,(カンマ)を使用
すると ?(スペースと?)は表示されません
K = 0だと答は0になるので要注意です
*は×の事で、÷は/と書きます
 
C言語の説明
scanf("%d”, &n);は入力された値を整数
としてnに代入します
&nはnが存在する場所(メモリのアドレス)
で、scanfはその場所に値を入れます
今のところ関数に値を入れてもらうときは
&が必要と覚えておいてください
printfとscanfのフォーマットは、
整数%d, 単精度%f, 倍精度%lfです
 
Visual Cを使用していて画面がすぐ消える
時は、第1回の最後を読んで下さい
scanfがエラーになるときは、scanf_sを
使用してください

NL-BASICとblg~.zip(prog002?.bas、prog002?.c、?=a,b,c)
は、このブログ(以下のリンク)からダウンロードできます

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













 

このブログの人気の投稿

NEWS

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