情報システムの開発  講義記録     2010年度      質問は公開掲示板

 受講者のみなさんが記録した「講義記録」です。欠席した人や、復習する人は参考にして下さい。 


12月15日の講義

 記録担当:松田裕希子  投稿日:2010年12月15日(水)16時54分39秒
 
 
  先週に引き続き提出課題の作成をした。

○課題について

課題((1)設計仕様書 (2)フローチャート (3)プログラムリスト)の提出は
授業最終日の2011年1月12日(水)に行う。また、試験(成績処理システムに
関わるプログラムについて実行できるかどうかを問うもの)もある。


新しいヒントとして、「メインプログラム」と「成績一覧表の作成」のフローチャートが
情報システム開発のシラバスに出ている。また、成績処理システムの実行例も
http://saitolab.tamacc.chuo-u.ac.jp/professor/seisekikanri.exeに出ている。


○課題作成の流れ
まずはフローチャートを作成する。
そして、個々のモジュールを分けてコーディングしていく。(モジュールによって必要のない宣言などは除いてコーディングする。)
全てのモジュールをコーディングし、正しく起動できたら全てをつなげて構造化する。


○感想
フローチャートを作って流れを理解し、モジュールごとに分けてコーディングすることで
するべきことがより明確になりました。提出日に課題がちゃんと提出できるように地道に
がんばりたいと思います。

12月8日の講義

 記録担当:又吉那美子  投稿日:2010年12月10日(金)16時54分45秒
 
 
  ○課題について<詳細>
(1)設計仕様書
(2)フローチャート
(3)プログラムリスト
2011年1月12日(水)提出、課題に関する試験(プログラムの実行)もあり。
※課題のヒントがシラバスに発表されています

○作業
まずはフローチャートを紙に書いてプログラムの流れを把握
(シラバス・「商品管理システム」の仕様書を印刷して参考にするとよい)
それから各自今までの授業を参考に課題に取り組む

○感想
紙にフローチャートを書いてみると、ひとつひとつの工程が明らかになってわかりやすくなりました。
まず設計仕様書とフローチャートを完成させてからプログラムに取り組もうと思います。

12月1日の講義

 記録担当:小日山由望  投稿日:2010年12月 7日(火)21時53分42秒
 
 
  ◎2010年社会システム開発の最終課題の発表
  テストはなく、「成績処理システム」を作成し、提出すること。

○今回の授業は、仕様書
(シラバス内から確認:http://c-faculty.chuo-u.ac.jp/~saitotac/lecture/2004/seisekiSys.doc)
をよく読み、フローチャートを描いた。

参考にするべきは、前回扱った「商品管理システム」やこれまでの「プログラム例題」。
ただ「商品管理システム」を手直ししていくのではなく、あくまで参考に。
まずはパソコンに触らずに、紙を鉛筆だけを使って十分に理解することが必要である。

次回からの授業もこれの続きを作成していく。

○感想
何度か書いてきたフローチャートで、最初よりは手が動くようになりました。
次回は先生に確認して頂いて間違いは再考し、きちんと理解して次に進めたらと思います。
またこの課題をの為には過去の例題の理解が不可欠だと思うので一緒に再確認しておきたいです。

11月24日の講義

 記録担当:小峯 綾  投稿日:2010年11月25日(木)22時05分56秒
 
 
  □応用システム
 Application System
 アプリとも呼ばれる。
 文書の作成、数値計算など、ある特定の目的のために設計されたApplication Soft(応用ソフト)のシステム。
 システムを設計するのがSEであり、さまざまな仕事に応用される下地としてC言語が存在する。


□商品管理システム
 課題として出ていたソースの解読の解説を行った。

 ・#define KEISENS "-------------\n"
  ""の前の名前であらかじめ定義することで、名前を入力するだけで""内を画面に出力することができる
  →マクロ定義(C言語プログラム例題14)

 ・void TOUROKU(void);
  void KENSAKU(void);
  void SYUSEI(void);
  それぞれの処理をTOUROKU,KENSAKU,SYUSEIという名前でわけているもの
  「void」は値が存在しないことを示す特殊な型宣言子

 ・do {
         printf("☆☆ 商品売上管理メニュー ☆☆\n");
         printf(KEISENS);
        printf("[1] データの登録 \n");
        printf("[2] 注文処理 (注文の修正) \n");
        printf("[3] 売上伝票出力 \n");
        printf("[9] 終 了\n");
         printf(KEISENS);
        printf("処理番号を入力してください →");
         } while (bango < 9);
  doで指定された操作を行ってからwhile内の条件式を処理・実行する
  最初の処理を無条件に実行させたい場合に使用する
  →do-while文(C言語プログラム例題9)

 ・while(1)
  while文は()内の式が真である場合{}内の処理を実行するものであり、1は論理値の「真」を表す。
  (1)の場合無条件にループに入り、breakによってループから抜け出すまで強制的に{}内を繰り返す。
  →while文(C言語プログラム例題8)

 ・switch(bango){
          case 1:
               TOUROKU();
               break;
          case 2:
               SYUSEI();
               break;
          default:
               break;
  ( )の中の式の値をすべての場合(ケース)と比較して、一致するCase文に制御を移す。
  もし一致するケースが存在しない場合はdefault文に制御が移る。
  また、各Case文の最後にbreak文があるのはSwich-Case文を抜け出すため。
  →Switch-case文(C言語プログラム例題11)

 ・strcmp(code,"end");
  2つの文字列(ここではcode(入力された文字)とend)を辞書的な順序(ABC/五十音)で比較するもの。
  結果は文字列1(code)<文字列2(end)のとき正の値、文字列1>文字列2のとき負の値、文字列1=文字列2のとき0となる。
  →strcmp関数(C言語プログラム例題20)

 ・FILE  *fopen(), *fp;
  fp = fopen(FNAME,"a");
  fclose(fp);
  FILE構造体を宣言することでそのファイルを読み込み、書き込み、追加、修正(更新)などのために開くもの。
  必ず最後に閉じる必要がある。
  →ファイル処理(C言語プログラム例題29他)


□課題
 今まで学んできたC言語を復習しておくこと。
 来週は今までの知識を使ってプログラミングを行う。
 参考:
http://c-faculty.chuo-u.ac.jp/~saitotac/professor/hisae/vc/c.html

11月10日の講義

 記録担当:佐藤央積  投稿日:2010年11月10日(水)20時10分0秒
 
 
  ☆ BIOS(Basic Input Output System)

  入出力装置(マウス、ディスプレイ等)の制御を行う。


☆ stdio.h(standard input output) ※『.h』はHeaderファイルの拡張子

  これにより、scanfとprintfを扱える。


☆ Buffer Memory
  _______________                   _______________
   |               |                  |               |
   |    Memory     |------Buffer------|      HD       |
   |_______________|                  |_______________|

  内部メモリと外部メモリの処理速度の差を補うため、データを一時的に
  保存する装置(キャッシュとなる)


☆ 例題34〜37(ランダムファイル関連)

  ランダムファイルは、シーケンシャルファイルと違い、レコードの
  書き込む位置や読み込む位置を自由に設定できる。


☆ 商品管理システム

  実際に起動させること!
  ソースプログラムを見て理解すること!

・ 感想

  コンピュータに対する、自らのセンスのなさに悲しくなった。

10月27日の講義

記録担当:高橋奈津子  投稿日:2010年10月27日(水)17時34分33秒
 
 
  ○ファイル処理
 メモリ内部 ROM(読み込む)、RAM(書き込める)<変数・配列・ポインタ>
              ↑
             入出力...ファイルのOPEN/CLOSE
              ↓
 メモリ外部 HD,CD-ROM,DVD,USB,カード


fp = fopen("a:moji.dat", "w");

fp(ファイルポインタ)…ファイルを使う場合のC言語
fopen …ファイルを開くこと
a: …ファイルのあるドライブ名。演習の際はu:に書き換える。
moji.dat …扱うファイルの名前
"w"…書き込み専用のファイルを作成する...<読み込み専用のファイルを開く"r"、
                     追加専用のファイルを開く"a" もある>

fclose(fp)はfp=fopenで開いたファイルを閉じること


今日の課題
○例題29−33の実習(sequential access)
  sequential access …順番に読むこと ⇔ random access

注意点
・例29のmoji.datを例30のプロジェクトのフォルダにコピー&ペーストする。
 同様に例31のbooks.datを例32〜33のフォルダにコピー&ペーストする。
 しないとエラーが出てしまう。
・例29で入力を終えるときは、ctrl+zキーを押す

予習...例題34〜37(ランダムアクセス)についての予習をしてくる


○感想
 難しくてまったく理解ができていませんでしたが、友人の助けでなんとか今回の範囲までは
 理解することができました。先延ばしせず、きちんとひとつひとつ理解していかなければ
 ならないなと感じました。

10月20日の講義

 記録担当:筆谷有加里  投稿日:2010年10月22日(金)22時19分14秒
 
 
  ●構造体:文字型や整数型など、違うデ−タ型の項目を1つの集合として定義して操作できる。
  ※例題23・24参照

●ソート(SORT):複数のデ−タを数値の大小や文字のABC順などのソ−ト基準にしたがって並び替えること。昇順・降順に並び変えられる。
  ※例題26参照

    for (i=0; i< 9; i++) {
for(j=i+1; j<10; j++) {
if (ten[i] < ten[j]) {
dumy = ten[i];
ten[i] = ten[j];
ten[j] = dumy;
}
}
}


☆フローチャートで表す
   手順@start
          Ai←0
     Bi<9
          Cj←i+1
          Dj<10
     ・
     ・
     ・

 ○応用問題
  NAME〔5〕
   NAME〔0〕=WATANABE
   NAME〔1〕=YOSHIDA
      NAME〔2〕=AOKI
   NAME〔3〕=MIYANO
   NAME〔4〕=SAITO

●課題
 今日の講義の内容を復習しておくこと。

●感想
 内容がとても難しいですが、ついていけるように精一杯頑張りたいです。

10月13日の講義

記録担当:永嶋 夏希  投稿日:2010年10月19日(火)14時36分13秒  
 
  3D=3−Dimension

今回の授業では例題13のプログラム例を中心に学習しました。
例題13:二次元配列
 プログラム例のforの中をフローチャートにする。
     for ( i = 0; i < 4; i++ ) {
          gokei = 0;
          printf("NAME%d", i);
          for ( j = 0; j < 3; j++)  {
               printf("%8d", retu[i][j]);
               gokei += retu[i][j];
          }
          printf("%6d\n", gokei);
     }
     printf("\nave  ");
     for ( j = 0; j < 3; j++)  {
          gokei = 0;
          for ( i= 0; i < 4; i++) {
               gokei += retu[i][j];
          }
          heikin = gokei / 4;
          printf("%8d", heikin);
     }
     printf("\n");
}
for文の二重ループを使うことで、二次元配列を表すことができ、行と列で構成することができる。
また、配列名をretuとすることで、
retu[i][j] (i=行 j=列)と宣言することもできる。
50      70      30      →  retu[0][0]  retu[0][1]  retu[0][2]
80      40      20      →  retu[1][0]  retu[1][1]  retu[1][2]
60      10      35      →  retu[2][0]  retu[2][1]  retu[2][2]
90     100       0      →  retu[3][0]  retu[3][1]  retu[3][2]

*データ型によってメモリも変わる
例えば・・・
 データ型     変数名
 char              moji
  int                su1
  int                su2
  floot              su3

<感想>
だんだん理解することが難しくなってきているため、必ず復習をして理解してから次の授業を受けるようにしたいとおもいます。また、プログラミングも実際に動かして練習してみようと思います。

10月6日の講義

 記録担当:戎 沙羅  投稿日:2010年10月 7日(木)04時06分18秒
 
 
  ●変数(名)

コンピューターにはROMとRAMからなる、内部メモリーが存在する。

ROM(Read Only Memory):読み出しのみのメモリー。書き込みはできない。
            (電源を切っても消えないデータ)
RAM(Random Access Memory):読み出しと書き込みができるメモリーで、プログラムやデータの一時的保存に使われる。
             これが大きければ大きいほどいろいろなことができる。GBで表す。

コンピューターの内部には上記のような記憶装置があって、たくさんのデータを記憶することができる。
ここの記憶場所を識別するために番地がついている。
しかし、プログラムを書くとき、いちいち番地を指定するのは不便なので、
名前をつけて指定するようになっている。これを変数(名)という。
そしてこの変数の型に対応して、メモリーのとり方も変わる。

例):int a,b;
      整数型のデータを扱うための2つの記憶場所が割り当てられ、それらにa,bという名前がつけられている。


●配列

配列を使わない場合、たとえば100のデータを扱いたいとき、そのデータを記憶する100の番地を
こちらがひとつひとつ指定し、変数を作らなければならない。これらのデータは変数名がちがうので、ばらばらである。。
だが配列を使うことにより、
この100のデータに1つの変数名と番号をつけて、まとまりとして捉えることができる。

例)
配列不使用:変数a,b,c,d,e,f,g,・・・・・・・・
配列使用:変数a1,a2,a3,a4,a5,a6,・・・・・・・a100


●switch-case文
C言語プログラム例題11を参照


宿題:次のプログラムを作る。
     入力で指定された配列に文字をいれる。入力文字が「100」ならば終わる。
     配列のサイズは10とする。すなはち配列には10件のデータ(文字)が入る。


感想:switch-case文はやったことがないので、自分で使えるのか不安です。
   去年のプログラミングの教科書も見直しておきたいと思います。

 

9月29日の講義

 記録担当:冨田 茜  投稿日:2010年 9月29日(水)23時50分44秒
 
 
  1.先週の復習―Visual C++ 2003(以下VC)の復習(1)
 VCでプログラムをコンパイルする方法について、資料を用いて改めて解説した。


2.構造化プログラミング
          ___
フローチャート上で ||  || (二重の四角)で表すサブルーチン(別に定義してある処理)を、VCでは関数(f(x)の形)で表す。
           ̄ ̄ ̄
例: main(){
shoki();   ←このプログラムではshokiという処理とshoriという処理を行うことを示す。
shori();    shoki()やshori()をモジュール(複数の処理を関数としてまとめたもの)と呼ぶ。
  }

 また、処理を実行する際に、変数として値や文字を入力する場合がある。
 その値・文字をコンピュータが記録するために、メモリ(Memory)にアドレス(Address:1つが8bit(=1byte)分の記憶領域)を確保する必要がある。
 この変数というデータを扱うために、char,int,floatなどの型がある。

例:int a; ←aという名前(変数名)の変数は、整数を記録するために用いる、という断り書き。
    a=1;  ←変数aには1という値を代入する、という断り書き。

 関数名・変数名は自由に決められるので、扱う処理やデータに合わせて名付けると分かりやすい。


3.問題のシステム化
 「ある2つの数を入力して四則演算し、その結果を出力して下さい」という要求(問題)があったとする。
 これをシステム化(構造化)するには、以下のように考える必要がある。

 この要求を解決するためには、2つの数をコンピュータに記録するための入れ物(=Address)を2つ用意し、それぞれに数字を1つずつ入れる必要がある。
 このため、システム側が画面に以下のメッセージ(要求,促進)を表示して、利用者に入力してもらう。
 (1)「数字を入力して下さい」(利用者への要求があることを伝えるため)
 (2)「数字1を入力して下さい」(入れ物Aに記録するため)
 (3)「数字2を入力して下さい」(入れ物Bに記録するため)
 (4)「四則演算の記号(+,―,*,/)を入力して下さい」(どの演算の処理を実行するか決めるため)
 そして、(4)の入力結果を判定し、四則演算した結果(あるいはエラーを表すメッセージ)を表示する。

 大まかにまとめると、このシステムは、変数設定→メッセージ表示→値・演算の入力→演算の判定→結果の表示、という流れになる。
 この流れに合わせてプログラミングすると、要求に答えるシステムが作成できる。

 (参考:情報システム開発のシラバス→2.構造化プログラミング→直線・分岐型の複合構造
  
http://c-faculty.chuo-u.ac.jp/~saitotac/professor/struct/fukugou_html/fukugou01.htm

 この「要求をシステム化する事」が「システムをプログラミングする事」より難しいので、例を見ながら考えるなりして練習し、身につける必要がある。


4.VCの復習(2)
 VCのプログラムには #include<stdio.h> という文が冒頭に来ることが多い。
 この stdio.h は標準入出力(standard input output)というヘッダファイルを意味する。
 つまり、画面上で行う入力・出力のためのモジュールを、それぞれscanf(),printf()で表すことの断り書きである。
 printf()の実習は例題1,scanf()の実習は例題2のプログラム例をそれぞれVCでコンパイルしてみること。
 (
http://c-faculty.chuo-u.ac.jp/~saitotac/professor/hisae/vc/c.htmlを参照)


5.次週までに
 例題3を読み、データ型の重要性(何故必要なのか)を理解しておくこと。
 (
http://c-faculty.chuo-u.ac.jp/~saitotac/professor/hisae/vc/c.html#rei_3を参照)


・感想
 一部ノートの記録が分かりづらく、内容を思い出すのに苦労した箇所がありました。次回から気を付けたいと思います。
 また、プログラミング(1)及び(2)で学習した内容もあったので、ノート等を改めて見直そうと思いました。

9月22日の講義

 記録担当:古川奈津希  投稿日:2010年 9月23日(木)23時43分34秒
 
 
  ●前期でやった情報検索システムの復習

Input → Processing → Output
 ↑           ↓
  ――――――――――――

・情報検索システム

入力    → SQL → データーベースファイル
キーワード   検索    図書表
       プロクラム

Select 著者、標題、分類
 from 図書表
  where キーワード"○○";


図書表    項目=メタデータ=概念=クラス
     列

  ID  著者 標題 分類 キーワード
行  001            中大
     002            明大
     ・
   ・

・XML メタデータ     →    RDF:DC
 <著者>斎藤</著者>
  <キーワード>中大</キーワード>


●コンピュータ世界
ある問題があってコンピュータに仕事をさせたいときに
自然言語と機械の言葉を仲介して変換した言語のことを
プログラム言語という。(プログラム言語…通訳、翻訳したもの)

↓手順記述用言語=C

人間が機械を操作させる=処理
命令 コマンド Command
実行 エグゼキート Execute
手順 アルゴリズム


非手順型 SQL


●JavaScript とは
オブジェクト指向スクリプト言語のこと。
JavaScript入門 参照
http://saitolab.tamacc.chuo-u.ac.jp/professor/javascript/jscriptindex.htm

 実際に例題1をコピーしてメモ帳に貼り付け、「ファイル名.c」。

 プログラミングも少しやった。


感想
1年で習ったプログラミング内容をだいぶ忘れているところがあったので、もう1度確認したいと思います。
ついていけるか不安ですが、後期の授業も頑張りたいです。