1 C言語入門 プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。) 2 本日の内容 • • • • 授業予定日の確認 授業教材の指示 C言語用プログラミング環境の整備 C言語プログラミングの導入部分 3 授業予定日の確認 • 授業予定日の変更があります • 本来の授業予定日: • 毎週金曜日 7,8,9,10 時限 4/10、 4/17、 4/24、 5/1、 5/15、 5/22、 5/29、 6/5、 6/12、 6/19、 6/26、 7/3、 7/10、 7/17、 7/24、 7/31 以上16回、最終日は期末試験 • ただし以下の授業予定日は出張のため、翌日ま たは翌々日に変更になります。 • • • 金曜日: 4/24、5/22、6/19、7/10 休講 土曜日: 4/25、5/23、6/20、7/11 補講候補日1 日曜日: 4/26、5/24、6/21、7/12 補講候補日2 4 授業変更日の確認 日 月 5 6 12 13 19 20 26 27 日 3 10 17 24 31 4月 火 水 木 金 土 1 2 3 4 7 8 9 10 11 14 15 16 17 18 21 22 23 24 25 28 29 30 5月 月 火 水 木 金 土 1 2 4 5 6 7 8 9 11 12 13 14 15 16 18 19 20 21 22 23 25 26 27 28 29 30 日 月 1 7 8 14 15 21 22 28 29 日 月 5 6 12 13 19 20 26 27 6月 火 水 木 金 土 2 3 4 5 6 9 10 11 12 13 16 17 18 19 20 23 24 25 26 27 30 7月 火 水 木 金 土 1 2 3 4 7 8 9 10 11 14 15 16 17 18 21 22 23 24 25 28 29 30 31 5 教材のページ • 修学支援システムの講義情報から Moodle【学内外版】へ コマンドプロンプト • キーボードから直接命令を入力して実行する 時に使います。本講義ではC言語によるプロ グラムのソースコードをコンパイル(=機械語 に翻訳)する場合等に利用する。 コマンドプロンプトを開く • キーボードから「田」を押したまま「R」を押して 「ファイル名を指定して実行」を開く。 「田+R」のように表記された場合、慣例として 上記のような複数キー同時押しを意味する。 • 「ファイル名を指定して実行」 の「名前」の欄 に「cmd」と入力し、 「ENTER」キーを押すか、 「OK」ボタンをクリックする。 「スタート」ボタンから、「すべてのプ ログラム」→「アクセサリ」→「コマン ドプロンプト」でも開ける。 コマンドプロンプトの設定項目 • 「簡易編集モード」をONにしておくと、マウス の左右ボタンだけでコピペ出来る。 コマンドプロンプトの設定 • ウインドウ左上のアイコンをクリックするとメ ニューが出る。 「プロパティ」で現在開いているプロ ンプトのみ、「規定値」で次回以降開 くプロンプト全てに対する設定を変 更出来ます。 コマンドプロンプトと作業ディレクトリ • 「作業ディレクトリ」とはコマンドプロンプトで作 業した際に、ファイルが入出力されるディレク トリの事。 ディレクトリとはフォルダの別の言 い方。 つまり「ディレクトリ=フォルダ」 通常、コマンドプロンプトを開いた 初期状態では、ユーザーのホーム またはプロファイルのディレクトリが 作業ディレクトリ。 作業ディレクトリとコマンド • コマンドプロンプトで「explorer .」と入力し て ENTER キーを押す。 • 現在の作業ディレクトリが explorer で開く。 「explorer」がコマンド名(≒ プログラムの実行ファイル名)で、ス ペースで区切って与えた「.」はコマ ンドライン引数と言います。この場 合「.」は、現在の作業ディレクトリを 表す。 「explorer」とは、Windows上で、 いつもファイルを操作している このウインドウの事。 本来のディレクトリ名 • explorer 上では本来のディレクトリ名が日本 語も用いて分かり易く(?)表示されている。 異なる名前に見える これが本来のディレクトリ名 explore 以外ではこちらを使う。 「C:\Users\kou」は C ドライブの Users フォルダの中にある kou フォルダを意味する。 ここをクリックすると、コマンド プロンプト上の作業ディレクトリ の表示と一致していることが確 認出来る。 13 プログラミング言語、計算機言語、 情報処理言語とは? • コンピュータに命令するための人工言語 • AWK, BASIC, C, C++, C#, D, ECMAScript, Erlang, Fortran, F#, Haskell, Java, JavaScript, Lisp, Objective-C, OCaml, Perl, PHP, Python, Ruby, Smalltalk, Tcl, 等々 14 プログラムとは? • 値の保存・参照、各種演算、条件分岐等を組 み合わせた計算の手順 データ 処理 参照 条件判定 処理 真 保存 処理 データ 処理 偽 15 プログラムが出来ると 何が良いのか? • コンピュータに仕事をやってもらえる!!! • ルーチンワークからの解放 • 工作の世界も広がる!!! • • 最近は Arduino 等の安くて高機能なキットがある http://thinkit.co.jp/story/2013/02/12/3960 • 楽しい!!! • 遊び方は遊ぶ人次第 • 仕事にもあぶれない? • • Facebook元役員「プログラミングを学ぶのなら、生 涯仕事に困らないことを私が保証しよう。」 http://goo.gl/I8nCDm 16 C言語 • AT&T の Bell 研で UNIX を作ってた Brian Wilson Kernighan と Dennis MacAlistair Ritchie らによって UNIX を作成するための言語として 生まれた。 • K&R 「プログラミング言語C」がC言語のバイブ ルと言われる所以。 17 世界で最も有名なプログラム • K&R の最初に出て来るプログラム hello.c hello.c 1 2 3 4 5 6 #include <stdio.h> main() { printf("hello, world\n"); } mintty + bash + GNU C $ gcc hello.c && ./a hello, world 18 世界で最も有名なプログラム • K&R の最初に出て来るプログラム hello.c hello.c 1 2 3 4 5 6 #include <stdio.h> ヘッダファイル(stdio.h)の取り込み main() { printf("hello, world\n"); } main関数の定義 文字列の表示 mintty + bash + GNU C $ gcc hello.c && ./a hello, world プログラムのソースコードを コンパイルして実行 19 ヘッダファイル stdio.h • 多くの入門書ではおまじないとして紹介 hello.c 1 2 3 4 5 6 #include <stdio.h> ヘッダファイル(stdio.h)の取り込み main() { printf("hello, world\n"); } printf 関数の呼び出し ・C言語は言語本体だけでは、四則演算、条件分岐、繰り返し等の基本 mintty的な処理以外ほとんど何も出来ない。 + bash + GNU C ・文字列の入出力や数学の関数等、基本的かつ必要性の高い機能は、 $ gcc hello.c && ./a 標準ライブラリと呼ばれる、サブルーチン集として用意されている。 hello, world ・printf 関数は stdio.h (= STanDard Input Output Header file) で提供され ている。 20 C言語のプログラム • コンパイラにより実行形式に変換する Source files .h ファイル .h ファイル .h ファイル Preprocessor Executable file C compiler 実行ファイル Object files .c ファイル .c ファイル .c ファイル .o ファイル .o ファイル .o ファイル linker 21 C コンパイラによるコンパイル • Cygwin の mintty で bash から gcc で行った例 $ ls hello.c $ gcc hello.c $ ls a.exe hello.c $ ./a hello, world ファイル一覧の表示 コンパイル ファイル一覧の表示 作成した実行ファイルを実行 22 C/C++ リファレンス • http://www.cppll.jp/cppreference/ Windows Help (.chm) 版を入 れておくと便利です。 23 C 言語の規則 • 各処理の末尾はセミコロン「;」で終端する。 hello.c 1 2 3 4 5 6 #include <stdio.h> main() { printf("hello, world\n"); } これがないとコン パイル時にエラー となる。 24 セミコロン「;」を忘れたエラーの例 • 各処理の末尾はセミコロン「;」で終端する。 hello_err.c 1 2 3 4 5 6 #include <stdio.h> main() { printf("hello, world\n") } 本当はここに「;」 が必要。 mintty + bash + GNU C $ gcc hello_err.c hello_err.c: 関数 ‘main’ 内: hello_err.c:6:1: エラー: expected ‘;’ before ‘}’ token } ^ 25 エラーの例 • hello.c の 関数「main」の内にある 6 行目の1 文字目にあるトークン「}」の前に「;」が(あるこ とが)予想されますよ、と言っている。 mintty + bash + GNU C $ gcc hello_err.c hello_err.c: 関数 ‘main’ 内: hello_err.c:6:1: エラー: expected ‘;’ before ‘}’ token } ^ 26 C 言語の規則 • { } で複数の処理をまとめる。 hello1.c 1 2 3 4 5 6 7 #include <stdio.h> main() { printf("hello"); printf(", world\n"); } { } の間に ; で終端 された複数の処理 を書いてよい。 27 C 言語の規則 • " " で囲まれた部分は文字列 hello1.c 1 2 3 4 5 6 7 #include <stdio.h> main() { printf("hello"); printf(", world\n"); } { } の間に ; で終端 された複数の処理 を書いてよい。 28 C 言語の構造 • プログラムは関数の形でまとめる。 関数定義の書式 1 戻り値の型 関数名(引数の宣言, ...) 2 { 3 // 処理; 4 // ... 5 // return 戻り値; 6 } 関数は上記のように定義し、 ( ) の中に書かれた引数で (呼び出し元や呼び出し先 の)他の関数と値の受け渡 しを行う。 29 C 言語の規則 • プログラムは main 関数から実行される。 main.c 1 main() 2 { 3 // ここに処理を書く 4 } mintty + bash + GNU C $ gcc main.c && ./a これは何もしないで終わる だけのプログラム。 // から行末までと /* から */ までは プログラムとして解釈はされない。 コメントと呼ばれる要素で、 メモや覚書として主に人間が読 む際の注釈を書くために使う他、 一時的にプログラムの一部を無 効にするために使う。 30 宿題 • 次回までに以下の事をやっておくこと。 • 教科書の第1章までを読み、指示された操作を 試して動作を確認する。 • 不明な点、疑問点についてメモし、次回の授業 に持参する。または、本講義の Moodle コース 上にある第1週宿題用フォーラムに書き込んで おく。
© Copyright 2024 ExpyDoc