200 likes | 287 Views
基礎プログラミング. 第 13 回. メニュー. 前回の復習 文字列の置換 正規表現 レポートの解答 応用プログラミング まとめ. 前回の復習. 文字列の置換 $a =~ s/ 変換前の文字列 / 変換後の文字列 /; $a の中身にある「変換前の文字列」を「変換後の文字列」に置き換える オプション. 前回の復習( 2 ). もうひとつの置換 tr $a =~ tr/ 元の文字列 / 置き換える文字列 /; 元の文字列の文字を 1 文字づつ順番に置き換える. $a =~ tr/ a b c d / 1 2 3 4 /;
E N D
基礎プログラミング 第13回
メニュー • 前回の復習 • 文字列の置換 • 正規表現 • レポートの解答 • 応用プログラミング • まとめ
前回の復習 • 文字列の置換 $a =~ s/変換前の文字列/変換後の文字列/; • $aの中身にある「変換前の文字列」を「変換後の文字列」に置き換える • オプション
前回の復習(2) • もうひとつの置換 tr $a =~ tr/元の文字列/置き換える文字列/; 元の文字列の文字を1文字づつ順番に置き換える. $a =~ tr/abcd/1234/; aを1に,bを2に,cを3に,dを4に置き換える
正規表現 • パターンマッチング: • 特定の文字列がある文字列の中にあるかどうか • 正規表現 • 特定の文字列を便利に指定する方法 正規表現は, / / で囲む $a =~ /ライス/ は「ライス」が$aにあるかどうかを調べる表現 • 直接文字列を書くだけでなく別の指定もできる
正規表現(2) • メタ文字の利用
正規表現(3) • メタ文字の利用例をチェック • p1205.pl をダウンロードして実行 • 動きをたしかめよ. $title[$i] =~ /\Bpar/ の /\Bpar/ を /par\B/ に換えるとどうなる?
正規表現(4) • マッチングの条件を示すメタ文字
正規表現(5) • 利用例をチェック p1206.pl をダウンロードして実行 動きを確かめよ. いろいろ試してみよ.
正規表現(6) • つづき ()で囲むとそれが繰り返しの単位になる!
正規表現(7) • 利用例をチェック p1207.pl をダウンロードして実行 動きを確かめる
正規表現(7) • 指定した文字内での任意の1文字へのマッチ ( []を使う )
正規表現(8) • 指定した文字列のどれかに一致する. () と |を使う
レポートの解答 • WWW上で
まとめ • プログラムとは? • コンピュータプログラムとは? • 演算子 • 算術演算子,比較演算子,論理演算子 • 条件分岐 • 繰り返し
まとめ • 変数 • 配列 • 配列,連想配列 • 組み込み関数 • 主にsplit • 置換 • 正規表現
まとめ • これらの個別の意味を問う + プログラム全体の意図,処理内容を読む
応用プログラミング 辞書びきプログラムの簡単な実装 • 辞書データの準備:ここから臨時にダウンロード • 本来は... PrepTutorEJDIC からPrepTutorEJDIC10.lzh lhaで圧縮されているので,解凍する. PrepTutorEJDICというフォルダの中に展開される. PrepTutorEJDIC.txtが辞書ファイル しかし,このままではMac形式で都合が良くない. TeraPadでPrepTutorEJDIC.txtを読み込む. [ファイル]→[漢字/改行コード指定保存]→ 漢字コード SHIFT-JIS,改行コード CR+LF,上書き保存
辞書引きソフトウェアの簡単な実装 • 辞書データの構造を観察 • TeraPadで開いて,どのような構造をしているかを確かめる. • 半角スペース,全角スペース,タブの違いがわからない. →TeraPadの[表示]→[オプション]→[表示]の「マーク/色別表示/フォント」の 中の個別の項目を設定(チェックボックスをチェック) • どのような構造をしているか?
辞書引きソフトウェアの簡単な実装 • 簡単な検索プログラムの実装 さきほど構造を調べた辞書データを検索することを考える. kanidicsearch.pl 挑戦課題 kanidicsearch.plでは見出し語だけを正確に検索することができない. そこで, (1) 見出し語だけを検索できるようにせよ. (2) 見出し語以外を検索できるようにせよ. (3) 両方ともを検索できるようにせよ. (4) メニューを作成して,(1)-(3)どれで検索するか指定できるようにせよ.