4/11(Sat)

今日の生放送

 歴史が長く今なおあらゆる場面で活用されているのが、C言語。活用シーンがすごく多いプログラミング言語だけど、今までC言語に触れたことがない人は、難しそうだしよくわからないというイメージを持っているかもしれないね。

 

そこでオススメしたいのが、C言語入門

 

本授業では、C言語の概要やプログラム構築の第一歩について学べるよ。C言語の基礎を学びたいプログラミング経験者やエンジニアの人は、チェックしてみてね。

 

 

「C言語」とは?

 

猫田くん

C言語って何?

 

かいせつ先輩

C言語は、たくさんあるプログラミング言語のなかでも有名な言語の1つだよ。基幹システム開発やゲーム開発、ハードウェア開発などあらゆることができる言語として知られているね。

 

ちょっと難易度が高くてプログラミングに全く触れたことがないという人には難しいかもしれないけど、コンピュータやプログラミングに詳しくなりたいと考えている人に向いている言語なんだ。

 

C言語の特徴やメリットについては、授業で先生が詳しく解説してくれたよ。

 

先生のご紹介

田中 準志

田中 準志 (たなかじゅんし)

株式会社フルネス・パートナー講師/IT講師

 

システム開発の仕事を15年ほど経験したのち、システム監査・セキュリティ監査の仕事に従事。その後、それらの経験を生かしてIT講師に転向。COBOL、C、Javaなどのプログラミング言語やデータベース、ネットワークなどのIT技術、セキュリティ教育、内部監査人育成などの研修を行っている。春は毎年企業向けの新入社員研修を担当している。関西人のため、講義中に関西弁が出てしまうことが多い。

 

 

 

 

 

田中先生:まず、C言語の概要についてご説明します。1972年に作られたものなんですね。C言語の特徴の1つ目は、手続き型言語であり、構造化プログラミングに適していること。どういうことかというと、構造化プログラミングっていうのが、手順に沿って作っていけるものです。上から順番に処理していく順処理や、ある条件を見て処理を切り分ける分岐、そしてここからここまでを繰り返しやってくださいという繰り返しの処理など、我々の日常生活に近い形でプログラムを作っていけるということですね。

 

2つ目は、コンパイラ言語と書いています。まずプログラムを日本語からCの言葉に置き換えて、そのままだと動かないのでコンピュータ用に変換しなければいけません。その変換をコンパイルといいます。プログラムを一気に機械語に変換して動かせるので、1個1個変換していく言語に比べるとC言語は圧倒的に実行速度が速いです。

 

3つ目は、プラットフォームに依存しないことです。今回はWindowsを使った開発をお見せしますが、当然Macでも動きます。コンパイルするプログラムさえあれば、どんな環境でも実行していただけます。5つ目に書いてあるとおり、OSの開発にも使われていますね。

 

4つ目は、プログラムの実行に必要なハードウェアのリソースが少なくて済むことです。大した環境がなくても、割とサクサク動いてくれるプログラミング言語だということですね。ですから、C言語は広く使われています。

 

 

続きまして、C言語がコンパイル型言語ということで、そもそもコンパイルって何だというところをご説明します。ソースコードが、我々が打ち込むプログラムです。Cという言葉で書いたプログラムということですね。そしてこれを、翻訳(コンパイル)します。コンパイルするためのプログラムのことをコンパイラと呼び、コンパイラというプログラムを使って機械の言葉に置き換えます。出来上がったものを、目的プログラム(オブジェクトプログラム)と呼ぶんですね。これに標準ライブラリ関数を組み合わせる結合編集(リンク)というのを行いまして、機械語命令、実行プログラムができあがります。

 

 

見出し2 C言語入門

 

かいせつくん:ここからは、授業で先生が解説してくれた、C言語の開発環境やプログラムの動かし方について学んでいくよ!自分のPCに開発環境を整えてプログラムを動かしてみることで、C言語学習の1歩目を踏み出そう!

 

 

 

田中先生:では、C言語の開発環境をご紹介します。いろいろなコンパイラがありますが、今回はVisual Studio Community 2017を使用します。まずは、ダウンロードページを開きましょう。WindowsはこのままでOKですが、Macの場合はMacの方をクリックしてインストールしてください。そうしましたらライセンス条項を確認するというページに飛びますので、確認してから続行ボタンを押しましょう。

 

 

すると、次はこのような画面になります。今回はC言語を使うので、「C++によるデスクトップ開発」のチェックボックスにチェックを入れてください。次に、保存先を指定します。そしてインストールボタンを押していただくと、インストールが始まります。完了すると、インストール完了画面に切り替わります。この画面を閉じてスタートメニューからプログラムを動かしていただいても良いですし、この画面の「起動」ボタンを押していただいても大丈夫です。

 

 

そして初回起動時のみ、こんな画面が出てきます。Microsoftのアカウントを持っている方は「サインイン」ボタンを押していただくとそのまま入力画面が出てくるんですが、持っていない方は申し訳ありませんがMicrosoftのアカウントを作らなければいけません。無料で作れますので、「サインアップ」をクリックして作成してください。起動すると、ようこそ画面というのが出てきます。開発環境は「Visual C++」を選んでいただいて、配色テーマはお好きなものを選んでください。

 

 

ここからは、実際にVisual Studioを使いながら、プログラムを動かしてみましょう。まずは、プロジェクトというのを作らなければいけません。プロジェクトごとにプログラムを管理できるようになっていますので、まずはプロジェクトを作成しましょう。メニューバーの「ファイル」から「新規作成」にいくと、「プロジェクト」があるのでクリックしてください。

 

 

すると、プロジェクト作成画面に飛びます。左側が「Visual C++」に設定されているのを確認し、「空のプロジェクト」を選択してください。そして、下にプロジェクト名を入れます。保存する場所も好きなところに決めて、右側のチェックボックスを外した状態でOKボタンを押すとプロジェクトが作成されます。

 

 

プロジェクトが作成されると、右側にソリューションエクスプローラーというのが出てきます。ここに、今作ったプロジェクトが表示されているかと思います。これから、世界一有名なプログラムといわれる「Hello world」を作ってみましょう。ソリューションエクスプローラーのなかに「ソースファイル」というのがあるので、これを右クリックしてください。「追加」を選んで「新しい項目」をクリックします。

 

 

すると、こんな画面が出てきます。真ん中のところは「C++ファイル」を選んでください。下の名前のところには、実際に作るプログラムの名前を入れましょう。C言語なので、拡張子は「.c」でお願いします。「追加」ボタンを押していただくと、ソリューションエクスプローラーに今追加したプログラムが表示され、エディターの画面が開きます。これでソースファイルができあがったということになります。

 

 

では、プログラムをコーディングしていきます。このようにコーディングできましたら、「Controlキー+S」で保存しておきましょう。保存すると、右上のプログラム名のところにある「*」が消えます。またはこの後コンパイルすると、自動的に保存されます。では、コンパイルしてみましょう。上のツールバーから「デバッグ」を選んでいただいて、「デバッグなしで開始」をクリックしてください。そうすると「ビルドしますか?」と聞かれるので、「はい」を押していただくと、コンパイルが行われます。

 

 

一番下にビルド正常終了というメッセージがあったり、1個正常終了で失敗・更新不要・スキップは0ですよと表示されます。このように表示されていれば、OKです。

 

 

このままだと実行結果が一瞬で消えてしまうので、残る形で設定する必要があります。「デバッグ」から「○○(プロジェクト名)のプロパティ」を選択しましょう。プロパティページが出てきたら、左側にある「リンカー」のなかの「システム」を選んでください。そして「サブシステム」の右側をクリックすると色が変わり、プルダウンのボタンが出てきます。このボタンを押すとリストが出てくるので、「コンソール」を選びましょう。これで「OK」を押してください。

 

 

すると、このように表示されます。これでプログラムが1つ動いたということになるんですね。

 

 

続きまして、C言語の構造をお話しします。まずC言語のプログラムですが、C言語はプログラムではなくて関数という単位で命令コードを書くんですね。ここでいうと「main」というのが、関数の名前です。ですから最初に名前をつけた「test.c」というのはプログラム名ではなく、ファイル名なんですね。{}のあいだにプログラム(命令)を書くという形です。

 

今は、「printf(〜)」と「return 0」という命令が2つ書かれています。それぞれ命令の後ろに、「;」があります。命令1つ1つを、セミコロンで区切るんですね。これはJavaと一緒です。{}の中に命令を書きますが、書いた上から順番に実行されます。

 

「return」というのは、結果を返すんですね。この「main」という関数がどこかから呼ばれて動いた場合、「これを使って動きなさい」という情報が「(void)」なんですね。何もないときはvoidを入れます。そして「int」というのが、この関数を実行した結果を戻す型です。数字として結果を戻すのか、文字として結果を戻すのかという戻すデータ型というのをここで指定します。今回は「0」という数字なので、数字の型である「int」が使われます。

 

今回この「main」というのは、何も使うことなく実行されます、実行した結果うまくいったら「0」を返します。もし「0」が返らなかったら呼び出し元に「0」という数字が返ってこないので、何かあったんじゃないかということがわかるんですね。そして戻り値を返さなければならないというルールはないので、何か結果を返したいときには戻り値の型を入れて、「return」で結果を返してあげるということですね。

 

続いて真ん中の「printf」ですが、これも関数です。これは標準関数とかシステム標準関数といわれているんですが、あらかじめC言語を使うときに、こういうのがあると便利だよねと用意されている関数です。()の中身を使って「printf」動いてねという命令を発行しているんですね。この「printf」というのは、「“”」のなかにある文字を表示しろという命令です。ですからさきほどのように、コンソール画面に「Hello C World」という文字が出てきます。そして「¥n」というのは、改行マークなんですね。これを外すと、改行が入りません。2つ入れると、2行改行されます。

 

そして、1番上の「#include」というのは何か。これは「printf」という用意された関数を使うための、ちょっとした準備なんですね。「sudio」は、「スタンダードインプットアウトプット」の略です。「.h」は、ヘッダーファイルといいます。標準関数を使うときには、このように何らかのヘッダーファイルを定義してあげる必要があるんですね。これを定義しないで「printf」だけ書いてしまうと、エラーになります。

 

 

Q&A!みんな気になる、あの疑問に先生が回答

かいせつ先輩

ここでは、授業を受けた方の質問とそれに対する回答を紹介していくよ!

Q1:C 言語とJavaは似ているように感じますが、主にどこが違うのでしょうか?

 

A1:言語の書き方は、非常によく似ています。ただ、プログラムを作るときの考え方が違います。C言語は構造化プログラミングといいまして、フローチャートのとおりにコーディングしていけばプログラムを作っていけるんですね。

 

考え方として、C言語は完成形をイメージします。よく車に例えられますが、完成形の車をイメージして、その車を作るためにどんなボディやタイヤが必要なのかと考えながら作っていく。完成形ありきで作っていくのが、C言語の特徴です。

 

Javaはオブジェクト思考といいまして、まずものから考えるんです。車ってボディやタイヤなどのものがありますよね。ものを考えてそれをどういう形で組み合わせて連携させれば、車として動くものができるんだろうという視点で考えるんです。

学びのハイライト

今日の生放送

  • このエントリーをはてなブックマークに追加

まとめ記事の記事一覧