第2回目 プログラミング環境の整備(4/17)

■ コンソール

起動方法
kterm & カレントディレクトリを保持したままコンソールを開くことができる.
kterm -sl 20000 & スクロール表示を過去20000行まで可能にする

■ ファイル管理

用語
基本コマンド
便利コマンド(使用例)

□ 演習1:ディレクトリの整理

  1. 自分のホームディレクトリに,「enshu3」を作る.
  2. 「enshu3」に移動する
  3. N回目の演習を行うためのディレクトリ「lectN」を作る

■ エディタ

エディタの種類
vi: 機能がシンプル.余計なコードが入力されない.rootユーザは必須
emacs: mulexemacsもほぼ同じエディタ.Windows版も存在.vi と対照的で多機能.プログラマーには必須
emacs の使い方
起動方法: コンソール上で, emacs &
操作コマンド:主要なものの一覧表
プログラミングの準備
  1. kterm を起動する
  2. ソースファイルを置くディレクトリに移動する
  3. emacs を起動する
※ emacs は幾つも起動しないこと.複数のソースを並べて読みたいときは,マルチウインドウを使うこと.
プログラミング環境の例

■ コンパイル

gcc hogehoge.c hogehoge.c をコンパイルする.
gcc -Wall hogehoge.c 警告つきで,hogehoge.c をコンパイルする.バグを減らすために有効.C言語プログラミングに慣れてからでよい.

□ 演習2:以下のプログラムを,emacs により入力し,動作確認せよ.

/* list0201.c */
/* 10個の整数を入力し,画面に出力するプログラム */
#include<stdio.h>
main()
{
  int x[10];/* 整数を格納する場所が,10個だけ作られる */
  int i;    /* 10個ぶんを数えるためのカウンタ */

  for(i=0;i<10;i++){
    printf(”%d個目の数を入力してください x[%d]= ”,i,i);
    scanf(”%d”,&x[i]);
  }

  for(i=0;i<10;i++){
    printf(” %d”,x[i]);
  }
  printf(”\n”); /* 最後に改行する */
}
emacs によるファイル入力のコツ
  1. C-x C-f によりファイル名を入力する(スペースキーにより補完可能)
  2. 拡張子に c があると,C言語のソースファイルをエディットするための補助機能が働く
    • TABキーを押すと適切なインデントが入力される
    • とじ括弧 } の対応関係が確認できる
  3. C-x C-s によりセーブする
  4. 拡張子が c~ というファイルが作られる.これはバックアップ用のファイル.不要ならば消してよい.

□ 演習3:list0201.c を基に,以下のプログラムをそれぞれ作成せよ.

  1. 入力と逆順で表示せよ.⇒ prac0201.c
  2. 入力値リスト x の平均値mを表示せよ.⇒ prac0202.c
  3. 次の式で分散Vを計算し表示せよ.⇒ prac0203.c
                    N
          V = (1/N)*Σ(xk - m)^2
                    k=1
    
    (ただし,Nは入力数,xkは list0201.c でいう x[i],mは平均値)
  4. xは0以上の整数が入力されるものとする. xの最大値が1になるように,xの値を正規化せよ.そして表示せよ.⇒ prac0204.c
    たとえば,5個の入力{0,2,5,20,10}において,最大値は 20 である.この正規化では,全体を 20 で割り,{0.0, 0.1, 0.25, 1.0, 0.5}へと変換する.
  5. prac0204.c の正規化された値を,下記の要領で横方向の棒グラフで表示せよ.
    グラフの横方向の表示幅は,整数型変数 size で指定されているものとする.数値が 0 となる所は「|」を表示し縦軸を描く.棒グラフは「=」を連続表示させて描く.
    たとえば,nが0のとき,「|」のみを表示し,nが0.5のとき「|」を表示しその横にsize/2個だけ「=」を表示する.
    たとえば,入力数を5個とした場合であるが,入力{0,2,5,20,10}に対して,以下のように表示すること(size=20).
    |
    |===
    |=====
    |====================
    |==========
    
    以上を,prac0204.c を改造して,正規化した値の代りにグラフを表示せよ.⇒ prac0205.c

■ 宿題

以下のいずれか一方のプログラムを作成し動作を確認せよ.
以下のものをA4のレポート用紙に記入し提出せよ.
宿題は,次回の授業開始時に集める.

◆ 呼出し

以下のファイルに自分の名前が無い者は,徳久(tokuhisa@ike.tottori-u.ac.jp)まで「学籍番号 名前 ローマ字名前 ローマ字性 住所(半分ウソでも良い) 生年月日(半分ウソでも良い) メールアドレス」を記入したメールを出すこと.
⇒ 演習3練習用の名簿ファイル
(c) Masato TOKUHISA, 2003, April. 15