「基礎物理学」と呼ばれる物理の分野があります。
物理学分野での基礎とはBASE(基盤)という意味の分野で、一般的には 「非常に難しい学問分野」 です。
高校での学習での発想とはまったく逆になりますね。
今回のこのコーナーで紹介するフリーソフト 「C-INT」 というC/C++インタプリターは
その物理学の最先端の研究の過程で研究者の中から作り出されたものです。
この 「C−INT」 を紹介しているホームページURL( http://root.cern.ch/root/Cint.html )に
「CERN」 という名前が出てきますが、
世界最先端の素粒子研究のメッカである粒子巨大加速器がある有名な研究施設です。
どのようなものかは皆さん各自でGoogleなどで調べてみてください。
ここの研究施設で使われているシステム共通言語がこのC−INTです。
研究に使うソフトウエアがいろいろなコンピュータで完全互換で使えるように、
UNIX、WindowsなどいろいろなOSで動くシステムです。
このインタプリタを作った人について、次のように書かれています。
CINT is developed by Masaharu Goto, who works for Agilent Technologies.
Masaharu collaborates closely with the ROOT team to integrate CINT seamlessly into ROOT
and to further optimize CINT/ROOT.
Masaharu Goto(後藤正治) とありますので、日本人のようです。すごいですね!
この C−INT は画面に向かって電卓を使うようにCプログラムが使える(インタープリタだから当然!)で非常に便利です。
何しろ、コンパイルという作業が無くなるからです。
プログラムの実績は十分です(素粒子研究の世界的名研究施設で使い込まれて、バグは十分になくされているからです。)
まずは、CERNのホームページに直接つないでみましょう(→CERNのC−INT紹介ページ)
地味なホームページですが、最初の1ページにこのインタプリターの紹介があります。
このページは当然英語ばかりです。辞書を用意しておいてください。ダウンロードだけでなく、プログラムの紹介、マニュアルなども全てあります。
英語の勉強と思って全部読んでみてください。
なお、日本語の 解説本 が以前発売されていたはずですが、
現在は絶版のようですね!(管理人は持ってるよ) ぜひ英語でがんばってください。
ホームページの説明を読んで、このC−INTを使いたくなったら、
このサイトからソフトをダウンロードをすることが最初の仕事になります。
ダウンロードは、CERNのホームページ(→CERNのC−INT紹介ページ)
のどこかにあります。
ダウンロードしたものは圧縮形式がUNIX(Linux)流の tar.gz 形式で Windowsの zip 形式ではありません。
このため、解凍ソフトがないため圧縮が解けない(解凍できない)人がいるかと思います。
この場合、解凍ソフトをダウンロード(窓の杜など)する必要があります。
解凍ソフトについては tar形式に対応したものを「窓の杜」から探せばよいだけです。
解凍がすんだら、解凍されたファイルを適当なフォルダーを作って(たとえば c:\cint )を作って、
すべてそこに入れます。
環境変数の path にインストールしたホルダー名 c:\cint を追加して起動がどこからでも出来るようにします。
環境変数の設定はマイコンピュータを右クリックして、プロパティのメニューを選びます。
現れたシステムプロパティの詳細設定タブをクリックします。
詳細設定画面の下部に環境変数ボタンがあり、これを押します。
システム環境変数の欄の path を選んで編集ボタンを押すと、システム変数の編集メニューが現れます。
メニューの変数値の最後に ;c:\cint を追加するだけです。
解凍されたファイルのなかの「cint.exe」がプログラムの本体です。
そのショーカットをデスクトップに作っておくと
それをクリックするだけで C−INT が使えるようになります。
起動すると、DOS窓(黒い画面)が現れます。
cint.exe > の表示の後ろにプログラムを打ち込んでみましょう。
C言語の最初のプログラムはいつも決まっています。画面に Hello C! を出すプログラムです。
cint.exe > の表示の後ろに { printf("Hello C!\n"); } と打ち込んで、改行を押します。
また、1から5までの平方数を計算させてみましょう。
cint.exe > の表示の後ろにプログラムを打ち込んでみましょう。
{ int i; for(i=1; i<=5; i++) printf("%4d %6d\n",i,i*i); }
以上のように打ち込んで改行いれると同時に次のような表示が画面に出てきます。
1 1 2 4 3 9 4 16 5 25
C言語の初心者が楽しむには非常に良い(コンパイルしなくて良く、反応がすぐに分かる)。
興味ある方はいかがでしょうか?
本格的に作りたい方はエディタでプログラムを作って大きなプログラムも動かすことも可能です。
グラフィックライブラリも研究用に色々と作られているようです。
ホームページをよく読んでそれらを利用することもできます(英語力ある人のみですが!)。
最後に、素数を見つけるプログラムを入れて見ましょう。
{ int i,j,k; printf("%d ",2); for(i=3; i<=100; i++) { k=0; for(j=2; j < i; j++) if(i%j==0) k++; if(k==0) printf("%d ",i); } printf("\n"); }
プログラムを実行した結果は次のようになります。 このように、プログラムにより素数が簡単に出てきます。
2 3 5 7 11 13 17 19 23 29 31 37 41 .. 途中省略 .. 89 97
使えば使うほど、直接入力によるプログラム作成では修正が難しいことが分かって来る。
やはり、エディタを使ってプログラムを作り、ファイルを読み込んでプログラムを動かす従来の方がよいのは当然です。
方法は簡単です。
cint filename.c
これだけでプログラムが実行できます。なお、標準ヘッダーファイルなど(stdio.h など)はインクルードしなくて良いようです。
インクルードした場合、ヘッダーファイルが無いと言われてしまいます(コメントアウトしておくと良い)。
管理人がちょっとだけ使った限り、日本語も通ります(完全にOKかどうかは分かりません)。 日本語の情報も Google で検索すれば出てきますので、英語が苦手な方は探してみてください。
// #include < stdio.h > ←標準ヘッダファイルはコメントアウトする int No; int pr_sosuu(int n){ No++; printf("%2d番目の素数は %3d です。\n",No,n); ←日本語も通ります } int main(int argc, char **argv) { int i,j,k; No=0; for( i=2; i < 100; i++ ) { k=0; for( j=2; j < i; j++) if( i%j == 0 ) k++; if( k == 0 ) pr_sosuu( i ); } printf("\n"); }
しかし、電卓のようにCを使えることも大変便利! 何しろプログラムが出来る電卓として使えるのですから。 それに、C言語学習の初心者が練習用に使うのも大変便利で、昔のBASIC言語の勉強をしているときのことを思い出します。