Perl入学式ドリル 解答編
Perl入学式夏休みドリルを作ってはや数ヶ月、季節はもうクリスマス目前ですね。
問題を作ったまま解答編をアップするのを失念いたしておりました。
とりあえず、基礎編の解答例をアップいたします。応用編も近日中にアップする所存であります。
解答編はあくまで一つの例であり、かつ、第2回までの講義内容で書いています。入学式は第4回まで進んでいますし、もっと違う書き方やもっと工夫した書き方もありますので参考の一つと捉えていただければ幸いです。また、内容で何か質問があれば@tomcha_宛メンションなりコメント欄に書いて下さい。
それでは50問分、一挙にどうぞ!
- 問1 3行のおまじないを書いたファイル、'basic.pl'を作る。※以下、コードの最初に3行のおまじないを書くこと。
- 問2 画面に「Perl entrance」と出力する'perlentrance.pl'を作って実行する。
- 問3 画面に「I love Perl.」と出力し、改行する'loveperl.pl'を作って実行する。
- 問4 画面に「YAPC成功祈願」と出力し、改行する'yapc.pl'を作って実行する。
- 問5 スカラ変数を一つ宣言する'sc_val.pl'を作る。 (※以下、"ファイルを作る"を問題文から省略する。)
- 問6 スカラ変数を一つ宣言し、その変数に次の行で'Perl'という文字列を代入する'コードを書く。
- 問7 スカラ変数を1つ宣言し、同じ行で同時に 'TMTOWTDI' という文字列を代入するコードを書く。
- 問8 6で作った変数の中身を画面に出力するコードを書く。
- 問9 7で作った変数の中身を画面に出力し、改行もするコードを書く。 (※以下、"コードを書く"を問題文から省略する。)
- 問10 スカラ変数を3つ宣言する。
- 問11 スカラ変数3つを宣言し、それぞれに任意の整数を代入する。
- 問12 変数4つを宣言し、3つの変数に任意の整数を代入する。残り1つの変数に、3つの変数を合計した数字を代入する。(変数同士を足し算して代入すること。)
- 問13 12で作った4つの変数を利用して、"◯足す◯足す◯は◯です。"という文字を出力して改行する。
- 問14 変数2つ$heightと$weightを宣言し、身長150cm体重60kgのAさんの値を代入する。
- 問15 14で作ったデータを利用し、AさんのBMIを出力する。(BMIは、体重(kg)÷身長(m)の2乗で求めます。)
- 問16 3つの商品の単価を代入する変数を3つ($apple, $banana, $peach)を宣言し、それぞれに単価(りんご250円、バナナ150円、桃120円)を代入する。
- 問17 16で作った変数を利用して、りんご10個、バナナ8本、桃5個の合計金額に消費税8%を上乗せして出力する。(小数点以下の端数は)
- 問18 17の材料全てでミックスジュースを作ったら、20杯分が出来た。ミックスジュース1杯分の原価を出力する。
- 問19 100を3で割った時の余り、7で割った時の余り、11で割った時の余りをそれぞれ出力する。
- 問20 ピザ1枚1300kカロリーを16等分し、7人でなるべく均等になる様分けて食べた。7人が摂取したカロリーをそれぞれ出力する。
- 問21 変数$nameを宣言して、キーボードから名前を入力してもらい、変数に代入する。
- 問22 変数$nameと$nickを宣言し、キーボードから名前とニックネームを入力してもらい、変数に代入する。
- 問23 問22で作った変数を利用し、"◯◯さんのあだ名は△△です。"と出力する。1行で出力し、行の一番最後で改行する。
- 問24 変数$year, $monthm $dayを宣言し、キーボードから誕生年、月、日を入力してもらい変数に代入する。
- 問25 問24で作った変数を利用し、"あなたの誕生日は◯年◯月◯日です。"と1行で出力し、行の最後で改行する。
- 問26 "Papix" "xtetsuji" "校長" "教頭" の4つの文字列を、'.'(ドット)を使って連結し、Print文1行でPapix校長とxtetsuji教頭を出力する。校長と教頭の間は改行すること。
- 問27 苗字と名前を別々に入力し、苗字+スペース+名前と連結させ、変数$nameに代入し、変数の中身を出力する。
- 問28 キーボードから「0か1のいずれか」を入力させて、入力した値が1なら画面に'OK'の文字を出力させる。
- 問29 キーボードから文字列を入力させて、入力した文字が「Perl」なら、画面に'入学式'の文字を出力させる。
- 問30 キーボードから「1〜10」の数字を入力させて、入力した数が5なら、画面に'5'と出力させ、それ以外なら画面に'5以外'と出力させる。
- 問31 キーボードから文字列を入力させて、入力した文字が「Perl」なら、画面に'Larry'の文字を、入力した文字が「Ruby」なら画面に'Matz'を出力させる。
- 問32 キーボードから「1〜100」の数字を入力させて、入力した数字に応じて「50以下の偶数」「50以下の奇数」「51以上の偶数」「51以上の奇数」のいずれかを出力させる。
- 問33 キーボードから「1〜30」の数字を入力させて、入力した数字が「3の倍数」又は「3の数字が含まれている」場合、'3!'と出力させる。
- 問34 キーボードから文字を入力させて、入力した文字が「Perl」「Ruby」「Python」のいずれかの時は'LL'と出力し、それ以外の時は'other language'と出力させる。
- 問35 配列名「array」を宣言する。
- 問36 配列名「array」に、1から10までの数を順番に代入する。
- 問37 問36で作った配列の添字'5'の値を出力する。
- 問38 問36で作った配列を利用し、配列の先頭から3番目の要素、6番目の要素、10番目の要素の足し算を行い、結果を出力する。
- 問39 問36で作った配列を利用し、配列の先頭の値と配列の末尾の値を入れ替える。
- 問40 配列名「fruits」を宣言し、'apple','orange','banana','kiwi'を代入する。
- 問41 配列@numを宣言し、 1から1000までの整数を配列に代入する。(要素数は1000個になります)
- 問42 問41で作成した配列を利用して、1000から1まで逆順に並んだ数字の配列@rev_numを作る。
- 問43 問42で作成した@rev_numの要素を昇順にソートした配列@sort_numを作る。
- 問44 問41で作成した@numの要素を先頭から順番に出力する。(for文を使う)
- 問45 問41で作成した@numの要素のうち、先頭から10番目までの要素出力する。(for文を使う)
- 問46 問41で作成した@numの要素のうち、100番目から110番目までの要素出力する。(for文を使う)
- 問47 問41で作成した@num、問42で作成した@rev_numを使い、2つの配列の同じ添字の値を足した時全て1001になるか調べるコードを書く。(for文を使う)
- 問48 問41で作成した@num、問43で作成した@sort_numを使い、2つの配列の同じ添字の値が全て同じになるか調べるコードを書く。(for文を使う)
- 問49 C言語風のforループ文を使い、10回ループするコードを書く。
- 問50 問49のfor文を使い、画面に10回'Papix!!'と出力させる。