def main() { I = 0; K=tenten(I); print([I,K]); } def tenten(I) { I = 10; return(I); } main(); end$
def main() { I = 1; K=tenten(I); print([I,K]); } def tenten(N) { I = 2*N; return(I); } main(); end$
def main() { A = newvect(10); for (I=0; I<10; I++) A[I] = 0; tentenArray(A); print(A); } def tentenArray(B) { B[3] = 1000; } main(); end$
S=asciitostr([0x1b])+"["+rtostr(X)+";"+rtostr(Y)+"H"; print(S,0);
とすればよい.
スクリーンを消去するには
S=asciitostr([0x1b])+"[2J"; print(S,0);
とすればよい. 0x1b (エスケープコード) で始まる文字列をエスケープシーケンスと
いい画面にこの文字列をおくり込むと, 画面を消去したり, 色をかえたり,
カーソルを指定の位置へ移動できる.
なお漢字コード等もエスケープコードを利用している.
これについては第 10 章で説明する.
参考 (by T): 関数を有効に利用することにより, プログラムを分割して開発していくことが 可能である. 過去に作成したプログラムや他人の開発したプログラムを利用しやすく なる. このような考えの一つの到達点が, オブジェクト指向プログラミングで あるが, 筆者(T)はオブジェクト指向を標榜するプログラミングを ``穴埋め式プログラミング'' とふざけて呼ぶことがある. 穴埋め問題というのはおなじみであるが, それのプログラム版である. 穴埋めしているうちにプログラムができてしまう. たとえば, Java AWT (Application Window Toolkit) でプログラミングするときは, あらかじめ与えらたプログラムを まさに穴埋めしながらプログラミングする. たとえば, mouseDown という関数を記述すれば, mouse を押したときの動作を定義できるが, 別に書かなくてもすむ. このとき mouseDown の''穴を埋めた''のである.
補足 (by N): C++ の場合, 「穴」と呼ぶべきものは「仮想関数」というもの であろう. この場合, 「穴埋め」= 「オーバーライド」である. 埋めるべき穴 がちゃんと見えている場合は問題ないが, そもそも自分が実現したい機能が仮 想関数として既に提供されているかどうかは, あるオブジェクトに関するマニュ アルを隅から隅まで読んでみないとわからない場合が多い. これをさらにやや こしくするのが「継承」という機能である. これは, 豊富な機能を持つオブジェ クトを, 基本的なオブジェクトへの機能追加によって階層的に作りだすという 操作を実現するためのものである. このため, 自分の実現したい機能があるオ ブジェクトのマニュアルになくても, さらに上(下?)の階層まで遡って調べる ことになる. 面倒になると, 探すのをあきらめて, 自分で書いてしまったりす る. こうして, C++ のスタイルに馴染めない old C プログラマ (N) は, 常に 「書かなくてもいいプログラムを書いてしまったのではないか」という不安を 感じながら Windows プログラミングをしているのだ.