pan では 2 種類のパスワードがある。 ひとつは電子メールを取り込むときに必要な APOP password、もうひとつは login するときの Login password である。
メールをみるときのパスワードは、 apoppasswd でリニューアル可能である。 万が一忘れたときも、 apoppasswd を実行して、新しいものに変更してしまえばよい。
%apoppasswdEnter Enter APOP Password:表示されない Again APOP Password:表示されない Updated APOP password successfully.successfuly なので成功
Login password を変更するコマンドは pswd である。 roy に入ったあと、 Kterm で変更しよう。
古いパスワードを入れたあと、考えてきたパスワードを入力する。 2 回目は確認のためなので、もう一度同じパスワードを入力する。 Login password は忘れないこと! 1, 2 階のパスワードが 同じ パスワードになる。
%pswdEnter
どちらも ときどき 変更しておくとよい。 これらは小さいことながらも、セキュリティの実践の第一歩である。
身近なところで使われているパスワードのしくみが、 どんなものか書き出してみよ。
file を整頓するには、directory を作ると便利である。 Unix に「ゴミ箱」はない。
mkdir [directory 名] | directory を作る |
rmdir [directory 名] | directory を消す |
ls -la [directory 名] | 指定した directory にどんな file があるか確認する |
ls -la [file 名] | file があるか確認する |
rm [file 名] | file を消す |
pwd | どこにいるかを表示する |
cd [directory 名] | directory に移動する |
which command 名 | 知っている command を探す |
他の Window を開くようなプログラムを使う場合 (= アプリケーションを使う場合)、 プロンプト % に戻って来るためには、 & をつける。 emacs & や firefox & は覚えておこう。
Emacs は、指定した directory にファイルを作ることができる Editor である。 一行書き終わったら保存する 癖をつけよう。
Ctrl-x Ctrl-f | Emacs でファイルを作る |
Ctrl-x Ctrl-s | Emacs でファイルを保存する |
Compiler type (コンパイラ型) | C 言語など |
Interpreter type (インタプリタ型) | Ruby 言語など |
インタプリタ ruby を用いて、 プログラムを実行するプログラミング言語。 実行できなければエラーを出す。
インタプリタ: プログラムを 1 行ずつ実行するソフトウェア
目的のために、すでにある機能を使いながらプログラミングするという考え方のこと。 例えば、年賀状の印刷には、 ワードプロセッサなどにある、定型印刷機能を使う。 使用時にユーザはソフトウェアの言語を理解している必要は全くない。
Object 指向: 「ユーザは機能の仕組みを必ずしも全て理解しておく必要がない」という考え方
すでにある機能は method と呼ぶ。 他のプログラミング言語で書くと、ソースコードの量は増える。
Ruby 言語は記述する文字数が少なく、 計算機のしくみを知らなくともプログラムが書けるので、初心者向きである。 また、日本人が作ったため、日本語で情報を発信したり、 日本語に関する分析を行うことに長けている。
Ruby, インタプリタ, オブジェクト指向 などの言葉を調べてみよう。
Login したときには、 $HOME directory にいる。プログラミングを行うときには、 directory Ruby 内に移動する。
%cd Ruby[˜] % [˜/Ruby]
右端に [˜/Ruby] と見える場合は、移動完了。
もし $HOME directory に戻りたい場合には
%cd [˜/Ruby]% [˜]
とする。右端に [˜] と見える場合は、移動完了。
プログラムの作成と実行は以下の手順で行う。
Ctrl -x Ctrl-f で、˜/Ruby/プログラム.rb とし、新規作成する。 プログラムの一番上(第 1 行目)に
#!/usr/koeki/bin/ruby
と書く。この行を書くことでプログラムにインタプリタ ruby の在処を教えている。
# coding: euc-jp
は、プログラムの中で日本語を使うことを設定する一文。 Kterm で
%chmod +x プログラム.rb
とすると実行可能なプログラムとなる。実行可能とは
%./プログラム.rb
とKterm に入力するとプログラムが実行されるという意味である。 chmod は、Windows でのプロパティを変更することと同じ なので、 プログラムテスト時に 1 度のみ 必要な作業である。実行可能なプログラムであるか調べるには、
%ls -l プログラム.rb
とする。右端に -rwxr-xr-x と表示されていると実行可能である。 実行文の文法が正しくないプログラムについては、 間違っている行でエラーメッセージを出して止まる。
プログラムの構造は次のようにして作る。
ここでは自己紹介する実行文をプログラムにしよう。 Emacs で編集し、Kterm で実行する。 Ruby directory の中で、 print_intro.rb というプログラムを新規作成しよう。
#!/usr/koeki/bin/ruby
# coding: euc-jp
print("ルビ緒です。\n")
print("情報系です。\n")
print("スウェーデン語選択です。\n")
print
文という実行文、 "
内を出力する\n
("\n")
の中に表示する文を書く。\
は backslash と呼ぶ。\
n は escape sequence の一つ。
Escape Sequence は、文字に色や音をつける効果をもたらす文字列のことである。
\n
が抜けると、
文字が出力されたかどうかわからない
ので注意する。
計算機に予想をさせよう。 人間があらかじめプログラムに数値を代入しておき、 解答は計算機が行うことにする。
計算機に計算させる手順は以下のとおりである。
プログラムを作ることになった理由は何だろうか。
計算結果を繰り返して使うときには、 計算結果をどこかにしまっておく必要がある。 変数の名前はプログラマが勝手につけることができる。ただし、 プログラムは誰がみても分かるように作ることが求められているので、 変数の名前は中身が何なのかすぐ判別できる ものをつける。
繰り返しには、どのような仕組みが必要だろうか。
while -- end
while
文といい、条件を満たしている間は計算する。反復文のひとつ。
printf
printf
文といい、変数の中身を出力する。変数の種類によって変換指定子は異なる。
変数と変換指定子の数のは同じで、一つの文章内ならば以下のような構造になっている。
printf("変換指定子",変数)
printf("変換指定子1 変換指定子2", 変数1, 変数2)
printf("変換指定子1 変換指定子2 変換指定子3", 変数1, 変数2, 変数3)
2 つ以上 1 行に表示させたいときは、変換指定子を並べ、
,
で次々に変数を並べる。
変換指定子の数と変数の数は同じ
でなければならない。
while 繰り返しを行ってよい範囲
: 繰り返しの動作に関する実行文
end
while
のすぐ後に、条件をつける。
少々腹周りが気になるようになった男性サラリーマン。 去年のサイズは 75 cm であったが、今年は 78 cm となっていた。 したがって 1 年間のウェストの増加率は年 4 % となった。
78 / 75 = 1.04 = 104(%)
この生活習慣を続けた場合、 メタボリックシンドロームと判断されるのは、何年後になるか。 男性がメタボリックシンドロームと判断されるのは、 腹周りが 85 cm 以上とされている。 while_meta.rb
#!/usr/koeki/bin/ruby # coding: euc-jp year = 0 waist = waist0 = 78 waistmax = 85 while waist < waistmax
printf("%d 年後 \t %f [cm]\n", year += 1, waist *= 1.04)
end printf("%d 年後には 85 [cm] を %f [cm] 越えます。\n", year, waist - 85)
変数の解説は以下のとおり。
実行文の解説は以下のとおり。
実際に手計算して確かめてみよう。
変数にしまっておいたメッセージを表示させてみよう。 メッセージは数値ではないので、文字列である。 printf_intro.rb:
#!/usr/koeki/bin/ruby
# coding: euc-jp
name = "ルビ緒"
group = "情報"
lang = "スウェーデン"
printf("%sです。\n",name)
printf("%s系です。\n",group)
printf("%s語選択です。\n",lang)
変数の解説は以下のとおり。
name, group, lang
"
(double quotation) で括られている。printf("変換指定子",変数)
printf
文。
変数を使って表示するときに用いる。%s
計算機は
"
をつけて変数に代入されたもの全てを文字列であると判断する。
変数に入れたものを表示するには、
printf
文を使う。
,
(comma) でつないで、
変数を指定する。
上記のプログラムにおいて、
%-10s
と変更するとどのように表示が変わるか。
またその表示はどのように使われるだろうか。
ファイルには 3 つの許可を持たせることができる。
ファイルの属性は、 ls コマンドをオプションを使って実行すると分かる。 directory Ruby の下で、 ls コマンドを実行してみよう。
%ls -l
とすると r,w,x,- という文字がファイル名の左端に現れる。
%ls -l
-rw-r--r-- 1 madoka users 189 Jun 28 2005 プログラム.rb
-rw-r--r-- 1 madoka users 193 Jun 22 2005 プログラム2.rb
-rwxr-xr-x 1 madoka users 110 Jun 12 2005 プログラム3.rb*
上記のリストで、どれが実行可能であるだろうか。 根拠とともに答えよ。
ヒント: 自作のプログラムについて、
%ls -l
を chmod +x する前後で行い、結果を調べてみる。 なお、 x は実行可能(eXecute)の x を表す。
ls した結果、 * がファイル名の横についていることでも、 実行可能であることがわかる。
それでは r, w は何であるだろうか、予想し、調べよ。
名簿の氏名は左寄せであり、簿記では金額は右寄せに記入する。
printf
文では出力方法の工夫が可能である。
printf
文は、
数値や、文字列を表示させるのに使う。語源は、
"PRINT Formatted" すなわち形式を守った出力を行う。
%d には整数(decimal)値を与える。その間に数字を入れると、 その字数だけ桁を空ける。
%3d なら %d の部分の整数値に対して 3 桁用意して表示する。
変数
mice
に
100
を代入する。
printf
文で出力するとき、
%d
と
%5d
で出力させるとどのように異なるか、答えよ。
小数点(floating point number)表示したい場合は
%f
を用いる。
%用意する桁.小数点以下の桁f
という format を使う。 小数第 2 位まで表示させたいなら、
%10.2f
とする。あらかじめ数値を表示するために確保した 10 桁のうち 2 桁を小数のために使う表示を指定したことになる。
整数の桁数は.を除いた 8 - 1 = 7 桁分である。
プログラム while_meta.rb を小数点第 1 位まで結果を見せるよう改良したい。 どこをどのように改良すればよいか、 答えよ。
Escape Sequence は出力方法を工夫するためにあるが、まずは代表的なものを学ぶ。
\t |
Tab を表す Escape Sequence | 少し間隔を空けて表示 |
\n |
改行を表す Escape Sequence | 改行して表示 |
変数として
duck = 100, weight = 0.7
を用いる。
次の文章を、printf
文をうまく使って表示せよ。
あひるが 100 羽いると、70 kg の人間を持ち上げることができることができる。 このとき、あひるは平均0.7 kg/羽分を持ち上げていることになる。
カットアンドペーストは、Kterm の実行結果を貼りつけるときに使う。 マウスを Kterm に持っていき、ドラッグし、範囲を選択する。 Emacs で中央のボタンを押すと、貼りつけることができる。 もしも貼りつける場所を間違えた場合は
Ctrl-x uとする。Undo! と表示されれば成功。
Emacs でカーソルを貼りつけたい
Ctrl-x i
を実行すると、 ミニバッファに貼りつけたいファイル名を指定するよう指示される。 プログラムを貼りつけるので、
Insert file:˜/Ruby/プログラム.rb
とする。 プログラムは $HOME の下の directory Ruby の下にあるので、directory と file 名を指定する必要がある。
Emacs では以下の方法が確実である。
部分的に必要な場合は、もう一枚 Emacs を増やし、それをコピーする。
出席課題をするのに Emacs での実行が必要、あるいはレポートを書くために、 もとにしたいプログラムがある、などの理由で Emacs を増やしたいときには、 ミニバッファで、
Ctrl-x 5 2
とすると、Emacs が増える。
何度も実行するときに便利である。
Ctrl-1 | Emacs |
Ctrl-2 | Kterm |
Ctrl-3 | Console |
Ctrl-4 | Firefox |
変数に数値を代入するとき、
変数 "代入演算子"= 数値
を使うことがある。これは、
変数 = 変数 "代入演算子" 数値
と等価である。前者で使われる代入演算子を複合代入演算子、 後者で使われる代入演算子を単純代入演算子と呼ぶ。
代入演算子は、足し算、引き算、かけ算、割り算、余りの 5 種類がある。
x += 10 |
x = x + 10 |
x -= 10 |
x = x - 10 |
x *= 10 |
x = x * 10 |
x /= 10 |
x = x / 10 |
x %= 10 |
x = x % 10 |
複合代入演算子の解説は以下のとおり。
+=
-=
*=
/=
%=
計算機は、人間が入力した計算をそのまま実行する。 複雑な計算や大きな数字も人間の手計算に比べると簡単に済む。 しかし、ここには大きなワナがある。
ということで、手計算で実行を追いかけるのは当たり前である。 方法はいくつかあるが、 まずは UNIX で計算するコマンドを体験してみよう。
%bc -l
3 * 2 + 2 * 4
14
quit
終了は quit である。 実行した計算を検証することは、考察では大事なことである。 べき計算のときには hat ^ を使う。3 のべきを計算すると次のようになる。
%bc -l
3^2
9
3^3
27
quit