プログラミング P()17 2018 2 3

「プログラミング P()16 2018 1 27」の続き

「ループ(繰り返し処理)」
 人間は、退屈な「繰り返し処理」を嫌うでしょうが、
コンピューターは、こういうことが得意です。
 前号では、1から10まで合計すると、いくつになるかについて、
公式を使って、計算しました。
a = 1
b = 10
print((a + b) * b / 2)
 今回は、これを「繰り返し処理」で計算してみましょう。
ここでは、繰り返し文の「for文」を使います。
計算結果を「sigma」とします。
sigma = 0
for i in range(11):
   sigma = sigma + i
print(sigma)
 前号でも書きましたが、
Pythonでは、字下げ(インデント)も文法になります。
 つまり、インデントされている行は、
繰り返し処理の範囲になります。
 一方、print(sigma)は、インデントされていませんので、
繰り返し処理の対象ではありません。
 さて、その前に、疑問に思ったのは、
「range(11)」の「11」でしょうか。
1から10まで合計するので、「10」のはずであると思ったでしょうか。
 ここが、コンピューター特有のものとなります。
実は、コンピューターやプログラミングでは、
「0,1,2,3,4,5,6,7,8,9,10」なので、11個あるのです。
つまり、「0」から始まるので、一つ多くなるのです。
 そういうわけで、「range」という機能について、
だいたい見当がつくと思います。
 11個の箱が用意されて、
「0,1,2,3,4,5,6,7,8,9,10」という数字が入っているのです。
 これらの数字が順番に計算式(sigma = sigma + i)に入っていって、
合計が積算されたのです。
 ちなみに、このような計算をC言語で書くと、
以下のようになります。
#include <stdio.h>
int main()
{
  int i;
  int sigma;
  for (i = 1;i <= 10;i++){
    sigma = sigma + i;
  }
  printf("%d\n",sigma);
  return 0;
}
 「C言語は、なんて面倒くさい言語だろう」と思ったでしょうか。
しかし、処理速度は、Pythonより、C言語の方が断然早いのです。
スピードを求めるならば、C言語でしょう。

「PC/AT互換機って何?」
 これだけ見ると、何のことだがわかりませんが、
英語に直すと、見当がつきます。
「IBM PC/AT Compatibles」となります。
つまり、IBMが作った「PC AT」というパソコンの互換機となります。
 日本では、「DOS/V機」と呼ばれることが多かったと思います。
そういう名称の雑誌があり、私は愛読者でした。
 パソコンの本家本元は、IBMの「PC AT」というパソコンでしたが、
IBMがパソコンを普及させるために、
アーキテクチャ(設計や仕様)を公開したのです。
 そこで、多くのメーカーがパソコン市場に参入して、
IBMの「PC AT」互換機を安く大量に生産した結果、
本家本元の「PC AT」を超えて、
互換機の方が、「世界標準」となってしまいました。
 互換機の世界では、「安価で大量生産」が主流となりましたので、
その後、IBMは、パソコン分野から撤退することになりました。
 こうして「互換機市場」が急拡大するとともに、
パソコンメーカーではない個人が、
CPUやハードディスクなどの部品を集めてきて、
自作のパソコンを作ることができるようになったのです。









































































トップページへ戻る