研究開発

はじめてのVectorScript

はじめに

「はじめてのVectorScript」と題して連載を始めるわけですが、本連載は「Vectorworksは持っているけどVectorScriptって何?」、「プログラミングって難しいんでしょ?」「アイデアはあるんだけど...」という人が「それ、VectorScriptでやれば簡単だよね」と言えるくらいになるのが目標です。

VectorworksはMacintosh版とWindows版とのマルチプラットホーム環境でありながらも、VectorScriptはOSを意識することのなくプログラミングが可能で、どちらでプログラミングしてもソースコードの変更なしでMacintosh、Windowsどちらでも実行が可能です。そしてVectorworksを持っていればいますぐにでも始められます。

ゲーム機の場合、DQ7(ソフト)で遊びたいという理由で3DS(ハード)を選ぶと思います。「このソフト(あなたが書いたスクリプト)を使いたいためにVectorworksを選びました」と言わせるようなプログラムを目指してがんばりましょう。自分のアイデアをプログラム化しブログで公開なんてことも夢ではありません。

第0章

コンピュータに仕事をさせるには、まずその仕事を自分(人間)がこなすにはどうするかということを考えてみましょう。たぶん、頭の中で「あれをこーしてつぎにこれを...」と順序だててこなしていきますよね。同じように、コンピュータにゴールに向けて仕事の手順を教えるわけですが、それにはコンピュータにわかる言葉に置き換えてあげる必要があります。プログラムとは仕事の流れをコンピュータに解る言葉(言語)で書かれた命令群のことなのです。コンピュータは命令にしたがって正確に仕事をしますが頼んだこと以外はしません。間違った命令もそのまま実行します(これをバグという)。ようするに、机上で作業行程を書きさえすれば、あとはコンピュータ言語に置き換えるだけです。俗に、この作業行程を設計する人をSEといい、それをもとにコーディングする人をプログラマーといいます。

結果は同じでも人によって作業の順序や、やり方が違うようにプログラムにも同じことがいえます。1から100まで足すといくつ?を考えるとき、
・1+2+3+...+99+100と足し算していくという方法もあれば、
・(1+100)+(2+99)+...+(99+2)+(100+1)だから、101*100/2と計算してしまう方法もあります。
この作業の順序や、やり方のことをアルゴリズムといい、アルゴリズムを視覚的に表現したものをフローチャートといいます。初心者はフローチャートを書くことをお勧めします。いきなりプログラムを書く人もいますが途中で処理がたりないことに気付いたりして付け足し付け足しやっていると非常に見にくいプログラムになりやすいからです。とはいえ机上においても細かい所から始めては、なかなか全体が見えてきません。そこで全体を処理ごとに大きく切り分け徐々に小さいプロセスを書いていく方法があります。たとえば、

と書きます。さらに「ファイルを読む」処理は「ファイルがある」場合の処理と「ファイルがない」場合の処理になりさらに...と、この書き方をトップダウン方式といいます。このようにプログラム全体に階層構造を持たせることを構造化プログラミング(E.W.ダイクストラが提唱)といい、処理を階層化することで管理、修正がしやすくなります。さらに、物事のプロセスは3つのパターンの組み合わせで表現ができます。どんな大きいシステムでも3つの構造の組み合わせで書くことができます。それらを、順次構造、選択構造、反復構造といいます。

「順次構造」は命令を順番に書いていきます。とくに何事も無い場合、プログラムは上から順に下へ命令を処理していきます。

「選択構造」は真か偽で判断する場合に使います。自販機プログラムであれば、コーヒーのボタンを押したか、コーラのボタンを押したかで、出てくるものが違うように、条件に対してyesかnoかを判断してそれぞれの処理を用意します。VectorScriptでいえば、IF文やCASE文にあたります。

「反復構造」は繰り返し処理する場合に使います。先ほどの1から100まで足しまくる場合には、順次構造にしたがって書くと100行かかるところを、規則性のある命令は反復構造に置き換えることでプログラムの見通しもよくなり間違える可能性が低くなります。VectorScriptでいえば、FOR文やDO文にあたります。

プログラムの基本構造はこれらの3つの組み合わせで書けてしまいます。これらの考え方はVectorScriptに限ったことではありません。構造化言語と呼ばれる言語には同じことがいえます。VectorScripの場合はPascal言語がベースになっていますので、こうして考えたプロセスをPascal言語に置き換えていきます。次章からはPascal言語について解説します。