1. 最初のプログラムはHello World!

 プログラムの参考書を読んでみると大抵が最初にHello World!を出力するところから始まっています。開発環境のチェックも兼ねてやってみましょう。このページはeclipseの日本語化パッケージpleiadesの4.7をインストールした環境を前提としています。
 プログラムが書かれているファイルの事をソース、そのソースファイル等をまとめて管理する単位をプロジェクトと呼びます。

 なおeclipse以外の環境を使っている人は(3)以降のプログラムを入力して実行できることを確認してください。

(1) プロジェクトの作成
 eclipseを起動して、図の赤丸の▼をクリックし、現れたプルダウンメニューの中のCプロジェクトを選択。

 下図のウィンドウが現れたら、プロジェクト名をno1(必ず半角で!)、実行可能の欄は空のプロジェクト、ツールチェーンはMinGW GCC(Macの人はMacOSX GCC)を選択して完了。

すると次の様に左の所にno1という先ほど設定したプロジェクト名が現れる。

(2) ソースファイルの追加
 続いて赤丸の▼をクリックしてソース・ファイルを選択。

ソース・ファイルはhello.c(これも必ず半角!)としてください。本当はここでの名前の付け方は半角英数字のファイル名で拡張子が.cであればなんでも良いのですが最初のうちは同じにしてください。Cのファイルは拡張子が.cとすることに決まっていますので、今後も.cを付け忘れないようにしてください。

 下図にソースファイル追加後の画面を示します。ウィンドウの真ん中の所がソースファイル(プログラム)を編集するところです。赤矢印のところがプログラムの行番号です。プログラムの動作には関係ありませんが、エラーの位置などを見る際に便利です。また、Author:の後の所には皆さんのユーザ名が書かれているでしょう。

 今、1-6行目に何か書かれ、緑色で表示されていますが、Eclipseではプログラムの動作とは関係のないコメントは緑色で表示します。C言語においてコメントとするには/* コメント */というように/*と*/ではさみます。

(3) プログラムの入力
 それではいよいよプログラミング開始です。8行目以降に次の行番号以外の文を入力してください。必ず空白も含めて半角英数字で入力すること。また、10,11行目のところは命令の前に空白があります。ここの部分はTABキーを使ってください。

8     #include <stdio.h>
9     int main(){
10        printf("Hello World!");
11        return(0);
12    }

 入力が終わって行番号の左に?マークが出た人はどこかで入力ミスをしています!10,11行目の最後に;(セミコロン)が付いているか、綴りが間違っていないか確認してください。入力ができたら保存しましょう(ファイル→保管、またはCtrl+S)。保存するとhello.cタグの*マークが消えます。

(4) 実行
 いよいよプログラムの実行です。実行は2段階に分かれます。① ビルド、C言語で書かれたプログラムをパソコンで実行可能なファイルに変換します。(コンパイルという言葉を知っている人もいるかと思います。知っている人はコンパイルに加えてドキュメントの生成、配布専用ファイル生成なども行っていると考えてください。)② ビルトしたファイルを実行する。この2段階です。
 まずはビルドします。ビルトは下図の①の金槌のアイコンをクリックするか、メニューのプロジェクトの中のすべてビルドを選んでください。エラーがあるとコンソールのところに

..\hello.c:10:10: error:

等と表示されます。このエラーの場合は10行目の所にエラーがあるという意味ですのでその辺りの命令を確認してください。

エラーが表示されていなければプログラムの文法的には問題ないという事ですので、実行してみましょう。実行は、②の右向きの三角形のアイコンをクリックします。最初だけ次の画面が現れます。C/C++アプリケーションをダブルクリックしてください。

 続いて、C/C++アプリケーションのところがDebug¥no1.exeとなっていればそのまま実行ボタンを押してください。¥は\と同じです。なっていない場合、Debug¥no1.exeと入力して実行を押してください。もしエラーが起きたり、実行ボタンが押せない場合、ビルドがうまくいっていない可能性があります。プロジェクト→クリーンをしてからビルドしてエラーが出ていないことを確認してください。


実行をクリックするとビルドされた実行形式のファイルが実行されます。うまくいっていれば次の図の様にコンソール部分にHello World!と表示されます。プログラム中のHello World 部分をいろいろな文字に変更して保存してから実行してみてください。この" "で囲まれた部分は日本語もOKです。(本当は文字コードを気にするべきですがそれはまた後で。)

プログラムは上から順に実行されます。コメント部分は実行結果とは関係ありません。また、8-9行目、11-12行目は、今は分からなくて問題ありません。ただ一応の説明はこのページの最後に書いておきます。

重要 printf関数 printf("表示したい文字");

 printfの一番最初の使い方として、
printf("表示したい文字");
と書くとコンソールに表示したい文字が現れるという事を覚えてください。また、関数に実行するために与える値を引数(ひきすう)と呼びます。今回のプログラムのprintf関数の引数は"Hello World!"一つでした。


計算結果を表示するプログラムに変更

(5) 計算結果を表示
 計算してその結果を表示することを行いましょう。使う関数はやはりprintfです。では、" "の中にどう書けばいいでしょうか。printfのカッコ内の引数を2つにして8行目を次の様に書き替えます。

printf("%d", 33+44);

ファイルを保存して実行すると、出力結果は77と表示されるでしょう。%dはここに数字(整数)を表示します、という意味です。そこで使われる値には2番目の引数の33+44の値77が使われます。

重要 printf("%d",A); はAの値を出力

(6) 文字列と値を一緒に表示
 先ほどの文字を表示することと数値を表示することを合わせて行うこともできます。先ほどの8行目を次のように書き換えてください。

printf("33足す44は%dです。", 33+44);

 ファイルを保存して実行すると、出力結果は、33足す44は77です。 と表示されるでしょう。%dの所に33+44の計算結果が表示されます。

(7) 複数の値を表示
 %dは" "の中にいくつも使うことができます。例えば、

 printf("%d足す%dは%dです。", 33, 44, 33+44);

とすると、出力結果は先ほどと同じ、33足す44は77です。 です。%dの所に順番に2,3,4番目の引数の値が表示されます。

重要 printf("ああ%dいい%dうう",33,44-10);
は、ああ33いい34うう、を出力

(8) 2行にわたって表示。
 改行の記号である¥nを使います。Macや英語OSの場合は、\nを用います。(MacではOptionキーを押しながら¥キーを押す。)

 printf("33足す44は%dです。¥n44足す22は%dです。", 33+44, 44+22);

 出力結果は、

33足す44は77です。
44足す22は66です。

と¥nの所が改行されます。


<ちょっと詳しく> printf関数の最初の引数を書式文字列と呼びます。%dは続く引数を10進数の整数で出力するという指定をする書式指定子です。"ABC"や"こんにちは"のように、文字をダブルコーテーションで囲ったものを文字列リテラルと呼びます。リテラル(literal)はこの後出てくる変数(variable)に対応する言葉で直接記述される数値や文字列を意味します。日本語で即値です。また、¥nはエスケープシーケンス(拡張表記)と呼ばれる改行を示す特別な記号です。エスケープシーケンスには他に警報を鳴らす¥aやタブを示す¥tがあります。

重要 printf関数の書式文字列内に¥nを入力すると、
その位置で改行が行われる。


このページのまとめ

 printf(書式文字列, 引数, 引数・・・);

 この関数を実行すると、書式文字列が%dや¥nといった特別な記号を以外はそのまま出力され、%dには2番目以降の引数の値が整数で表示される。¥nは改行に置き換えられる。
 2番目以降の引数は、書式文字列に%dのような後の引数の値を使う部分がない場合、必要ありません。


【補足】 最初のプログラムのちょっと詳しい説明

8     #include <stdio.h>
9     int main(){
10         printf("Hello World!");
11         return(0);
12   }

 最初のプログラムは9-12行目の{ }で囲われた部分がmain()という関数の内容です。main()は特別な関数で最初に実行されると決まっています。それを押さえたうえで一行一行見ます。なお8-9行目、11-12行目は、今は分からなくて問題ありません。一応説明はします。

8行目の#include <stdio.h>は、ある関数群を使うという事を最初に決めています。今は決まり文句だと思ってもらっても大丈夫です。

9行目はintとmain()に分かれます。intは整数型の意味でこのmain()の「戻り値」が整数であることを示します。戻り値はmain()を実行した際に最終的に返す値です。何のことかわからなくてもそのうち分かります。ここは、「ここから始めるぞ」というこれも決まり文句だと思ってください。

10行目が出力の命令です。出力の関数はいくつかありますが今回はprintfです。printf関数の一番簡単な使い方は、

printf("表示したい文字");

と表示したい文字列をダブルコーテーション" "で囲った文字を標準出力(ここではEclipseの中央下のコンソール)に出力します。関数に実行するために与える値を引数(ひきすう)と呼びます。なおこの関数を使う場合には、プログラムの最初に#include <stdio.h>が必要です。

 11行目は、returnで戻り値0を返してmain()を終わらせます。0はエラーなく終わったという意味です。

コンプロI C言語の部屋です。

このサイトは東京電機大学東京千住キャンパスのEJ, EK, EF科の1年次生向けコンピュータプログラミングIの授業内容やお知らせをするページです。プログラムの初歩の初歩を学ぶ人のためのページです。この資料を授業等で共有したいという方もどうぞお使いください。一緒に学習向けコンテンツを作ってくださる方、学習者向けのサンプルプログラムの提案など歓迎いたします。

0コメント

  • 1000 / 1000