日誌

情報技術科ここだけトピックス

グループ ド・モルガンの法則

論理演算での法則として「ド・モルガンの法則」があります。

A猫好き B犬好き としたとき、{( A と B どちらかでもあてはまる人 )ではない人 }は、{( Aではない人 )と( Bではない人 )どちらもあてはまる人 }と同じ人たちを指すことになります。※図上段の関係式

もう一つの関係式として、{(猫犬どっちも好き)ではない人 }と{猫好きではない人 と 犬好きではない人 どちらかでもあてはまる人 }は同じことになります。※図下段の関係式

 

コンピュータの分野では様々な論理関係式が回路設計上の簡略化にも活用されます。

心配・うーん デュアルシステム

一部教育分野でも同様の言葉があるようですが、コンピュータシステムにおいては処理を2つの同じシステムに実行させるシステム形態を指します。

実行結果を検証するために、それぞれのシステムの結果を照合しながら稼働するものです。

構成上同じ処理をするシステムが複数あるので、もし一つが故障してもそれを切り離して動作し続けられれば処理は止まらずに済むとも考えられます。そのためシステム全体のコストは高いですが障害対策としても活用できます。

 

困る デュプレックスシステム

システム故障の対策として同様の予備システムを用意して、いざというときに切り替える仕組みをデュプレックスシステムといいます。(予備機が稼働状態で待機するホットスタンバイと、稼働させずに予備機を準備しておくコールドスタンバイがあります)

もしもの故障で予備システムへの切り替えがうまくいったとしても、システムの切り替えから予備システム稼働の最中は、後が無い動作状態ともいえます。実社会で万が一にでも停止してはならないシステムであればさらなる工夫が必要です。 

会議・研修 要件定義および外部設計

システム開発の流れを切り分けるとき、システムの全体仕様を決める要件定義と、そのシステムの見た目や他へのデータ形式や流れなど、対外的な部分の仕様を決める段階になります。

 『要件定義』→『外部設計』→内部設計→・・・

実際の開発現場では「基本設計」や「〇〇設計」であったり、要件定義に一部含まれたり呼び方は様々です。

顧客の要望を確認して進むので、最も重要なのは、相手の求めることの理解と、設計書など文書作成も含めた伝えるためのコミュニケーション能力といえます。

 

キラキラ ワイルドカード

 

トランプやUN〇のようなカードゲームで特別な効果を持つカードを指しますが,コンピュータ操作では複数のファイルやデータを指定するために活用する特殊な文字のことになります。

Windowsのコマンド操作では「?」が1文字分,「*」が0文字以上の任意の文字列をあらわします。たとえば図のデータに対して「*ka*」で操作する場合,「mikan」「ponkan」「suika」が該当することになります。

  

※OSやアプリケーションによりワイルドカードの種類は異なります。

雷 ホットスワップ

USBメモリなど、わざわざ本体電源を切らなくても付けたり外したりできると思います。電源を入れたまま、本体が起動状態で機器の脱着ができることをいいます。(ホットプラグとも称される)

機器のメンテナンスで部品を交換したい場合、多くの人が利用するサーバは常に使えているほうがよいので、個人向けのパソコンより様々な部分(電源部分など)がホットスワップに対応していることがあります。

インフォメーション IEEE

「あい とりぷる いー」と読みます。この組織の「IEEE Standards Associasion」という部門で様々な規格が策定されています。国際標準として規格が扱われているので、様々なメーカーの製品や国を越えての製品利用が相互に可能になります。

国際標準のための組織はいくつかありますが、無線LANのIEEE802.11acなどコンピュータについて知る上で多くの規格名を目にすることがあるはずです。

IEEE規格検索(英)

IEEE標準化について(日本語PDF約3MB)IEEEジャパンオフィス

星 文字なのか,値なのか

「1」と表記表示されたとき、人間はただ「いち」として扱うだけですが、コンピュータにとっては『文字データ』か『数値』なのかによって内部での表現が大きく変わります。

コンピュータは「1」を『文字データ』であれば2進数表現で「00110001」※(ASCIIまたはJISなどの文字コード)。「1」を『数値』であれば2進数表現で「00000001」と扱います。

外部から入力データを得るときなど、どのようなデータでどのような形式なのか。気を付けなければならないことが多くあります。

雷 DRAM

コンピュータのメインメモリとして、スマホも含めて製品仕様表などに「メモリ:〇〇GB」と記載されているメモリの種類になります。

Dynamic Random Access Memory の略で、特徴としては、構造にコンデンサを用いているのでデータを保持するために通電させておくだけでなく、常にリフレッシュ動作が必要になります。通電させておけば保持していられるSRAMもありますがDRAMは比較的安価に大容量化できます。

人間の記憶も、一度見てずっと覚えていることは少ないと思います。しっかり覚えておくためにはDRAMのように何度も繰り返していきましょう。

下 電源ONーOFF

機器を使用するとき先ずは電源操作しますが、電源ONを「電源を入れる」、電源OFFをよく「電源を切る」「落とす」とも言ったりします。一般的にも言うことが多いので「電源落として~」「電源切っといて~」といわれて、いきなり機器を机から落としたりケーブルを実際に切断したりする人はもういないと思います。

コンピュータの多くは様々なソフトウェアが動作しているので、正しい「シャットダウン」手順で電源OFFしましょう。

ビジネス パス

ITパスポート試験の略称でIパスといったり、パスワード入力のことを口頭ではパス入れて~と言ったりもしますが、ここではファイルやフォルダの構造のことを説明します。

スマホだけを扱っている場合は意識しづらいですが、パソコン操作やソフトウェア開発をするときには様々なファイルの位置関係を意識しなければなりません。

ファイルやフォルダの位置関係を表す文字列をパスと呼びます。Windowsを例とすれば、ドライブ名「C:」に続いて「¥」で区切られたフォルダ名が続きます。

嵐 サンドボックス

一般には公園によくある砂場です。

セキュリティの重要性とともにIT用語として使われ始めました。マルウェアなど疑わしいプラグラムの確認(検疫)を安全に実行する仮想環境などを指します。

ゲームジャンルでも箱庭のように一つの世界をつくりあげるタイプを指しているようです。

 

朝 リピータ

お店に繰り返し来てくれる人・・・ではなく、コンピュータネットワークにおいてある機器(機能)を指します。

電気信号や電波は離れるほど減衰して正しく伝わらなくなってしまいます。そこで、リピータを使い信号を増幅してその先まで中継することができます。リピータ「ハブ」の場合には接続端末すべてに信号を伝送する装置になります。

 

ピース コミットとアボート

オンラインで処理される銀行システムやチケット発行など、不具合でお金につじつまが合わない結果が発生することは許されません。

データベースシステムでは、一連のデータ処理(トランザクション)が確実にできる機構を備える必要があり、処理の成功をコミット、失敗をアボートと呼びます。基本的に一連の処理後に、さらに「コミット処理」という正常に一連の作業がなされているかの処理がなされ「コミット済」ではじめてデータ確定となります。データ処理中はもちろんコミット処理中でも異常があればすべて「アボート処理」に入り、さらに「アボート済」でデータ更新なされていない状況に戻ります(ロールバック)。

 

 

虫眼鏡 Mnemonic

ニーモニック(ニモニック)コードという言葉はアセンブリ言語を扱うときによく出てきますが、アセンブリ言語にかかわらず意味が連想できる英数字や記号の組合せをコードとして割り当てる方式のことです。(表意コードともいう)

アセンブリ言語は数値のみの機械語をLDやADDなど動作の略語で対応させたものですが、身近なところでWebサイトのアドレスでも、「~.jp」「~.uk」「~.us」のように国名から略してつけられています。

一時期流行ったKY(空気読めない)などの略語も当時としては、日常の一言をコード化したニーモニックといえるかもしれません。

理科・実験 揮発性と不揮発性

アルコールなどすぐ蒸発して揮発性が高いといいますね。でもコンピュータ分野では記憶装置であるメモリに関する用語になります。

通電していないとデータが消える揮発性メモリ(DRAMやSRAMなど)と、電源が切れてもデータが消えない不揮発性メモリ(EEPROMやフラッシュメモリなど)があります。CPUなど処理の中枢に近い部分には揮発性メモリが、所謂USBメモリなど保管したり持ち歩いたりするものは不揮発性メモリが現在使われています。

グループ コンピュータのタスク管理

どんなコンピュータでもOSをはじめ幾つものプログラムが動作して成り立っています。そしてCPUの作業単位をタスクといいます。

細かいタスクを優先順位などでOSが管理する形式をプリエンプティブといいます。タスクは「実行状態」と、CPUの順番を待つ「実行可能状態」と、入出力などを待つ「待ち状態」としてOSに管理されます。優先順位の高いタスクが発生すると実行状態でも一旦に実行可能状態になり(プリエンプション)、先のタスクが終わって実行可能状態から実行状態になります(ディスパッチ)。

これに対し、個々のプログラム基準でタスク実行から離れるか待ち状態で順次タスクが実行される形式をノンプリエンプティブといいます。

驚く・ビックリ 排他的論理和の活用

排他的論理和(Exclusive OR)は入力の0・1の組み合わせが異なるときに1を出力します。見方をかえると、入力の片方が0なら一方の信号をスルー、片方が1ならもう一方の信号を反転します。

常に反転するNOTと違い、必要なときだけ反転させたりビット列の特定部分だけを反転できます。電子素子でも実装できるので高速な処理やプログラミングの演算としても四則演算とは異なる結果が得られるので様々な活用が考えられます。実際には通信データの誤り検出などに使われています。

重要 ゼロ除算

10÷0=?

数学的には不定や計算不能などありますが、プログラミングでも計算するデータ型によって違う結果が得られたり計算不能としてエラーが返されたりします。重要なシステムに限らず、突然止まったりとんでもない結果が返ってきたら困ります。より安定した動作実現のために、除算する変数をチェックしたり例外処理を組み込んだりすることが重要になります。

(プログラミング言語や変数の型によって結果が異なることも是非試してみましょう)

キラキラ RGB

プログラムなどでディスプレイ画面で見る「色」を指定する場合、基本的に光を合わせて表示するので加法混色(additive mixture)が用いられます。Red,Green,Blueの3色の組み合わせで表現します。多くの場合、各色8ビット(256段階)であらわしますが、3色の値が少ないほど黒に近づいて大きくなるほど白に近づきます。(3色×256段階=1677万7216種類の色が表現できる)

 16進数で各色を連ねた「カラーコード」という表記がWebページでよく扱われます。黒(black)なら#000000,赤(red)なら#ff0000,紫(purple)なら#800080 になります。「カラーコード」などで検索すると色と数値の対応が紹介されたページが多くあります。

ノート・レポート COBOL

COBOL(COmmon Business Oriented Language)は1959年に開発されたプログラミング言語です。この言語で新たにシステム開発が行われることは無いかもしれません。

役割別に4つの部(DIVISION)とさらに節(SECTION)で構成されていて高い可読性があります。コード内で帳票入出力の設計がしやすいなど、非常に事務処理に特化しています。

(画像は https://paiza.io で給与算出を想定してコードを作成したものです。正式には何を何文字目から記述するかについて決まりがあります。)

視聴覚 H.264/MPEG-4 AVC

スマホやパソコンなどインターネット経由で動画を見るときによくお世話になるコーデックです。テレビの地上デジタル放送やDVDビデオは主にMPEG-2が使われています(ワンセグ放送やBlu-rayDiscビデオはMPEG-4)。MPEG-2でもかなりのデータ圧縮(元データに比べ10分の1など)が行われていますが、MPEG-4では更に倍程度のデータ圧縮率が実現されています。

 

 

 

お辞儀 AI(artificial intelligence)

人工知能といわれますが、研究者の中でも何をもって人工知能といえるかは分かれています。巷で「AI搭載」などといっても様々な技術で特定の状況でそれっぽく動かせていることが現状だともいえます。シンギュラリティという言葉で人工知能の進化を掲げる研究者がいて、その後(今まで無理であった一部の)特定のことであれば人間を超えて結果を出すことができていて、技術開発は盛んに行われています。

AI技術はツールであり、本格的にコンピュータプログラミングや数学に携わる人間がそのツールに踊らされることのないように、使う立場になりましょう。

※人工知能に関しては理解が変わることが想定されるものです。この内容は2020.4現在のものです。

NG コンピュータウィルスの大別

コンピュータウィルスは 自己伝染機能、潜伏機能、発病機能を一つ以上有する有害なソフトを指し、メール添付ファイルの開封やインターネットからのダウンロードなど人の操作で動作するものや、コンピュータや特定のソフトが起動していれば勝手に介入するものなど様々なものがあります。

  存在方法 自己増殖
ウイルス 他のファイルを改変 することが多い
ワーム 基本的に単体で存在する ほぼする
トロイの木馬 無害ファイルになりすますことが多い しないことが多い

※サイバーセキュリティ.com 、通商産業省1995参照。ウィルス対策ソフトメーカなどでさらに細かく示されてもいます。

様々な形態があれど、セキュリティ対策には「アップデート」とメール添付・ブラウザなどの「操作やパソコン自体の動作変化に注意する」ことができれば非常に効果的です。

情報処理・パソコン LCD

液晶ディスプレイ(Licuid Cryctal Display)のことです。見かけなくなったプラズマ形式やブラウン管でもなく、素子が発光する有機ELでもなく、バックライトに対して液晶の電気特性の偏光を活用して表示する装置全般のことを指します。

もともとはイカの内臓物質から応用されたとも(そうではないという書籍もあると)言われていますが、何が応用できるか試行錯誤の上に実を結び、2020現在最も多く利用されている表示装置です。

眼鏡 コンパイラ言語とインタプリタ言語

という、特定のプログラミング言語があるわけではありません。

どちらもコンピュータが直接実行できる機械語に翻訳されますが、プログラムの実行形態として機械語で記述された実行ファイルにしてから実行させるコンパイラ言語と、そのプログラミング言語で書かれた(ソース)ファイルを1ステップごと翻訳実行するインタプリタ言語に大別されます。

他にも○○言語といいながら特定のプログラミング言語ではない呼び名がありますので注意しましょう。

鉛筆 コメント

プログラムのコーディングをするとき、見返したり他の人が理解しやすくするためにもコードの説明を加えておくことが望ましいです。コード中に日本語でも英語でもいきなり説明文を書くとエラーになってしまうのでそれぞれのプログラミング言語には処理と関係なくするための記述方法があります。

C言語であれば //2つのスラッシュ以降の改行まで部分はコメント

または /*スラッシュとアスタリスクで囲んだ部分がコメント*/

説明だけでなく、試行錯誤しているとき元コードを残すためにも使えます。(コメントアウト)

大雨 たたいて直る?

最近は、家電製品の調子が悪いときに「たたくと直る」ことは少なくなったような気がしますが、まだ慣れていない生徒の製作物はたたくと動作が変わることがよくあります。基本的にこれはすべてはんだ付け不良によるものです。

よいはんだ付けのためには、汚れや錆に気をつけて接合部が馴染むための十分な熱しが重要です。

(※はんだ作業のときは安全のため眼鏡かゴーグルをしていることが望ましいです)

雪 スタック

stackという言葉には積み重ねられた干草などありますが、コンピュータ分野では最後に入れたものから取り出せる(LIFO:Last-In First-Out)データ構造のことを指します。

 

身近な例ではブラウザ履歴で戻る進むことや画像編集時などのUndo機能の記録構造はスタックです。

ひらめき MTTF

ものが故障するまで正常に使えている時間をMTTF(Mean Time To Failure)と呼び、「故障までの稼働時間の合計÷故障件数」で算出できます。 例:故障3件、稼働時間各120時間、100時間、140時間 ならば MTTFは120時間となります。

電球などの製品に寿命として示される時間はそれぞれ算出方法も異なり、さらに実際には電球スタンドなどに組み込まれて使用されるので他の箇所の故障も考えられ、指標としてもあいまいになりがちです。

基本情報処理技術者試験等ではMTTR:平均修理時間、MTBF:正常稼動から故障までの平均故障間隔 が主に用いられ、システムの稼働率を求めます。

情報処理・パソコン マザーボード

パソコンはCPUやメモリ、各種ドライブ、拡張カード、電源、入出力装置で構成されます。各種装置はマザーボード(メインボードまたはロジックボードとも呼ぶ)のスロットやソケット、コネクタに接続されます。最近はCPUが直接制御する部分も出てきましたが、多くの場合マザーボード上の「チップセット」が装置間の管理・制御をしています。

形状は違えど、ノートパソコンやスマホも同様の仕組みです。

インフォメーション 統合開発環境(IDE)

システム開発は、エディタやコンパイラ、リンカ、デバッガなど様々なソフトウェアが必要で、さらに動作対象のマイコンやOS、プラットフォームによって対応したものが必要になる。これらがまとめられて提供されているものをIDE(Integrated Development Environment):統合開発環境 といいます。

開発環境の準備や開発自体が容易になりますが、IDEによっては独自のデータ形式になることも多いので作業ファイルの取り扱いに注意が必要です。

バス 命令とオペランド

コンピュータの処理を司るCPUでは、常に様々な命令が実行されています。

CPU ← プログラム

基本的にはCPUの種類ごとに命令の内容は異なりますが、どのような処理や制御をさせるかという「命令」と、どんなデータを指定するかという「オペランド」がセットで構成されます。

オペランドは基本的にCPUが高速にアクセスできるレジスタか、多くの作業データを置けるメインメモリのアドレスになります。

 

飲み会・ビール POS

販売時点情報管理(Point of sales - system)を意味します。

コンビニやスーパーでは支払いする所にレジ端末を置いて、バックヤードのコンピュータが商品価格などの情報を蓄積しています。今では様々な機能が連携されたり、アプリとしてスマホをPOSレジとして活用することもできるようです。

   

 商品コードから価格を求めて、販売した記録をつけ、必要に応じ集計情報を出すことが基本です。基礎的なプログラミングができればもう作れますね。データ管理をより本格的に扱うならばSQLなども必要になります。

ひと休み 論理回路(基本論理回路)

実現させたい機能などを、実際の電子回路の設計のために0/1のような論理的動作で考えることができます。

入力がすべて1のとき1を出力するAND回路

入力がひとつでも1のとき1を出力するOR回路

入力が1なら0、0なら1を出力するNOT回路

論理的には上記3つを組み合わせたNAND,NOR,EXORがあります。

たとえば異なるデータを切り替えたい場合、次のように論理回路を組み合わせることで実現できることが考えられます。(論理回路に付く白丸はNOTの意味)さらに電子部品や電気的な事象を勘案して製作に至ります。

    

 

嵐 RAID(レイド)

RAID(Redundant Array of Independent Disk)は複数の記憶媒体を用いて、基本的にはディスクの故障に対してもデータを守るための仕組みです。※もともとのⅠは「Inexpensive」のⅠです。

RAIDは仕組みによりレベル番号がついています。データを2つの記憶媒体どちらにも同じく書き込むミラーリング。データを複数の記憶媒体に分けて並列で読書きするストライピング。データ復元のためのパリティ算出。これらが組み合わされて実現されてます。

 

例えばRAID-5は3台以上のディスクで構成され、ストライピングとパリティを組み合わせて1台の故障ならデータが守られます。※ストライピングのみのRAID-0は故障率も上がり、データを守れません。

ひらめき 家庭用コンセントは何ボルト

 家電や充電器などをつなげて日々使っていると思いますが、家庭用コンセントはどんな電源でしょうか。さらに直接機器にセットする乾電池はどんな電源ですか。

スマホをはじめコンピュータの電子回路は基本的に数[V]の一定電圧で動作します。

直流・交流、電圧が異なる電源で動作させるためにはどうしたらよいか、詳しくは工業技術基礎の教科書を見てみましょう。

小雨 進数変換の基本的な考え方(小数)

コンピュータは電気的なON/OFFで動くため、1/0で数を表す2進数が基本となります。

2の乗数の組み合わせで表すので、小数も2進数で表現できます。小数点以下の場合は、2分の1(2の-1乗)、4分の1(2の-2乗)、8分の1(2の-3乗)・・・といった重みの値になります。

では、2進数の(101.0101)は10進数ではいくつでしょう。

雨 進数変換の基本的な考え方

コンピュータは電気的なON/OFFで動くため、1/0で数を表す2進数が基本となります。

2の乗数の組み合わせで表すので、実際には1(2の0乗)から始まり、2(2の1乗)、4(2の2乗)、8(2の3乗)・・・という値の組み合わせになります。

では10進数の100(ひゃく)は2進数で表すとどうなるでしょう。

視聴覚 CODEC

CODEC(コーデック)は動画や音声を扱うときによく出てきます。

音楽であれば、実際に演奏されている音をマイクから取り込んだのち、例えばMP3という形式にのっとってコンピュータのデータに変換(符号化)する「Coder」(enCoderともいう)と、保存などされたMP3形式のデータをスピーカーで再生させるための周波数信号に変換(復号化)する「Decoder」がセットになります。※「Compression/Decompression」(圧縮/伸長)の場合もあります。

ソフトウェアだけでなくハードウェアでもいくつかのCODECが実現されていますが、基本的にはプレイヤープログラムがCODECを利用しデータの再生をしています。

虫眼鏡 疑似乱数

サイコロをふってでる目のように、不規則な動きをさせてみたい。

C言語にはランダムな値を得るしくみとして、rand( )と初期化のためのsrand( )関数があります。rand( )だけではいつも同じ順番に数が得られてしまうのでsrand( )に現時刻を与えることで不規則な値を得るように見せかけることができます。

基本的にC言語など多くのプログラミング言語で準備されている乱数の仕組みは疑似的なものなので、疑似乱数と呼びます。

記念日 うるう年

2月は28日までだったり、うるう年は29日までだったり・・・
でも、うるう年ごとにスマホやパソコンの日付を設定せずに自動で表示されています。

うるう年は「4の倍数年にあり、でも100の倍数年には無く、でも400の倍数年にはある」というものです。
法則性があれば、プログラムで解決しやすいことになります。
たとえばC言語などで丁寧に組み立てるとしたら、次のように

  if(year % 4 == 0){
   if(year % 100 == 0){
    if(year % 400 == 0){
     days = 29;
    }else{
     days = 28;
    }
   }else{
    days = 29;
   }
  }else{
   days = 28;
  }


考え方次第では、もっと少ない処理で同じことができます。(%は余りを求める演算)

10の乗数を表すSI接頭辞(2)

小さな数を表す接頭辞(接頭語)としては、
m(ミリ)=10-3=0.001 ※千分の1
μ(マイクロ)=10-6=0.000001 ※百万分の1
n(ナノ)=10-9=0.000000001 ※十憶分の1
p(ピコ)=10-12=0.000000000001 ※一兆分の1
f(フェムト)=10-15=0.000000000000001 ※千兆分の1
・・・と続きます。
たとえば通信時間1ms(ミリ秒)なら 0.001s(秒)という換算になります。

あるCPUが2GHz動作で足し算に4クロックかかる場合
 4÷(2×109) = 2×10‐9 
なので処理時間は 2ns(十億分の2秒)と考えられます。

世界一小さいカメレオン

朝 可逆圧縮と非可逆圧縮

「かぎゃくあっしゅくとひかぎゃくあっしゅく」早口言葉ではありません。

様々な手法でデータ量を小さくすることを圧縮といいます。その中で、圧縮後に元と同じデータが再生できる手法は可逆(Lossless)、圧縮後の再生データは元と異なる手法が非可逆(Lossy)に分けられ、非可逆は多くの場合圧縮率が高くなります。

元に戻せないと困る文書等には可逆圧縮を用いて、画像や音声は人間の感覚で気づかない部分もあるため非可逆圧縮でデータ量を大幅に削減して活用されています。

 むぎゅー

 

 

ノート・レポート 0.01が0.01ではない??

数値を2の倍数(…21,20,2-1,2-2…)の組み合わせで扱う場合、10進数の 0.01 は切りよく表せません。

例えばプログラムのつくり方によっては、0.01を1万回足すと100.00のはずが100.002953、100万回足すと10000.00のはずが9865.223633が出ます。(同じ値を足しているのに増えたり減ったりします。なぜか考えてみましょう)

銀行の利息や商品の税額計算で、あるべき値が出ていなかったら大きなトラブルになってしまいますね。

   

 ※プログラミング言語によっても幾つかの内部表現方法があります。今回の値の変化は「https://paiza.io/ja」のC言語で出力したものです。

鉛筆 DNS

インターネット上の端末はIPアドレスで識別されます。

しかし、ブラウザでWebページを閲覧するときなど「 https://nsg-h.spec.ed.jp/ 」のように、文字列で指定できるようにするしくみがDNS(Domain Name System)です。

DNSサーバがいくつもあり、インターネット上の「名前」と「IPアドレス」の対応を管理しています。

 

理科・実験 OR(オペレーションリサーチ)

「OR」は、論理演算の論理和(オア)だけでなく、オペレーションリサーチ(オーアール)という分野としても表記として出てきます。

あることがらを よりよいものにするために、「なんとなく」ではなく「定量的」に分析,管理,評価することになります。

 

たとえば、100個のシュウマイ弁当を製造するために必要な豚肉の量は何グラムか。ある地点Xから〇地点を経由して地点Yに行く最短経路は? などに対して、勘ではなく数学的に分析し最善策を導くこともORの一つです。

ORのように定量的に考えることで、様々なことをプログラムで実現(自動化)することにもつながります。

電車 インフラ

インフラ(インフラストラクチャー:infrastructure)というと、道路や電気,ガス,水道,自治会といった、社会や生活の基盤を指します。

情報技術としてスマホのインフラを考えた場合、通信の機器や通信路、機器の電源となる電柱電線発電設備、様々な規格や法整備に関する団体も考えられます。

多くの人が現在スマホを使っていますが、いつでもどこでも使えていることは決して当たり前のことではなく、いくつものインフラ要素が稼働して実現しています。

視聴覚 DVD

映像などの記録媒体としてDVDを見かけますが、DVDは Digital Versatile Disc の略です。

VideoのVでは無く、多目的に使える円盤媒体という意味です。

     

情報処理・パソコン フリップフロップ

電気的に記憶する仕組みの一つとして、フリップフロップがあります。

        

通電している間は、状態を保持したり変更できたりするので

コンピュータが動作するための重要な要素でもあります。

右 入れ子

プログラミングにおいて、ループ内でさらにループを使用する構造などを入れ子と呼びます。
たとえば画像は縦と横(さらに色)で構成されるので、画像データなどを扱うには何重もの繰返し処理が必要になります。

                    

昼 HyperText Markup Langage

インターネット検索など、ブラウザでWebページを表示するときにHTMLが必要ななります。
Webページは文字だけでなく、画像や音声、動画やリンクを合わせて表示できます。
HTMLは様々な「タグ」でコードを構成してWebページがつくられます。

  
  ※このページのHTMLの一部

嵐 配線の色

電圧が直流 数[V] の電子回路を扱う場合でも、配線に用いる色にも気を払いましょう。
+5[V]などのプラス側は赤、対して0[V](電池でいうマイナス側)は黒、それ以外の箇所は赤黒を使わない・・・など
電源ラインを明確にしたり、信号の意味を分けて把握しやすくするためにも色分けは重要です。
   
(100[V]以上では明確な色分けがあり、配色も異なるので注意。)

お知らせ 予約語

プログラミングをする上で、変数名などある程度自由に決められる部分でも、
そのプログラミング言語で、すでに処理命令などで使われている語句と同じ名前は使えません。
(同名がつけられる言語でも、同名は望ましくありません)
     

出張・旅行 「おもしろさをつくる」とは?

もし好きなゲームがあれば・・・
そのゲームのどのようなところが楽しいですか?

「おもしろさ」をプログラムで実現するには、どうすればよいでしょう。
さらに楽しくするためには、どのような要素などがあればよいでしょうか、
そしてどのように実装できるか・・・

おもしろさは発想力だけで突発的にできるのではなく、ニーズの分析や
様々な要素を綿密に組み上げて、本当のおもしろさがつくられると言えます。

  

嵐 電力[W]ワット,電圧[V]ボルト,電流[A]アンペア

コンセントに、よく「最大1500Wまで」など表記されています。

    

電圧、電流との関係は  電力[W] = 電圧[V] × 電流[A]  になります。
家庭用コンセントは交流100[V]なので、電流としては合計15[A]の範囲で使ってくださいということです。
たとえば部屋全体で、30[A]の許容量があっても一箇所からタコ足配線すると危険になります。熱を持ったり、動作しなくなってしまうので、電力にも気を払いましょう。

? パリティ

データの正当性をチェックする手法(誤り検出)の一つとして、パリティビットの付加があります。


 7ビットのデータに奇数パリティを付加した例   
 0
1
 0
 0
 0
 1
 1
 0
 ※右端がパリティビット。奇数パリティの場合は全体で「1」の数が奇数になるようにビットを付加する。

 もし、何らかの異常でビットが反転してしまった場合・・・
 
 0
1
 0
 0
 1
 1
 1
 0
 奇数パリティのはずなのに、全体のビット「1」の数が偶数なので、このデータは誤りがあると気づくことができます。

遠足 代入

計算問題では、「1+2= 」 や 「3x2 - x =  」など、イコール記号の左側に式があって、右側に結果があることがありますが・・・

プログラミング言語の処理では基本的に、イコール記号の右側に式や処理をおいて、左側に結果を得るかたちで記述します。

     

ひと休み エスケープシーケンス

プログラム実行中に表示するメッセージで改行をしたい場合、
プログラムコード内でEnterキーを打ってもコードが改行されるだけで、実行中の表示は変化しません。

動作を示す記号や、特殊な文字を表示する記号をエスケープシーケンスと呼びます。
たとえば改行であれば、「\n」を使用します。(※環境により、半角の「¥」または「\」と表示されます。)

C言語の例
        

グループ 1+1は?

算数で、1+1 「いち たす いち」 は2 ですが、ブール代数では1+1は1になります。

この場合は、1が「いち」ではなく、成立している状態「真(True)」をあらわし、「真もしくは真であることは真」ということになります。
他にも算数とは異なる公式がいくつかあります。

構成する電子回路から、プログラム上の条件式や、データベースの操作にいたるまで、
2値が扱いやすいコンピュータには、このブール代数は応用しやすい考え方となります。

記念日 今、何月何日?

スマホやパソコンで、今日の日付が表示されていることがあたりまえのようですが、
月ごとに日数が違ったり、うるう年で日数が変わったり・・・
   
さらに、うるう秒だったり、国によって暦が違ったりしています。
コンピュータに「今日」の日付が表示されているのは、単純なことではないのです。

病院 例外処理

多くのプログラミング言語には「例外処理」という機構があります。
たとえば、停止してはならないシステムや、危険な状態で停止しないために、
起こりうることへの対処をプログラムに組み込むことで、処理の継続や、安全な状態で停止させることができます。
   

携帯端末 肖像権

プライバシーを守るための一つとして、自分の姿を写真などで勝手に公開されないようにできる権利があります。
スマートフォンで誰でも写真を撮ったり、インターネットを利用できるようになりました
が、たとえば写真をSNS等にアップする場合、いろいろな映り込みにも注意するようにしましょう。
      

情報処理・パソコン 画像表現

コンピュータが画像を扱うときの形式として、ペイント系ソフトで扱うラスタ型と、ドロー系ソフトで扱うベクタ型があります。


格子状(ピクセル)に切り分けて色情報を保存するラスタ型
       

座標位置や大きさ回転情報を保存するベクタ型
       

それぞれに利点があり、目的に応じて使い分けられるとクオリティの高い状態で出力が得られます。

電車 プログラミングにおける配列

たとえばテストの得点のように、いくつもの同じ形式のデータを扱う場合、バラバラの変数をいくつも準備するより、一つの名前でいくつものデータを扱える『配列』というものがあります。

      
   

添え字を変化させてデータを指定することになり、多くのデータでもプログラミングしやすくなります。

! 電子化された情報の特性?


ディジタルデータは、劣化しないといわれることもありますが・・・
特にネット上のディジタルデータは、『 残りやすく かつ 失われやすい 』 側面があるといえます。

すでに体験していることも多いはずですが・・・
それとも影響を受けていることに気付いていないかもしれません。

右 フローチャート

ある問題解決を考えるときに、言葉だけでなく図案を用いて手順の流れを示します。
          
ソフトウェア開発に限らず、実社会の様々な作業手順でも用いられていることがあります。
ものごとの流れを整理し、相手に伝えるためにも活用できます。

(図記号は全国工業高等学校長協会情報技術検定を基準に紹介しています)

情報処理・パソコン ローマ字入力

キーボードで日本語を入力する場合、キーに書かれている「ローマ字」や「かな」をもとに入力し、漢字は変換していくことになります。
プログラムコードを入力する場合、英字と日本語を使い分けることもあります。
ローマ字入力を活用する場合

  「にいざそうごう」→「n i i z a s o u g o u」
  「じょうほうぎじゅつ」→「 j o u h o u g i j u t u 」または「 j y o u h o u g i j y u t s u 」
  「ぱっち」→「 p a t t i 」または 「 p a x t u t i 」または「 p a l t u t i 」または「 p a c c h i 」

特に「っ」など入力方法がいくつもあることもあります。
  

情報処理・パソコン 入力促進メッセージ

プログラムの使用者に、何か入力してもらいたい という場合、
コンピュータはたいてい、「入力を受けるまで待っている」ことになります。
何も変化が無いと、ただ動作が停止してしまったように見えてしまうので、

特定の記号  だったり、   のように点滅させたり、

○○を入力してください:」のようにメッセージを表示して、入力を求めていることがわかりやすいつくり方が必要です。

昼 しきい値

ある値以上、または以下ならば、正しくその値で判断される境界を「しきい値」と呼びます。
ICなど電子素子で、電気的なON/OFF(0/1)の境界値として、
また、画像認識でも特徴点や動きを捉える画像変換のために非常に重要です。
 

情報処理・パソコン 文字コードと文字化け

パソコンでもスマホでも、入力した文字がWeb上に出ることが当たり前のようですが・・・
文字も値(文字コード)として扱われ、いくつかの種類があります。

 "N"→(4E)16進数   "S"→(53)16進数   "G"→(47)16進数 ※ASCIIコード
 "あ"→(82A0)16進数   "い"→(82A2)16進数   "う"→(82A4)16進数 ※S-JISコード
 "あ"→(A4A2)16進数   "い"→(A4A4)16進数   "う"→(A4A6)16進数 ※EUCコード

コンピュータ内で記憶されている値が、同じ文字コードで扱われれば問題ありませんが、特にインターネットなどで様々なコンピュータでも同じ文字が表示されることは大変なことなのです。

 


情報処理・パソコン アルゴリズム

ある問題の解決方法を考え、あらわしたものを「アルゴリズム」といいます。
「こうすればこうなる」というような様々なアルゴリズムがいくつも確立されていますが、
ソフトウェア開発に限らず、ものごとに手順や解決手法は常に状況に応じて考えるべきことです。「どうしたらうまくいくか」手順を考えることがプログラミングです。

昼 FAX

FAXは電話回線で画像データを送受信できるしくみです
取り込んだ画像をマス目で分解して、白から順に続く数を送ります。

たとえば、次のように、
□ → 1,2,1,2,1
 → 0,7
 → 1,5,1
 → 2,3,2
 → 3,1,3
のように数の羅列で送ることで、受信側も再構成でき、図案が受け取れます。

グループ 10の乗数を表すSI接頭辞

大きな数を表す接頭辞(接頭語)としては、
k(キロ)=103=1000
M(メガ)=106=100000
G(ギガ)=109=1000000000
T(テラ)=1012=1000000000000
P(ペタ)=1015=1000000000000000
E(エクサ)=1018=1000000000000000000
・・・と続きます。
たとえば記憶容量2GByte(ギガバイト)なら
=2000MByte=2000000kByte=2000000000Byte
という換算になります。
1Byte1文字換算であれば20億文字が記録できます。
ちなみに新聞(日経新聞)は1日約15万文字らしいです

電車 アクチュエータ

電気で回転動作するものをモータといいますが、電気で動作するものは、モータだけでなくいくつかの種類があり、電気で動作に変える素子を総称して「アクチュエータ」と呼びます。
コンピュータ(制御回路)と組み合わせることで、様々な動作が実現されます。
  

出張・旅行 インクリメント,デクリメント

プログラミングで繰り返し処理の中でよく活用しますが、変数内の値を+1することを「インクリメント」、-1することを「デクリメント」といいます。

C言語では、変数xの場合
x++ または ++x (x=x+1 や x+=1 と同じ動作)

x-- または --x (x=x-1 や x-=1 と同じ動作)
 

演算子を、前に置くか後ろに置くかでも異なる結果が得られるので、様々な応用で活用が考えられます。星

キラキラ 周波数とコンピュータの処理能力

パソコンの製品紹介などで「CPU:3.2GHz」など記載されることもありますが・・・
まず、[Hz]が一秒当たりに繰り返される波の単位になります。G(ギガ)は10億を意味して、例では一秒間に32億回ON/OFF動作が発生できるともいえます。
 
さまざまなコンピュータのしくみによって、「ON/OFF1セットでできること」や「ON/OFF4セットでできること」など様々ですが、同じCPUであれば周波数が高い方が処理が早いことは明確ですね。電車
 
 

携帯端末 惑わされないで

たとえば、もし、あなたに
「080-xxxx-zzzz のヤツは●●●●って壁に書いてあったから連絡したよ」
とSMS(ショートメール)が届いたら、え!?って不安になるかもしれません。
でも、落ち着いてよく考えて。
 
あなたの情報はそこには何も無い。何もかも特定されていない。

電話番号(またはメールアドレス)と個人情報は公開されて繋がっていない。

そのことを見極めて、対処を決して間違えないようにしましょう。泣く
 

ノート・レポート 分岐

プログラミングの重要な要素のひとつに分岐があります。
たとえばイメージとして・・・

 もし(所持金>価格)かつ(製品の機能>求める機能)
   ならば、買う。
   違えば、買わない。
変化させたい内容と、条件式を正しく組むことが必要です。
プログラミング経験を重ねても、ミスしがちな点の一つです。にっこり左右怒る

ノート・レポート 字下げ

プログラミングだけでなく、文書を書くときでも重要ですが・・・
「字下げ」
 
 

 

 
 
のように「字下げ」が統一されていると、処理のまとまりや、流れが把握しやすくなります。
また、プログラミング言語によってはこの字下げによって処理を制御するので非常に重要です。鉛筆
 
プログラミングを抜きにしても国語表現として段落や句読点をしっかりつけることも一緒です。にっこり

喜ぶ・デレ IPアドレス

IPアドレスは「192.168.0.1」などと、4つの数(オクテット)の区切りで表記されますが、
ネットワーク部(グループで同じにすべき番号)と、ホスト部(グループの中でユニークな番号)で構成されています。
多くの場合、サブネットマスクを用いて区別されます。
サブネットマスク「255.255.255.0」とすれば、IPアドレスの第3オクテットまでがネットワーク部、第4オクテットがホスト部になります。
 
   
何も考えずに設定して、ホスト部が重なってしまったりすると通信できないので、グループ内のアドレスをしっかり管理しておかなければなりません。

雨 括弧(かっこ)の重要性

算数では + - より × ÷ から計算するように・・・
プログラミングでも計算だけでなく、様々な処理の書き方で、何から処理されるか
という優先順位があります。
まれにプログラミング言語によって変わることもあり、間違えやすいところです。
( )を効果的に使って、わかりやすく組み立てましょう


「3年2組ではない生徒」 の条件式の例
  NOT 学年=3 AND 組=2
 は、3年生ではない、たとえば1・2年生の2組の生徒になってしまう。
  NOT((学年=3)AND(組=2))
 のように間違えないよう、明示しましょう。


ただし、さらに複雑に組み合わされたときの( )の重なりすぎにも注意

眼鏡 検索結果はいつもどれも本物?

問題です。
・ネット上で、多くが同じ意見で書かれていたとき、それが正しい?
・あることを調べるために検索した結果、一番はじめに出てきたものが、常に正しい内容?

情報源や、関係する事柄を正しく見極めるにはどうしたらよいでしょうか。

? 変数

プログラミングする上で、おそらく最も重要な要素のひとつ。
 「変数」
『コンピュータにやらせる』ためにも、その都度変化するものをとっておく「入れ物」が必要になります。
   
まずは、この「変数」というものを理解することが、コンピュータに様々な動作を実現させる第一歩かもしれません。星

虫眼鏡 四則演算ほか

C言語だけではありませんが
四則演算をプログラミングする場合、算数・数学で使っていた記号の表記が異なります。
加算「+」は、「+」と、減算「ー」は、「-」、同じですが、
乗算「×」は、「*」、除算「÷」は、「/」、余りだけを算出する余算「%」など
言語によっては、さらにいくつかの算術演算子があります。苦笑い
 
 

情報処理・パソコン GUIとCUI

コンピュータなど、様々な操作をするときに、GUIとCUIがあります。
マウスやタッチなどでアイコンやウィンドウなどで操作する Graphical User Interface
キーボードでコマンドを打って操作する Character User Interface があります。
  
GUIがあたりまえになっていますが、いざというときやコマンド操作しかない場合もあるので、ぜひ知っておきましょう。

視聴覚 画面の原点

数学でグラフを描くときは、原点(x=0,y=0)の点から右方向と上方向に+(プラス)されていましたが・・・
コンピュータでは基本的に、原点(x=0,y=0)の点から右方向と下方向に+(プラス)になります。
ある場所から 横に動かしたければ、右はプラス、左ならマイナス
         縦に動かしたければ、上はマイナス、下ならプラス という計算になります。

鉛筆 文字の書き分け

プログラムコードでも、コンピュータの表示では見分けづらい文字が多くあるけれど、
プログラミング上では動作不能なミスになります。
 
 , . (カンマ)と(ドット)
0 0 O o  (ゼロ)と(オー)
 I  l 1 (大文字アイ)と(小文字エル)、(数字のイチ) など・・・
 
さらに記号もあるので、見分けがつかない文字が幾つもあります。
これは意識して書き分けや判別のための設定をしていきましょうほくそ笑む・ニヤリ

情報処理・パソコン ファイルとフォルダ

スマホやタブレット端末のアイコン操作だけだと、意識することがないですが・・・
ソフトウェア開発をする上では、様々なファイルや、ファイルなどのまとめられたフォルダ(またはディレクトリ)の構造を把握しておかなければなりません。
   
プログラミングでは、ファイル名やフォルダ配置関係も意味がある場合が多いので、注意しましょう。

理科・実験 不等号記号

処理の分岐や繰り返しをしたい場合に、不等号を使って条件式を立てることがありますが、
まずは不等号の意味を把握して、逆向きにしないように、成立する範囲を正しく設定しましょう。
 A < B (A小なりB、たとえばAの内容がBより小さければ関係は正しい。)
 A > B (A大なりB)
 A >= B (AはB以上)
 A <= B (AはB以下)
ちなみに、変数Nをもとに条件が成立する間、繰り返されるとき・・・
変数Nの内容を0(ゼロ)から1づつ増やして10回継続するためには、どんな条件が必要?
 N ? 10

鉛筆 半角文字と全角文字

プログラムコードを記述するとき、多くは半角英数字記号を使い、説明の部分のために日本語を使うことがあります。絵文字:ノート
入力の際、半角文字と全角文字の違いを把握しなければ、プログラムエラーの原因になります。特に表示に表れてこない「 」空白文字にも注意しましょう。
 全角文字の例→:あいうえおABC123*+/「 」
 半角文字の例→:ABC123*+/[ ]

嵐 トランジスタのスイッチ特性

トランジスタには増幅特性と、スイッチ特性があります。
スイッチ特性は、ベース電流のON/OFFで、コレクタとエミッタ間をON/OFFするように利用することができます。
電気で電気の流れを決められるので、センサと合わせて自動にすることにも使えます。
         

! ユーザアカウントとパスワードの管理

パスワードは、8文字以上 英数字含む・・・など案内されることも多いと思います。
自身でしか知らないことを含むなどして、自分だけが覚えやすい、推測されないものをつけましょう。
     
また、一つのユーザアカウントでも、様々なサービスと連携していることが多くなっています。
パスワードだけでなく登録しているサービスの状況にも気を払いましょう。

情報処理・パソコン ショートカットキー

キーボードショートカット(Windows環境)
文章や文字列、ファイルでも、選択している状態でキーボードの
「Ctrl」押しながら「C」でコピー(控えが取られるイメージ)
「Ctrl」押しながら「V」で貼り付け(控えたものから出力されるイメージ)
活用できると便利です。

給食・食事 オブジェクト指向における「継承」

『オブジェクト指向』では「継承」という概念で、オブジェクト(もの)を拡張することができます。
料理でいえば、『カレーの作り方』を「継承」して『カツカレーの作り方』をつくる場合、プログラミングでは、『カツカレーの作り方』としては、新たに{トンカツを揚げて、カレーにのせる}と追加するだけで、『カレーの作り方』の内容は継承元をそのまま活用することができるイメージです。
※カレーの変化はイラスト上の都合です絵文字:よろしくお願いします


   + トンカツ = 
 

虫眼鏡 sizeof


C言語では、「sizeof 変数」で変数のメモリ上の大きさを確認できます。
例えば、int型の変数はコンピュータの環境によって大きさが変わるので、現環境で表現できる値の上限を確認するためにも使えます。

情報処理・パソコン ビットとバイト

コンピュータは電気のON/OFFなどでデータをあらわしていますが、
その一つの単位を[bit](ビット)といい、8[bit]で1[Byte](バイト)といいます。
ひとつのコインの表裏、ランプの点灯/消灯 も同じく 1[bit]の情報ともいえます。
たとえば、さらにランプが多く集まると電光掲示板のように様々な情報が表現できますね。
        

理科・実験 RAND_MAX

疑似乱数を使う際、C言語では定数RAND_MAXを出力すると、いくつまでの値が生成されるかわかります。
また、ヘッダファイル(stdlib.h)内を直接みても・・・
 #define RAND_MAX 0x7FFFU
このコードがある場合、16進数で7FFF(10進数で32767)までの値が出ることが確認できます。

情報処理・パソコン マウス

スマホやタブレット端末でタッチ操作が多いなか、あえてマウス操作について
 ・マウス自体の移動で、パソコン画面上のカーソルが連動
 ・マウスボタンを1回押すことはクリック、2回ならダブルクリック
 ・押しながら移動して離すと、ドラッグアンドドロップ
 ・マウス右ボタンクリックで操作メニュー(が出ることが多い)

マウスとキーボード操作に慣れましょう。

情報処理・パソコン 2進数

2進数は0(ゼロ)と1(いち)だけで値を表現します。たとえば、1は1、2は2進数では「10」です。
コンピュータは、電気的なON/OFFで動いているので、2進数の考え方があります。

 雷雷曇り雷雷曇り雷曇り → 2進数で 11011010 とすると、10進数では218