ホーム » 2004 » 7月 (ページ 2)

月別アーカイブ: 7月 2004

2004年7月
 123
45678910
11121314151617
18192021222324
25262728293031

検索・リンク

UML記法

オブジェクト指向プログラミングにおいて、そのデータ構造のモデリングの表現 のために、UML 記法について説明を行う。

プログラム開発での仕様書の必要性から、 処理の流れ表現での(a)フローチャートや(b)PAD といった事例を簡単に述べた後、 教科書で紹介されている開発の流れとして、 (A)分析工程(OOA:OO-Analysis), (B)設計工程(OOD:OO-Design), (C)製造工程(OOP:OO-Programming), (D)試験工程 (E)保守・運用工程のサイクル FN 対比的にPDCA(Plan,Do,Check,Act)サイクルの紹介も行う。 /FN を説明する。

この後に、UML の説明として、OMT(Object Modeling Technique)の発展系としての UML(Unified Modeling Language)の説明。 UML を構成する主要な物として、以下の紹介する。

  • ユースケースビュー(外観からシステムをとらえる)
  • 論理ビュー(システムの論理的な構成)
    • 静的構造(クラス図、オブジェクト図)
    • 動的構造(シーケンス図、状態遷移図)

具体的な事例を交えながら、クラス図を説明。 クラス(クラス名,属性,メソッド),導出(汎化),関連(関連数),集約等を説明する。

団体戦男子4位、女子3位

今日は富山高専主管で滑川にて、北陸地区高専体育大会・バドミントンの試合。 団体戦と個人戦ダブルスベスト8までの試合。 男子は、2,3,4位がセット数・マッチ数で並び、ポイント数まで比較して の勝敗決めとなる。結果は惜しくも団体戦4位。 女子は、団体戦3位となる。

高専大会2日目

個人戦ダブルス

女子個人戦・ダブルス多田,岩見ペアが頑張り、 決勝戦に残るも残念ながら 準優勝 となった。 男子は、残念ながらベスト4に残れず。

個人戦シングルス

女子個人戦シングルスは、準決勝に岩見さん・紺孝さんが残るも負けてしまい、 3位決定戦が同校対決。結果は 岩見さんが3位 となった。 男子個人戦シングルスは、ベスト8に佐々木君が残る。

ファイルとコマンドプロンプト

絶対PATH,相対PATHの理解と、木構造ファイルの理解のために、 Windowsコマンドプロンプト環境を用いて、dir,echo,type,mkdir,rmdirの説明。 最後に、指定したtree構造と同じディレクトリをコマンドで作成し、 explorerで確認した結果と、そのために用いたコマンドの記録を、 レポートにして提出。

久々にDOS窓で仕事をすると、ドライブレターの扱い注意の説明のタイミング がおろそかになる。

今年度から、オペレーティングシステムの講義が4年から3年に移り、 高久先生担当にて始まっている。 今回の説明の範囲は、丁度重複しているとの指摘を受ける。 高久先生の話しでは、来週にパイプとリダイレクトの内容を予定しているとの 話しであるため、今年度以降は、ファイル入出力処理に専念できそう。

リスト構造によるFIFO

リスト構造によるStackの続きの話しとして、リスト構造にてFIFOを作るプログラム の解説。

リストでqueue

最初に、配列を使ったFIFOのプログラムを示し、 (1)プログラムにリング操作となる処理の追加、 (2)read pointer がwrite pointer を追い抜くなどの対処の必要性を示す。 最終的に リングバッファ という名前を示し、実例としてキーボードなどの、 受け側が忙しい時の一時データ保管という意味合いを説明。 その後で,リストでFIFOの説明として、以下のコードを示す。

struct List* queue ; // 初期状態は最初伏せて説明
struct List** tail ;
void put( int x )
{   (*tail) = cons( x , NULL ) ;
tail = &( (*tail)->next ) ;
}
int get()
{   struct List*d = queue ;
int ans = queue->data ;
queue = queue->next ;
free( d ) ;
return ans ;
}

課題の提示

演習課題として、リスト構造のプログラム作成として、 (1) 文字列,(2)複素数,(3)名前と電話番号のいずれかのリスト構造を定義し、 (a) 先頭挿入型、(b)末尾追加型のいずれかの方法で入力データを保存し、 データ検索などの処理を行った後、全データを表示する。

データの途中への挿入・削除

void insert( struct List* p , int x )
{   struct List* n ;
n = (struct List*)malloc( sizeof( struct List ) ) ;
if ( n != NULL ) {
n->data = x ;
n->next = p->next ;
p->next = n ;
}
}
void del( struct List* p )  // 関数名にC++キーワードdeleteは避ける
{   struct List* d = p->next ;
p->next = d->next ;
free( d ) ;
}

名言だ!

なにげなく見ていた ページ に記載されていた文章で、だれかの名言らしいけど、記録。

プログラムはあなたが思ったようには動かないが、あなたが書いたようには動く

あったりまえだよね。

システム

最新の投稿(電子情報)

アーカイブ

カテゴリー