sironekotoroの日記

Perl で楽をしたい

Perl入学式 オンライン 2021 第2回お疲れ様でした

Perl入学式 オンライン 2021 第2回

受講された方、サポーターの方、お疲れ様でした。 講師の人です。

今回は条件分岐の if 文に繰り返しの for 文をやりました。そして、それを合わせて利用する fizzbuzz をやりました。

また、複数の値を格納する配列を学びました。

今回のスライドの内容です。

github.com

講義中に解いた練習問題の回答例です。

github.com

講義スライドや動画を見て、不明点がある場合には Discord で質問してみてください。第 0 回の環境構築や第 1 回、前年度の内容などについてでも大丈夫です。

サポーター陣一同お待ちしております

discord.com

fizzbuzzExcel

今回、というか自分が講義を受け持つときは毎回、fizzbuzz と自分の出会いのエピソードを語っていました。

それは、Excel でやってみようとしてできなかった、というものです。

今回もそれを説明しつつ、そろそろこの過去からの宿題を終わらせるべき・・・と思ったのでした。

Excel で剰余

Excel で剰余を求めるときは =mod(数値, 割る数) を利用します。

Excel で if 文

if 文もあるのですが、fizz, buzz, fizzbuzz と条件が複数あるので、 ifs を利用します。

=IFS(論理式1, 値が真の場合1, 論理式2, 値が真の場合2 ... )というものです。

また、いずれの条件にも合致しないときには対象の数字を表示するのですが、それを実現するために =IFERROR(値, エラーの時の値) で囲みます。

Excel で AND

これはそのまま AND(論理式1, 論理式2) を使います。

完成

できたのがこの関数です。

=IFERROR( IFS( AND( MOD($A2,3)=0,( MOD($A2,5)=0) ), "fizzbuzz", MOD($A2,3)=0, "fizz", MOD($A2,5)=0, "buzz"), $A2 )

f:id:sironekotoro:20210620221947p:plain

長く未提出だった宿題を終えることができました。

でもまぁ、あの時「え、オレってこの簡単そうに見える fizzbuzz も解けないの!?」という衝撃あればこそ、 Perl をしっかり学ぶことができたので塞翁が馬ってやつですね。

ほんと fizzbuzz に感謝です。

あと、過去できなかったことや分からなかったことをブログに書いておくと、過去からの宿題という形でネタができるので、ブログ書いておくのおすすめです。

オンライン第 2 回

7 月以降を予定しています。次回は以下を予定してます。

  • 配列を操作する関数
  • ハッシュ
  • ハッシュを操作する関数
  • サブルーチン

開催日は現在 Discord でアンケート中です。

discord.com