静岡理工科大学 菅沼ホーム 本文目次 演習解答例 付録 索引

はじめに

  コンピュータを使用する上で,プログラミングほどおもしろいものはありません.プログラムが書けなかったら,コンピュータのおもしろさは半減する(ほとんどない)といっても過言ではないと思っています.たしかに,ゲームもおもしろいかもしれませんが,いつかは飽きてしまいます.なぜなら,そこに存在する限界がわかってしまうからです.しかし,プログラミングは違います.少なくとも,現状においては,プログラムによってコンピュータの能力をどこまで引き出せるのかを明確に述べることはできません.たとえば,コンピュータがどこまで人間に近づけるかといった問題も,コンピュータアーキテクチャだけではなく,ソフトウェアに依存する部分もかなり多いと思います.

  本書は,C/C++ および Java の解説書です.ただし,C/C++ を基本として,そこに Java に関する解説を適宜挿入しています.したがって,C/C++ と Java を同時に勉強しようとする人や,C/C++ を知った上で Java を勉強しようとする人には向いていると思いますが,Java だけを勉強したいといった人には不適当かもしれません(「 Java と C/C++」,「 Java 自学・自習」参照).なお,C/C++ と Java の機能の違いをできるだけ分離したつもりですが,必ずしもそのようになっていない箇所があるかもしれませんし,また,私自身の好みにより,記述が偏っている部分も多くあるかと思いますのでご了承下さい.内容の分類は,基本的に,以下のようになっています.

:クリックすると,Java に関する記述にジャンプします.
(C++) : C にはない C++ 固有の仕様であることを意味しています.ただし,特に言及しない限り,Java にも同様の仕様があることを意味しています.
(Java) : C/C++ にはない Java 独自の仕様であることを意味しています.
(Javaを除く) : Java にはない仕様であることを意味しています.

  プログラミング言語の初心者でも容易に理解できるように書いたつもりですが,その意図は十分満足されていないかもしれません.C/C++ や Java は非常に多くの機能を持った言語です.最初からこれらの機能についての完全な説明を行っていくと,初心者は混乱を起こし,プログラミングの困難さを実感するだけで終わってしまう可能性があります.そこで,最初から多くの概念が入ってくるのを避けるため,特に最初の部分において,対象とする事柄に対する完全な表現をあえて避けています.従って,同じ事柄に関し複数の箇所で説明したり,逆に,複数の箇所を読まないとある事柄に対する完全な説明が得られないような場合が多く出てくるかと思います.また,場合によっては,先に述べた内容と矛盾するようなことを後に述べるようなこともあるかもしれません.これらは,初心者に,細かなことは後回しにして,できるだけ早くプログラムを書けるようになり,プログラミングのおもしろさを知ってもらいたいための配慮です.特に,初心者で,さしあたって C++ に興味が無く,かつ,プログラミング言語 C の概略を理解し,手っ取り早く簡単なプログラムが書けるようになることを目的とする人は,「(C++)」の表示がある章・節・演習問題を読み飛ばすと良いと思います.

  プログラミング言語を学習すること,つまり,プログラミング言語を理解し,プログラムを書けるようになり,最終的には,プログラミング言語で考えることができるようになることは,数学や他の学問の学習とは多少趣が異なります.もちろん,数学においても,問題を解けるようになるためには,理論を理解するだけではなく,数多くの演習問題を自分で解く必要があります.プログラミング言語の学習においては,その傾向がさらに強くなります.自転車に乗ったり,スポーツに熟練するような技能の獲得に似ていると言っても過言ではありません.できるだけ多くのプログラムを,実際にコンピュータに向かい,自分で書くことが,目的を達成する唯一の方法です.

  プログラミング言語学習の第一歩は,他の人の書いたプログラムを「まねる」ことです.そのため,できるだけ多くの例題をのせてあります.ただし,科学技術的なアプリケーションで使用するようなものがほとんどであり,システム管理者が必要とするような例やグラフィックスに関する例(付録に,Java の AWT や Swing の説明と使用例がある)は,非常に少ないと思います.言語処理系としては,Windows 用の gcc と Java 開発キットを利用しています.Version によって問題が起こることがあるかもしれませんが,あまり特殊な機能は使用していませんので大きな問題にはならないと思います.

  本書は,4部構成になっています.第Ⅰ部は,コンピュータやコンピュータ言語に関する簡単な説明です.第Ⅱ部は,主として C 言語に対する説明ですが,一部,C++ に関する説明を含んでいます.第Ⅲ部は,C++ および Java における最も重要な概念であるクラスに関する説明です.また,第Ⅳ部は,Network や Windows プログラミングについての説明です.

静岡理工科大学 菅沼ホーム 本文目次 演習解答例 付録 索引