昨日、息子にプログラミングを教えました

昨日、6才の息子に初めてプログラミングを教えました。

内容はRubyで、別のファイルを読み込んで、何時間何分という時間の書かれたリストから全部の合計時間を計算するというものです。

ソースはこんな感じ。

total_hour, total_minute = 0, 0
File.foreach("video-time-list.txt") do |line|
  next unless line =~ /(\d+):(\d+)/
  hour, minute = $1.to_i, $2.to_i
  total_hour += hour
  total_minute += minute
  if total_minute >= 60
    total_hour += 1
    total_minute -= 60
  end
end

puts "%dじかん%dふん" % [total_hour, total_minute]

puts "%dにちかん%dじかん%dふん" % [(total_hour / 24), (total_hour % 24), total_minute]

きっかけが、HDDレコーダーにある息子の録画した番組のリストから全部で何時間か計算したいと言い出したことだったので、そのようなプログラムにしました。

最初は紙と鉛筆でがんばって計算していたのですが、ビデオのリストが150個もあり、30個くらいのところで挫折して、じゃあプログラムで計算してみよう!と私から提案しました。

もちろん、がんばればExcelでもできるような計算ですが、ちょうどプログラミングを教えるいい機会かなと思った次第です。

とりあえず、順次実行と条件分岐と繰り返しの3つがあるよということを教えてから、実際のプログラムを作ってビデオリストの合計時間を計算するところまでは達成しました(≧▽≦)

その時の説明文書が以下です。


プログラムとは

コンピュータにはたらかせる めいれい をかいたもの

プログラムをかく ほうほうも たくさんあります

たとえば、ひとが はなす ことばにも にほんご や えいご や ちゅうごくご があるように
プログラムにも いろんな げんご があります

たとえば C Java ruby perl php python C# ...

きょうは そのなかで ruby という げんご で プログラムします

プログラムは きほんてきに

じゅんばんに めいれいを じっこうする
じょうけんぶんき (あるばあいと そうでないばあいで じっこうする めいれいをかえる)
くりかえし

この3つをつかってつくります

1つ目のプログラム

# じゅんばんに めいれいを じっこうする

puts "こんにちは"  # puts はがめんに もじを ひょうじする めいれい
puts "◯◯くん"    # ◯◯は息子の名前
puts "きょうは よろしくね"

# けいさんをしてみよう
# けいさんをするには へんすう というものをつかいます

a = 1   # この a をへんすうといいます
        # すうじを いれることができる はこ のようなもの

puts a

puts a + a
puts a + 1

b = 2

puts "a + b = %d" % (a + b)

2つ目のプログラム

# じょうけんぶんき
a = ARGV[0].to_i

puts a

if a > 10
  puts "おおきい"
else
  puts "ちいさい"
end

3つ目のプログラム

# くりかえし
2.times do |i|
  puts "%d: こんにちは" % i
end

9.times do |i|
  9.times do |j|
    puts "#{i+1} × #{j+1} = %d" % ((i+1) * (j+1))
  end
end

どの程度理解したかは分かりませんが、楽しんでくれたようだったので良かったです(^^;;