Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 T HE U NIVERSITY OF T OKYO D EPARTMENT OF M ATHEMATICAL I NFORMATICS 数理情報工学演習第一C プログラミング演習 ( 第1回 ) 2014/04/07.

Similar presentations


Presentation on theme: "1 T HE U NIVERSITY OF T OKYO D EPARTMENT OF M ATHEMATICAL I NFORMATICS 数理情報工学演習第一C プログラミング演習 ( 第1回 ) 2014/04/07."— Presentation transcript:

1 1 T HE U NIVERSITY OF T OKYO D EPARTMENT OF M ATHEMATICAL I NFORMATICS 数理情報工学演習第一C プログラミング演習 ( 第1回 ) 2014/04/07

2 2 T HE U NIVERSITY OF T OKYO 1.PC 配布(借用書) 2. 電源、ネットワーク接続確認 3. ソフトウェアのインストール 4. コンパイル 5. おためしプログラミング 6. アンケート(レベル、経験) 資料は http://researchmap.jp/sada/ の資料公開にあります. http://researchmap.jp/sada/ アジェンダ

3 3 T HE U NIVERSITY OF T OKYO  担当: – 担当教員: 定兼(数理 7 研) – 補佐:松島 (数理 6 研) – 学生アシスタント:家入,貝ヶ石,宮口  担当へのコンタクト e メールアドレス (演習についての一般的な相談): miprogramming2014+general@gmail.com 担当メンバー :

4 4 T HE U NIVERSITY OF T OKYO  各自: PC 1台、アダプター1個、各種書類  PC 貸与の用紙を記入してください – シリアルナンバーは裏側のサービスタグにある 7 文字 – 貸与期間は本日~平成 27 年 3 月 31 日 – 連絡のつくメールアドレス、電話  OS は Windows 7 と Linux ( Ubuntu )の 2 種 – 本演習では Ubuntu を用いる PC の配布 ( まだの人のみ ):

5 5 T HE U NIVERSITY OF T OKYO  PC はリース品です、扱いには十分に注意 – 原状復帰可能な形で返却 ステッカー等を貼らない (情報理工マークを隠さない) 「キレイに」使う – 最悪、実費負担の可能性もあります – 原則、構内での使用  セキュリティ/コンプライアンスに十分な注意を – P2P (危険度にかかわらず)全面禁止 情報理工ネットワーク、貸与 PC の両方において – ソフトウェアライセンスのないものは絶対に使わない – 無線 LAN のキーは部外者に教えない PC の扱いについての注意 :

6 6 T HE U NIVERSITY OF T OKYO  評価基準 – 提出課題 – 出席 (指示のないかぎり 13:00-16:00 の間は在室する) – 出席態度 評価 :

7 7 T HE U NIVERSITY OF T OKYO  狙い:プログラミングに親しむ – 卒論や実験等にむけたプログラミングの練習  初心者:プログラミングに慣れてもらう – 本演習はこちらを主に想定  中上級者: 別途上級の課題を用意 演習のねらい :

8 8 T HE U NIVERSITY OF T OKYO  前半にその回の基礎的な内容を説明 – プログラミング言語そのものの説明はしない  後半は実際に貸与 PC を用いてプログラミング – 使用言語は C  課題の提出(当日の17:00) – 提出方法については来週説明 演習の形式 :

9 9 T HE U NIVERSITY OF T OKYO  電源を入れる  Ubuntu を選択(一番上の選択肢)  ログイン ( )  ネットワークへの接続  ソフトウェアの更新 – パスワードを聞かれたときは上のものを入れる さわってみよう :

10 10 T HE U NIVERSITY OF T OKYO  テキストエディタ – Dash ホームにあるものを使う(他のものでも可)  コンパイラ – gcc (インストール済)  デバッガ – gdb (インストール済) – valgrind (Ubuntu ソフトウェアセンターからインストール ) – valkyrie (valgrind の詳細情報から ) ソフトウェア :

11 11 T HE U NIVERSITY OF T OKYO  デスクトップの “ 端末 ” を起動  ホームディレクトリ: /home/mistpc/ – 画面左上の “ ホームフォルダ ” でもアクセス可能 端末の起動 :

12 12 T HE U NIVERSITY OF T OKYO  ディレクトリ(フォルダ)を作る – mkdir 1 ( 今回の作業フォルダをつくる ) – cd 1 ( 「 1 」ディレクトリに移動 )  テキストエディタで新規作成して test.c という名前で保存 – 保存場所はホームの 1 というディレクトリ ファイルの作成 :

13 13 T HE U NIVERSITY OF T OKYO  「 test.c 」を入力  入力後、保存( Ctrl+S ) プログラムの入力 : /* test.c */ #include int main() { printf("Hello.  ∖ n I am. ∖ n ”) ; return 0; } 名前 入出力関連ヘッダの読み込み コメント 本体 画面に文字列を 表示 改行 ∖ はバックスラッシュ ( キーボードの右下 ) . \ では駄目 行の終わり 正常終了時には 0 を返す

14 14 T HE U NIVERSITY OF T OKYO プログラムの書き方の作法  プログラムは基本的に入れ子 (nested) 構造をしている  入れ子のレベルに従って字下げ ( インデント ) をする #include int main() { int i, j, x; x = 0; for (i=0; i<100000; i++) { for (j=0; j<100000; j++) { x += j; } インデント i のループの中 j のループの中 j のループの終わり i のループの終わり main関数の終わり

15 15 T HE U NIVERSITY OF T OKYO  プログラムをコンピュータの実行形式に変換(コンパイル) – gcc test.c  ls ( 現在のフォルダの中身を見る ) すると、実行ファイル a.out ができているはず  「./a.out 」で実行 – 「. 」は現在のフォルダを表す – 「./a.out > out.txt 」も試してみる コンパイルと実行 : 標準出力の出力先を ファイルにする

16 16 T HE U NIVERSITY OF T OKYO  「 test2.c 」を入力  生成される実行ファイルの名前は変えられる – gcc –o test2.out test2.c printf の書式 : /* test2.c */ #include int main() { printf(”I am %s. ∖ n ”, ” ”) ; printf(”I was born in %d. ∖ n ”, ) ; return 0; } 文字列の書式 名前 年 整数の書式 文字列 整数

17 17 T HE U NIVERSITY OF T OKYO  「 test3.c 」を入力 変数を使用する : /* test3.c */ #include int main() { int year = ; char name[] = ” ”; printf(”I am %s.\n ”,name) ; printf(”I was born in %d.\n ”,year ) ; return 0; } 整数型変数の宣言 名前 年 変数名 文字型 配列

18 18 T HE U NIVERSITY OF T OKYO コンパイルの最適化  -O オプションをつける – gcc –O3 test.c – 数字は最適化レベル.大きいほど実行速度が速くなる. -O0 ( ゼロ ) は最適化無し  プログラムの実行時間を測定するときは必ず最適化し たものを使う – –O3 をつける

19 19 T HE U NIVERSITY OF T OKYO デバッグの仕方 :  コンパイル時に –g をつける – gcc test.c –g  デバッグ時は最適化をしない方がいい – 最適化により不要な命令が消去されることがある – ステップ実行をしにくい – (最適化したときのみバグが発生することもあるので難しい)  デバッグ実行には gdb を用いる  gdb では分からないエラーを見つけるには valgrind を使う – 具体的な使い方は次回以降

20 20 T HE U NIVERSITY OF T OKYO デバッグ実行 :  gdb./a.out  ソースの表示 : list [ 行番号 ]  実行 : run  ブレイクポイントの設定 : break [ 行番号 ]  ステップ実行 : step, next – step は関数の中も 1 行ずつ実行 – next は関数の実行後に停止  変数の表示 : print [ 変数名 ]

21 21 T HE U NIVERSITY OF T OKYO  「 test32.c 」を入力 どこにバグがあるでしょう : /* test32.c */ #include int main() { int year = ; char name[] = ” ”; printf(”I am %s.\n ”,year) ; printf(”I was born in %d.\n ”,name ) ; return 0; } 名前 年

22 22 T HE U NIVERSITY OF T OKYO gdb でステップ実行してみる  gdb./a.out  break 7 ( 7行目で一旦停止 )  run (a.out を実行 )  step で1行ずつ実行すると,どこで異常終了するか分かる  最初から1行ずつ実行すると時間がかかるので,バグが発生する 条件が分かっているならそこまでは通常実行する if (i > 10000) { printf(“break ∖ n”); ← ここにブレイクポイントを設定 }

23 23 T HE U NIVERSITY OF T OKYO プログラミングの練習のできるサイト  Aizu Online Judge(AOJ) http://judge.u-aizu.ac.jp/onlinejudge/index.jsp Aizu Online Judge(AOJ) – まずアカウントを作成する – 問題セットのところに各種演習問題がある – プログラムを入力すると正常に動作するかテストしてくれる  参考 「競技プログラミング入門」 http://ilfa.info/compro/intro/http://ilfa.info/compro/intro/

24 24 T HE U NIVERSITY OF T OKYO  PC の使用経験  PC の利用用途  プログラミングの経験(年数、使用言語、アルバイト内容など)  その他 アンケート(第一回の出席を兼ねます) : 学籍番号: 氏名: miprogramming2014+1@gmail.com miprogramming2014+1@gmail.com へメールする


Download ppt "1 T HE U NIVERSITY OF T OKYO D EPARTMENT OF M ATHEMATICAL I NFORMATICS 数理情報工学演習第一C プログラミング演習 ( 第1回 ) 2014/04/07."

Similar presentations


Ads by Google