第7回 専門演習紹介 レポート課題 氏名: 村上茉奈美 学籍番号: C1111352 語学クラス: 英語3 コース: 社会福祉 1. A. a. 仕様書(siyousyo.txt) ☆仕様書☆ 1. 企画の意図 私達がこれから就職するにあたって、パソコンのスキルが不可欠だとよく耳 にする。実際に企業でも、文書を作成するだけでなく、さまざまな場面でパ ソコンが用いられている。 そこで、基本的な「文書作成や表計算」に関しての知識を増やしてもらうた めのプログラムを作成したいと思い、今回の企画に至った。 今回は… (1) 表計算ソフトの関数の意味と入力の仕方 を表示 (2) 「何の計算をしたいか」を入力することによって、表計算の関数が出る (3) 表計算及びワープロソフトの用語解説 をする。 このプログラムは、私達だけでなく、幅広い年代の人に使ってもらいたい。 そして、多くの人の「文書作成や表計算」に役立ててもらいたい。 2. 使い方 ● kotoba.rb(プログラム本体) ● kansuu.dat(データファイル) ● word.dat(データファイル) 上記の3つを同じディレクトリにダウンロードしてください。 KTerm で cd (保存先のディレクトリ) と入力後 chmod + x kotoba.rb と入力したあとに ./kotoba.rb と入力し、Return を押すと、プログラムが実行されます。 3. プログラム作成前と作成後の課題 当初は 1 を選択した場合に、ハッシュの内容を表示させる順番を ランダムにしようと考えていた。 作成途中で、やはりアルファベット順に並べた方が見やすく、かつ体裁が 綺麗だと気付き、並べ替えを行おうとした。 しかし、授業では数字の降順・昇順での並べ替えしかやっていなかったため、 アルファベット順に並べ替える方法が分からなかった。 時間をかけて方法を考え、数字の降順・昇順と同じ方法でやってみると、綺 麗に表示された。 今回は、参考にしている文献の関係で関数・用語の数ともに限られた数に なったかもしれない。 それについては、今後随時更新していきたい。 ※プログラムを扱うにあたって※ このプログラムは村上 茉奈美が著作権を保有しています。 プログラムを入手・改変・再配布は自由に行っても構いません。 しかし、このプログラムを取り扱って生じた問題は、 一切責任を負いませんのでご了承ください。 このプログラムに対するご意見・ご感想は下記までご連絡ください。 c111135@g.koeki-u.ac.jp b. 1. 考えた設定 (1)表計算ソフトの関数を入力すると、その意味と入力の仕方が 表示される (2)「何の計算をしたいか」を入力することによって、表計算ソフトの 関数が表示される (3)表計算及びワープロソフトの用語を入力すると、その意味が 表示される 上記の3つから選択し、実行することができるプログラム (kotoba.rb)を作成。 2. 作成したデータ及びプログラム (kansuu.dat) 1 SUM 合計値 合計 SUM(範囲指定) 2 AVERAGE 平均値 平均 AVERAGE(参照するセルの範囲) 3 MDETERM 行列式値 行列 MDETERM(行列) 4 MINVERSE 逆行列 行列 MINVERSE(行列) 5 MMULT 行列のかけ算 行列 MMULT(行列1,行列2) 6 ATANH 双曲線逆正接 双曲線 ATANH(数値) 7 ACOSH 双曲線逆余弦 双曲線 ACOSH(数値) 8 ASINH 双曲線逆正弦 双曲線 ASINH(数値) 9 POWER 底を指数とするべき乗 べき乗 POWER(底,指数) 10 EXP eを底とするべき乗 べき乗 EXP(数値) 11 SQRT 平方根 平方根 SQRT(数値) 12 UPPER 英字の大文字変換 大文字・小文字変換 UPPER("文字列") 13 LOWER 英字の小文字変換 大文字・小文字変換 LOWER("文字列") 14 PROPER 頭文字の大文字変換 大文字・小文字変換 PROPER("文字列") 15 ASC 全角の半角変換 全角・半角変換 ASC("文字列") 16 JIS 半角の全角変換 全角・半角変換 JIS("文字列") 17 LENB 文字列バイト長 文字列長 LENB("文字列") 18 LEN 文字列長 文字列長 LEN("文字列") 19 SEARCH 文字列内検索 文字列内検索 SEARCH("検索ワード","対象文字列","検索開始位置") 20 FIND 文字列内検索 文字列内検索 FIND("検索ワード","対象文字列","検索開始位置") 21 MAX 最大値 最大値・最小値 MAX(範囲指定) 22 MIN 最小値 最大値・最小値 MIN(範囲指定) 23 MAXA 文字列考慮し、最大値 最大値・最小値 MAXA(範囲指定) 24 MINA 文字列考慮し、最小値 最大値・最小値 MINA(範囲指定) 25 ABS 正負を省き、絶対値 絶対値 ABS(数値) 26 ODD 端数を丸めて、奇数 端数 ODD(数値) 27 EVEN 端数を丸めて、偶数 端数 EVEN(数値) 28 ROUND 端数の四捨五入 端数 ROUND(数値,小数桁数) 29 ROUNDDOWN 端数の切り下げ 端数 ROUNDDOWN(数値,小数桁数) 30 ROUNDUP 端数の切り上げ 端数 ROUNDUP(数値,小数桁数) 31 TODAY 日付 日時 TODAY(入力不要) 32 NOW 現在日時 日時 NOW(入力不要) 33 YEAR 年 日時 YEAR(日付を表す文字列(年・月・日の順)) 34 MONTH 月 日時 MONTH(日付を表す文字列(年・月・日の順)) 35 DAY 日 日時 DAY(日付を表す文字列(年・月・日の順)) 36 HOUR 時間 時間 HOUR(時間を表す文字列(時・分・秒の順)) 37 MINUTE 分 時間 MINUTE(時間を表す文字列(時・分・秒の順)) 38 SECOND 秒 時間 SECOND(時間を表す文字列(時・分・秒の順)) 39 DATEVALUE 内部日付番号 日時 DATEVALUE(年月日を表す文字列(年・月・日の順)) 40 DATE 日付 日時 DATE(年,月,日) 41 AVERAGEA 文字列含む平均値 平均 AVERAGEA(参照するセルの範囲) 42 COLUMN 列番号 列・行番号 COLUMN(参照先のセル) 43 ROW 行番号 列・行番号 ROW(参照先のセル) 44 INDEX 指定したセルの値 指定セルの値 INDEX(範囲指定,行番号,列番号) 45 IF 条件式で真偽判定 条件式 IF(条件式,真の場合の値,偽の場合の値) 46 OR 「または」 条件式 OR(条件式1,条件式2) 47 AND 「かつ」 条件式 AND(条件式1,条件式2) 48 COUNTA 数値と文字列の個数 数値・文字列の個数 COUNTA(始点セル:終点セル) 49 COUNT 数値の個数 数値・文字列の個数 COUNT(始点セル:終点セル) 50 DEGREES 角度変換(度) 角度変換 DEGREES(引数(セルを参照)) 51 RADIANS 角度変換(ラジアン) 角度変換 RADIANS(引数(セルを参照)) 52 LN eを底として自然対数 対数 LN(引数(セルを参照)) 53 LOG 任意の底に対する対数 対数 LOG(引数,底) 54 INT 数値を丸めて整数 数値を丸めて整数 INT(引数(セルを参照)) 55 MOD 割り算の余り 除算 MOD(割られる数,割る数) 56 QUOTIENT 割り算の商の整数部 除算 QUOTIENT(割られる数,割る数) 57 TANH 双曲線正接 双曲線 TANH(引数(セルを参照)) 58 COSH 双曲線余弦 双曲線 COSH(引数(セルを参照)) 59 SINH 双曲線正弦 双曲線 SINH(引数(セルを参照)) 60 ATAN 逆正接 正接・余弦・正弦 ATAN(引数(-1<0<1の範囲内(セルを参照))) 61 ACOS 逆余弦 正接・余弦・正弦 ACOS(引数(-1<0<1の範囲内(セルを参照))) 62 ASIN 逆正弦 正接・余弦・正弦 ASIN(引数(-1<0<1の範囲内(セルを参照))) 63 TAN 正接(タンジェント) 正接・余弦・正弦 TAN(引数(セルを参照(角度の単位はラジアン))) 64 COS 余弦(コサイン) 正接・余弦・正弦 COS(引数(セルを参照(角度の単位はラジアン))) 65 SIN 正弦(サイン) 正接・余弦・正弦 SIN(引数(セルを参照(角度の単位はラジアン))) 66 PI 円周率 円周率 PI(入力不要(有効数字は15桁)) 参考文献: http://ubweb.info/pcmemo/kiji/index.html パソコンメモ カテゴリ別記事一覧 2012年11月9日 閲覧 (word.dat) 1 セル 個々のマス目 2 文字列 文字の集合 3 アウトライン リスト形式になっているデータの詳細部分の表示と非表示を切り替えるための集計機能 4 ワークシート データの入力や編集を行うためのマス目状の作業スペース 5 ウィンドウ 領域 6 オートカルク セルに計算式を入力せずに、集計や計算結果を確認することができる機能 7 オートフィルタ 特定の文字や数値を含むレコードを抽出する機能 8 レコード データの1件分 9 フィールド 個々のデータに割り当てられた単位 10 オートフォーマット 書式や文字の表記などに関する設定を簡略化した機能 11 くし刺し演算 複数のワークシートのセルを参照して集計する方法 12 グラフウィザード グラフを簡単に作成するための補助機能 13 ソルバー 複数の変数を含む数式において、目標の数値を得るための、最適な変数の値を求められる機能 14 ブック 記録されたファイル 15 字送り 文字の移動量 16 インサート データの中の任意の箇所に、新たにデータを割り込ませて入力する 17 インデント 字下げ機能、字下げ行為 18 クリップアート 文書に貼られる小さな画像データ 19 スタイルシート 文書のデザインに関する情報をまとめたもの 20 ノンブル 文書のページ番号 21 ルーラ メモリの入ったライン 22 割付 文字の並ぶ間隔を調整すること 23 禁則 表示の見た目を調整するためのルール 24 罫線 縦横の線 25 行送り 行を送る際の移動距離 26 上付き文字 文字の横に上揃えで並べられた小さな文字 27 上詰め 文字をセル内の上端に揃えること 28 リーダー 箇条書きで項目名と内容をつなげる線 参考文献: http://www.sophia-it.com/ BINARY IT用語辞典 2012年11月10日 閲覧 (kotoba.rb) #!/usr/koeki/bin/ruby #coding: euc-jp def message(a) # message という関数を定義、a は仮引数 print("終了する場合は Ctrl + D を入力してください。\n") print("続けて入力する場合は Return を押してください。\n") end #def に対する end(終わり) def bun(b) # bunという関数を定義、b は仮引数 print("☆" * 25) #☆ を * 個数 で連続して並べる print("\nこれで終了します。\n") print("今後もこのプログラムを活かしてください!\n") print("☆" * 25) print("\n") end #def に対するend(終わり) print("\n") #改行文字 print("表計算やワープロソフトの関数や用語について学びます!\n") print("\n") STDERR.print("[1]表計算ソフトの関数を入力して、意味と入力の仕方を調べる\n") STDERR.print("[2]「何の計算をしたいか」を入力して、表計算ソフトの関数を調べる\n") STDERR.print("[3]表計算及びワープロソフトの用語を入力して、意味を調べる\n") print("\n") STDERR.print("あなたが調べたいことの番号を入力してください。: ") #入力を促す answer = gets.to_i #入力された文字列を整数にして answer に取りこむ kansuu = Hash.new #新しく kansuu というハッシュを作る if answer == 1 #もし answer が 1 だったら print("\n") print("下記には、表計算ソフトの関数のリストを表示します。\n") print("関数はアルファベット順に並べています。\n") print("\n") #以下、Hashの設定 kansuu[1] = "SUM" kansuu[2] = "AVERAGE" kansuu[3] = "MDETERM" kansuu[4] = "MINVERSE" kansuu[5] = "MMULT" kansuu[6] = "ATANH" kansuu[7] = "ACOSH" kansuu[8] = "ASINH" kansuu[9] = "POWER" kansuu[10] = "EXP" kansuu[11] = "SQRT" kansuu[12] = "UPPER" kansuu[13] = "LOWER" kansuu[14] = "PROPER" kansuu[15] = "ASC" kansuu[16] = "JIS" kansuu[17] = "LENB" kansuu[18] = "LEN" kansuu[19] = "SEARCH" kansuu[20] = "FIND" kansuu[21] = "MAX" kansuu[22] = "MIN" kansuu[23] = "MAXA" kansuu[24] = "MINA" kansuu[25] = "ABS" kansuu[26] = "ODD" kansuu[27] = "EVEN" kansuu[28] = "ROUND" kansuu[29] = "ROUNDDOWN" kansuu[30] = "ROUNDUP" kansuu[31] = "TODAY" kansuu[32] = "NOW" kansuu[33] = "YEAR" kansuu[34] = "MONTH" kansuu[35] = "DAY" kansuu[36] = "HOUR" kansuu[37] = "MINUTE" kansuu[38] = "SECOND" kansuu[39] = "DATEVALUE" kansuu[40] = "DATE" kansuu[41] = "AVERAGEA" kansuu[42] = "COLUMN" kansuu[43] = "ROW" kansuu[44] = "INDEX" kansuu[45] = "IF" kansuu[46] = "OR" kansuu[47] = "AND" kansuu[48] = "COUNTA" kansuu[49] = "COUNT" kansuu[50] = "DEGREES" kansuu[51] = "RADIANS" kansuu[52] = "LN" kansuu[53] = "LOG" kansuu[54] = "INT" kansuu[55] = "MOD" kansuu[56] = "QUOTIENT" kansuu[57] = "TANH" kansuu[58] = "COSH" kansuu[59] = "SINH" kansuu[60] = "ATAN" kansuu[61] = "ACOS" kansuu[62] = "ASIN" kansuu[63] = "TAN" kansuu[64] = "COS" kansuu[65] = "SIN" kansuu[66] = "PI" kansuu.keys.sort{|a,b| #key を並べ替える(sort) kansuu[a] <=> kansuu[b] #並べ替えに使用したい個所の指定 <=> 並べ替え後の該当個所 }.each{|c| #配列の要素を1行ずつ c にしまう printf("[%d]\t%s\n", c, kansuu[c]) } while true #繰り返し STDERR.print("\n調べたい関数の番号を入力してください。: ") #入力を促す kazu = gets.to_i #入力された文字列を整数にして kazu に取りこむ open("kansuu.dat","r") do |hyou| #kansuu.dat というファイルを読み込み専用で開いて #データを hyou に取りこむ while keisan = hyou.gets #hyou に入っているデータを keisan に取りこむ if /(\d+)\s(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~ keisan #もし keisan が #数値 空白 文字列 空白 文字列 空白 文字列 空白 文字列 だったら if kansuu[kazu] == $2 #もし kansuu[kazu] が $2と等しいならば print("-" * 70) print("\n") printf("関数: %s \n", $2) printf("意味: %s を出す \n", $3) printf("入力の仕方: =%s \n", $5) print("-" * 70) print("\n") end #if に対するend(終わり) end #if に対するend(終わり) end #while に対するend(終わり) end #open に対するend(終わり) print("\n") message(kazu) #関数 message を呼び出す owari = gets #owari をとってくる if owari == nil #もし owari がCtrl + D だったら bun(kazu) #関数 bun を呼び出す break #繰り返しから抜ける end #if に対するend(終わり) end #while true に対するend(終わり) elsif answer == 2 #answer が 2 だったら print("\n") print("下記には、「何について計算をしたいか」の分類を表示します。\n") print("\n") want = Hash.new #新しく want というハッシュを作る #以下、Hashの設定 want[1] = "合計" want[2] = "平均" want[3] = "行列" want[4] = "双曲線" want[5] = "べき乗" want[6] = "平方根" want[7] = "大文字・小文字変換" want[8] = "全角・半角変換" want[9] = "文字列長" want[10] = "文字列内検索" want[11] = "最大値・最小値" want[12] = "絶対値" want[13] = "端数" want[14] = "日時" want[15] = "時間" want[16] = "列・行番号" want[17] = "指定セルの値" want[18] = "条件式" want[19] = "数値・文字列の個数" want[20] = "角度変換" want[21] = "対数" want[22] = "数値を丸めて整数" want[23] = "除算" want[24] = "正接・余弦・正弦" want[25] = "円周率" want.keys.each{|keisan| #配列の要素を1行ずつ keisan にしまう printf("[%d]\t%s\n", keisan, want[keisan])} number = Array.new #新しく number という配列を作る houhou = Array.new #新しく houhou という配列を作る motomeru = Array.new #新しくmotomeru という配列を作る while true #繰り返し STDERR.print("\n調べたい計算の番号を入力してください。: ") #入力を促す kan = gets.to_i #入力された文字列を整数にして kan に取りこむ open("kansuu.dat","r") do |hyou| #kansuu.dat というファイルを読み込み専用で開いて #データを hyou に取りこむ i = 0 #候補を数える while keisan = hyou.gets #hyou に入っているデータを keisan に取りこむ if /(\d+)\s(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~ keisan #もし keisan が #数値 空白 文字列 空白 文字列 空白 文字列 空白 文字列 だったら if want[kan] == $4 #もしwant[kan] が $4と等しいならば number[i] = $2 #number[i] は $2 houhou[i]= $5 #houhou[i] は $5 motomeru[i]= $3 #houhou[i] は $3 print("\n") printf("%d: 関数→ %s \t %s を出す\n", i+1, number[i], motomeru[i]) print("-" * 60) i += 1 # i は 1 ずつ増える end #if に対するend(終わり) end #if に対するend(終わり) end #while に対するend(終わり) end #open に対するend(終わり) print("\n※選択肢がひとつの場合、その番号を入力してください。※\n") STDERR.print("使いたい用途に応じて番号を選んでください。: ") #入力を促す youto = gets.to_i #入力された文字列を整数にして youto に取りこむ print("\n") print("*" * 60) print("\n") print("あなたが求めたい値は\n") print("\n") printf("関数: %s (意味: %s を出す)\n", number[youto-1], motomeru[youto-1]) printf("入力の仕方: =%s \n", houhou[youto-1]) print("\n") print("を使って求めることができます。\n") print("*" * 60) print("\n") print("\n") message(kan) #関数 message を呼び出す syuryou = gets #syuryou をとってくる if syuryou == nil #もしsyuryou がCtrl + D だったら bun(kan) #関数bun を呼び出す print("\n") break #繰り返しから抜ける end #if に対するend(終わり) end #while true に対するend(終わり) elsif answer == 3 #answer が 3 だったら print("\n") print("下記には、「表計算・ワープロソフトの用語のリストを表示します。\n") print("\n") yougo = Hash.new #新しく yougo というハッシュを作る #以下、Hashの設定 yougo[1] = "セル" yougo[2] = "文字列" yougo[3] = "アウトライン" yougo[4] = "ワークシート" yougo[5] = "ウィンドウ" yougo[6] = "オートカルク" yougo[7] = "オートフィルタ" yougo[8] = "レコード" yougo[9] = "フィールド" yougo[10] = "オートフォーマット" yougo[11] = "くし刺し演算" yougo[12] = "グラフウィザード" yougo[13] = "ソルバー" yougo[14] = "フック" yougo[15] = "字送り" yougo[16] = "インサート" yougo[17] = "インデント" yougo[18] = "クリップアート" yougo[19] = "スタイルシート" yougo[20] = "ノンブル" yougo[21] = "ルーラ" yougo[22] = "割付" yougo[23] = "禁則" yougo[24] = "罫線" yougo[25] = "行送り" yougo[26] = "上付き文字" yougo[27] = "上詰め" yougo[28] = "リーダー" yougo.keys.each{|word| #配列の要素を1行ずつ word にしまう printf("[%d]\t%s\n", word, yougo[word])} while true #繰り返し STDERR.print("\n調べたい用語の番号を入力してください。: ") #入力を促す bangou = gets.to_i #入力された文字列を整数にして bangou に取りこむ open("word.dat","r") do |soft| #word.dat というファイルを読み込み専用で開いて #データを soft に取りこむ while goku = soft.gets #soft に入っているデータを goku に取りこむ if /(\d+)\s+(\S+)\s+(\S+)/ =~ goku #もし goku が #数値 空白 文字列 空白 文字列 だったら if yougo[bangou] == $2 #もし yougo[bangou] が $2と等しいならば print("-" * 70) print("\n") printf("%s\n", $2) printf("%s を表す \n", $3) print("-" * 70) print("\n") end #if に対するend(終わり) end #if に対するend(終わり) end #while に対するend(終わり) end #open に対するend(終わり) print("\n") message(bangou) #関数 message を呼び出す final = gets #final をとってくる if final == nil #もし final がCtrl + D だったら bun(bangou) #関数bun を呼び出す break #繰り返しから抜ける end #if に対するend(終わり) end #while true に対するend(終わり) end #if に対するend(終わり) 3. もとにしたプログラムからの変更点 ファイルを開いてデータを読み込む部分(open~end)は、 前期の授業で作成した regexp_readdata.rb をもとにした。 データの文字列を代入する変数の名前を変更した。今回は 「入力した数字に対応するHashの中の文字列とデータ内の 文字列が一致していればデータを表示する」設定だったので、 if文を追加した。授業では regexp_readdata.rb に候補を選択する 部分をやっていなかったが、WEBのページを見るとその部分が掲載され ていたので、それをもとに候補を選択する部分や候補の番号を入力し てもらい、結果を表示する部分を付け加えた。 ハッシュの部分(並べ替えから while true~end の部分)は、 後期の授業で作成した hash_pair.rb をもとにした。 ハッシュの名前や並べ替えの際に使った変数の名前を変更した。 def~end の部分は、同じく後期の授業で作成した def_rubiocci.rb を もとにした。def の中には数式ではなく、文章を入力し、print文と 同じように表示させるようにした。 4. 実行結果 1. 関数を入力して、意味と入力の仕方を調べたい場合 (プログラムで、最初に 1 を選択した場合) pan{c111135}% ./kotoba.rb [~/public_html/adv2] 表計算やワープロソフトの関数や用語について学びます! [1]表計算ソフトの関数を入力して、意味と入力の仕方を調べる [2]「何の計算をしたいか」を入力して、表計算ソフトの関数を調べる [3]表計算及びワープロソフトの用語を入力して、意味を調べる あなたが調べたいことの番号を入力してください。: 1 下記には、表計算ソフトの関数のリストを表示します。 関数はアルファベット順に並べています。 [25] ABS [61] ACOS [7] ACOSH [47] AND [15] ASC [62] ASIN [8] ASINH [60] ATAN [6] ATANH [2] AVERAGE [41] AVERAGEA [42] COLUMN [64] COS [58] COSH [49] COUNT [48] COUNTA [40] DATE [39] DATEVALUE [35] DAY [50] DEGREES [27] EVEN [10] EXP [20] FIND [36] HOUR [45] IF [44] INDEX [54] INT [16] JIS [18] LEN [17] LENB [52] LN [53] LOG [13] LOWER [21] MAX [23] MAXA [3] MDETERM [22] MIN [24] MINA [37] MINUTE [4] MINVERSE [5] MMULT [55] MOD [34] MONTH [32] NOW [26] ODD [46] OR [66] PI [9] POWER [14] PROPER [56] QUOTIENT [51] RADIANS [28] ROUND [29] ROUNDDOWN [30] ROUNDUP [43] ROW [19] SEARCH [38] SECOND [65] SIN [59] SINH [11] SQRT [1] SUM [63] TAN [57] TANH [31] TODAY [12] UPPER [33] YEAR 調べたい関数の番号を入力してください。: 1 ---------------------------------------------------------------------- 関数: SUM 意味: 合計値 を出す 入力の仕方: =SUM(範囲指定) ---------------------------------------------------------------------- 終了する場合は Ctrl + D を入力してください。 続けて入力する場合は Return を押してください。 調べたい関数の番号を入力してください。: 48 ---------------------------------------------------------------------- 関数: COUNTA 意味: 数値と文字列の個数 を出す 入力の仕方: =COUNTA(始点セル:終点セル) ---------------------------------------------------------------------- 終了する場合は Ctrl + D を入力してください。 続けて入力する場合は Return を押してください。 調べたい関数の番号を入力してください。: 26 ---------------------------------------------------------------------- 関数: ODD 意味: 端数を丸めて、奇数 を出す 入力の仕方: =ODD(数値) ---------------------------------------------------------------------- 終了する場合は Ctrl + D を入力してください。 続けて入力する場合は Return を押してください。 調べたい関数の番号を入力してください。: 39 ---------------------------------------------------------------------- 関数: DATEVALUE 意味: 内部日付番号 を出す 入力の仕方: =DATEVALUE(年月日を表す文字列(年・月・日の順)) ---------------------------------------------------------------------- 終了する場合は Ctrl + D を入力してください。 続けて入力する場合は Return を押してください。 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ これで終了します。 今後もこのプログラムを活かしてください! ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 2. 「何の計算をしたいか」を入力して、関数を調べる場合 (プログラムで、最初に 2 を選択した場合) pan{c111135}% ./kotoba.rb [~/public_html/adv2] 表計算やワープロソフトの関数や用語について学びます! [1]表計算ソフトの関数を入力して、意味と入力の仕方を調べる [2]「何の計算をしたいか」を入力して、表計算ソフトの関数を調べる [3]表計算及びワープロソフトの用語を入力して、意味を調べる あなたが調べたいことの番号を入力してください。: 2 下記には、「何について計算をしたいか」の分類を表示します。 [1] 合計 [2] 平均 [3] 行列 [4] 双曲線 [5] べき乗 [6] 平方根 [7] 大文字・小文字変換 [8] 全角・半角変換 [9] 文字列長 [10] 文字列内検索 [11] 最大値・最小値 [12] 絶対値 [13] 端数 [14] 日時 [15] 時間 16] 列・行番号 [17] 指定セルの値 [18] 条件式 [19] 数値・文字列の個数 [20] 角度変換 [21] 対数 [22] 数値を丸めて整数 [23] 除算 [24] 正接・余弦・正弦 [25] 円周率 調べたい計算の番号を入力してください。: 4 1: 関数→ ATANH 双曲線逆正接 を出す ------------------------------------------------------------ 2: 関数→ ACOSH 双曲線逆余弦 を出す ------------------------------------------------------------ 3: 関数→ ASINH 双曲線逆正弦 を出す ------------------------------------------------------------ 4: 関数→ TANH 双曲線正接 を出す ------------------------------------------------------------ 5: 関数→ COSH 双曲線余弦 を出す ------------------------------------------------------------ 6: 関数→ SINH 双曲線正弦 を出す ------------------------------------------------------------ ※選択肢がひとつの場合、その番号を入力してください。※ 使いたい用途に応じて番号を選んでください。: 3 ************************************************************ あなたが求めたい値は 関数: ASINH (意味: 双曲線逆正弦 を出す) 入力の仕方: =ASINH(数値) を使って求めることができます。 ************************************************************ 終了する場合は Ctrl + D を入力してください。 続けて入力する場合は Return を押してください。 調べたい計算の番号を入力してください。: 23 1: 関数→ MOD 割り算の余り を出す ------------------------------------------------------------ 2: 関数→ QUOTIENT 割り算の商の整数部 を出す ------------------------------------------------------------ ※選択肢がひとつの場合、その番号を入力してください。※ 使いたい用途に応じて番号を選んでください。: 2 ************************************************************ あなたが求めたい値は 関数: QUOTIENT (意味: 割り算の商の整数部 を出す) 入力の仕方: =QUOTIENT(割られる数,割る数) を使って求めることができます。 ************************************************************ 終了する場合は Ctrl + D を入力してください。 続けて入力する場合は Return を押してください。 調べたい計算の番号を入力してください。: 8 1: 関数→ ASC 全角の半角変換 を出す ------------------------------------------------------------ 2: 関数→ JIS 半角の全角変換 を出す ------------------------------------------------------------ ※選択肢がひとつの場合、その番号を入力してください。※ 使いたい用途に応じて番号を選んでください。: 1 ************************************************************ あなたが求めたい値は 関数: ASC (意味: 全角の半角変換 を出す) 入力の仕方: =ASC("文字列") を使って求めることができます。 ************************************************************ 終了する場合は Ctrl + D を入力してください。 続けて入力する場合は Return を押してください。 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ これで終了します。 今後もこのプログラムを活かしてください! ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 3. 用語を入力して、意味を調べる場合 (プログラムで、最初に 3 を選択した場合) pan{c111135}% ./kotoba.rb [~/public_html/adv2] 表計算やワープロソフトの関数や用語について学びます! [1]表計算ソフトの関数を入力して、意味と入力の仕方を調べる [2]「何の計算をしたいか」を入力して、表計算ソフトの関数を調べる [3]表計算及びワープロソフトの用語を入力して、意味を調べる あなたが調べたいことの番号を入力してください。: 3 下記には、「表計算・ワープロソフトの用語のリストを表示します。 [1] セル [2] 文字列 [3] アウトライン [4] ワークシート [5] ウィンドウ [6] オートカルク [7] オートフィルタ [8] レコード [9] フィールド [10] オートフォーマット [11] くし刺し演算 [12] グラフウィザード [13] ソルバー [14] フック [15] 字送り [16] インサート [17] インデント [18] クリップアート [19] スタイルシート [20] ノンブル [21] ルーラ [22] 割付 [23] 禁則 [24] 罫線 [25] 行送り [26] 上付き文字 [27] 上詰め [28] リーダー 調べたい用語の番号を入力してください。: 6 ---------------------------------------------------------------------- オートカルク セルに計算式を入力せずに、集計や計算結果を確認することができる機能 を表す ---------------------------------------------------------------------- 終了する場合は Ctrl + D を入力してください。 続けて入力する場合は Return を押してください。 調べたい用語の番号を入力してください。: 8 ---------------------------------------------------------------------- レコード データの1件分 を表す ---------------------------------------------------------------------- 終了する場合は Ctrl + D を入力してください。 続けて入力する場合は Return を押してください。 調べたい用語の番号を入力してください。: 26 ---------------------------------------------------------------------- 上付き文字 文字の横に上揃えで並べられた小さな文字 を表す ---------------------------------------------------------------------- 終了する場合は Ctrl + D を入力してください。 続けて入力する場合は Return を押してください。 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ これで終了します。 今後もこのプログラムを活かしてください! ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 5. 考察 選択肢 1・2・3 のそれぞれにおいて、プログラムで設定した通りに 実行されるかどうか、また、きれいに表示されるかどうかを確認した。 1 について 1 は「入力された数字に対応する関数についての内容(意味・入力 の仕方)を表示するもの」だ。 さまざまな数字を入力してデータと同じ内容が表示されるかを確認 した。 その結果、入力した4つ全てがデータと一致していることが分かっ た。 2 について 2 は「入力された数字に対応する関数を表示するもの」だ。 1 と同様の方法で確認した。 2 は入力された数字に対応する関数を、一度に複数出したかったの で、候補を選ぶ部分も加えた。それに基づき、「候補を選択した後 もデータと同じ内容が表示されるか」も確認した。 その結果、入力した3つ全てがデータと一致していることが分かっ た。 3 について 3 は「入力された数字に対応する用語の意味を表示するもの」だ。 1 と同様の方法で確認した。 その結果、入力した3つ全てがデータと一致していることが分かっ た。 そして、どの選択肢にも共通するものとして、 「def文はきちんと表示されるか」 「Ctrl + D を押したときには、終了されるか」についても確認した。 その結果、きちんと表示されることが分かった。 よって、このプログラムは正しいということができる。 6. 参考文献 下記、作者は全て 西村まどか ・ http://roy/~madoka/2012/r1/07/r1_07_10_theme_08_fileread.html 2012年度 基礎プログラミングI 第7回 (正規表現とRuby言語でのプログラミング) 「データを読み込むようにするには」 ・ http://roy/~madoka/2012/r1/07/r1_07_12_theme_09_candidate.html 2012年度 基礎プログラミングI 第7回 (正規表現とRuby言語でのプログラミング) 「候補駅を選べるようにするには」 ・ http://roy/~madoka/2012/r1/07/r1_07_13_theme_10_selection.html 2012年度 基礎プログラミングI 第7回 (正規表現とRuby言語でのプログラミング) 「選択する部分を作るには」 ・ http://roy/~madoka/2012/r2/02/r2_02_08_appendix_01_each.html 2012年度 基礎プログラミングII 第2回 (なになにといえばこれこれ) 「eachを使って並び換え」 ・ http://roy/~madoka/2012/r2/02/r2_02_11_appendix_04_sortinkey.html 2012年度 基礎プログラミングII 第2回 (なになにといえばこれこれ) 「keyの並び換え」 ・ http://roy/~madoka/2012/r2/04/r2_04_03_theme_03_method.html 2012年度 基礎プログラミングII 第4回 (繰り返しは引っ張りだそう) 「どんな関数がきてもだいじょうぶ」 なお、データの参考文献は、データファイルの一番下に記載している。 c. プレゼンテーション原稿 私は、表計算や文書作成の際に使う関数や用語についてのプログラムを 企画した。 その理由は、パソコンのスキルが求められている現代、表計算や文書作 成ができることは基礎になったからである。 若い世代だけでなく、幅広い年代にこのプログラムを使ってもらいたい。 プログラムを使うことによって、関数や用語を調べることが可能になる。 手間がかかる文字入力ではなく、数字のみを入力することによって、簡 単に調べることができるようになっている。 そして、身につけた知識を実際に活用してもらいたい。 d. リンク先 ・ 広告ページ http://roy/~c111135/adv2/ ・ 仕様書 http://roy/~c111135/adv2/siyousyo.txt ・ プログラム http://roy/~c111135/adv2/kotoba.rb ・ データ(kansuu.dat) http://roy/~c111135/adv2/kansuu.dat ・ データ(word.dat) http://roy/~c111135/adv2/word.dat ・ プレゼン http://roy/~c111135/adv2/purezen.pdf 2. 今回はハッシュに基づいた入力によって、データを読み込んで結果を表示す るということに挑戦した。 できるだけ、授業で習ったことを取り入れるように心掛けた。 普段のレポートよりも多くの時間を費やしたが、自分なりに言い作品を作る ことができ、良かった。 今回行ったことを今後に生かしていきたい。 また、改善すべき点も多いので、今後の課題である。 共同学習者: 浅沼佑香 ・ 伊藤詩野