第2講 変数
第7話 Console.ReadLine()によってキーボードから入力したデータを受け取る
データの値をプログラムコード上から入れているだけでは、
汎用性と普遍性のあるプログラムを作ることは出来ません。
汎用性というのは、幅広く使えたり、一般的に使えることをいいます。
普遍性の普遍は、あまねくという意味で、やはり一般的に使えることを言います。
特殊な用途にしか使えないソフトではだめで、
幅広く一般的に使えるソフトを開発することが理想です。
AIが今話題になっていますし、
メーカーもAI搭載としきりに宣伝していますが、
AIは実はまだ実現できていません。
お掃除をするロボットや自動運転をするプログラムなどは、
開発されていますが、
研究者はこれらをAIとは見なしません。
メーカーが宣伝しているAIは、
将棋のみ・囲碁のみ・掃除のみなど、
限られた用途、特殊な仕事しか出来ないからです。
AI研究者が目指している人工知能とは、
人間のように何でも出来る知能です。
つまり、汎用的にして普遍的な知能です。
オックスフォード大学が指摘するように、
企業やメディアがいう『AI』が20年以内ぐらいに、
人間の職種の半分程度をなくしてしまう、
奪ってしまうということは確実であると思われますが、
本当のAIの開発には50年以上の年月が必要でしょうね。
さて、脱線は以上にしてコード上からではなく、
コンソール画面を通してキーボードから値を入力できるようになれば、
プログラムの用途は広がり汎用性のあるものになることはおわかりでしょう。
第1講でコンソール画面への出力である
Console.WriteLine()やConsole.Write()を学びましたが、
コンソール画面からの入力である
Console.ReadLine()がキーボードからの入力を可能にします。
今回も習うより慣れろで、
早速具体例を出してみましょう。
コードを次のように変更してCtrl+F5をしてみましょう。
Module Module1
Sub Main() '私は社長だ。
Dim a As Integer '整数を入れる箱を用意
Console.WriteLine ("キーボードからaの値を入力してください。")
Console.Write ("a = ")
a = Console.ReadLine()
Console.WriteLine ("キーボードからaに値が代入され")
Console.WriteLine("a = {0:d}", a)
Console.WriteLine ("となりました。")
End Sub
End Module
実行画面
でたしかに、キーボードから入力が可能になりました。
では、問題です。
実行画面が
となるようにコードを変更してください。
解答例は30行下に示します。
解答例
Module Module1
Sub Main() '私は社長だ。
Dim a, b As Integer '整数を入れる箱を用意
Console.WriteLine ("キーボードからaとbの値を入力してください。")
Console.Write ("a = ")
a = Console.ReadLine()
Console.Write ("b = ")
b = Console.ReadLine()
Console.WriteLine ("キーボードからaとbに値が代入され")
Console.WriteLine("a = {0:d} b = {1:d}", a, b)
Console.WriteLine ("となりました。")
End Sub
End Module
この使い方を
a = Console.ReadLine()
是非覚えてください。
第3講の第6話の
Module Module1
Sub Main() '私は社長だ。
Dim a As Integer '整数を入れる箱を用意
a = 0 '初期化
'以下計算
a = a + 1
a = a + 2
a = a + 3
'以上計算
Console.WriteLine(a)
End Sub
End Module
はコンピュータの特徴をまったく生かしていません。
これを解決するにはFor文を学ぶ必要がありますので、
第3講ではFor文を学ぶわけですが、
第2講には、参照について述べるという任務が残されていますので、
次話で参照について述べてから第3講に進みます。