C言語は古いプログラミング言語のひとつである。C言語は70年代に開発されましたが、低レベルであるおかげで今でも非常にパワフルです。C言語を学ぶことは、より複雑な言語にも入門するのに最適な方法であり、あなたが得た知識はほとんどすべてのプログラミング言語で役に立ち、アプリ開発にも役立ちます。C言語でプログラミングを始める方法については、以下のステップ1を参照してください。
知っておくべきこと
- C言語は関数で構成される古いプログラミング言語で、その関数の中で変数、条件文、ループを使ってデータを保存/操作することができます。
- 一般的な変数の型には、int、char、floatなどがあります。
- ループを使うと、特定の条件が満たされるまでコードのブロックを繰り返すことができます。
- まずは基本的なコードを調べることからC言語の勉強を始めましょう。その後、基本的なIF文を書き始めることができます。
はじめに
-
コンパイラをダウンロードしてインストールします。Cのコードは、そのコードを機械が理解できる信号に解釈するプログラムによってコンパイルされる必要があります。コンパイラーは通常無料で入手でき、オペレーティング・システムごとに異なるコンパイラーが用意されています。
- ウィンドウズの場合は、Microsoft Visual Studio ExpressかMinGWを試してみよう。
- Macでは、XCodeが最高のCコンパイラのひとつだ。
- Linuxでは、XCodeが最も人気のあるオプションのひとつだ。
-
基本を理解しよう。C言語は古いプログラミング言語のひとつで、非常に強力なものだ。Unixオペレーティング・システム用に設計されましたが、ほとんどすべてのオペレーティング・システム用に移植され、拡張されてきました。C言語の最新バージョンは.NETである。
- C言語は基本的に関数で構成されており、その関数の中で変数や条件文、ループを使ってデータを保存したり操作したりすることができる。
-
基本的なコードをいくつか見てみよう。以下の(非常に)基本的なプログラムを見て、C言語のさまざまな側面がどのように連動しているのか、また、プログラムがどのように機能するのかを理解しましょう。#include
int main() { printf("Hello, World! \n"); getchar(); return 0; }. - includeコマンドはプログラム開始前に実行され、必要な関数を含むライブラリをロードします。この例では、stdio.hによってprintf()関数とgetchar()関数を使用できます。
- int main()コマンドは、プログラムが "main "と呼ばれる関数を実行しており、終了したら整数を返すことをコンパイラに伝えます。すべてのCプログラムは "main "関数を実行する。
- は、その中のすべてが関数の一部であることを示します。この場合、{}はその中にあるすべてが "main "関数の一部であることを示す。
- printf()関数は、括弧の内容をユーザーの画面に表示する。引用符は、中の文字列が文字どおり印刷されることを保証する。nは、カーソルを次の行に移動するようコンパイラに指示する。
- は行末を表す。Cコードのほとんどの行はセミコロンで終わる必要がある。
- getchar()コマンドは、キー入力を待ってから次に進むようコンパイラに指示する。多くのコンパイラはプログラムを実行するとすぐにウィンドウを閉じるので、これは便利である。これにより、キーが押されるまでプログラムが終了しない。
- return 0コマンドは関数の終了を示す。main "関数がint関数であることに注意してほしい。つまり、プログラムが終了したら整数を返す必要がある。0」はプログラムが正しく実行されたことを示し、それ以外の数値はプログラムがエラーに陥ったことを意味する。
-
プログラムをコンパイルしてみよう。コードをコード・エディターに入力し、"*.c "ファイルとして保存する。コンパイラーでコンパイルします。通常、「ビルド」または「実行」ボタンをクリックします。
-
コードには必ずコメントを付けてください。コメントはコンパイルされないコードの一部ですが、何が起こっているかを説明することができます。これは、自分のコードが何のためにあるのかを思い出したり、自分のコードを見ているかもしれない他の開発者を助けたりするのに便利です。
- C言語でコメントするには、コメントの最初に /* を、最後に */ を置きます。
- コードの最も基本的な部分以外はすべてコメントする。
- コメントは、コードの一部を削除することなく、素早く削除するために使うことができます。除外したいコードをコメント・タグで囲んでからコンパイルするだけです。コードを元に戻したい場合は、タグを削除してください。
変数の使い方
-
変数の機能を理解しましょう。変数には、プログラム内の計算やユーザー入力のデータを格納することができます。変数は使用する前に定義する必要があり、いくつかのタイプから選ぶことができます。
- 一般的な変数の型には、int、char、floatなどがある。それぞれ異なるタイプのデータを格納します。
-
変数の宣言方法変数がプログラムで使われるようになるには、変数の設定、つまり「宣言」が必要です。変数を宣言するには、データ型の後に変数名を入力します。例えば、次のような変数宣言はすべて有効である:float x; char name; int a, b, c, d;
- 同じ型であれば、同じ行で複数の変数を宣言できることに注意してください。変数名はカンマで区切ってください。
- C言語の多くの行がそうであるように、各変数宣言行はセミコロンで終わる必要がある。
-
どこで変数を宣言するかを知っておく。変数は各コードブロック({}括弧で囲まれた部分)の先頭で宣言しなければなりません。ブロックの後半で変数を宣言しようとすると、プログラムは正しく機能しません。
-
変数を使用してユーザー入力を保存する変数の仕組みの基本がわかったところで、ユーザーの入力を保存する簡単なプログラムを書いてみましょう。このプログラムでは、scanfという別の関数を使います。この関数は、与えられた入力から特定の値を検索します。#int x; printf( "Enter a number: " ); scanf( "%d", &x ); printf( "You entered %d", x ); getchar(); return 0; }.
- d "文字列は、scanfにユーザー入力から整数を探すように指示する。
- 変数xの前の&は、変数を変更するためにどこでその変数を見つけるかをscanfに伝え、整数を変数に格納する。
- 最後のprintfコマンドは、入力された整数をユーザーに読み返す。
-
変数の操作数式を使って変数に格納したデータを操作することができます。数式で覚えておくべき最も重要な違いは、「=」は変数の値を設定するのに対し、「==」は両辺の値が等しいかどうかを比較するということです。x = 3 * 4; /* "x "を3 * 4、つまり12に設定する */ x = x + 3; /* "x "の元の値に3を加え、新しい値を変数に設定する */ x == 15; /* "x "が15に等しいかどうかをチェックする */ x < 10; /* "x "の値が10より小さいかどうかをチェックする */。
条件文の使い方
-
条件文の基本を理解しよう。条件文は、ほとんどのプログラムを動かすものです。条件文とは、「真」か「偽」かを判定し、その結果に基づいて処理を行う文のことです。最も基本的なものはif文です。
- C言語では、TRUEとFALSEは通常とは異なる動作をします。TRUE文は、常にゼロでない数値と等しくなります。比較を実行すると、結果がTRUEなら "1 "が返される。結果がFALSEの場合は、"0 "が返される。これを理解することで、IF文がどのように処理されるかがわかるようになる。
-
基本的な条件演算子を学ぶ条件文は、値を比較する数学演算子の使用を中心に展開されます。以下のリストには、最も一般的に使用される条件演算子が含まれています。> より大きい */ < /* 以下 */ >= /* 以上 */ <= /* 以下 */ == /* 等しい */ != /* 等しくない */10 > 5 true 6 < 15 true 8 >= 8 true 4 <= 8 true 3 == 3 true 4 != 5 true
-
基本的なIF文を書いてみよう。IF文は、その文が評価された後、プログラムが次に何をすべきかを決定するために使うことができます。後で他の条件文と組み合わせて、強力な複数のオプションを作成することもできますが、今は簡単なものを書いて、IF文に慣れるようにしましょう。#もし ( 3 < 5 ) printf( "3 は 5 より小さい"); getchar(); }.
-
ELSE/ELSE IF文を使って条件を拡張する。ELSEやELSE IF文を使うことで、IF文をベースに異なる結果を扱うことができます。ELSE文は、IF文がFALSEの場合に実行されます。ELSE IF文を使用すると、1つのコードブロックに複数のIF文を含めることができ、さまざまなケースに対応できます。下のプログラム例を参照して、これらの相互作用を確認してください。#int age; printf( "Please enter your current age: " ); scanf( "%d", &age ); if ( age <= 12 ) { printf( "あなたはまだ子供です!\} else if ( age < 20 ) { printf( "Being a teenager is pretty great!︙" ); } else if ( age < 40 ) { printf( "You're still young at heart!︙" ); } else { printf( "With age comes wisdom.︙" ); } return 0; }.
- このプログラムはユーザーからの入力を受け取り、IF文を通してそれを処理します。数値が最初のステートメントを満たせば、最初のprintfステートメントが返されます。もし最初のIF文に当てはまらなければ、ELSE IF文のどれかに当てはまるまで、ELSE IF文が繰り返される。どのIF文にも当てはまらない場合は、最後にELSE文が返される。
ループの書き方
-
ループの仕組みを理解しましょう。ループは、特定の条件が満たされるまでコードのブロックを繰り返すことができるため、プログラミングの最も重要な側面の1つです。ループを使えば、特定の条件が満たされるまでコードブロックを繰り返すことができるので、繰り返し処理を簡単に実装することができます。
- ループには主に3つの種類がある:FOR、WHILE、DO...WHILEです。
-
FORループを使いましょう。これは最も一般的で便利なループタイプです。FORループで設定した条件が満たされるまで関数を実行し続けます。FORループには、変数の初期化、満たすべき条件、変数の更新方法の3つの条件が必要です。これらの条件すべてを必要としない場合でも、セミコロンで空白を空ける必要があります。そうしないと、ループは永遠に実行されます。#include
int main() { int y; for ( y = 0; y < 15; y++;){ printf( "%dn", y ); } getchar(); } getchar() - 上記のプログラムでは、yは0にセットされ、yの値が15より小さい限りループが続く。yの値が表示されるたびに、yの値に1が加算され、ループが繰り返される。y = 15になったら、ループは終了する。
-
WHILEループを使う。WHILEループはFORループよりも単純である。条件は1つだけで、その条件が真である限りループは動作する。変数を初期化したり更新したりする必要はありません。#int main() { int y; while ( y <= 15 ){ printf( "%dn", y ); y++; } getchar(); } } } getchar()
- y++コマンドは、ループが実行されるたびに変数yに1を加える。yが16に達したら(このループはyが15以下である限り続くことを覚えておいてほしい)、ループは終了する。
-
DO...WHILEループを使う。このループは、少なくとも1回は確実に実行させたいループに非常に便利です。FORループやWHILEループでは、条件はループの最初にチェックされる。DO...WHILEループはループの最後で条件をチェックし、ループが少なくとも1回は実行されるようにします。この場合、ループは少なくとも1回は実行されます。 #include
int main() { int y; y = 5; do { printf("このループは実行されています。 - このループは条件がFALSEでもメッセージを表示する。変数yには5がセットされ、WHILEループはyが5でないときに実行されるようにセットされているので、ループは終了します。条件は最後までチェックされないので、メッセージはすでに表示されている。
- DO...WHILEセットのWHILEループはセミコロンで終わらなければならない。ループがセミコロンで終了するのはこの場合だけです。
関数の作成
-
関数の基本を理解しましょう。関数は自己完結型のコード・ブロックで、プログラムの他の部分から呼び出すことができます。関数を使用すると、コードの繰り返しが非常に簡単になり、プログラムを読みやすく変更しやすくなります。関数には、この記事で学んだテクニックをすべて含めることができ、さらに他の関数も含めることができます。
- 上記の例の冒頭にあるmain()行は、getchar()と同様に関数です。
- 関数は、効率的で読みやすいコードに欠かせないものです。関数をうまく使って、プログラムを効率化しましょう。
-
アウトラインから始める関数は、実際にコーディングを始める前に、何を達成させたいのかのアウトラインを描いてから作成するのがベストです。関数の基本構文は「return_type name ( argument1、argument2など); 」です。例えば、2つの数値を足す関数を作るには、次のようにします:int add ( int x, int y );
- これは2つの整数(xとy)を加算し、その和を整数として返す関数を作成する。
-
この関数をプログラムに追加する。このアウトラインを使って、ユーザが入力した2つの整数を加算するプログラムを作成することができます。このプログラムでは、"add "関数がどのように動作するかを定義し、それを使って入力数値を操作する。#include
int add ( int x, int y ); int main() { int x; int y; printf( "Enter two numbers to add together: " ); scanf( "%d", &x ); scanf( "%d", &y ); printf( "The sum of your numbers is %d\n" , add( x, y ) ); getchar(); } int add ( int x , int y ) { return x + y; } - アウトラインはまだプログラムの一番上にあることに注意してください。これは、関数が呼び出されたときに何を期待し、何を返すかをコンパイラに伝えます。これは、プログラムの後半で関数を定義する場合にのみ必要です。main()関数の前にadd()を定義しても、アウトラインがなければ結果は同じである。
- 関数の実際の機能は、プログラムの一番下で定義します。main()関数はユーザーから整数を受け取り、それをadd()関数に送って処理させます。add()関数はその結果をmain()に返す。
- これでadd()が定義され、プログラム中の任意の場所で呼び出すことができるようになった。
スキルの向上
-
Cプログラミングの本を何冊か探しましょう。この記事は基本をカバーしていますが、Cプログラミングとそれに関連する知識の表面をなぞったにすぎません。良い参考書があれば、問題を解決するのに役立ち、将来多くの頭痛の種からあなたを救ってくれるでしょう。
-
コミュニティーに参加する。オンラインでも現実の世界でも、プログラミングとそれに付随するすべての言語に特化したコミュニティがたくさんあります。同じ志を持つC言語プログラマーを見つけてコードやアイデアを交換すれば、すぐに多くのことを学べるでしょう。
- 可能であれば、ハッカソンにも参加してみよう。これは、チームや個人が制限時間内にプログラムやソリューションを考え出すイベントで、多くの創造性を育むことができる。ハッカソンは世界中で定期的に開催されている。
-
授業を受ける。コンピュータ・サイエンスの学位を取得するために学校に戻る必要はありませんが、いくつかのクラスを受講することは、あなたの学習に大いに役立ちます。その言語に精通した人たちからの実践的な手助けに勝るものはありません。地元のコミュニティセンターや短期大学でクラスを見つけられることも多いし、入学しなくてもコンピュータ・サイエンスのプログラムを聴講できる大学もある。
-
C++の学習も検討しよう。C言語を理解したら、C++を学び始めても損はないだろう。C++はC言語のより現代的なバージョンで、より柔軟性がある。C++はオブジェクトの取り扱いを念頭に置いて設計されており、C++を知っていれば、事実上どのオペレーティング・システムでも強力なプログラムを作成することができます。
-
素晴らしいオープンソースのCプロジェクトをいくつか読んでみよう。C言語の学習がある程度進んだら、いくつかの素晴らしいC言語プロジェクトを読んで、他の人たちがどのようにC言語でコーディングしているのか、また実際のC言語プロジェクトをどのように構成すればよいのかを学ぶことができる。
コメント
最新を表示する
NG表示方式
NGID一覧