2016年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.

Slides:



Advertisements
Similar presentations
7-1.WEKOコンテンツ 一括登録 マニュアル Version2.5
Advertisements

実習1:コマンドシェルの使い方.
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
初年次セミナー 第8回 データの入力.
UNIX利用法.
UNIX利用法 情報ネットワーク特論資料.
2014年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
2015年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
東京工科大学 コンピュータサイエンス学部 亀田弘之
Java I 第2回 (4/18)
第3回 ファイルとフォルダ 伊藤 高廣 計算機リテラシーM 第3回 ファイルとフォルダ 伊藤 高廣
コマンドプロンプトの起動と終了 最初に覚えるコマンド ディレクトリ構造とパス 各種コマンドの練習 Cコンパイルとプログラムの実行
コンピュータリテラシー 第3回授業の復習 基本的なUNIXコマンド
初年次セミナー 第4回 整数と実数の取り扱い.
2013年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
ファイルやフォルダを検索する ①「スタート」→「検索」→「ファイルとフォルダ」とクリックする。
PCの情報を得る - 「システム情報」 ①「スタート」→「すべてのプログラム」→「アクセサリ」→「システム ツール」→「システム情報」とクリックする。 ②左欄の項目を選択すると、右欄に情報が表示される。
2007 Microsoft Office system クイックガイド
リダイレクト パイプ 標準入出力プログラム コマンド行引数 関数 system()
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
第1章のWEB 宿題用PPT 第1章のウェブ上での宿題のやり方をパワーポイントで詳しく説明する。
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
エクスプローラ ● エクスプローラ: ファイルやフォルダを階層構造で表示してあり、これらを操作するのに便利。
初年次セミナー 第1回 ガイダンス.
第5回授業(5/08) の目標 第1章のウェブ上での宿題のやり方の続き(ここまでで、終了)。
ファイルシステムとコマンド.
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
xxxxxx . yyy xxxxxx Linuxにおける情報管理 一般的なファイル UNIX における情報管理の単位 ファイルの種類を表す
実習1:コマンドシェルの使い方.
Microsoft Office 2010 クイックガイド ~応用編~
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
初年次セミナー 第2回 文字の出力.
2016年度 プログラミングⅠ ~ はじめてのプログラミング ~.
スクリプト言語を用いたPHITSの連続実行
Microsoft Office 2010 クイックガイド ~応用編~
EGS5のWindows PC へのインストール
第2回 Microsoft Visual Studio C++ を使ってみよう
【プログラミング応用】 必修2単位 通年 30週 授業形態:演習.
2017年度 プログラミングⅠ ~ はじめてのプログラミング ~.
2015年度 プログラミングⅠ ~ はじめてのプログラミング ~.
プログラミング応用 printfと変数.
リダイレクト パイプ 標準入出力プログラム コマンド行引数 関数 system()
コマンドプロンプトの起動と終了 最初に覚えるコマンド ディレクトリ構造とパス 各種コマンドの練習 Cコンパイルとプログラムの実行
単語登録(1) ◎MS-IMEの「単語登録」に、単語、語句、記号など自分がよく使うものを登録しておくと、便利である。
Visual Studio 2005の使用方法 新入生セミナー 
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
2013年度 プログラミングⅡ ~ はじめてのプログラミング ~.
UNIX演習 情報ネットワーク特論.
コンピュータ プレゼンテーション.
2017年度 プログラミングⅡ ~ はじめてのプログラミング ~.
2014年度 プログラミングⅠ ~ はじめてのプログラミング ~.
2014年度 プログラミングⅡ ~ はじめてのプログラミング ~.
C言語 はじめに 2016年 吉田研究室.
UNIX演習 情報ネットワーク特論資料.
高度プログラミング演習 (01).
UNIX演習 情報ネットワーク特論資料.
UNIX演習 情報ネットワーク特論資料.
プログラミング演習I 2003年4月30日(第3回) 木村巌.
地域情報学 C言語プログラミング 第1回 導入、標準出力、変数 2017年10月13日
2013年度 プログラミングⅠ ~ はじめてのプログラミング ~.
システムプログラミング 第6回 システムコールのエラーメッセージ ファイルシステム 情報工学科 篠埜 功.
Microsoft Office 2010 クイックガイド ~応用編~
C言語講習 第0章 Hello, world!.
標準入出力、変数、演算子、エスケープシーケンス
コンパイラ 2012年10月11日
エクスプローラ ● エクスプローラ: ファイルやフォルダを階層構造で表示してあり、これらを操作するのに便利。
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
単語登録(1) ◎MS-IMEの「単語登録」に、単語、語句、記号など自分がよく使うものを登録しておくと、便利である。
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります.
Presentation transcript:

2016年度 プログラミングⅡ ~ Cプログラミングやってみよう ~

プログラミングの大まかな流れ(再掲) ソースプログラムの作成 コンパイル&リンク 実行可能ファイルの実行 テキストエディタでソースプログラムを作成 拡張子を「.c」として保存(hogehoge.c) なお、この作業を「コーディング」と呼ぶ ソースプログラムの作成 ソースプログラムを機械語に変換 「cl hogehoge.c」を実行 コンパイル&リンク 実行可能ファイルの実行 実行可能ファイル(ロードモジュール)を実行 「hogehoge.exe」を実行

高級言語から機械語へ ソースプログラム (原始プログラム) ヘッダファイル オブジェクトモジュール (目的プログラム) ライブラリ hogehoge.c 関数の定義が記述された一覧 (辞書の索引のようなもの) コンパイラ (翻訳プログラム) ヘッダファイル コンパイル オブジェクトモジュール (目的プログラム) hogehoge.obj リンカ (連結編集プログラム) リンク ライブラリ 関数に対応する機械語プログラム の集合体(最初から準備されている ライブラリを標準ライブラリと呼ぶ) ロードモジュール (実行可能ファイル) hogehoge.exe

コンパイルとリンク コンパイル リンク 字句解析 プリプロセス 構文解析 コンパイル 意味解析 コード最適化 アセンブル コード生成 オブジェクトモジュールとライブラリ(標準ライブラリなど)をリンクし、 ロードモジュールを作成する。完全な機械語プログラムになる。

C言語の特徴 構造化プログラミング (for, while, do~while, switch) 機械語を扱える(OS開発用言語) データ型(char, int, double) 文法が優しい 関数の集合体(「main」関数から始まる) 移植性が高い(標準ライブラリのおかげ)

コマンドプロンプト 人間 コマンドプロンプト カーネル ハードウェア コンピュータ 「>」をプロンプト呼ぶ 「Z:\src」は現在いる場所を表す 大文字と小文字の区別がない コンピュータ

覚えておくと便利なコマンド 「cd」ディレクトリ(フォルダ)の移動 ドライブの変更を伴う場合はオプション「/d」を付ける 「dir」ディレクトリ内のファイルとサブディレクトリの表示 「del」ファイルの削除 「ren」ファイル名の変更 「copy」ファイルのコピー 「type」ファイルの内容を表示 「more」ファイルの内容を1画面ずつ表示

コマンドの出力制御 パイプ「|」 前の出力を後のプログラムに渡す 実行例「hogehoge.exe | more」 リダイレクト「>」 前の出力を後ろのファイルに保存する 実行例「hogehoge.exe > abc.txt」 リダイレクト「>>」 前の出力を後ろのファイルに追記する 実行例「hogehoge.exe >> abc.txt」

拡張子の表示のさせ方 「スタート」ボタン-「コントロールパネル」-「デスクトップのカスタマイズ」- 「フォルダオプション」の順に選択し、「表示」タブをクリックする。 更に、「詳細設定」の「登録されている拡張子は表示しない」のチェックを外す。 「OK」ボタンをクリックして、設定を反映させる。 *富山大学端末室の設定は、標準で拡張子が表示されるようになっている。

ソースファイルを開くプログラムの変更 拡張子が「.c」のファイルはデフォルトで「Microsoft Visual Studio 2010」で 開くように設定されているので、「秀丸」で開くように設定する。 先日作成した「hello.c」が保存されたディレクトリ「z:\src」を開く。 「hello.c」を右クリックし、現れたメニューの「プロパティ」を選択する。 「プロパティ」ウインドウが開くので、「全般」タブのプログラムの「変更」ボタン をクリックする(「Microsoft Visual Studio 2010」になっている)。 アプリ(プログラム)を選択するウインドウが現れるので、 一番下の「その他のオプション」をクリックし、 さらに一番下の「このPCで別のアプリを探す」をクリックする。 エクスプローラが開きディレクトリ「C:\Program Files」の内容が表示される。 ディレクトリ「Hidemaru」を開き、一番上のプログラム「Hidemaru.exe」を 選択し、ボタン「開く」をクリックする。 最初に開いた「プロパティ」ウインドウのプログラムが「秀丸」になっている ことを確認し、「OK」ボタンをクリックすることで設定を反映させる。

ファイルシステム オペレーティングシステムは通常1種類以上のファイルシステム(記憶装置にファイルを管理するシステム)を持つ ファイルシステムには複数のファイルをまとめて管理するディレクトリ(フォルダ)という機能がある 多くのファイルシステムは木構造(tree構造)を持つ(ディレクトリ(フォルダ)によって階層化される)

Windowsのファイルシステム マイコンピュータ A: B: C: D: E: Z: \ \ \ \ \ \ Program Files ネットワークドライブ ドライブ名 A: B: C: D: E: Z: ・・・・・ ルート(\) \ \ \ \ \ \ Program Files Windows Users aaa src 富山太郎 hello.c hello.exe

ディレクトリ ルートディレクトリ 木構造の最上位ディレクトリ 記号「\」で表す カレントディレクトリ(ワーキングディレクトリ) 今現在、自分が居る所 記号「.」で表す 1つ上位のディレクトリ あるディレクトリから見て、一段上位にあるディレクトリ 記号「..」で表す

パス 絶対パス 特定のファイルまたはディレクトリをルート「\」から一意に表す方法 例「Z:\src\hello.c」 相対パス 特定のファイルまたはディレクトリをカレントディレクトリから枝をたどって任意に表す方法 例「..\src\hello.c」 (カレントディレクトリが「Z:\aaa」の場合) パスを通す 本来なら別の場所にあるコマンドが、あたかもカレントディレクトリに存在しているかのように振舞う

環境設定とパスの設定 コマンドプロンプトの起動と同時にバッチファイル「vcvarsall.bat」が実行され、コンパイルに必要な環境変数とパスの設定が行われる。

プログラミング上達のコツ 本質的には、プログラムをたくさん作成すること エラーに慣れる トレース:プログラムをなぞって誤りを見つける デバッグ:プログラムの誤りを修正する 他人にも読みやすく プログラミングの作法を守る (コーディング標準;コーディング規約;Coding Standards) 1行空けることでプログラムにまとまりを作る プログラムの構造にしたがって段下げを行う

レポート作成時の注意事項 最初の「void main()」を「int main(void)」に書き換える プログラムの最後(「}」の手前の行)に「return 0;」を追記する プログラムの構造を理解しながら段下げをしっかり行う プログラムのまとまりが判るように、まとまりとまとまりの間を1行空ける 問題番号等を記入して、どの問いの解答か判るようにすること

ソースプログラム作成時の注意事項 小文字で記述する(全角の空白に注意) 「直接入力(半角英数)」モードで入力 スペルミス 文末のセミコロン「;」の付け忘れ 「{」と「}」の対応が取れていない 「(」と「)」の対応が取れていない 「”」と「”」の対応が取れていない 拡張子に「.c」を付ける

便利に作業を進める 補完機能 「tab」キーを押すとファイル名やディレクトリ名を補完してくれる 履歴 「↑」キーと「↓」キーを押すとこれまでに入力したコマンドを次々に表示してくれる 「exe」の省略 正式「cl.exe hello.c」⇒省略「cl hello.c」 正式「hello.exe」⇒省略「hello」