C言語プログラミング、数値計算、データ可視化のためのコンピューティング環境

Ch Professional は、C言語プログラミング、数値計算、データ可視化のためのコンピューティング環境です。
2D/3D描画を始めとする8,000以上の関数を備え、またインタープリタ方式を採用しており、コンパイルやリンクといった煩わしい処理を必要としないため、即座に実行結果を得ることができます。
機能・特長
ISO C標準規格C90に準拠したC言語プログラミングツール
経験のあるプログラマから初めてC言語を学ぶ初学者まで幅広くお使いいただける機能を搭載しています。
ISO C標準規格C90に準拠し、最新のISO C99のCコンパイラが提供している多くの新機能、C++におけるクラスをサポートしており、また8,000を超える関数を持ち、POSIX、Soket/Winsock、X11/Motif、OpenGL、ODBC、C LAPACK、GTK+、Win32、XML、CGIなど多くの業界規格もサポートしています。
インタープリタ方式を採用しているため、コンパイルやリンクが必要ありません。何度も繰り返される文法エラーの修正や、プログラムを修正しながらテストをくりかえる場合に特に威力を発揮するので学習時間を有効に活用できます。
数学関数を多数実装した数値処理ツール
Chの線形代数や行列計算のための汎用型数学関数と計算配列の機能により複雑な科学技術問題も簡単に解くことができます。線形連立方程式 b=A*x の解は、Chにおいては逐語的に記述することができます。
また、LAPACKを基にした線形代数問題、微分方程式の解法、積分、非線形方程式の根の見出し、多項式の取り扱い、カーブ・フィッティング、高速フーリエ変換等のための先進的なハイレベル関数を持った科学数値計算も可能です。
C LAPACK、GNU Scientific Libraryなど多くのライブラリをサポートしているので、これらのライブラリを使ったアプリケーションでは、変更も加えることなくChでの実行、またCコンパイラでコンパイルすることができます。
プログラム例1
> array double a[2][3] = {1,2,3,4,5,6,} b[2][2] > b = a*transpose(a) 14.0000 32.0000 32.0000 77.0000 > b*inverse(b) 1.0000 0.0000 0.0000 1.0000 > a = 100*a + 5 105.0000 205.0000 305.0000 405.0000 505.0000 605.0000 |
ユーザフレンドリーな統合開発環境(ChIDE)
ChはC/C++プログラミングを学習するためのユーザフレンドリーな環境ChIDEを提供します。
ChIDEには多くの省略形、またC/C++を学習するために便利なヘッダが用意されています。自動的にコードをインデントしたり行を強調する機能も搭載されています。フォントサイズも簡単に変更できます。
- デバッグ機能
ブレークポイントの設定、ステップ・バイ・ステップ実行、プログラム実行中の変数の値の監視と変更が可能で、異なるスタック内の変数は違う色で表示します。 - プログラミング授業に最適な環境
手早くプログラムを変更しながら異なったプログラミング機能や概念を表示したり、生徒からの質問にも素早くこたえることができます。 - 他のコンパイラとの併用
Windows上ではMicrosoft Visual Studio C++コンパイラと、UnixではGNU gcc/g++と組み合わせて使用できるようあらかじめ設定されており、その他のコンパイラとも使えるような柔軟性を持っており、C/C++で作成されたプログラムのインタプリタ的な実行も、コンパイル・リンク的な実行も容易にスイッチして利用することができるため、コンパイラがどのように動いているかを学習することにもつながります。
簡単なプログラミング、即座に表示される実行結果
ユーザフレンドリーな統合開発環境(ChIDE)を使えばC/C++プログラムを手早く作成、編集できます。またコンパイル・リンクの操作が必要無く操作が簡単なため、即座に実行結果を得ることができます。
またトレース実行する場合でも、メニューから選択するだけですぐにトレースを開始できます。
C/C++の学習や高速なプロトタイピングのための対話的ツールとして利用可能
C/C++の式、分、関数やプログラムは、Chのコマンドウィンドウ上で対話的に実行することができ、高速なプロトタイピングツールとして利用することができます。 また、先生は直観的で手軽なC/C++プログラミング学習ツールとして、Chのコマンドウィンドウを使用することもできます。
Chコマンドウィンドウは、生徒がC/C++の理解しにくいトピック、たとえばデータ型、入出力フォーマット、ポインタ、構造型および配列などをわかりやすく理解するための手助けとなります。生徒はBASICを学ぶようにC/C++を簡単に学習することができるようになります。
プログラム例2
> double f = 12.345 // 変数fを宣言し初期化
> 2*f // 2×fを計算[して結果を表示]
24.6900
> printf("%8.2lf", f) // 幅8桁,小数点以下の精度2桁[の形式で
// 変数fの値を表示]
12.35
> double *p // double型変数へのポインタpを宣言
> p = &f // pは変数fをポイント
00AC81A0 // 変数fのアドレス[(=pの値それ自体)を表示]
> *p // [ポインタ]pによってポイントされる[変数の
//値を取得して表示]
12.3450
> p[0] // pを配列として扱う
12.3450
|
また下の前半の例では、疑似乱数発生器が時刻を用いてsrand(time(NULL)によってシードされた後rand()関数が呼ばれ、二つの疑似乱数が生成されています。後半の例では、数学関数sqrt()を内部で呼び出す関数add()がプロンプト上で定義され(「double add」から始まる行)その後使用されています。
プログラム例3> srand(time(NULL)) > rand() 4497 > rand() 11439 > double add(double a, double b) {double c; return a+b+sqrt(2);} > add(10, 20) 31.4142 |
高度なシェル・プログラミングとクロスプラットフォームスクリプティング
Chは、UnixやMS-DOSのシェルと同様、C互換のシェルです。WindowsにおけるChには250以上のUnixコマンドが含まれており、vi、ls、ask、sedなどをポーティング可能なシェル・プログラミングとして使用することができます。
ChはC言語とシェル言語間のギャップを埋める橋渡しとしての役割も果たします。
強化されたスクリプト機能と組み込まれた文字列型によって、Chは繰り返し行うタスクの自動化、システム管理、リグレッション・テストやハードウェア・テストをプラットフォームをまたがって行うスクリプティングのために使用することができます。
Chは使い慣れたWindows上で、Unix/LINUXを学ぶツールとして利用できます。
2D/3Dグラフィカル・プロット
2D/3D描画が可能で、技術的、科学的な問題の解をビジュアルに表現できます。
- ChにはC++プロット・クラスを備えており、このクラスは2D/3Dプロットを操作・生成する100以上のメンバ関数が用意されています。
- Chには、plotxy()、fplotxy()、plotxy()、fplotxyz()、plotxyzf()等の使いやすい高水準プロット関数が用意されており、これらの関数はプロットされるデータを配列、他の関数およびデータファイルから簡単に取得できます。
- 異なる座標系や形で数多くのタイプのプロットができます。
- プロットはWebブラウザで表示できます。またPNG、Jpeg、GIF、PostscriptやLATex等の様々なファイルフォーマットに保存することができます。
- 表示されたプロットはMicrosoftWordなどに簡単にコピーアンドペーストすることが可能です。
- プロットのためのクラスと関数はSIGL(SoftIntegration Graphical Library)をサポートしています。プロット機能を利用したプログラムはCh内でコンパイル無しで実行することも、C++コンパイラでコンパイルした後にSIGLと共に実行することもできます。
科学技術計算の例として二次振動系又は二次制御系の問題があります。
Ch Professionalでは、パラメータに応じて解析的に求められた応答式を関数として定義し、それを呼び出す下のプログラムによって二次振動系の応答を下の例示図のようにグラフィカルかつビジュアルに表示することができます。
同じプログラムの出力方法を変えれば次節で示すようにクイックアニメーションとして実際に重りの運動を表示することもできます。
(下記では、わかりやすいように色分けをしています)
#include |
このプログラムが出した次ページの例示から、以下のことがわかります。
- 過制動(Overdamped)の場合:行き過ぎ(overshoot)はありませんが、定常値に達するまでやや長い時間がかかっています。
- 臨界制動(Critically-dampled)の場合:最も短時間で定常値に達しますが、少々の行き過ぎがあります。
- 不足制動(Underdampled)の場合:定常値に達するまで最も長時間を要し、且つ振動的です。
緑の矢印①の長さが臨界制動の場合、青の矢印②の長さが不足制動の場合における「行きすぎ」です。その大きさは系の応答式が解析的に得られていれば応答式の極値として理論的には簡単に求められます。
クイックアニメーション
Chはさまざまなオブジェクトを表示・動作させるためのプログラム(Quick Animation)を備えています。
Quick Animationは、科学計算などのシミュレーションやビジュアル化するのに役立ちます。また機械工学における2Dアニメーションにも適しており、さらにコンピュータやプログラミング学習に対する生徒の興味を喚起することもできます。
































