ソフトウェア制作論 平成30年11月14日.

Slides:



Advertisements
Similar presentations
果物識別 補足資料 1. やりたい事  入力された画像内に映っている果物が何かを自動判 別するプログラムを組むこと 識別器 りんご です.
Advertisements

プログラミング第5回 1 while ループ 文字列の操作
プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.
IO - 入出力 小西 亨.
データ構造とアルゴリズム論 第5章 レコード構造を使った処理-クラスの利用
第13回構造体.
第12回構造体.
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
第2回ネットワークプログラミング 中村 修.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
C言語 配列 2016年 吉田研究室.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
アルゴリズムとデータ構造 2011年6月13日
第6章 2重ループ&配列 2重ループと配列をやります.
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
第20章 Flyweight ~同じものを共有して無駄をなくす~
情報処理技法 (Javaプログラミング)2 第2回 前期の復習(2)
11.6 ランダムアクセスファイル 11.7 StreamTokenizerクラス
データ構造と アルゴリズム論 平成29年9月27日 森田 彦.
変数のスコープ クラス クラス変数 すべてのメソッドの外側でstaticで定義
サブゼミ第9回 実装編③ 永続化とjava.ioパッケージ.
JAVA入門後期⑩ 情報処理試験例題解説.
UDPマルチキャストチャット                    空川幸司.
例外処理 と ファイル入出力 情報システム学科 平塚 聖敏.
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗号技術 ~JAVAプログラム③~ (7週目)
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
アルゴリズムとデータ構造演習(7月8日) 入出力ストリーム 2019/1/18.
ソフトウェア制作論 平成30年12月5日.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
ソフトウェア制作論 平成30年10月3日.
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力
地域情報学 C言語プログラミング 第5回 ポインタ、関数、ファイル入出力 2017年11月17日
データ構造とアルゴリズム論 第7章 再帰処理 平成17年12月6日 森田 彦.
プログラミングⅠ 平成30年10月29日 森田 彦.
情報基礎Ⅱ (第11回) 月曜4限 担当:北川 晃.
ソフトウェア制作論 平成30年9月26日.
ソフトウェア制作論 平成30年10月24日.
ソフトウェア制作論 平成30年10月31日.
ソフトウェア制作論 平成30年11月21日.
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
ソフトウェア制作論 平成30年10月10日.
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
配列変数とポインタ 静的確保と動的確保 ポインタ配列 2次元配列 時間計測 第1回レポートの課題
プログラミングⅠ 平成30年10月22日 森田 彦.
オブジェクト・プログラミング 第8回.
プログラミングⅠ 平成31年1月7日 森田 彦.
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
C#プログラミング実習 第3回.
アルゴリズムとデータ構造 2012年6月11日
ファイルの読み込み, ファイルからのデータの取り出し, ファイルの書き出し
データ構造とアルゴリズム論 第7章 再帰処理 平成16年11月30日 森田 彦.
ソフトウェア制作論 平成30年11月28日.
地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
ネットワーク・プログラミング Cプログラミングの基礎.
高度プログラミング演習 (11).
ループだよ!難しいよ! 第5章 while(ループ);.
データ構造とアルゴリズム論 第9章 連結リスト
コンパイラ 2012年10月11日
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
Cプログラミング演習資料.
ソフトウェア制作論 平成30年10月17日.
プログラミング 平成28年10月25日 森田 彦.
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
情報処理技法(Javaプログラミング)1 第8回 同じ処理を何回も繰り返すには?
Presentation transcript:

ソフトウェア制作論 平成30年11月14日

第8章 プログラムの汎用化2 ファイルからのデータ入力によるソースとデータの分離 第8章 プログラムの汎用化2  ファイルからのデータ入力によるソースとデータの分離 <本日の学習内容とねらい> プログラムの入力データをフィルから読み込むようにすれば、ソース とデータが分離され、プログラムの汎用性が高まる。 このことを前章のプログラムを改良することで体験する。

基礎課題8-1 getEraName() String getEraName(int year, int month, int day){ String[] eraName={"明治","大正","昭和","平成"}; int[] eraYear={1868,1912,1926,1989}; int[] eraMonth={9,7,12,1}; int[] eraDay={8,30,25,8}; String ans=""; ・・・ return ans; }

基礎課題8-1 getEraName() String getEraName(int year, int month, int day){ String[] eraName = new String[100]; int[] eraYear= new int[100]; int[] eraMonth = new int[100]; int[] eraDay= new int[100]; int eraNumber= readData(eraName,eraYear,eraMonth,eraDay); String ans=""; //どの年号に当てはまるかを判定する。 int i; //該当する元号の番号 i=1:明治、i=2:大正、i=3:昭和、i=4:平成 for(i=0;i< eraNumber ;i++) { ・・・ return ans; } 配列変数の宣言・生成(のみ) データの入力を行うメソッドを定義(戻り値:データの個数) データの個数に当たる部分を書き替える

基礎課題8-2 readData() private int readData(String[] eraName, int[] eraYear, int[] eraMonth, int[]eraDay) { int ans=0; return ans; }

基礎課題8-2 readData() private int readData(String[] eraName, int[] eraYear, int[] eraMonth, int[]eraDay) { int ans=0; try { } catch (Exception em) { } return ans;

基礎課題8-3 入力ストリームの指定 <年号データ.csv> try { BufferedReader fin= 基礎課題8-3 入力ストリームの指定 try { BufferedReader fin=    new BufferedReader(new FileReader("年号データ.csv")); fin.close(); } catch (Exception em) { } <年号データ.csv>

基礎課題8-3 データ読み込みループ(枠組み) 基礎課題8-3 データ読み込みループ(枠組み) try { BufferedReader fin=    new BufferedReader(new FileReader("年号データ.csv")); String data; int i=0; while ((data=fin.readLine())!=null) { } ans=i; //データの個数 fin.close(); catch (Exception em) { } eraName[i]、erayear[i]、eraMonth[i]、eraDay[i] にデータを代入

基礎課題8-3 データ読み込みループ(中身) eraName[i]=tk.nextToken(); 基礎課題8-3 データ読み込みループ(中身) ・・・ int i=0; while ((data=fin.readLine())!=null) { StringTokenizer tk=new StringTokenizer(data,",");   eraName[i]=tk.nextToken(); eraYear[i]=Integer.parseInt(tk.nextToken()); eraMonth[i]=Integer.parseInt(tk.nextToken()); eraDay[i]=Integer.parseInt(tk.nextToken()); i++; } ans=i; //データの個数 fin.close();

変数を用いたプログラムの汎用化2 ファイルからのデータ入力によるソースとデータの分離   入力データ → 外部ファイル   処理内容  → プログラムソース という形でソースとデータを分離したことで、汎用化がさらに高まり拡 張も容易になった。