PowerPoint プレゼンテーション

Similar documents
Taro-ファイル処理(公開版).jtd

情報処理演習 B8クラス

ファイル入出力

Microsoft PowerPoint - prog04.ppt

ファイル入出力

Microsoft PowerPoint - kougi6.ppt

Microsoft PowerPoint - 14th.ppt [互換モード]

Microsoft Word - Cプログラミング演習(10)

Microsoft PowerPoint - CproNt11.ppt [互換モード]

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft Word - Cプログラミング演習(9)

計算機プログラミング

Microsoft PowerPoint - 第3回目.ppt [互換モード]

演算増幅器

Microsoft Word - no103.docx

2006年10月5日(木)実施

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

Microsoft PowerPoint - prog06.ppt

※ ポイント ※

Microsoft Word - no15.docx

Prog1_12th

gengo1-12

gengo1-12

PowerPoint プレゼンテーション

プログラミング基礎

Cプログラミング1(再) 第2回

基礎プログラミング2015

C言語講座 ~ファイル入出力編~

PowerPoint Presentation

gengo1-12

PowerPoint プレゼンテーション

データ構造

PowerPoint プレゼンテーション

Microsoft PowerPoint pptx

プログラミング演習3 - Cプログラミング -

プログラミング演習3 - Cプログラミング -

PowerPoint プレゼンテーション

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

PowerPoint Presentation

プログラミング実習I

II - ( 02 ) 1,,,, 2, 3. ( ) HP,. 2 MATLAB MATLAB, C Java,,., MATLAB, Workspace, Workspace. Workspace who. whos. MATLAB, MATLAB Workspace. 2.1 Workspac

Microsoft Word - no204.docx

Microsoft PowerPoint - kougi8.ppt

C プログラミング 1( 再 ) 第 4 回 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 1

PowerPoint プレゼンテーション

Microsoft Word - no11.docx

文字列 2 前回の授業ではコンピュータ内部での文字の取り扱い 文字型の変数 文字型変数への代入方法などを学習した 今回は 前回に引き続き 文字処理を学習する 内容は 標準入出力 ( キーボード ディスプレイ ) での文字処理 文字のファイル処理 文字を取り扱うライブラリ関数である 標準入出力 Lin

Microsoft PowerPoint - prog08.ppt

PowerPoint Presentation

Microsoft PowerPoint - prog05.ppt

Microsoft PowerPoint - CproNt02.ppt [互換モード]

全体ロードマップ インターネット電話 音の符号化 ( 信号処理 ) 今日 音の録音 再生 ネットワーク ( ソケット ) プログラミング ファイル入出力 インターネットの基礎 C プログラミング基礎

02: 変数と標準入出力

Microsoft Word - no202.docx

C言語入門

Microsoft PowerPoint - kougi2.ppt

1. ファイルにアクセスするには ファイルにアクセスするには 1. ファイルを開く 2. アクセスする 3. ファイルを閉じるという手順を踏まなければなりません 1.1. ファイルを読み込む まずはファイルの内容を画面に表示させるプログラムを作りましょう 開始 FILE *fp char fname

練習&演習問題

Microsoft PowerPoint - prog03.ppt

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

gengo1-8

Microsoft Word - java a.doc

02: 変数と標準入出力

Microsoft PowerPoint - kougi4.ppt

訋箊æ©�ã…Šã…�ㇰㅩã…�ㅳㇰ - 第13åłž ã…Łã‡¡ã‡¤ã…«å⁄¦ç’ƒ

MW100 Modbusプロトコルによるデータ通信の設定について

slide4.pptx

cp-7. 配列

格子点データの解析 1 月平均全球客観解析データの解析 客観解析データや衛星観測データのような格子点データは バイナリ形式のデータファイルに記録されていることが多いです バイナリ形式のデータファイルは テキスト形式の場合とは異なり 直接中身を見ることができません プログラムを書いてデータを読み出して

講習No.8

V

PowerPoint プレゼンテーション

< F2D837C E95CF CF68A4A94C5816A2E6A>

講習No.12

テキスト処理第 2 回 田中哲産業技術総合研究所情報技術研究部門 akira/textprocess/

ゲームエンジンの構成要素

講習No.1

ポインタ変数

PowerPoint プレゼンテーション

Microsoft PowerPoint - OOP.pptx

web07.dvi

講習No.9

Microsoft PowerPoint - 5Chap15.ppt

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

ポインタ変数

PowerPoint プレゼンテーション

Microsoft PowerPoint pptx

MCDRS_tutorial_advanced_v1.pptx

slide5.pptx

数値計算

memo

Microsoft PowerPoint - kougi7.ppt

Microsoft Word - Cプログラミング演習(12)

ガイダンス

解答編 第 9 章文字データの取り扱い 演習問題 9.1 文法事項 1 ) コンピュータにおける 文字データの取り扱いについて説明しなさい コンピュータでは 文字に整数の番号を割り当てて ( コード化して ) 文字コードとして扱います 実際に用いられる文字コードとして ASCII コード EUC コ

Prog1_10th

データ構造

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i

gengo1-2

Transcription:

シミュレーション基礎 (8) 第 6 章ファイル入出力

7.2 テキストファイルの読み書き ファイルに書き込む : EX70201: X=1:10;Y=[X;X.^2]; Fid=fopen('datal.txt', wt'); fprintf(fid,'%2d%5d n',y); C 言語と同じ手順 : ファイルをオープンするファイルに変数の値を書き込む ( 整数 2 桁, 整数 5 桁, 改行 ) ファイルをクローズする 実行したら type data1.txt とコマンドラインに入力してみよう ファイルから読み込む : EX70202: Fid=fopen('datal.txt','rt'); Z=fscanf(Fid,'%d%d',[2,inf]); Z' C 言語と同じ手順 : ファイルをオープンするファイルから変数の値を読み出す ( 整数, 整数 ) ファイルをクローズする 読み込んだデータを 2 行の行列の形にして変数 Z に格納 inf はデータのある限りファイルの終わりまで読み込むことを意味

fopen のまとめ [fid,message]=fopen(filename,permission) filename ファイル名 permission オプション fid ファイル識別子 ( 数値 ) とエラーメッセージmessage ( 文字列 ) を返す. オプションpermissionにはつぎのものがある (tはtextをあらわす): 'rt' ファイルの読み込み 'rt+' ファイルと読み込みと書き込み 'wt' ファイルの書き込み ( もし同名のファイルがあればそれを削除する ) 'wt+' ファイルと読み込みと書き込み ( もし同名のファイルがあればそれを削除する ) 'at ファイルへの追加書き込み 'at+' ファイルへの追加書き込みと読み込み

fprintf のまとめ count=fprintf(fid,format,a, ) A 変数 ( 複数個 ) count 書き込んだデータ数 ( 数値 ) フォーマットの例 %-12.5f 数字を符合部分と幅 12 桁の中に小数点以下 5 桁をとり固定小数点の形で書き込む 変換文字の種類 c 文字 d 10 進整数表示 e 指数表示 3.1415e+00 E 指数表示 3.1415E+00 f 固定小数点表示 3.1415 g 指数表示または固定小数点表示のいずれか簡潔な方 ( 指数が小文字 ) G 指数表示または固定小数点表示のいずれか簡潔な方 ( 指数が大文字 ) o 8 進数表示 ( 符合なし ) s 文字列 u 符合なしの 10 進整数 x 16 進数表示 ( 小文字 ) X 16 進数表示 ( 大文字 ) 改行などのいわゆる制御文字 ( エスケープ文字 ) n 改行 ( ラインフィード ) t タブ b バックスペース r キャリッジリターン f フォームフィード

fscanfのまとめ [A,count]=fscanf(fid,format,size) fid ファイル識別子 format フォーマットと読み込むデータの個数 size A データを格納する変数名 count 読み込んだデータの個数 size はつぎの形で指定 : n n 個のデータを列ベクトルに格納する inf ファイルの終わりまでのデータを列ベクトルに格納する [m, n] m 行 n 列の行列に列方向にデータを格納する. n は inf でもよい.

タイトルを付けて書き込むデータの説明文もいっしよに書いておく EX70203: S=' x x^2 ' X=1:10; Y=[X;X.^2] Fid=fopen('data3.txt','wt'); fprintf(fid,'%s n',s); fprintf(fid,'%2d%5d n',y); 実行したのち type で見てみよう : type data3.txt タイトルも読み込む EX70204: clear all Fid=fopen('data3.txt','rt'); T=fscanf(Fid,'%7c',1); Z=fscanf(Fid,'%d%d',[2,inf]); T, Z 文字数が 7 文字とわかっていなければいけない タイトル行のある文字数が不明のとき EX70205: Fid=fopen('data3.txt','rt'); T=fgetl(Fid); Z=fscanf[Fid, %d%d',[2,inf]); T, Z' fgetl 1 行分のデータを文字列として読み込む ( 改行文字などは読まない ) 改行文字まで読み込みたいときは fgets を使う

ファイルから文字列を探す : fgetl の簡単な応用 EX70206: Fid=fopen('data3.txt','rt'); while feof(fid)==0 Line=fgetl(Fid); Index=findstr(Line,'6' ) ; N=length(Index); if N>0 fprintf('%d:%s n',n,line); end end feof(fid) : ファイルの最後を検知すると1となる ffidから1 行を変数 Lineに読み込む ffindstr 文字列から指定された文字列を探し出し, 始まる位置を配列 indexに返す length 配列の大きさを返す fprintfにファイル識別子がない場合は標準出力 : ディスプレイ 数値を 1 行に書く EX70207: X=1:10; Y=[X;X.^2] Fid=fopen('data7.txt','wt'); fprintf (Fid, 'x=%2d x^2 = %5d n', Y); 行列 Y は 1 列,2 列と列順に書き込まれていく type data7.txt で, 出来上がったファイルを出力してみよう 1 行に書かれている文字列と数値から数値を読み込む EX70208: Fid=fopen('data7.txt','rt'); Z = fscanf(fid, '%2s%d%4s%d', [8,inf]); fclose(fid) ; Z' Y=[Z(3, :) ;Z(8, :)] 8 行の行列としてデータの終わりまで読む

j ファイルに追加して書き込むオープンするとき, オプションとして at を指定 EX70209: X=l:10; Y=[X;X.^2] Fid=fopen('data9.txt1,'wt'); fprintf (Fid, '%2d%5d n',y) ; X=ll:20; Y=[X;X.^2] Fid=fopen('data9.txt','at'); fprintf(fid,'%2d%5d n',y); fopen にプションとして at を指定

7.3 バイナリファイルの読み書き ファイルに書き込む :fwrite 1 データをバイナリで保存. 無駄なく高速に読み書き可能!! EX70301: 1. X=l:10; Y=[X;X.^2] 2. Fid=fopen('datal.bin, 'w'); 3. fwrite(fid,y,' intl6 ' ); 4. Data1.bin というファイルをバイナリ書き込みモードでオープンする F2 バイト整数で書き出す [ fid,message]=fopen(filename,permission) permission: r r+ ファイルの読み込み ファイルの読み込みと書き込み ' w' ファイルの書き込み ( 同名のファイルがあればそれを削除する ) 'w+' 'a' 'a+' ファイルの読み込みと書き込み ( 同名のファイルがあればそれを削 除する ) ファイルへの追加書き込み ファイルへの追加書き込みと読み込み

count=fwrite(fid,a,precision) または count=fwrite(fid,a,precision,skio) A; 変数 precision 精度を指定するオプション, 書き込んだデータ数 count ( 数値 ) を返します. 変数 Aが行列のときは, 第 1 列がまず書き込まれ, つぎに第 2 列が書き込まれ, というふうに列方向にデータが格納さわていきます. また, 精度には char 文字 1 バイト ' l schar uch 符号付き文字 ar int8 bbb 符号なし文字 1 バイト 1 バイト intl6 整数 2 バイト int32 整数 4 バイト int64 整数 8 バイト uint8 符号なし整数 1 バイト uintl6 符号なし整数 2バイト uint32 符号なし整数 4バイト uint64 符号なし整数 8バイト float32 実数 4バイト floatニ64 実数 8バイト

i ファイルから読み込む :fread EX70302: Fid=fopen('datal.bin','r'); Z=fread(Fid, [2, 10], 'intl6'); Z p226 [2, 10]: データを 2 行 10 列の行列として読み出す ( データは 1 列目,2 列目, と列順に代入される. 行順ではないことに注意 ) fread のまとめ [A,count]= fread(fid,size, precision) または [A,count]=fread(fid,size,precision,skip) 引数 : Fid ファイル識別子 size 読み込むデータサイズ. 以下の種類がある n : n 個のデータを列ベクトルに格納する inf : ファイルの終わりまでのデータを列ベクトルに格納する [m,n] : m 行 n 列の行列に格納する (1 列,2 列,.. と ) precision 精度前頁を参照のこと戻り値 A : 変数名 count 読み込んだデータの個数

ファイルの中を調べる ( ファイルダンプ ) 指定されたファイルを 1 バイトずつ読み, それを 16 進数として表示することをファイルをダンプするという. プログラム作成前に ascii コードを復習しよう. 2 バイト (16 進数 2 桁 )ascii コード表 50 は P,51 は Q,20 は SP( スペース ) を表すことが分かる 練習あるテキストファイルを 16 進数で読み出したところ次のようになった. この結果を ascii コード表を参考に解読しなさい. 746865206C6573736F6E732070726F63. ( 答 ) 74=t, 68=h,65=e,20=SP,6C=l. と読み進むと the lessons proc となる.

ファイルの中を調べる ( ファイルダンプ ) 関数 EX70303: function ex70303(filename) % Dump any file Fid=fopen(FileName,'r'); 読み出した行数 NLine=0; NChar=0; 読み出した文字数 while feof(fid)==0 Buf=fread(Fid,1,'uchar'); if length(buf)>0 NChar=NChar+1; HBuf=dec2hex(Buf); if length(hbuf)<2, HBuf=['0' HBuf]; end if mod(nchar, 16)==1 NLine=NLine+1 ; fprintf('%5d %s',nline,hbuf); else fprintf('%s',hbuf); end if mod(nchar,16)==0, fprintf(' n'); end end end fprintf(' n'); 1 文字 (1 バイト ) 読み出す 16 進数に直し変数 Hbuf に代入 Hbuf が 1 桁の場合は 0 を付け加え 2 桁とする 行の初めなら (1 行 16 文字ずつとする ) 行番号と Hbuf を出力 行の初めでなければ Hbuf のみを出力 行の最後 16 文字目 ) であれば改行コードを出力

練習 1. サイクロイド曲線 x sin y 1 cos 0 4 /10 について区間まで ずつを変化させるときの, 点 (X,Y) を 計算し, それらを (X,Y) の組み合わせとしてテキストファイル rensyu.txt に書き出しなさい. また, このテキストファイルをエクセルで読み出し, エクセルのグラフ機能を用いて曲線を描きなさい ( 折れ線または散布図 ) 2. 1 で作成したファイルからデータを読み出し, 曲線をプロットするプログラムを作成しなさい.