戻る036385


C言語初心者への第一歩 (written by darkred)

 

01 C言語を始める前に

 

§01-01  プログラミングとは

 

私たちの使っているコンピュータは、全ての情報を01だけで扱っています。マウスを1回クリックするだけでも、コンピュータ内でどれだけの01の情報が飛び交っているか計り知れたものではありません。

01だけで表された命令だけでコンピュータを動かすことも可能でしょうが、アルファベットを使って命令したほうが人間にとってわかりやすくなります。例えば「0001010000110101」(機械語)と命令するより、「gets(s)」(プログラミング言語)と命令するほうが意味を推測できてわかりやすいですよね?

プログラミング言語を機械語に翻訳してくれるソフトのことを、「コンパイラ」と呼びます。また、プログラミング言語を機械語に翻訳することを「コンパイルする」といいます。両方とも非常に重要な用語です。

このコンパイラの働きにより、私たちは機械語を気にすることなく、プログラミング言語でコンピュータに命令できるということです。

そして、このプログラミング言語を用いてコンピュータに命令していく作業をプログラミングといいます。厳密には違いますが、だいたいそんなところでしょう。

 

§01-02  なぜC言語か

 

ここで紹介しているC言語は、プログラミング言語の1つです。コンピュータの種類や用途に応じて、プログラミング言語にはたくさんの種類があります。現在主流の言語といえば、Delphi, Java, C++, Visual Basic, FORTRANでしょうか。

その中でなぜ主流でないC言語を選ぶのか。C言語は古い言語だから、発展形のC++Javaなどの現在主流の言語を覚えたほうがいいんじゃないか。そんなことを思う人がいるかも知れません。

でもそれは違います。C言語の考え方をベースにしてC++Javaはできています。C言語を知らずにそれらを修得することは非常に難しく、初心者どころか上級者にもオススメできません。何事も基礎をしっかり固めてから、はるかなる高みを目指して行くものだと私は思っています。

また、C言語はプログラム構造がシンプルで見やすく、こちらが命令した通りに動いてくれます。裏を返せば、命令がきちんとしていないと思ったとおり動いてくれません。

C言語を選んだのはそういう理由からです。どの学校でも教育用としてC言語が扱われているのは、同じ理由かもしれませんね。


§01-03 C言語を記述するのに必要なもの

 

テキストでプログラムを作り、それをコンパイラに翻訳してもらえばいいわけで、必要なのは以下の2点です。

 

@        テキストエディタ(メモ帳などのテキストを編集できるもの)

A        C言語のコンパイラ(C言語のプログラムを機械語に直す翻訳ソフト)

 

@のテキストエディタは前回の第01回の講義でも使用しました。メモ帳はWindows標準装備でしたよね。ではAのコンパイラはどこにあるのでしょうか?

実はコンパイラはWindows標準装備ではありません。簡単に手に入るのですが、単体で入手するのはとても面倒な作業だったりします。今回は学習がメインなので、@とAがセットになった「学習用C言語セット」を導入して勉強することにしましょう。以下のページから学習用C言語セット「C machine」をダウンロードしてください。(ダウンロード・解凍の方法・拡張子の設定はここでは触れませんので、よくわからなければ聞いてください)

 

C machineが公開されているホームページ(20030523日現在)

http://homepage1.nifty.com/kentake/

 

解凍すると「Cmachine」という名前のフォルダが出てきます。「Cmachine」→「bin」→「Cmachine.exe」を起動しましょう。以下のような画面が出てきます。今回はこれを使って学習しましょう。

 


02 プログラムを書いてみる

 

§02-01 文字列を表示させるプログラム

 

まずは何も考えずに、以下のプログラムを打ち込んでみてください。

深く考えちゃダメ。(笑)

 

#include <stdio.h>

 

main()

{

printf("ラスティあうあう!");

}

 

「ラスティあうあう!」以外は半角文字です。printfの左側の空白はスペースキー4回で入力してもいいんですが、プログラミングらしくTabキー1回で入力しましょう。

打ち込み終わったら、上部にある再生ボタンをクリックしてみましょう。再生ボタンは2つありますが、左の方をクリックしてください。

どうでしょうか?下部に「ラスティあうあう!」が出ましたか?

 

 

流れとしては、@プログラムを作る。Aコンパイルする。B実行する。

この3ステップとなっています。C machineでは、コンパイルで異常がなければすぐに実行してくれるという仕様になっていますので、今は再生ボタンを押した瞬間にコンパイルして実行してくれたんですね。

実際には、AとBの間に、「リンクする。」という手順が入っています。リンクとは、コンパイルしたプログラム同士を結合して、同時に実行できるようにすることを言いますが、ここでは触れないことにします。意識する必要はありません。

 

§02-02 エラーを表示させてみる

 

今度はプログラムに間違いがあったときはどうなるのか試してみましょう。

今作ったプログラムのセミコロン「;」を1つ取って見ます。

 

#include <stdio.h>

 

main()

{

printf("ラスティあうあう!")

}

 

同じように再生ボタンをクリックしてみましょう。以下のようなメッセージが出たと思います。

 

 

パーサーエラーって何でしょうね?よくわかりません。(いいのか

とりあえず6行目の「}」が間違っていると言っていますね。

これは5行目の命令が「;」で終わりきっていないのに「}」が来るなんておかしいじゃないか、という意味です。コンパイラは何かおかしい所があると、その場所をエラーとして教えてくれます。

HTMLではエラーを無視してくれましたが、C言語のコンパイラはエラーを無視してくれません。これはC言語が不便なのではありません。C言語では大きなプログラムを書くことが多く、それだけ小さなミスが命取りになる言語だということを表しています。

 

 

§02-03 無限ループをするプログラム

 

無限ループを体験してみましょう。以下のプログラムはループ1周ごとに1を足して表示するプログラムです。

 

#include <stdio.h>

 

main()

{

long i=0;

while(1){

printf("%d\n",i);

i++;

}

}

 

書き終えたら再生ボタンをクリックしてみましょう。

どうでしょう。なんだかプログラムを書いた〜って気がしませんか?(笑)

§02-04 グラフィックス表示をするプログラム

 

ここではC machineのサンプルプログラムを実行してみましょう。

Cmachine」→「sample」→「graphic.c」を開いてみてください。

このプログラムは、sinカーブとcosカーブを画面右部に出力するというものです。

 

/*

 * C machine サンプル 〜 グラフィックス出力

 *

 * 「sin、cosカーブ出力」

 *

 */

 

  ----------------------------途中略----------------------------

 

         return 0;

}

 

再生ボタンをクリックしてみましょう。

以下のように出力されましたか?

 


03 これからC言語を始めるなら

 

§03-01 C言語でできること

 

C言語で、ゲームって作れないのかな?」「C言語って、文字を表示するだけ?地味な言語なの?」などということを昔よく話していました。C言語は、標準では、文字を表示するだけの言語です。でもそれはどんな言語でも同じ。標準では文字を表示するだけの地味な言語ばかりです。

C言語に限らずどんな言語でも、誰かが「通常とは違う表示方法が可能になる」ものを作ってくれています。C machineを例に挙げるならば、「グラフを描くことが可能になる」ように作ってくれています。これはC言語標準機能ではありません。C machine特有の付加機能です。

このような感じで、「音を鳴らすことが可能になる」「画像を表示できるようになる」などの機能を付加すれば、C言語でゲームを作ることが可能でしょう。

ただしC言語はゲームには向いてないと思いますので、C言語をマスターしてから他の言語でゲームを作るのが近道だと思います。

 

§03-02 推薦図書

 

プログラミング上達の一番の鍵は、自分で考えてプログラムを組むことですが、しっかりとした知識がないことにはプログラムを考えることすらできません。まず本を読んで体系的な知識を得て、問題を前にし、そしてプログラムを組む。これが一番です。

 

入門書

晴比古【著】『改訂 C言語入門 ビギナー編』\1,900+税(左

ベストセラーです。非常にわかりやすく、東洋大学情報工学科の教科書にもなっています。

東京電機大学教授陣【共著】『学生のためのC\1,900+税(中央

知識よりもまず実践だ!というあなたにはこれ。例題と問題が適度なバランスです。

入門からのステップアップ

若林 糧【著】『C言語プログラミング演習 例題で学ぶ正しいプログラムの作り方\2,200+税(右

プログラムは動けばいいわけじゃない。最も重要なことを教えてくれる一冊。