短期大学部・総合文化学科 │ 聖徳大学

【ITコラム】パタトカクシーー

21.10.15


————————————————————————————————–

ひとつとびぶったい パタトクカシーー

パタトクカシーーってなあんだ ♪

“パタトクカシー”という文字列から、奇数番目の文字だけ「ひとつとび」に取り出して並べると

1  2  3  4  5  6  7  8
奇  偶  奇  偶  奇  偶  奇  偶
パ  タ  ト  ク  カ  シ  ー  ー
↓      ↓      ↓      ↓
パ      ト      カ      ー

“パトカー”になりますよね。こんな風に ひとつとびぶったい の名前をとりだすプログラムを書いてみましょう。

奇数番目 []       = []                    
-- (1) もらってきたのが空の文字列だったら答えは空の文字列
奇数番目 (c : cs) = c : (偶数番目 cs)     
-- (2) もらってきた文字列の先頭文字が c で残りの文字列が cs なら
--     答はの先頭の文字は c で残りは文字列 cs の偶数番目を並べたもの

文字列が空のとき、文字列が空でないときに分けて考えていますね。[]は空の文字列を表します。 : の左側は先頭の文字、右側はその後ろに続く文字列を表します。

(2)のところは、先頭を除いた残りの文字列の「偶数番目」というのがミソですね。(.. というほどのことはなく、あたりまえですね、と思う人もいるかもしれませんね。)

さて、では偶数番目というのを考えてみましょう。

偶数番目 []       = []                    
-- (3) もらってきたのが空の文字列だったら答えは空の文字列
偶数番目 (c : cs) = 奇数番目 cs           
-- (4) もらってきた文字列の先頭文字が c で残りの文字列が cs なら
--     先頭を除いた、文字列 cs の奇数番目を並べたもの

これでちゃんと動くの?と思いませんでしたか。
そういうときは、プログラムがおかしなこと(まちがったこと)を言っていないかどうかよく読んでみます。

間違ってはいなそうだけど、どうも納得いかないということはありませんか。
そういうときは簡単な例で、プログラムがやろうとしていることを実際に自分でたどってみましょう。

奇数番目 "あはめれ"
  => { "あはめれ" は、 'あ' : "はめれ" と同じ }
奇数番目 ('あ' : "はめれ") 
  => { (2) より }
'あ' : (偶数番目 "はめれ")
  => { "はめれ" は、 'は' : "めれ" と同じ }
'あ' : (偶数番目 ('は' : "めれ")) 
  => { (4) より }
'あ' : (奇数番目 "めれ")
  => 
'あ' : (奇数番目 ('め' : "れ"))
  => { (2) より}
'あ' : ('め' : (偶数番目 "れ"))
  =>
'あ' : ('め' : (偶数番目 ('れ' : [])))
  => { (4) より }
'あ' : ('め' :(奇数番目 []))
  => { (1) より }
'あ' : ('め' : [])
  =>
'あ' : "め"
  =>
"あめ"

上手くいってそうですね。実際に動かしてみましょう。

>>> 奇数番目 "パタトクカシーー"
"パトカー"
>>> 偶数番目 "パタトクカシーー"
"タクシー"
>>> 奇数番目 "サスンリダッルパ"
"サンダル"
>>> 奇数番目 "サスンリダッルパ"
"スリッパ"

よくできました。^^/

チバテレの情報番組「モーニングこんぱす」内で、総合文化学科が紹介されました。
YouTubeの聖徳大学チャンネルにて、公開しています。どうぞご覧ください♪

総合型選抜C日程の出願がもうすぐ始まります! 10/20(水)~10/27(水)
くわしくはこちらからご覧いただけます。

 総合文化学科のWEBオープンキャンパス特設ページこちら

※ ツイッター・インスタグラムも日々更新しています!

PAGE TOP