• 検索結果がありません。

[分割コンパイルの復習]

N/A
N/A
Protected

Academic year: 2021

シェア "[分割コンパイルの復習]"

Copied!
5
0
0

読み込み中.... (全文を見る)

全文

(1)

[分割コンパイルの復習]

cc -c sample.c (sample.oというオブジェクトファイルを生成)

cc -c sub1.c (sub1.o というオブジェクトファイルを生成)

cc -c sub2.c sub2.o というオブジェクトファイルを生成)

cc -o sample sample.o sub1.o sub2.o (sample.o sub1.o sub2.oの3つをリンク

してsampleという実行ファイルを生成)

上の4行は

cc -o sample sample.c sub1.c sub2.c と同じ.

ヘッダファイルを修正したときには,

それを include しているファイルすべてを再コンパイルする必要がある.

↓ 覚えるのは大変

make の利用 13.Make

Makefileまたはmakefileというファイルに分割コンパイル時のファイルの依存関係と処

理方法を記述.

部分的な変更があった場合,変更が及ぶ範囲だけを処理する.

ファイル include しているヘッダ sample.c config.h inc1.h inc2.h sub1.c config.h inc1.h

sub2.c config.h inc2.h makefile の例

---<ここから>---

#

# 簡単な makefile の例

#

all: sample

sample: sample.o sub1.o sub2.o

cc -o sample sample.o sub1.o sub2.o

sample.o: sample.c config.h inc1.h inc2.h cc -c sample.c

トップレベルのターゲット

(2)

[書式]

作りたいファイル:必要なファイル と 依存関係

(TAB)ファイルを作るのに必要なコマンド

上のmakefilesample.c sub1.c sub2.c config.h inc1.h inc2.hと同じディレクトリ におき,

make と入力すると

cc -c sample.c cc -c sub1.c cc -c sub2.c

cc -o sample sample.o sub1.o sub2.o が実行される.

このあと

a) sample.cだけを変更したとき,makeと入力すると cc -c sample.c

cc -o sample sample.o sub1.o sub2.o b) sub1.cだけを変更したとき

cc -c sub1.c

cc -o sample sample.o sub1.o sub2.o c) inc2.hだけを変更したとき

cc -c sample.c cc -c sub2.c

cc -o sample sample.o sub1.o sub2.o d) config.hだけを変更したとき

cc -c sample.c cc -c sub1.c cc -c sub2.c

cc -o sample sample.o sub1.o sub2.o がそれぞれ実行される.

[補足と参考]

sub1.oだけを生成したいときは make sub1.o

と入力すればよい.

• 上のmakefilesample.makeというファイル名で作成したときは make -f sample.make

と入力すればよい.

makefileの中では変数が使用可能.

(3)

(例)

OBJ = sample.o sub1.o sub2.o INC = config.h inc1.h inc2.h LIB = -lm

sample: $(OBJ)

cc -o sample $(OBJ) $(LIB)

sample.o: sample.c $(INC) cc -c sample.c

sub1.o: sub1.c config.h inc1.h cc -c sub1.c

sub2.o: sub2.c config.h inc2.h cc -c sub2.c

makeのより高度な利用法については各自で調べて下さい.

演習問題

12. (ガウスの消去法の後半部分)上三角行列の線形方程式(対角成分は非零とする)

÷÷

÷÷

÷ ø ö çç çç ç è æ

=

÷÷

÷÷

÷ ø ö çç çç ç è æ

÷÷

÷÷

÷ ø ö çç

çç ç è æ

n n

nn n n

b b b

x x x

a a a

a a

a

M M

L

M O O M

L L

2 1 2

1 2 22

1 12

11

0 0

0

の解を求めるプログラムを作成しなさい.また,それを用いて,

÷÷

÷÷

÷ ø ö çç çç ç è æ

=

÷÷

÷÷

÷ ø ö çç çç ç è æ

÷÷

÷÷

÷ ø ö çç

çç ç è æ

1 2 3 5

4 0 0 0

7 3 0 0

9 6 2 0

10 8 5 1

4 3 2 1

x x x x

の解を求めよ.

13. 演習問題 11 で作成した二分法とニュートン法のプログラムを,多項式用に修正せよ.

すなわち,関数を直接プログラムに書くのではなく,次数と係数を入力すればよいよ うに改めよ.(例えば,f(x)=5x3+ x2 4x+2であれば,3,5,1,4,2と入力する.)

(cc -o sample sample.o sub1.o sub2.o –lmと同じ)

(4)

レポート課題

[基本課題](これができなければ不合格)

1. 演習問題12の前段階として,以下の手順を付け加えて線形方程式

÷÷

÷÷

÷ ø ö çç çç ç è æ

=

÷÷

÷÷

÷ ø ö çç çç ç è æ

÷÷

÷÷

÷ ø ö çç

çç ç è æ

n n

nn n

n n

b b b

x x x

a a

a a

a

a a

a

M M

L L

M O M M

L L

2 1 2

1

1

2 22

21

1 12

11

を解くガウスの消去法のプログラムを完成させよ.

手順

1 , , 2 ,

1

= n

k L

n k

k

i= +1, +2,L, n k

k

j = +1, +2,L,

kj kk ik ij

ij a a a a

a = ( / )×

k kk ik i

i b a a b

b = ( / )×

また,これを利用して問題1の解を求めよ.

2. 問題2の7次方程式の実数解(数値解)をすべて求めよ.

[発展課題](できなくてもよい)

3. 課題1では,計算の途中でakk =0となった場合が考慮されていない.そのときはどう 処理すればよいか.処理を施したプログラムを作成せよ.また,問題3の解を求めよ.

4. Newton法には,

収束が早い(二分法などと比較して)

• 必ずしも収束しない(適当な初期点からはじめるといつまでも止まらない)

という特徴があります.これらの特徴が確認できるような問題例を示せ.また,その ときの実行結果を示せ.

なお,問題1〜3は http://www-tamlab.sys.es.osaka-u.ac.jp/~taji/lecture/lecture.html に あります.

締 切

      :11112222月月月21月2121日21日日日((((金金金)12金)12)12)12時時時(時(((期限厳守期限厳守期限厳守期限厳守)))) 提出先:システム事務室

(5)

問題3のファイルデータの説明

このテキストファイルは,まず1行目に行列の次元(方程式の数)が書かれています.

2行目から,1 1 1 の行までは行列Aの要素であり,それぞれの行は i j aij を表しています.そのあとに,右辺のベクトルbの要素が続き,各行は i bi となってい ます.最終行の 1 1 はデータのおわりを示しています.また,要素の値が 0 である ところは,省略しています.

例えば,

÷÷

÷ ø ö çç ç è æ

÷ =

÷÷ ø ö çç

ç è æ

4 0 1

1 4 0

5 2 2

3 0 1

x

という問題例の場合,データは,

3

1 1 1 1 3 3 2 1 −2 2 2 2 2 3 5 3 2 4 3 3 −1

−1 −1 −1 1 1

3 −4

−1 −1 となります.

行列要素のおわりを示す 行列の要素データ(1行2列は省略)

右辺のデータ 3行3列である

データの終わりを示す

参照

関連したドキュメント

○○でございます。私どもはもともと工場協会という形で活動していたのですけれども、要

一般法理学の分野ほどイングランドの学問的貢献がわずか

*+パラメータを Arduino MICRO マイコンでK!す るためのソフト(ソースコード)を Arduino IDE でコンパイルJなMN ( スケッチ )

復旧と復興の定義(2006 年全国自治体調査から).

吸収分割契約承認取締役会(東京電力株式会社) 平成27年5月1日 吸収分割契約承認取締役決定(当社) 平成27年5月1日 吸収分割契約締結

法人と各拠点 と各拠点 と各拠点 と各拠点 の連携及び、分割 の連携及び、分割 の連携及び、分割 の連携及び、分割. グループホーム

(6) 管理者研修:夏に、 「中長期計画策定」の演習/年度末の 3 月は、 「管理者の役割につ

名称 「食べ残しゼロ協力店」登録制度 対象 名古屋市内の飲食店及び宿泊施設 登録要件