自然数の2乗の和
にアップした。
テキストに書き直すと、旗 がクリックされたとき(n=) と聞いて待つ[n] を (答え) にする[s] を (0) にする[i] を (1) にする(n) 回繰り返す|[s] を ((s) + ((i) * (i))) にする|(2) 秒待つ|[i] を (1) ずつ変えるこのプログラム中の (2) 秒待つ は動作の様子を観察するためのもので、これを削除すると途中の計算の様子は見ることができず、結果が一瞬にして表示される。
n=int(input('n= '))s=0for i in range(1, n+1):s=s+i*iprint('s=',s)1 行目の input('n= ') は n= を表示し、入力を待つ。入力された数文字列を int 関数で整数に変換。その結果を変数 n に格納する。2 行目は和を蓄える変数 s を 0 に初期化。3 行目の range(1, n+1) は 1 から n までの範囲を示し、i を 1 から n まで変化させながら 4 行目の実行を繰り返す。4 行目は i かける i、すなわち i の 2 乗を s に加え、その結果を変数 s に蓄える。5 行目は s= に続けて s の値を表示する。以下は n= に 10 を入力したときの実行結果。$ python3 sumi^2.py
n= 10
s= 385
3. Ruby (ルビー)で書いたプログラム sumi^2.rb
print "n= "
n=gets.to_i
s=0
for i in 1..n do
s=s+i*i
end
printf("s=%d\n", s)
1 行目の print "n= " は n= を表示する。2 行目の gets.to_i は gets で数文字列を受け取り、.to_i で整数に変換。その結果を変数 n に格納する。3 行目は和を蓄える変数 s を 0 に初期化。4 行目の 1..n は 1 から n までの範囲を示し、i を 1 から n まで変化させながらdo から 6 行目の end に挟まれた部分のプログラムの実行を繰り返す。5 行目は i かける i、すなわち i の 2 乗を s に加え、その結果を変数 s に蓄える。6 行目の end は for で繰り返すプログラムの部分の末尾を示す。7 行目は s= に続けて s の値を表示する。以下は n= に 10 を入力したときの実行結果。$ ruby sumi^2.rb
n= 10
s=385
#include <stdio.h>
int main(void)
{
int n, i, s;
printf("n= ");
scanf("%d", &n);
s=0;
for (i=1; i<=n; i++){
s=s+i*i;
}
printf("s=%d\n", s);
return 0;
}
#include <stdio.h> は標準入出力ライブラリのヘッダファイルを使うとの宣言で、
画面に出力する printf やキーボードから入力する scanf を用いるときに必要。
C のプログラムは main 関数が入り口の関数で、
スクラッチの旗に続くプログラムのようなもの。
関数とは、引数の値を受け取り、実行結果の値を返すものである。
int main(void) は引数が無し (void) で返す値が整数型 int であることをまず記述し、
その後ろの { から } までの部分に関数の本体の記述が続く。
int n, i, s; は整数型の変数 n, i, s を用いることを宣言。
printf("n= "); で、画面上に文字列 n= (= の後ろには空白文字)を表示する。
scanf("%d", &n); で、キーボード(詳しくは標準入力装置)から
整数を変数 n に読み込む。
for (i=1; i<=n; i++) { は、変数 i を 1 から n 以下の間、i を 1 づつ増加させながら、
{ と } に挟まれた部分のプログラムを繰り返し実行する。
s=s+i*i; で、変数 s の値に i の2乗を加えたものを s に格納する。
繰り返しが終わったら printf("s=%d\n", s); で
s= の文字列に続き、変数 s の値を整数として表示し、改行する。
\n は改行を表す。
return 0; で main 関数の値 0 を返して終了する。
0 はプログラムが正常終了したことを表す。
Cのプログラムを実行するには、コンパイルが必要である。
gcc などのコンパイラでコンパイル(プログラムを実行ファイルに翻訳)する。
$ gcc sumi^2.c
プログラムに問題がなければ a.out という実行ファイルが生成される。
これを以下のように実行する。
$ ./a.out
n= 10
s=385
5. まとめ
どの言語のプログラムでも書き方や操作が多少異なるが、実行する計算は同じ。
C はこの例では一番複雑だが、基本の言語。最近は、ruby や python などの、コンパイルをしないインタープリータが広く用いられるようになってきた。