応募書類を作ってみよう

本日の出席は、講義の中の作品を提出する。

レポート作成に必要な技術を復習する。 添付する文書を作成し、添付する復習を行う。 今学期は来年の演習のゼミを決める大事な学期である。 今回は自分の略歴を作成したり、 連絡を取るときに必要な事項について復習しよう。

Emacs の便利な使いかた (前期までの技術)

連絡する際に略歴データを添付してみたい。 まずは emacs の使い方の復習をする。 添付する略歴データの名前を application.dat としよう。.dat はテキストデータファイルであることを意味する拡張子である。 この中に、簡単な略歴データを作成してみよう。

ファイルを開くCtrl-x Ctrl-f
ファイルを保存するCtrl-x Ctrl-s
Emacs を分裂させるCtrl-x 5 2
Emacs の数を減らすCtrl-x 5 0

ファイルを開いたり保存する directory は ˜/Ruby である。 application.dat に、今までの経歴を書いてみよう。

1993224島根県生まれ
2011331島根県松江市立流美易高等学校卒業
201141山形県私立東北公益文科大学入学
2015331山形県私立東北公益文科大学卒業見込

添付メールの送信

次に、メールを送る準備をする。

To: には multipart 形式を練習する宛先 「本日の出席メールのアドレス」 を指定する。 Subject: には話題となるべき議題を指定する。 ここでは「専門演習の見学について」としよう。

本文には、必要な情報を記す。 メール文書では、必ず改行をして成形する。 添付ファイルがあるときには、ファイル名と概要を知らせておく。 内容の順序としては、自分が誰であるか名乗り、目的について書く。そのあと、細かい説明をする。

メールの書き方

今の場合は、面談の時間を効果的に過せるようにするため、 情報提供すべきことを書いておくとよい。 ここでは、面談をオフィスアワーに希望していることを伝え、 卒論の自分なりのテーマ、就職する希望先、後期の当面の目標、 取得単位を知らせるとよいと考えた。 何について質問を行いたいか、も予め知らせておけば、 具体的な情報を得られるとも考えた。 よって以下のように書くことにする。


学籍番号: C101555            
氏名: 公益ルビ緒
コース: 素粒子宇宙コース

ゼミについて相談したいので、面談を希望します。 

ゼミは、XXXX 系のゼミを考えています。
XXXX ゼミや、XXXX ゼミとも面談を相談しました。

環境問題と市場の関係について、調査して卒論を書いてみたいです。
就職先は、環境問題に取り組む企業を中心に回ろうと考えています。
まずは後期は、簿記とか、ミクロ経済の計算に強くなりたいです。
今年度前期を終った時点で XXX 単位を取りました。

演習を取るまでに他に必要な講義や、予め読んでおいたらよい本に
ついて、質問があります。来週 10/9 のオフィスアワーに伺いたく、
連絡しました。よろしくお願いします。

追伸: 略歴 (application.dat) を添付しました。

添付ドラフト

実際に実行し、できた様子を観察してみよう。


To: 出席メールアドレス Subject: 専門演習について From: KOEKI Rubio <ta05001@e.koeki-u.ac.jp> ----
: ------------------------------ attachments ------------------------------ Multipart/Mixed 1/ 1 Text/Plain(guess) *Cover.txt!$ 2 Text/Plain(guess) applicatio.. 3 . --------0-1-2-3-4-5-6-7-8-9----------------------------------------------

2 に application.dat が増えたら完成。Ctrl-c Ctrl-c で送信する。 ファイルが送られたかの確認は i を押す。APOP password を入れると、 受信したり送信したファイルの一覧を新しくすることができる。

メールの受信


118  09/22 To:it-r2-1007- multipart 形式の練習  

得たメールが送信メールだけであれば、送信できたことが分かる。


 119  09/22 To:it-r2-1007- multipart 形式の練習 
 120  09/22 MAILER-DAEMON@ failure notice

と 2 通あり、そのうち 1 通が MAILER-DAEMON からの failure notice (失敗のお知らせ) の場合は、宛先の綴りが間違っていた場合である。 もう一度宛先を確認して送り直そう。

it-r2-日付-目的@e.koeki-u.ac.jp という宛先に関しては、提出状況を基礎プログラミング II のトップページからたどることができる。 koeki-u.ac.jp 宛てになっていた場合は、 配達されない上にエラーメールも返って来ない。 すなわち提出状況には名前が投函されない。 もう一度送り先を確かめること。

Ruby 言語のプログラミングでの約束事

入力した西暦を年号に変換させるプログラムを作ってみよう。

Ruby でプログラムを作るときに必要なことは何だったか、思いだそう。

Ruby 言語でプログラムを書くよ!

機械は書かれたプログラムを実行したい。 そこで、人間は実行する言語が何であるかを教えておく必要がある。 また、書かれた言語は日本語 EUC であることを明記する必要がある。 今日は review_print.rb というプログラムを書いていくつか復習しよう。

#!/usr/koeki/bin/ruby #coding: euc-jp

を冒頭に書く。 Emacs で Ctrl-x Ctrl-f (Find File) で ˜/Ruby の下に year_review.rb というプログラムを書きはじめよう。

#!/usr/koeki/bin/ruby
#coding: euc-jp

書いたら Ctrl-x Ctrl-s で保存。

年号の計算

好きな歴史と歴史の年号をいくつか調べ、変換してみよう。

ファイルの属性を変えよう

保存されたファイルの属性はどうなっているだろうか。ls -l (LiSt Long formatted, 長めのリスト表示) で確認してみよう。ファイルをしまったのは ˜/Ruby の下だったので、cd (Change Directory) してから ls -l する。

%cd Ruby [˜]
%ls -l review.rb
-rw-r--r--   1 madoka   st2005     40912  9月 17日  09:44 review.rb

ファイルがない場合は、$HOME ([˜]) に直接書いたか、 他の directory の中に書きこんでしまった場合である。 kterm では、初めて書いたプログラムに対しては、

%cd Ruby
%chmod +x review_print.rb

をしなければならなかった。これは、 書いたプログラムを実行可能にする作業である。 一旦ファイルの属性を変えれば、 以降はずっとそのファイルの属性を保ったままである。 ファイルの属性が変わったかどうか ls -l で調べよう。

%ls -l review.rb[˜/Ruby]
-rwxr-xr-x   1 madoka   st2005     40912  9月 17日  09:44 review.rb*

左端のファイル属性に x がついているか確認しよう。 機械がプログラムを実行できるときは、x がついている。 実行可能ファイルには * (asterisk) をつける機能が pan や roy にはある。 これでも確認することができる。

Ruby 言語のプログラムを実行しよう

それでは実行してみよう。実行するには

%./review_print.rb[˜/Ruby]

である。何も表示されなければ OK。

このプログラムは、「Ruby でプログラムを書きます」と宣言しただけで、 何も行なわないプログラム だからである。

%./review_print.rb[˜/Ruby]
zsh: アクセス権がありません。: ./review_print.rb

と出る場合には、chmod +x をし忘れた場合である。

%./review_print.rb[˜/Ruby]
zsh: ファイルがありません。: ./review_print.rb

と出る場合には、1 行目の綴りがどこか間違っているか、 1 行目が空欄などの場合である。

Ruby は interpreter 型の言語で、interpreter のある場所を 1 行目で教えている。指定場所、名前が間違っていると、 プログラムは動かない。

プログラムに表示させよう

プログラムを実行すると Kterm に文字が出力されるようにしよう。


print("表示したい文章 \n")

または、


変数="表示したい文章"
printf("%s \n", 変数)

であった。まず print 文, printf 文の復習をしよう。


#!/usr/koeki/bin/ruby

print("西暦を年号に変換します\n")

実行しよう。 Kterm に「西暦を年号に変換します」と出力されただろうか? 何も表示されなければ、 "文字列 \n" であるか確認すること。 \n は改行文字。

変数や配列の定義はプログラムの宣言の次に書く約束なので、 2 行目以降にまず書こう。

#!/usr/koeki/bin/ruby

high_name = "流美易高校"高校名を変数 high_name に代入
high_grad = 2005高校卒業年を変数 high_grad に代入

print("西暦を年号に変換します\n")
printf("%s卒業\t%d年 (平成%d年)\n", high_name, high_grad, high_grad - 1988)

コメント文で、変数に何をしまったか記録しておくとよい。

%./review_print.rb[˜/Ruby]
西暦を年号に変換します
流美易高校卒業         2005年 (平成15年)

と出るだろうか。 文字列を代入するときには " で括る。 %s は文字列 (String) を出力するときに用いる。 \t は横幅を空ける。%d は整数値を出力するときに用いる。

生年月日も表示させるようにしてみよう。

文字列を入力するには

情報を入力して、整形して出力するように変更したい。 情報を入力して出力するには、3 つの実行文を組み合わせた。 文字列の入力を促す部分と、入力された文字列を切り取る部分、 それに文字列を使って表示や計算をする部分から成り立っていた。

STDERR.print("入力を促す文章")文字列の入力を促す
変数 = gets.chomp!入力された文字列を切り取る

入力された文字列は、数字が並んでいても、文字であった。 計算できるように、数値にするためには、to_i (TO Integer, 整数変換) あるいは to_f (TO Fraction, 小数変換) しなければならない。

変数 = gets.to_i 入力された文字列を切り取って整数に変換
変数 = gets.to_f 入力された文字列を切り取って小数に変換

入力した文字列を計算できるように変換しよう。

#!/usr/koeki/bin/ruby

high_name = "流美易高校"高校名を変数 high_name に代入する
high_grad = 2005      高校卒業年を変数 high_grad に代入する

STDERR.print("どこの大学に入学しましたか?")
univ_name = gets.chomp!
STDERR.print("西暦何年に入学しましたか?")
univ_year = gets.to_i

print("西暦を年号に変換します\n")
printf("%s卒業\t%d年 (平成%d年)\n", high_name, high_grad, high_grad - 1988)
printf("%s入学\t%d年 (平成%d年)\n", univ_name, univ_year, univ_year - 1988)

大学卒業予定年度も訊ね、表示させるように変更しよう。

切り取った文字数をどのように処理するかによって、値の型変換が変わる。 変数の中身に合わせて printf (PRINT Formatted) の表示も変わる。

to_i %d 整数値
to_f %f 小数値
to_s %s 文字列

小数は、%f の間の数値を工夫しないと「単なる数値の羅列」になるので、 表示の美しさを考えるようにしよう。

きっちり揃えるには

本学の文字数と、出身高校の年号を揃えたい。 文字列と文字列の間隔を計算して空けるにはどうすればよいか、思いだそう。

%整数s整数分だけ箱を空けて、右詰めに文字列を表示
%整数d整数分だけ箱を空けて、右詰めに文字列を表示
%整数.整数f全体で空ける箱の数.そのうちの小数点以下の箱の数
%負の整数s整数分だけ箱を空けて、左詰めに文字列を表示
%負の整数d整数分だけ箱を空けて、左詰めに文字列を表示

全角文字は半角 2 文字分であった 。 学校名の文字列は全角で 20 文字分取ることにし、 左詰めに表示させてみよう。


:
printf("%-20s卒業\t%10d年 (平成%2d年)\n", high_name, high_grad, high_grad - 1988) printf("%-20s入学\t%10d年 (平成%2d年)\n", univ_name, univ_year, univ_year - 1988)

実行結果が変化することを確認しよう。

%./review_print.rb
[˜/Ruby]

とすると

流美易高校卒業2005年(平成17年)
東北公益文科大学入学2008年(平成20年)

を得る。

数値を調べよう

プログラムを使って数値を計算することができるが、 この計算が一般にも成り立つものであるのかどうか、 調べる必要がある。 電卓 xcalc を呼び出すこともできるが、 bc -l コマンドを使うと、 レポート作成時にはどのように計算したかを示すこともでき、 便利であった。

%bc -l
1990 + 15Enter
2005
1990 + 18Enter
2008
quit

終了は quit とする。