2日目

1日目

目標

課題


課題 0

C の学習環境について

ログインする

C を利用するためには、プログラミング E 用に準備されたマシンを利用する。 この計算機は、情報センターに設置され、OS として CentOS 4.4が インストールされている。演習室からこの計算機を利用するためにはログインという操作が必要となる。 このログインのために、プログラミング Eでは、TeraTerm を利用する。

  1. [スタート]→[センター]→[インターネット]→[TeraTerm]とたどり、 teraterm を起動する。

  2. Host を「proge1.s.fpu.ac.jp」、Service を SSH、SSH Version が SSH2、 TCP port#: が 22 となっていることを確認して、[OK]をクリックする。

  3. [Security WARNING]が出た場合、fingerprint として

    79:34:57:cd:ff:c1:fd:4b:62:53:12:0a:7e:5c:e2:81

    が表示されていることを確認して、[Continue] をクリックする。 このとき、[Add this machine and its key to ...]にチェックを入れておけば、 次回からは尋ねられなくなる。

  4. User name, Passphrase に割り当てられたものを入力して、 [Use plain password to log in] にチェックした上で [OK]をクリックする

  5. Welcome to ProgE !
    
    [user99@proge1 ~]$ 
    

    となれば、成功!

    "$" より前の部分をプロンプトと呼ぶ。 プロンプトの設定を変えることもできるが、プログラミング E の授業の範囲ではないので省略。

    授業が終わってからなどの時間に聞いてくれれば対応します。

ログインパスワードを変更する

[user99@proge1 ~]$ passwd 
Changing password for user user99.
Changing password for user99
(current) UNIX password:     ←初期パスワードを入れる。
New UNIX password:           ←新しいパスワードを入れる。
Retype new UNIX password:    ←新しいパスワードをもう一度入れる。
passwd: all authentication tokens updated successfully.
単純な文字列だったり、文字列の長さが短かったりした場合や、 新しいパスワードが一致しなかった場合は、次のように表示されてパスワードは変更されない。
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: it's WAY too short
Sorry, passwords do not match

自分の名前を設定する

割り当てられたアカウントは Programming E でのみ有効なものである。 アカウントと個人の対応をつけるため、次のようにして氏名と学籍番号を登録する。

[user99@proge1 ~]$ chfn 
Changing finger information for user99.
Password:                      ←この時点で有効なパスワードを入れる
Name []: Tatoku Ogaito (ogaito) ←氏名 (アカウント名)
Office []: 
Office Phone []: 
Home Phone []: 

Finger information changed.

最低限、設定するのは Nameだけでよい。残りは登録したくなければ Enter キーを押せば良い。 登録ルールとしては () の中に情報センターのアカウント s0.... を入れること。

SMBパスワードを設定する

ProgE1 上のファイルをウィンドウズから編集するために、ProgE1 上のハードディスクを 各端末のネットワークドライブとして利用できるようにする。その際に、 ProgE1 の正規のユーザであることを証明するためのパスワードを設定する。 このパスワードをウィンドウズにログオンする際のパスワードと同じにしておくと パスワードの入力を減らすことができる。入力をめんどうと感じないのであれば、 同じにする必要はない。

[user99@proge1 ~]$ smbpasswd 
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user99

ログアウトする

ProgE1 の利用を取りやめる操作である。 デフォルトでは、logout と入力することで、 teraterm も同時に終了する。

ログアウトができることを確認したら、もう一度同じ操作をして、ログインしておく


ディスク共有を試してみる

[スタート]→[Center]→[その他]とたどると、「proge1 home」という ProgE1 のディスクを利用するためのメニューがある。 それをクリックすることで、ProgE1 のディスクを利用できるようになる。 情報処理演習室以外から利用したい場合は、自分の MO にコピーしておく必要がある。

問題がなければ、ひとつのウィンドウが開き、ProgE1 のディスクをウィンドウズから利用するための準備が整う。 初回の授業の際には、センターのアカウントと ProgE1 のアカウントの対応付けのための準備が必要なため、先走るとできないかもしれない。

teraterm のプロンプトの後ろに lsと入力して、Enter キーを押してみると 最初はなにも表示されず、いきなりプロンプトが返ってきたはずである。 確かに、ウィンドウズから ProgE1 のディスクを利用しているのだという事を確認するために、 適当なファイルもしくはフォルダ(全角文字は使わないようにすること)を作成した後、もういちど ls を実行してみる事。 作成したファイルの名前が表示されるはずである。

エディタを使ってみる

プログラミング E では、プログラムの作成に使用するエディタを特に指定はしない。 もし、Unix 系の OS を使ったことがあり、Emacs や vi を使いたければ、使用してもかまわない。 特別な経験がない場合には、今までに受講した授業で使用したエディタ(秀丸)を使えば良い。 ワープロ(Word 等)はプログラムの作成には適切ではないので使用しない事。 秀丸は C 言語のプログラムを編集する際に、少し便利な機能があること、複数の漢字コードに対応していること、 複数の改行コードに対応していることから、Windows 上からプログラムを作成するのであれば便利と思われる。

適当なエディタを使って、ProgE1 のディスク上にファイルを作成してみる。 ただし、名前を kadai00.txt とし、次の内容を記入すること。


課題 1

最初のいっぽ

kadai01というディレクトリ(フォルダ)を作成し、そこに移動する。

% mkdir kadai01
% cd kadai01
%

ウィンドウズ上でフォルダを作成した場合は、ログインした状態から一度だけ、 cd kadai01と入力すればよい。

エディタを使って、kadai01 の中に hello.cを作成する。

入力する内容は次の5行。

#include <stdio.h>
main()
{
	printf("hello world\n");
}

入力が終われば、teraterm のウィンドウで、次の通り実行する。

% cc hello.c
%

入力が正しければ何も出力されることなくプロンプトが返ってきたはずである。 ls を実行してみると、a.outというファイルができているはずである。 ls-Fオプションをつけて実行すると、*が付いているので 実行可能ファイルである事がわかる。

% ls
a.out   hello.c
% ls -F
a.out*   hello.c
%

できあがった a.out を実行してみる。実行するには ./a.outと指定する。

% ./a.out
hello world
%

となれば、成功である。


解説

C 言語では、大文字小文字を区別するので、PRINTFprintfでは 異なるものを意味する。

文の終わりには ";" を書く。ひとつの文を複数行に渡って書いたり、複数の文を一行に書いても良い。 改行は空白と同じ意味となる。

連続する「空白」はひとつの空白と同じ意味となる。 つまり、字下げ等を読みやすいように自由に行うことが可能である。

printfは与えられた内容を標準出力(普通は画面)に書き出す働きをする。


問題 1-1

与えられた内容と画面に書き出されたものを比べると、"\n"が 余分であることが分かる。この"\n"は何を表しているか?

ヒント: 実際にやってみれば良い :-)

問題 1-2

自分の名前をローマ字で画面に表示するプログラムを name.cとして作成せよ。

問題 1-3

自分の名前を漢字で画面に表示するプログラムを name2.cとして作成せよ。 実行したときに、ただしく表示されるだろうか?


表紙 2日目

tacha@tack.fukui-med.ac.jp
$Id$