コンピュータでの処理は、一般的に「入力」「処理」「出力」という形態をとります。
入力するデータが無ければ処理することもできないし、処理結果を出力しなければ何が起こってるのか分かりません。
例えば、コンピュータゲームであれば、コントローラーから押したボタンの情報を本体に「入力」し、ゲームに応じてキャラクターを動かしたり、車や戦闘機を動かしたりという「処理」を行い、結果として画面やスピーカーに「出力」します。
この内、どれが欠けてもゲームは成り立ちません。
「入力」しなければ「処理」できないし、「処理」結果を「出力」しなければ、画面には何も映らず、スピーカーからは何も聞こえません。
コンピュータというと、パソコンやゲーム機を連想しがちですが、私達の身の回りはコンピュータだらけです。
テレビ、冷蔵庫、洗濯機、車、自動販売機・・・ほとんどの電化製品はコンピュータで制御されています。
ゲームの例に引き続き、自動販売機を例にとってみます。
お金を「入力」し、商品選択のボタンを「入力」します、お金が足りているか、どの商品を選んだのか、おつりの計算などの内部「処理」を行い、「出力」結果として、商品やおつりを出します。
コンピュータでプログラムを行う際には、この「入力」「処理」「出力」という考え方が基本になります。
では、はじめに「出力」からやってみましょう。
なぜ、「出力」からなのか?と思うかも知れませんが、「入力」を先にやっても結果が表示されなければ、何が入力されているか分かりませんから、「出力」からやるのです。
文字列とは、文字通り「文字の列」です。(細かい話は後々いたします)
C言語では、「"」(ダブルクォーテーション)で挟まれた文字を文字列と言います。
まずは、この「文字列」の出力からやってみましょう。
<sample program 002-01>
#include <stdio.h> int main(void) { printf("Hello C World"); return 0; } |
とりあえず、このサンプルを打ち込んでください。
入門書等で良く出てくるサンプルプログラムです。
出力でよく使う命令はprintfです。(厳密には命令ではないのですが、初めての方には分かりやすく命令としておきます)
これは、画面に表示をするための命令で、上のサンプルでは、「HelloC World」という文字列を表示します。
<実行結果>
Hello C World続行するには何かキーを押してください・・・
なんだか、見にくいですね。
Worldの後に\nを入れて見ましょう。
<sample program 002-02>
#include <stdio.h> int main(void) { printf("Hello C World\n"); return 0; } |
<実行結果>
Hello C World 続行するには何かキーを押してください・・・
改行されて少し見やすくなりました。
この「\n」という記号は「改行」を意味しています。
この記号を入れることで、好きな箇所で改行できます。
<sample program 002-03>
#include <stdio.h> int main(void) { printf("Hello\nC\nWorld\n"); return 0; } |
<実行結果>
Hello C World 続行するには何かキーを押してください・・・
こんな具合に改行したい箇所に入れるだけです。
printfで表示する文字列は半角だけではなく、全角文字も表示できます。
<sample program 002-04>
#include <stdio.h> int main(void) { printf("はろ〜Cワールド\n"); return 0; } |
<実行結果>
はろ〜Cワールド 続行するには何かキーを押してください・・・
この場合も「\n」は半角文字ですので、気をつけてください。
以上のように文字列の表示は簡単です。
では、数字を表示してみます。
<sample program 002-05>
#include <stdio.h> int main(void) { printf("123\n"); return 0; } |
<実行結果>
123 続行するには何かキーを押してください・・・
数の文字列ですから、普通の文字列と同じように表示できます。
なぜ、最後に数字を表示したのかというと、次に表示する「数値」と区別するためです。
コンピュータ内で、「数字」と「数値」は区別されています。
数値の表示は文字列の表示と異なります。
<sample program 002-06>
#include <stdio.h> int main(void) { printf("%d\n", 123); return 0; } |
<実行結果>
123 続行するには何かキーを押してください・・・
表示結果は「数字」の時と同じですが、記述方法が異なっています。
「数字」の時に「”」の間にあった「数」は「%d」という文字に変わっています。
「数値」は「”」の後ろに「, 123」となっています。
「%d」は、「,(コンマ)」の後ろの数値を10進数で表示するという意味です。
では、「数字」と「数値」がどのように異なるのか見てみましょう。
<sample program 002-07>
#include <stdio.h> int main(void) { printf("123 + 5\n"); printf("%d\n", 123 + 5); return 0; } |
<実行結果>
123 + 5 128 続行するには何かキーを押してください・・・
「数字」を扱っているprintfでは、123+5を計算式ではなく、ただの「文字列」としてみています。
「数値」を扱っているprintfでは、123+5は計算式として扱われているため、加算した結果の「128」が表示されています。
大雑把に言うと、「数字」は表示用であり、「数値」は計算用に使われます。
さて、10進数と書きましたが、C言語では、他にも8進数や16進数等も扱います。
※○進数については「進数の話」に書きます。
次に、小数の表示の仕方です。
<sample program 002-08>
#include <stdio.h> int main(void) { printf("%d\n", 123.5); return 0; } |
<実行結果>
0 続行するには何かキーを押してください・・・
実行結果を見てください。
123.5という数値を10進数で表示しているのですが、0になっています。
なぜかと言うと、コンピュータの内部では、整数と小数は異なった扱いをされているからです。
「%d」の部分を「%f」に変更すると正しい結果が表示されます。
<sample program 002-09>
#include <stdio.h> int main(void) { printf("%f\n", 123.5); return 0; } |
<実行結果>
123.500000 続行するには何かキーを押してください・・・
「,(コンマ)」と「.(ピリオド)」に注意してください。
「%f」は10進小数で表示しなさい、という意味です。
「f」は浮動小数点(floating point number)の頭文字を取っています。
浮動小数点については、「小数の表現」に書きます。
他にも表示方法は色々あるのですが、ここですべてを説明しても、忘れてしまいますので、その都度説明します。
最後に、結果表示をより分かりやすくするためのいくつかの方法について説明します。
<sample program 002-10>
#include <stdio.h> int main(void) { printf("結果は%dです。\n", 256); return 0; } |
<実行結果>
結果は256です。 続行するには何かキーを押してください・・・
ただ単に数値だけを表示するのではなく、全角文字等と組み合わせて表示することも可能です。
気をつける部分は、「%d」は半角小文字で、という点です。
※ここでの全角文字は、「"」で囲まれている場所に書いてあるので問題ありません。
#include <stdio.h> int main( void ) { printf( "結果は%dと%dです。\n", 256, 38 ); return 0; } |
<実行結果>
結果は256と38です。 続行するには何かキーを押してください・・・
2つ以上の数値を一度に表示することもできます。
最初の「%d」に256が、次の「%d」に38が表示されます。
3つでも4つでも書けますので、色々と試してみてください。