Relative Content

Author Archive for chen

C code I – シラパス

【授業の概要】 コンピュータプログラム開発言語の中で広く利用されているC言語をCプログラミング開発環境ソフト: CPad for Borland C++ Compilerを使った一人一台のPCを使い実習により学びます. 毎回問題に取り組み理解を深めます。復習問題としてプログラミング課題を出題する。 【授業要旨】 回数 題目 授業内容 学習課題 予習時間(分) 復習時間(分) 1 ガイダンス 学習目的 情報工学系科目のC言語の位置づけ CPad開発環境 PCを持っている学生は開発環境をインストする 60 2 C言語の基本作法 Cプログラムの作成 文字列の表示 printf関数:書式化して表示を行う関数 テキスト(P2-9)を読む 授業内容を復習する 30 60 3 C言語の基本作法 変数と宣言 代入 初期化 テキスト(P10-11)を読む 授業内容を復習する 30 60 4 C言語の基本作法 scanf関数:読込みを行う関数 puts関数:表示を行う関数 テキスト(P12-16)を読む 授業内容を復習する 30 60 5 演算と型 演算子とオペランド テキスト(P17-24)を読む 授業内容を復習する 30 60 6 演算と型 型と演算 […]

[BCC32]How to use Cpad

Cpad とは CPad for C# .NET(以下CSCPad or CPad)は、 Microsoft社のC#実装系「C# .NET」用のC#開発環境です。 GUI環境で簡単にC#プログラミングができます。 簡単に「コンパイル」&「実行」ができるので、プログラミング初心者の 学習用途はもちろん、ちょっとしたテストコードの実行に手間を かけたくない中上級者にとっても有用なツールとなっています。 BCPadのインストール Cドライブ下にbcpad231フォルダーをコピー cpad.exe をダブルクリックして実行します 立ち上げると設定のパネルが出てくる。 コンパイラのパス C:\borland\bcc55\Bin\bcc32.exe を(入力するか)参照する。 ヘルプファイルのパス C:\bcpad231\cpad_manual.html 標準のデータ保存フォルダ C:\Users\student \Documents\C (studentの場合) バックアップフォルダなしです。 Cpadの使い方 デスクトップから、下記のアイコンを探して、ダブルクリックで、Cpadを起動してください。 (似ているアイコンがあるので、アイコンにC++と書いてあるの方が正解です) Cpadのカスタマイズ 文字と背景色が変更できます、すきのように変更してください。 「メニュー」ー「実行」ー「設定」-「フォント」順に[フォント]ページを開き ページの説明: [エディタフォント] エディタのフォントを指定します。 [メッセージのフォント] メッセージウィンドウ・ファイル検索結果ウィンドウのフォントを指定します。 [文字色] 文字色を指定します。 [背景色] 背景色を指定します。 [選択領域の文字色] 選択領域の文字色を指定します。 [選択領域の背景色] 選択領域の背景色を指定します。 [改行マークの色] 改行マーク・[EOF]マーク・Tabマーク・全角空白を表示する場合の色を指定します。 [標準の色設定に戻す] CPadデフォルト(インストール時)の色指定に戻します。 設定例:

[BCC32]Install Borland C++ Compiler

Borland C++ Compiler 5.5開発環境 Windows PCを持っている学生は開発環境をインストールする Borland C++ Compiler 5.5のインストール手順 https://www.embarcadero.com/jp/free-tools よりダウンロード 大まかな流れ 圧縮ファイル「freecommadlinetoos」の解凍 インストーラー「freecommandlinetools2」 の起動 使用許諾契約の同意 コンパイラのインストール先の指定 コンパイラのインストール開始 インストール終了 freecommandlinetools2.exe を実行してください。[同意する]ボタンを押して先へ進んでください。 コマンドラインツールをインストールしたいドライブとフォルダを選択します。 c:\Borland\Bcc55\Bin がインストール先です。 C:\borland\bcc55\Bin\bcc32.exe とインストールされます。 次にbcc32.cfg と ilink32.cfg のファイルをC:\borland\bcc55\Binの中にいれます。 ( bcc32.cfgファイルは,Include および Lib パスのコンパイラオプション(コンパイラの -I および -L スイッチ)を設定するものです。 bcc32.cfgファイルには -I”c:\Borland\Bcc55\include” -L”c:\Borland\Bcc55\lib” と書かれています。 ilink32.cfg ファイルは,Lib パスのリンカオプションを設定するものです。-L”c:\Borland\Bcc55\lib” と書かれています。)   コマンドラインでコンパイルする場合、環境変数「PATH」に”c:\Borland\Bcc55\bin”を追加する必要 バージョン情報 > >bcc32 Borland C++ 5.5.1 for Win32 Copyright […]

15.Summary

Webアプリケーション作成(コーディング・テスト、デバッグ、仕上げ)、全員発表する 発表課題: オープンデータの取得と利用 使用言語:processing もしくは Java 発表時間:5分程度 課題: オープンデータの取得と利用 オープンデータの材料選び オープンデータの取得 (URL) オープンデータの利用 (processing もしくは Java) オープンデータ応用のWEB公開 (Google sitesに埋め込み) ヒント: これまで演習したプログラムの組み合わせが必要です。 nextbus, java参考例: import java.util.Calendar; class busapp{ public static void main(String args[]){ String[] data = { “00:00”, “8:30”, “9:10”, “10:00”, “11:00”, “12:15”, “14:15”, “15:15”, “16:15”, “17:15”, “18:15”, “19:15”, “20:15”, “23:59” }; Calendar calendar = Calendar.getInstance(); //現在(実行時点)時刻でCalendarのインスタンス生成 int […]

14.REST and JSON

REST RESTは「REpresentational State Transfer」の略で、大まかに言えば、アドレス(URL)とHTTPのメソッド(GETなど)を組み合わせて、サーバー上のデータを操作する仕組みです。 RESTは、Roy Fieldingという方が、2000年に発表した博士論文で提唱されたアーキテクチャスタイルです。Roy FieldingさんはHTTP仕様の策定者の一人であったことから、HTTPはRESTの基準をよく満たしています。 RESTの例として、WordPress JSON REST API (WP API, http://wp-api.org/) あります。それを利用して、Javaなどから最新の記事の取得、記事の投稿、写真の添付などが可能です。 JSON JSON(ジェイソン、JavaScript Object Notation)は、JavaScriptにおけるオブジェクトの表記法をベースとした軽量なデータ記述言語である。 JSONの紹介 http://www.json.org/json-ja.html このフォーマットの特徴は、 名前/値のペアで表記される、連想配列のような構造 カンマで区切られたリスト(配列)のような構造 オブジェクト オブジェクトは中括弧({ , })で囲み、中の要素は文字列/値で表現します。複数の要素を利用する場合は、カンマで区切り、続けて記述します。 {文字列:値,文字列:値,..文字列:値} 配列 配列は大括弧([ , ])で囲み、中の要素を値の連続(0個以上)で表現します。複数の要素を利用する場合は、カンマで区切り、続けて記述します。 [ 値, 値, …, 値] 値 値は以下の7種類です 文字列 数値 オブジェクト 配列 true false null 文字列は2重引用符(“)で囲まれます。 学バス時刻表の取得 JSONArray json = loadJSONArray(“http://busapp.wasedaonline.com/api/getvalue/?tag=20”); JSONObject content […]

13.Web Application

Webアプリケーション作成に必要な概念を理解する Web Service Webサービスとは、大まかにいえば、Webの通信の仕組みを利用して、コンピュータ同士でさまざまなデータをやり取りし、分散処理を行うシステムです。 通信手順の取り決めのことを、「プロトコル」(Protocol)と呼びます。Webの世界では、「HTTP」(HyperText Transfer Protocol)というプロトコルで、通信が行われています。 HTTPは、WebブラウザなどのクライアントがWebサーバーにデータを要求し、それにWebサーバーが答える、という形のプロトコルです。 API アプリケーションプログラミングインタフェース (API、英: Application Programming Interface) とは、ソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様である。APIには、サブルーチン、データ構造、オブジェクトクラス、変数などの仕様が含まれる。 Webサービス大まかに言えば、以下のような流れで処理を進めます。 (1)クライアントからサーバーに対して、HTTPで接続して処理を要求します。 (2)サーバーは処理結果をクライアントに送信します。 (3)クライアントは(2)の結果を受信し、必要に応じて各種の処理を行います。 「HTTPで通信する」上位層に位置するプロトコル 「XML-RPC」 「SOAP」(Simple Object Access Protocol) 「REST」(REpresentational State Transfer) :  REST and JSON Open Data open-data お天気Webサービスの利用 お天気Webサービス(Livedoor Weather Web Service / LWWS)は、現在全国142カ所の今日・明日・あさっての天気予報・予想気温と都道府県の天気概況情報を提供しています。 (例)「福岡県・久留米の天気」を取得する場合 下記URLにアクセスしてJSONデータを取得します。 基本URL + 久留米のID(400040) http://weather.livedoor.com/forecast/webservice/json/v1?city=400040 学バス時刻表 Javaを利用して、学バスの時刻表取得と処理を行う http://busapp.wasedaonline.com/ http://busapp.wasedaonline.com/api/getvalue/?tag=20  — 日曜・祝日 キャンパス行き 課題: […]

12.Map

Map構造 コレクションクラス Map構造は、キーと値をセットにしたものを1つの要素として管理するデータ構造です。 「HashMap」「TreeMap」の2種類があります。 要素がキーと値で管理されているので、キーを指定して値の取得や更新、削除を行います。 Map構造は、キーによって値を管理するためキーの重複は不可です。 (同じキーがセット(put)された場合は上書きされます。) マップ(HashMap) HashMap は、名前(キー)と値の組み合わせを要素として持つ配列です。 HashMapは格納順は管理されません。キーと値にnullを使用することが可能です。 HashMap hm = new HashMap(); hm.put(“Brian Kernighan”,”A REGULAR EXPRESSION MATCHER”); hm.put(“Karl Fogel”,”SUBVERSION’S DELTA EDITOR: INTERFACE AS ONTOLOGY”); hm.put(“Jon Bentley”,”THE MOST BEAUTIFUL CODE I NEVER WROTE”); hm.put(“Tim Bray”,”FINDING THINGS”); println(“Get a Element > ” + hm.get(“Brian Kernighan”) ); println(“Get a Element > ” + hm.get(“Jon […]

11.List

List構造 コレクションクラス List構造は、要素を順番付けして管理するデータ構造です。 「ArrayList」「LinkedList」の2種類があります。 要素がインデックス(番号)順に並んでいるので、番号を指定して要素の取得、挿入、更新、削除ができます。また、Iteratorや拡張for構文を使って先頭から順番に要素を取得することも出来ます。 ArrayListは要素の取得が早いが挿入や削除が遅い、LinkedListは要素の挿入や削除は早いが取得が遅いという特徴があります。 List構造は、要素の重複は可能です。 リスト(ArrayList) ArrayList は配列を扱う一般的なクラスです。 下記などのメソッドが用意されています。 list.add(o) – オブジェクト o を配列の末尾に追加する list.add(n, o) – オブジェクトを n で指定した場所に追加する list.get(n) – n番目の要素を得る list.remove(n) – n番目の要素を削除する list.set(n, o) – n番目の要素をオブジェクト o で置き換える list.size() – 要素の個数を得る list.isEmpty() – 空かどうか調べる list.indexOf(o) – オブジェクト o と等しい要素のインデックスを探す list.contains(o) – オブジェクト o と等しい要素があるか調べる list.addAll(list2) – 配列の末尾に配列 list2 を追加する […]

10.String Searching

文字列を検索する – indexOf/lastIndexOfメソッド 文字列に含まれる部分文字列を検索するには、indexOfメソッドを利用します。indexOfメソッドは、指定された部分文字列が最初に登場した位置を、文字列の先頭を0としたインデックス番号で返します。文字列が見つからなかった場合、戻り値は-1となります。第2引数で、検索開始位置を指定することもできます。 1 2 3 String str = “にわにはにわにわとりがいる”; System.out.println(str.indexOf(“にわ”));  // 結果:0 System.out.println(str.indexOf(“にわ”, 1));   // 結果:4 部分文字列を文字列の末尾から検索するならば、lastIndexOfメソッドを利用してください。 1 System.out.println(str.lastIndexOf(“にわ”));  // 結果:6 match() 正規表現を使った検索  正規表現を使って、文字列(String)を検索します。結果は文字列の配列として返されます。【構文】match(str, regexp)【パラメータ】str 検索対象の文字列regexp 検索条件をあらわす正規表現【戻り値】String[] (一致する文字がないときはnull)  次の例は文字列からデータを取り出します。 String t = “本日の気温は28度です”; String[] m = match(t, “([0-9]+)度”); // 「度」の前の数値を取り出す if(m != null) { println(“t=” + m[1]); // 検索結果(m[1])を出力 println(m[0]); // 一致した文字全体(m[0])を出力 } else { […]

9.Set

Set構造は、要素を順番付けしないで管理するデータ構造です。「HashSet」「TreeSet」の2種類があります。 Listのような順番付けや、Mapのようなキー管理もないため、要素の取得にはIteratorや拡張for構文で取得します。このようなことからHashSetは要素の取得順は保証されませんが、TreeSetは自動ソートされて管理されるのでソートされた順番で要素が取得されます。また、HashSetは要素にnullを使用する事が可能ですが、TreeSetはnullを使用する事ができません。Set構造は、要素の重複は不可です。(同じキーがセット(add)された場合は上書きされます。) セット(HashSet) HashSet も配列を扱いますが、要素の重複が許されない、順序の保障が無い点が ArrayList や LinkedList と異なります。要素を参照する際には Iterator を用います。 §HashSetTest.java import java.util.*; class HashSetTest { public static void main(String[] args) { HashSet set = new HashSet(); set.add(“AAA”); set.add(“BBB”); set.add(“CCC”); set.add(“AAA”); Iterator it = set.iterator(); while (it.hasNext()) { System.out.println(it.next()); } } } 実行結果は下記のようになります。AAA を 2回 add() していますが、重複要素がひとつにマージされます。結果の順序は add() した順序に関係なくバラバラになります。 C:java>java HashSetTest CCC AAA BBB […]