【14日目】パソコンちゃんと会話する?
試験当日まであと17日!!
どうも、アややです。
全く関係ない話ですが、日々の空気の乾燥とマスク着用生活により
くちびるの皮がどエライことになっています。パリパリ!
今日はプログラミングについてお勉強しました。
高専在学時代、電気情報工学科と電子制御工学科の人たちが
阿鼻叫喚しながらプログラミングの勉強していたのを覚えています。
今回勉強した内容については、その人たちが学んでいたものよりも
もっともっと浅いし、もっともっと基礎的な部分なのでしょうが・・・
もれなく私もそうなりましたワ!!!!!(大声)
『そもそもプログラミングって何?』ってところから。
まあ当たり前の話なんですけど、
パソコンちゃんに「1+1は?」って聞いたところで、しーーーーーんです。
もちろんカメラに向かってピースしてくれることもありません。
パソコンちゃんは、日本語わかんないですもん。
じゃあどうやってパソコンちゃんに色々聞いたりお願いしたりするの?
そこで活躍するのがプログラミング言語です。
パソコンちゃんでもわかるように、私たちの言葉を翻訳します。
そして、私たちのお願いごとをパソコンちゃんに理解してもらうために、
色々順序立てて綴ったものを、ソースコードと呼ぶらしい。
なんか聞いたことありますね、焼きそばにかけるやt(違う)
プログラミングをするにあたって大事なのは、
物事を順序立てて、構造化することらしい。
機能単位の部品に分けて、それを組み合わせて全体を作る感じ。
私たちの普段の生活でもそうですよね。
今の時期、「歓送迎会するゾ!」って会社でなったとしても、
「場所は?」「何するの?」「誰呼ぶの?」「予算は?」みたいな感じで
色々項目に分けて、一個ずつ解決して全体を決めていくじゃないですか。
多分そんな感じです。(まあコロナ禍なんで歓送迎会も難しいですけどネ。)
さらに、パソコンちゃんと会話するためのプログラミング言語には
原則的に揺るがない決まりごとがあるらしい。
それは、3つの制御構造のみで構成されるということ。
■ 上から順番に処理を実行する順次構造
■ 何らかの条件によって分岐させ、いずれかの処理を実行する選択構造
■ ある条件が満たされるまで、一定の処理を繰り返す繰り返し構造
どんだけややこしそうなお願いでも、
基本的に全部この3つだけでなんとかなるらしいです。マジか。
パソコンちゃんは、このプログラムに書かれた
アルゴリズム(作業手順)にのっとって動いてくれます。
お願いしたことは何でもやってくれるパソコンちゃんですが、
「言われたこと以外はぜってぇやんねぇ」というのもパソコンちゃん。
なので、パソコンちゃんに何かお願いするときは
1から10まで全部ぜーーーんぶプログラムに書いてあげなきゃいけない。
パソコンちゃん、イイコなんだかメンドイコなのか
なんだかわからなくなってきました。多分イイコだと思うけど・・・。
このアルゴリズムさえしっかりしておけば、あとはパソコンちゃんと会話するためのプログラミング言語に翻訳するだけです。
なので、この作業手順を固めること、アルゴリズムをしっかり考えることがプログラミングにおいて一番大事なことらしいです。
さっき上で書いた『物事を順序立てて、構造化すること』そのままですね。
このアルゴリズムをわかりやすく表すのに用いられるのが、
フローチャートと呼ばれる、処理の流れを表す図です。
じゃあ毎週のゴミ出しのフローチャートを書いてみようと思います。
こんな感じで、3つの制御構造でいう繰り返し処理です。
(間違ってたら誰かコッソリ教えてください・・・)
ちなみに、アルゴリズムの中でも
箱の中から特定のデータを見つける探索アルゴリズム
箱の中のデータを並べ替える整列アルゴリズム
が割と代表的なものだそうです。
この整列アルゴリズムの中でも、
バブルソートというものが最も単純なやり方らしい。
今日はそれに関する過去問を紹介したいと思います。
【問題】
5個のデータ列を次の手順を繰り返して昇順に整列する時、整列が完了するまでの手順の繰り返し実行回数はいくつか。
[整列前のデータ並び順]
5, 1, 4, 3, 2
[手順]
①1番目のデータ>2番目のデータならば、1番目と2番目のデータを
入れ替える。
②2番目のデータ>3番目のデータならば、3番目と4番目のデータを
入れ替える。
③3番目のデータ>4番目のデータならば、3番目と4番目のデータを
入れ替える。
④4番目のデータ>5番目のデータならば、4番目と5番目のデータを
入れ替える。
⑤一度も入れ替えが発生しなかった時は、整列完了とする。
入れ替えが発生していた時は、①から繰り返す。
ア:1 イ:2 ウ:3 エ:4
(IPSY-41)
答えは エ:4 です。
ちょっと解いてて面白かったです!(こういう地道な作業が割と好き)
明日はシステム構成と故障対策についてお勉強します。
パソコンちゃんがぶっ壊れたり、利用者が多いめちゃデカシステムが
故障してしまった時にどう復帰するのか、故障をそもそもどう防ぐのかっていうお話です。
もし私のパソコンちゃんがぶっ壊れたら・・・どうしよう・・・。
とりあえずメソメソ泣いてしまうかも・・・・・・。
この記事が気に入ったらサポートをしてみませんか?