Download presentation
Presentation is loading. Please wait.
Published byありさ うなだ Modified 約 7 年前
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 へメールする
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.