第 6 回 正規表現と検索 レポート課題 氏名:高田美咲 学籍番号:C1110909 語学クラス:英語1 コース:政策マネジメントコース 1.筆記問題 A.誕生日1992.09.17 → 10進数表示 0d1992 0d917 < 10進数 → 2進数 > 10進数を2で割る。 その答えの商を再度、2で割る。 これを商が0になるまで繰り返す。 そして、余りを下から並べると答えが出る。 0d1992 = 0b?? 1992 / 2 = 996 余り 0 996 / 2 = 498 余り 0 498 / 2 = 249 余り 0 249 / 2 = 124 余り 1 124 / 2 = 62 余り 0 62 / 2 = 31 余り 0 31 / 2 = 15 余り 1 15 / 2 = 7 余り 1 7 / 2 = 3 余り 1 3 / 2 = 1 余り 1 1 / 2 = 0 余り 1 0d917 = 0b?? 917 / 2 = 458 余り 1 458 / 2 = 229 余り 0 229 / 2 = 114 余り 1 114 / 2 = 57 余り 0 57 / 2 = 28 余り 1 28 / 2 = 14 余り 0 14 / 2 = 7 余り 0 7 / 2 = 3 余り 1 3 / 2 = 1 余り 1 1 / 2 = 0 余り 1 0d1992 0d917 = 0b11111001000 0b1110010101 となる。 < 10進数 → 16進数 > 10進数を16で割る。 その答えの商を再度、16で割る。 これを商が0になるまで繰り返す。 計算終了後、余りの部分を下から並べると答えが出る。 しかし余りが2桁になる場合がある。 その場合は、 10 = a 11 = b 12 = c 13 = d 14 = e 15 = f に変換して並べる。 0d1992 = 0x?? 1992 / 16 = 124 余り 8 124 / 16 = 7 余り 12 ( 12 = c に変換 ) 7 / 16 = 0 余り 7 0d917 = 0x?? 917 / 16 = 57 余り 5 57 / 16 = 3 余り 9 3 / 16 = 0 余り 3 0d1992 0d917 = 0x7c8 0x395 となる。 B. 0d1992 0d9 0d17 を16進数変換後、 和を求め、あらためて10進数に戻す。 < 10進数 → 16進数 > 変換は問題Aと同じ方法を使用する。 0d1992は問題Aで求めた0x7c8を利用する。 0d9は 9 / 16 = 0 余り 9 になるため、0x9となる。 0d17は 17 / 16 = 1 余り 1 1 / 16 = 0 余り 1 となるため0x11となる。 < 和を求める > 16進数の場合16で次の位に繰り上がる。 c = 12 に変換して考える。 7 12 8 9 +) 1 1 --------- 7 14 2 和を求めた結果、0x7142となったが 14については e = 14に変換できるため答えは 0x7e2 となる。 < 16進数 → 10進数に戻す > 16進数の1桁目から順に16の0乗、16の1乗...と掛ける。 それぞれで出た答えを全て足すと変換が完了する。 0x7e2 = 0d?? 7 e 2 * * * 16^2 16^1 16^0 ---------------- 1792 224 2 1792 + 224 + 2 = 2018 0x7e2 = 0d2018 となる。 < 結果 > 元の10進数 0d1992 0d9 0d17 と 16進数に変換後、和を求め、それを10進数に戻した数は どのように関係しているか確かめた。 まず元の10進数を足してみた。 1992 + 9 + 17 = 2018 計算したところ2018になった。 そして16進数変換後、和を求め、10進数に戻した数も2018になっている。 この結果から、元の10進数を足した数と 16進数を変換後、和を求め、10進数に戻した数は 等しい数値になることがわかった。 C. STDERRをprint(f)文につける理由は、print(f)文を実行した時に メッセージやエラーメッセージをKtermに表示させることができるからである。 2.プログラム問題 A.< 作成データの内容 > 化学の原子番号、元素記号、元素名、質量数、金属分類、元素の詳細、 常温(25℃)での状態、英語での表記について B.< 作成データ > 1 H 水素(すいそ) 1.008 非金属元素 ---- 気体 Hydrogen 2 He ヘリウム 4.003 非金属元素 希ガス 気体 Helium 3 Li リチウム 6.941 金属元素 アルカリ金属 固体 Lithium 4 Be ベリリウム 9.012 金属元素 その他の金属 固体 Beryllium 5 B ホウ素 10.81 非金属元素 半金属 固体 Boron 6 C 炭素(たんそ) 12.01 非金属元素 ---- 固体 Carbon 7 N 窒素(ちっそ) 14.01 非金属元素 ---- 気体 Nitrogen 8 O 酸素(さんそ) 16.00 非金属元素 ---- 気体 Oxygen 9 F フッ素 19.00 非金属元素 ハロゲン 気体 Fluorine 10 Ne ネオン 20.18 非金属元素 希ガス 気体 Neon 11 Na ナトリウム 22.99 金属元素 アルカリ金属 固体 Sodium 12 Mg マグネシウム 24.31 金属元素 その他の金属 固体 Magnesium 13 Al アルミニウム 26.98 金属元素 その他の金属 固体 Aluminum 14 Si ケイ素 28.09 非金属元素 半金属 固体 Silicon 15 P リン 30.97 非金属元素 ---- 固体 Phosphorus 16 S 硫黄(いおう) 32.07 非金属元素 ---- 固体 Sulfur 17 Cl 塩素(えんそ) 35.45 非金属元素 ハロゲン 気体 Chlorine 18 Ar アルゴン 39.95 非金属元素 希ガス 気体 Argon 19 K カリウム 39.10 金属元素 アルカリ金属 固体 Potassium 20 Ca カルシウム 40.08 金属元素 アルカリ土類金属 固体 Calcium 21 Sc スカンジウム 44.96 金属元素 遷移金属 固体 Scandium 22 Ti チタン 47.87 金属元素 遷移金属 固体 Titanium 23 V バナジウム 50.94 金属元素 遷移金属 固体 Vanadium 24 Cr クロム 52.00 金属元素 遷移金属 固体 Chromium 25 Mn マンガン 54.94 金属元素 遷移金属 固体 Manganese 26 Fe 鉄(てつ) 55.85 金属元素 遷移金属 固体 Iron 27 Co コバルト 58.93 金属元素 遷移金属 固体 Cobalt 28 Ni ニッケル 58.85 金属元素 遷移金属 固体 Nickel 29 Cu 銅(どう) 63.55 金属元素 遷移金属 固体 Copper 30 Zn 亜鉛(あえん) 65.38 金属元素 その他の金属 固体 Zinc 35 Br 臭素(しゅうそ) 79.90 非金属元素 ハロゲン 液体 Bromine 38 Sr ストロンチウム 87.62 金属元素 アルカリ土類金属 固体 Strontium 47 Ag 銀(ぎん) 107.9 金属元素 遷移金属 固体 Silver 50 Sn スズ 118.7 金属元素 その他の金属 固体 Tin 53 I ヨウ素 126.9 非金属元素 ハロゲン 固体 Iodine 78 Pt 白金(はっきん) 195.1 金属元素 遷移金属 固体 Platinum 79 Au 金(きん) 197.0 金属元素 遷移金属 固体 Gold 80 Hg 水銀(すいぎん) 200.6 金属元素 その他の金属 液体 Mercury 82 Pb 鉛(なまり) 207.2 金属元素 その他の金属 固体 Lead C.< 目的についての説明 > 元素について検索できるプログラムである。 検索でわかる範囲は原子番号1から30までと 高校までの化学によく出てくる元素をプラスした程度である。 この検索機能は、 *原子番号はわかるが、元素記号や元素名を思い出せない。 *特定の元素についての詳細が知りたい。 *指定した分類にはどのような元素があるかわからない。 などを利用対象に考え作成した。 D.< 検索パターン > 10パターンの検索を行う。 ( 1 ) egrep "6" data_c111090.dat を実行する。 予想は、どこかに "6" がつく元素が全て検索される。 ( 2 ) egrep "ウム" data_c111090.dat を実行する。 予想は、マグネシウムやナトリウムなど "ウム" がつく元素が検索される。 ( 3 ) egrep "i?um" data_c111090.dat を実行する。 予想は、英語表記で "--ium" そのまま含むもの、"--iium" iが 2度繰り返される、"--um" iがないものが検索される。 ( 4 ) egrep "C|炭素|たんそ" data_c111090.dat を実行する。 予想は、3つの要素すべてが炭素を指しているので、 炭素の内容のみが検索される。 ( 5 ) egrep "...gen" data_c111090.dat を実行する。 予想は、英語表記で語尾が "gen"で終わり、かつperiodが3つなので 酸素の Oxygen が検索される。 ( 6 ) egrep "[f-h]" data_c111090.dat を実行する。 予想は、元素記号または英語表記に "f" "g" "h"(小文字) のどれか 1文字が含まれていれば検索される。 ( 7 ) egrep "ス..(ン)" data_c111090.dat を実行する。 予想は、スとンの間に2文字入っているもののみが検索される。 ( 8 ) egrep "[a-c]+[g-i]" data_c111090.dat を実行する。 予想は、abcのどれかの文字の次に必ずghiのどれかの文字が くる元素が検索される。 ( 9 ) egrep "2.07|20.7|207" data_c111090.dat を実行する。 予想は、質量数が2.07、20.7、207の元素が検索される。 ( 10 ) egrep "1+2[^5-9]" data_c111090.dat を実行する。 予想は、1の次に2がくる数値で、さらにその後の数が5から9以外の数を 使用した数値がある元素が検索される。 この実行に関しては細かく数値を指定しているため、予想とは違う結果 を期待している。 E.< 実行結果 > ( 1 ) pan{c111090}% egrep "6" data_c111090.dat [~/Ruby] 3 Li リチウム 6.941 金属元素 アルカリ金属 固体 Lithium 6 C 炭素(たんそ) 12.01 非金属元素 ---- 固体 Carbon 8 O 酸素(さんそ) 16.00 非金属元素 ---- 気体 Oxygen 13 Al アルミニウム 26.98 金属元素 その他の金属 固体 Aluminum 16 S 硫黄(いおう) 32.07 非金属元素 ---- 固体 Sulfur 21 Sc スカンジウム 44.96 金属元素 遷移金属 固体 Scandium 26 Fe 鉄(てつ) 55.85 金属元素 遷移金属 固体 Iron 29 Cu 銅(どう) 63.55 金属元素 遷移金属 固体 Copper 30 Zn 亜鉛(あえん) 65.38 金属元素 その他の金属 固体 Zinc 38 Sr ストロンチウム 87.62 金属元素 アルカリ土類金属 固体 Strontium 53 I ヨウ素 126.9 非金属元素 ハロゲン 固体 Iodine 80 Hg 水銀(すいぎん) 200.6 金属元素 その他の金属 液体 Mercury ( 2 ) pan{c111090}% egrep "ウム" data_c111090.dat [~/Ruby] 2 He ヘリウム 4.003 非金属元素 希ガス 気体 Helium 3 Li リチウム 6.941 金属元素 アルカリ金属 固体 Lithium 4 Be ベリリウム 9.012 金属元素 その他の金属 固体 Beryllium 11 Na ナトリウム 22.99 金属元素 アルカリ金属 固体 Sodium 12 Mg マグネシウム 24.31 金属元素 その他の金属 固体 Magnesium 13 Al アルミニウム 26.98 金属元素 その他の金属 固体 Aluminum 19 K カリウム 39.10 金属元素 アルカリ金属 固体 Potassium 20 Ca カルシウム 40.08 金属元素 アルカリ土類金属 固体 Calcium 21 Sc スカンジウム 44.96 金属元素 遷移金属 固体 Scandium 23 V バナジウム 50.94 金属元素 遷移金属 固体 Vanadium 38 Sr ストロンチウム 87.62 金属元素 アルカリ土類金属 固体 Strontium ( 3 ) pan{c111090}% egrep "i?um" data_c111090.dat [~/Ruby] 2 He ヘリウム 4.003 非金属元素 希ガス 気体 Helium 3 Li リチウム 6.941 金属元素 アルカリ金属 固体 Lithium 4 Be ベリリウム 9.012 金属元素 その他の金属 固体 Beryllium 11 Na ナトリウム 22.99 金属元素 アルカリ金属 固体 Sodium 12 Mg マグネシウム 24.31 金属元素 その他の金属 固体 Magnesium 13 Al アルミニウム 26.98 金属元素 その他の金属 固体 Aluminum 19 K カリウム 39.10 金属元素 アルカリ金属 固体 Potassium 20 Ca カルシウム 40.08 金属元素 アルカリ土類金属 固体 Calcium 21 Sc スカンジウム 44.96 金属元素 遷移金属 固体 Scandium 22 Ti チタン 47.87 金属元素 遷移金属 固体 Titanium 23 V バナジウム 50.94 金属元素 遷移金属 固体 Vanadium 24 Cr クロム 52.00 金属元素 遷移金属 固体 Chromium 38 Sr ストロンチウム 87.62 金属元素 アルカリ土類金属 固体 Strontium 78 Pt 白金(はっきん) 195.1 金属元素 遷移金属 固体 Platinum ( 4 ) pan{c111090}% egrep "C|炭素|たんそ" data_c111090.dat [~/Ruby] 6 C 炭素(たんそ) 12.01 非金属元素 ---- 固体 Carbon 17 Cl 塩素(えんそ) 35.45 非金属元素 ハロゲン 気体 Chlorine 20 Ca カルシウム 40.08 金属元素 アルカリ土類金属 固体 Calcium 24 Cr クロム 52.00 金属元素 遷移金属 固体 Chromium 27 Co コバルト 58.93 金属元素 遷移金属 固体 Cobalt 29 Cu 銅(どう) 63.55 金属元素 遷移金属 固体 Copper ( 5 ) pan{c111090}% egrep "...gen" data_c111090.dat [~/Ruby] 1 H 水素(すいそ) 1.008 非金属元素 ---- 気体 Hydrogen 7 N 窒素(ちっそ) 14.01 非金属元素 ---- 気体 Nitrogen 8 O 酸素(さんそ) 16.00 非金属元素 ---- 気体 Oxygen ( 6 ) pan{c111090}% egrep "[f-h]" data_c111090.dat [~/Ruby] 1 H 水素(すいそ) 1.008 非金属元素 ---- 気体 Hydrogen 3 Li リチウム 6.941 金属元素 アルカリ金属 固体 Lithium 7 N 窒素(ちっそ) 14.01 非金属元素 ---- 気体 Nitrogen 8 O 酸素(さんそ) 16.00 非金属元素 ---- 気体 Oxygen 12 Mg マグネシウム 24.31 金属元素 その他の金属 固体 Magnesium 15 P リン 30.97 非金属元素 ---- 固体 Phosphorus 16 S 硫黄(いおう) 32.07 非金属元素 ---- 固体 Sulfur 17 Cl 塩素(えんそ) 35.45 非金属元素 ハロゲン 気体 Chlorine 18 Ar アルゴン 39.95 非金属元素 希ガス 気体 Argon 24 Cr クロム 52.00 金属元素 遷移金属 固体 Chromium 25 Mn マンガン 54.94 金属元素 遷移金属 固体 Manganese 47 Ag 銀(ぎん) 107.9 金属元素 遷移金属 固体 Silver 80 Hg 水銀(すいぎん) 200.6 金属元素 その他の金属 液体 Mercury ( 7 ) pan{TAKADA Misaki}% egrep "ス..(ン)" data_c111090.dat [~/Ruby] 38 Sr ストロンチウム 87.62 金属元素 アルカリ土類金属 固体 Strontium ( 8 ) pan{c111090}% egrep "[a-c]+[g-i]" data_c111090.dat [~/Ruby] 12 Mg マグネシウム 24.31 金属元素 その他の金属 固体 Magnesium 20 Ca カルシウム 40.08 金属元素 アルカリ土類金属 固体 Calcium ( 9 ) pan{c111090}% egrep "2.07|20.7|207" data_c111090.dat [~/Ruby] 16 S 硫黄(いおう) 32.07 非金属元素 ---- 固体 Sulfur 82 Pb 鉛(なまり) 207.2 金属元素 その他の金属 固体 Lead ( 10 ) pan{c111090}% egrep "1+2[^5-9]" data_c111090.dat [~/Ruby] 4 Be ベリリウム 9.012 金属元素 その他の金属 固体 Beryllium 6 C 炭素(たんそ) 12.01 非金属元素 ---- 固体 Carbon 12 Mg マグネシウム 24.31 金属元素 その他の金属 固体 Magnesium F. < 結果の考察 > ( 1 ) 予想どおり、原子番号と質量数のどちらかの1部分に "6" が含まれるものは 全て検索結果として出た。 ( 2 ) 予想どおり、元素名に "ウム" が含まれるものが検索結果として出た。 ( 3 ) この検索結果については、"--ium" の含むものが結果として検出されたことは 予想どおりだった。しかし、"--inum" の英語表記も結果として検出された。 これは一見、iとuの間にnが含まれるので予想と違う結果に思えるが、"i?um" で検索するとiを0回使用(--umのみ)も対象となるため正確に検索され、予想と 同じ結果だと言える。 ( 4 ) 予想は炭素のみ検索されるのためはずれた。 原因は "C" で最初に区切ってしまったため、炭素のC 以外にも "C"を含む元素 記号が全て検索されたと思われる。 炭素のみを探す場合は "炭素|たんそ" で検索すると予想どおりに検出されるこ とがわかった。 < 実行結果 > pan{c111090}% egrep "炭素|たんそ" data_c111090.dat [~/Ruby] 6 C 炭素(たんそ) 12.01 非金属元素 ---- 固体 Carbon ( 5 ) これは "gen" を含む元素がすべて検索されてしまった。 periodで文字数を指定したつもりだったが効果がでなかった。 そのため以下の3つの検索を追加して行い、比較することで疑問を解消した。 a.periodを文字の前におく。egrep "..a" data_c111090.dat を実行する。 b.periodを文字と文字の間におく。 egrep "o.a" data_c111090.dat を実行する。 c.periodを文字の後におく。 egrep "a.." data_c111090.dat を実行する。 a. pan{c111090}% egrep "..a" data_c111090.dat [~/Ruby] 6 C 炭素(たんそ) 12.01 非金属元素 ---- 固体 Carbon 11 Na ナトリウム 22.99 金属元素 アルカリ金属 固体 Sodium 12 Mg マグネシウム 24.31 金属元素 その他の金属 固体 Magnesium 19 K カリウム 39.10 金属元素 アルカリ金属 固体 Potassium 20 Ca カルシウム 40.08 金属元素 アルカリ土類金属 固体 Calcium 21 Sc スカンジウム 44.96 金属元素 遷移金属 固体 Scandium 22 Ti チタン 47.87 金属元素 遷移金属 固体 Titanium 23 V バナジウム 50.94 金属元素 遷移金属 固体 Vanadium 25 Mn マンガン 54.94 金属元素 遷移金属 固体 Manganese 27 Co コバルト 58.93 金属元素 遷移金属 固体 Cobalt 78 Pt 白金(はっきん) 195.1 金属元素 遷移金属 固体 Platinum 82 Pb 鉛(なまり) 207.2 金属元素 その他の金属 固体 Lead b. pan{c111090}% egrep "o.a" data_c111090.dat [~/Ruby] 19 K カリウム 39.10 金属元素 アルカリ金属 固体 Potassium 27 Co コバルト 58.93 金属元素 遷移金属 固体 Cobalt c. pan{c111090}% egrep "a.." data_c111090.dat [~/Ruby] 6 C 炭素(たんそ) 12.01 非金属元素 ---- 固体 Carbon 11 Na ナトリウム 22.99 金属元素 アルカリ金属 固体 Sodium 12 Mg マグネシウム 24.31 金属元素 その他の金属 固体 Magnesium 19 K カリウム 39.10 金属元素 アルカリ金属 固体 Potassium 20 Ca カルシウム 40.08 金属元素 アルカリ土類金属 固体 Calcium 21 Sc スカンジウム 44.96 金属元素 遷移金属 固体 Scandium 22 Ti チタン 47.87 金属元素 遷移金属 固体 Titanium 23 V バナジウム 50.94 金属元素 遷移金属 固体 Vanadium 25 Mn マンガン 54.94 金属元素 遷移金属 固体 Manganese 27 Co コバルト 58.93 金属元素 遷移金属 固体 Cobalt 78 Pt 白金(はっきん) 195.1 金属元素 遷移金属 固体 Platinum 3つを比較した結果、検索 b からperiodは文字と文字の間では文字数を指定でき ることがわかる。そして検索 a では原子番号82があるが、検索 c では無くなっ ていることからperiodの数より文字数が多いものは検索されるが、少ないものは 検索されないことも判明した。このことからperiodを利用する際、文字数が分か らない場合は1つ(".")から始めた方が良いこともわかる。 ( 6 ) 予想どおり、"f" "g" "h" が含まれる元素が検索された。 ( 7 ) 予想どおり、ストロンチウムのみが検索された。 さらに、この検索でperiodの数通りの文字数なため( 5 )で行った追加検索の結果が より確実性が高まったといえる。 ( 8 ) 予想どおりの検索結果がでた。 ( 9 ) 207の数値に該当した 鉛(207.2) は予想どおりだった。 しかし、2.07の数値に該当した 硫黄(32.07)については少し予想と異った。 それは2.07と全く同じ数値の元素が検索されると考えていたからだ。それでも、 2.07以外に指定をしなければ少しでも含むものは検索されてしまうことは今ま での検索で学んだのでこの結果についての疑問はない。 ( 10 ) 予想どおりの結果だが、似ている検索を複数したところ正確性に欠ける点が 検出された。 < 今回 > pan{c111090}% egrep "1+2[^5-9]" data_c111090.dat [~/Ruby] 4 Be ベリリウム 9.012 金属元素 その他の金属 固体 Beryllium 6 C 炭素(たんそ) 12.01 非金属元素 ---- 固体 Carbon 12 Mg マグネシウム 24.31 金属元素 その他の金属 固体 Magnesium < 比較1 > pan{c111090}% egrep "1+2" data_c111090.dat [~/Ruby] 4 Be ベリリウム 9.012 金属元素 その他の金属 固体 Beryllium 6 C 炭素(たんそ) 12.01 非金属元素 ---- 固体 Carbon 12 Mg マグネシウム 24.31 金属元素 その他の金属 固体 Magnesium 53 I ヨウ素 126.9 非金属元素 ハロゲン 固体 Iodine < 比較2 > pan{c111090}% egrep "1+2[^.]" data_c111090.dat [~/Ruby] 4 Be ベリリウム 9.012 金属元素 その他の金属 固体 Beryllium 12 Mg マグネシウム 24.31 金属元素 その他の金属 固体 Magnesium 53 I ヨウ素 126.9 非金属元素 ハロゲン 固体 Iodine まず今回の正しい点は、比較1では検索された ヨウ素 が 除かれていることである。この点は良かったと思う。 しかし、今回の検索では小数点も5から9以外に含まれていることが問題である。 これが発覚したのは比較2の検索を行ったからである。 今回の検索では 炭素(12.01) があるが、比較2では無くなっている。 このことから今回の検索は小数点以下が5から9以外のため、正しく検索されたよ うにみえたが、小数点以下が5から9であっても検索結果に出たということだ。 そのため予想どおりであっても正確性には欠けている。 G.< 利用した正規表現 > . (period) 任意の一文字の候補を取りだす。 ? (question mark) 直前の文字が1回か2回使用される候補が取り出される。 記号でも可能である。 + (plus) 直前の文字が必ず出現しなければならない。 出現回数は何度でも良い。 [ - ] (braket) 範囲を決めて候補を取りだす。 [^ - ] (braket)と(caret) 範囲以外の候補を取りだす。 | (vertical line) 「または」の意味を持っている。 ( ) (parenthesis) ( )の中を先に検索してから、その後( )外を探す。 他に $ /s /d などもあるが今回は使用しなかった。 $ については1度挑戦したが、語尾を検索するときは"--i?um"のように question mark を使ってもできないことはなかった。 しかしこれはある程度、検索する単語を知ってる時に限定される。 3. 感想 携帯電話は正規表現を使用していると思う。 携帯電話の中でも検索機能は代表的だと思った。 今回はデータ作成自体は大変ではなかった。 しかし、検索パターンを考えたり普段とは違う課題になると新鮮だが普段とは 違う大変さがあったけど頑張れて良かった. 自分の予想とは違う結果がでることで講義の説明では理解しきれなかっ たことを考えることが出来たと思う。 進数の変換についても16進数から10進数に戻す問題が今回初めて出題され、 忘れかけていた解き方を思い出すことができて良かった。 4. 参考資料 竹内敬人 ほか21名 東京書籍 化学2 Chemistry 表表紙「元素の周期表」 wikipedia 元素記号 http://ja.wikipedia.org/wiki/%E5%85%83%E7%B4%A0%E8%A8%98%E5%8F%B7 西村まどか 基礎プログラミング I 第 6 回 「正規表現と検索」 「うろ覚えの検索」 http://roy/~madoka/2012/r1/06/r1_06_03_theme_01_patternmatching.html 「何回か繰り返されている文字を探したい」 http://roy/~madoka/2012/r1/06/r1_06_04_theme_02_repetation.html 「いくつかある候補を探したい場合」 http://roy/~madoka/2012/r1/06/r1_06_05_theme_03_or.html 「1 文字違い」 http://roy/~madoka/2012/r1/06/r1_06_06_theme_04_onecharacter.html 基礎プログラミング I 第 4 回 「プログラミングの方法」 「10 進数を考えてみよう」 http://roy/~madoka/2012/r1/04/r1_04_12_appendix_02_decimal.html