投稿

8月, 2022の投稿を表示しています

親切なプログラムを目指そう!

イメージ
ホーム ブログ Firebase情報 親切なプログラムを目指そう! 2022年8月30日 親切なプログラムを目指そう! コマンドラインからデータをプログラミに渡して、色々なデータで足し算ができるようになりました。便利なプログラムに近づいてきました。でも、一つ問題があります。今回は、利用者が期待通りの入力をしない場合について考えてみます。 何もデータを入れないとどうなる? まずは、前回のプログラムのソースコードです。 const data = process.argv; const a = parseInt(data[2]); const b = parseInt(data[3]); // Display input data A and B console.log(a, b); const result = a + b; // Display the result console.log(result); 前回は、コマンドラインから「1」と「2」を指定して実行しました。 PS C:\Users\TH\Documents> node add.js 1 2 1 2 3 PS C:\Users\TH\Documents> 別のデータ「123」と「456」でも問題なく動作します。 PS C:\Users\TH\Documents> node add.js 123 456 123 456 579 PS C:\Users\TH\Documents> 所が、何も入れないとどうでしょうか? PS C:\Users\TH\Documents> node add.js NaN NaN NaN PS C:\Users\TH\Documents> のようになります。 プログラムは正常に動作している! これでも実は、プログラムは正常に動作しています。 文字の集まり(文字列)を数字(整数)に変換する関数「parseInt()」は、数字以外の文字列の場合には、数字でない(NaN:Not-A-Number)と言う値を返します。 したがって、最初の行の入力された数値を表示する部分

足し算の計算「1+2=12」!?

イメージ
ホーム ブログ Firebase情報 足し算の計算「1+2=12」!? 2022年8月27日 足し算の計算「1+2=12」!? 前回はコマンドラインからデータを受け取る仕組みについて紹介しました。今回は、コマンドラインから受け取ったデータを使って足し算をするプログラムに発展させて行きます! コマンドラインから受取ったデータで足し算 では、前回のコードを基に足し算をするプログラムを考えてみます。 const data = process.argv; const a = data[2]; const b = data[3]; // Display input data A and B console.log(a, b); const result = a + b; // Display the result console.log(result); このプログラムは、コマンドラインから二つのデータを受取って、それぞれ「a」と「b」と言う定数にセットして、その足し算をして、その結果を表示するプログラムです。 これで、プログラムにコマンドラインからデータを渡して、足し算をする処理が可能になります。意外にシンプルですよね! コンピュータも間違える!? では、実行してみます。 プログラムは、「add.js」と言う名前で保存しています。 PS C:\Users\TH\Documents> node add.js 1 2 1 2 12 PS C:\Users\TH\Documents> コマンドラインで入力したデータは、「1」と「2」です。 それを、足し算した結果は「3」になるはずです。 ところが、実行結果の二行目に表示されているのは「12」です。 明らかに間違いですよね? 実際にプログラムを入力して実行された方の結果はいかがでしたか? おそらく同じになったかと思います。 コンピュータも間違える事があるように見えます! 計算結果は正しい! この計算結果ですが、実は間違っていません! 入力したデータは確かに「1」と「2」ですが、実はこの二つのデータは数字ではありません。このデータは実は、

足し算をするプログラム

イメージ
ホーム ブログ Firebase情報 足し算をするプログラム 2022年8月25日 足し算をするプログラム 前回はシンプルに、「Hello World」を表示するプログラムを紹介しました。今回は計算をするプログラムを紹介します。とは言っても前回と殆ど同じプログラムなので心配は入りません。今回は、プログラムの書き方よりは、どんなプログラムが便利かを理解することに重点をおきます。 足し算をするプログラムも基本は同じ! 今回は、足し算をするプログラムを紹介します。 基本的に前回の「Hello World」を表示するプログラムと同じです。 まずは、実際のプログラムを見てください。 const result = 1 + 2; console.log(result); これだけです! 実行方法は、前回と同じで、このファイルを「add.js」として保存します。 Windows Power Shell を開いて、ファイルを保存したフォルダに移動します。 あとは、以下のコマンドを実行するだけです。 PS C:\Users\TH\Documents> node add.js 3 PS C:\Users\TH\Documents> 「1+2」の計算結果である、「3」が表示されています。 今回は、計算結果を定数(const)である、「result」に入れて、この「result」を表示すると言うプログラムです。 実際に表示をさせる「console.log(result);」の前に実際に計算を行う数式と、定数に代入するための行が追加されています。 別の計算をしたい場合には、プログラムの数式「1 + 2」の部分を書き換えれば好きな計算を行う事ができます。同じ要領で足し算だけではなく、引き算でも、掛け算でも割り算でも実行できます。 このプログラムは不便です! とても簡単なプログラムで、希望の計算ができることがわかりました。 しかし、このプログラムはあまり便利なプログラムではありません。わかりますか? 実は、このプログラムの問題は、違う計算をやりたい場合には、「プログラムを書き変える必要がある」と言う点

超初心者向け、プログラミング講座

イメージ
ホーム ブログ Firebase情報 超初心者向け、プログラミング講座 2022年8月23日 超初心者向け、プログラミング講座 もう少し簡単なプログラミングの話をと言うリクエストに答えて、初めてプログラミングを学習する型向けの連載を始める事にしました。講座のゴールは、簡単な Web プログラミングができるようにと言うのがゴールです。Web プログラミングなので、使用するプログラミング言語は Javascript(Node.js)を利用します。第一回は、まずは、プログラミングをするための準備です。 プログラミングをするための準備 最初に行うのは、コンピュータの準備です。スマホではできません! コンピュータも色々ありますが、今回の連載では、Windows の PC を利用するのを前提でお届けします。 Mac をご利用の方でも、ほぼ同じような事が可能なのですが、今回は「超初心者」向けで、本当に初めてプログラミングをやってみようと言う方を対象にしていますので、混乱を防ぐ意味で、Windows10(もしくは Windows11)を使って進めていく事にします。最新の PC は、2022 年現在だと、Windows11 を搭載した物が殆どだと思いますが、少し古い PC だと Windows10 の場合もあると思いますが、どちらも似ているので取り敢えずこの二つを利用するのを前提で進めて行きます。 プログラミングをするのに必要な物は、今回は二つのアプリです。インターネットにアクセスするための Web ブラウザは、PC にすでに入っていると思いますので、まずは以下の二つを用意します。 Microsoft Visual Stadio Code (VSCODE) Node JS です。どちらもインターネットから無料でダウンロードできます。 インストールは、Web ブラウザでダウンロードサイト(以下をご覧ください)からダウンロードして、インストールします。 大抵のブラウザは、ダウンロードしたファイルがブラウザの下の方に表示されるので、その名前をダブルクリックすればインストールできます。インターネットにインス

プログラム開発に向かない人!?

イメージ
ホーム ブログ Firebase情報 プログラム開発に向かない人!?! 2022年8月21日 プログラム開発に向かない人!? プログラムは、コンピュータに仕事をしてもらうための手順書のような物です。そう考えると、普通の作業(仕事)の手順をきちんと理解して、実行できない人には余り向いていないのかもしれません。この記事では、コーディングと言う作業とは別の観点でプログラムを考えてみました。 プログラムは仕事の手順書 プログラムは、コンピュータに何か仕事をしてもらうための手順書と考える事ができます。 この場合の仕事とは、以前にも書いていますが、基本的には与えられたデータを処理すると言うのが仕事になります。 実際には、どんなデータをプログラムに渡して、どのような結果を得るかと言うのをコンピュータに依頼するというのがプログラムです。 これは、人間が行う仕事も似ている部分があります。通常の仕事も、何かをして「結果を出す」と言うのが通常は求められます。 実際の仕事では? まずは、プログラムの話をする前に実際の仕事を考えてみます。 例えば、ある製品を販売すると言う仕事を考えます。 ある程度経験がある、セールスならば、いつまでに製品を幾つ売ると言う目標を伝えれば、経験から可能かどうかを判断して、実現可能であれば、実際に製品を販売してきます。これだけでも仕事はある程度成り立つ事になります。しかし、同じ指示を余り経験のない新人にした場合はどうでしょう? 当然、この指示では思ったような成果が出ないことは容易に想像できます。 新人に指示をする場合には、「誰に」どのようなアプローチをして販売すれば良いのか、事細かな指示が必要になります。的確で具体的な指示があれば、ある程度期待できる成果が出るようになります。 つまり、何をどのようにするのか、具体的な指示をしないと一般的に成果を出すのは難しいと言えます。 プログラムの場合は? コンピュータの場合、一般的には「経験が無いのと同じ」です。 最近の AI を利用した技術の場合は、厳密に言えば、機械学習などを利用すると、過去のデータを元に必要な処理をある程度見つけ出すこと

固まらないプログラム!

イメージ
ホーム ブログ Firebase情報 固まらないプログラム! 2022年8月18日 固まらないプログラム! プログラムを利用していて、操作を受け付けなくなったり、何も反応しなくなったりした経験された方も多いかと思います。プログラムを開発する上で、このようにプログラムが反応(応答)しなくなるような事態を避ける事はとても大切です。この記事では、固まらないプログラムを作るのに大切な事を紹介します。 基本機能は大抵動く! 実は、プログラムの目的の機能(処理)は殆どの場合、「完成」したとされるプログラムの場合動作するのが普通です。これは、プログラムの開発者が基本機能の確認をしないと言うのは通常はないからです。 プログラムのコーディングが終わったら、基本的な機能が動作するかは、まず最初に確認するのが常識です。これに問題があれば、問題の原因を見つけて修正して、動作するようにします。従って、「完成」したプログラムの場合、こうした基本的な機能は通常は動作するのが普通です。 基本動作が動かない理由は? それでも、予定されたようにプログラムが動作しない場合は存在します。 これには、理由があって、一言で言えば「テストをしていないから」問題が表面化しなかったと言うのがシンプルな理由です。 単純な機能の場合、テストで抜けが出る場合は余りありません。しかし、機能が複雑になると、期待されている通りに動作しない場合が増えてきます。現実的には、「全ての可能な動作」をテストするのは、複雑なプログラムの場合は、テストするのが難しいのでどうしても、テストしていないようなケースが発生した場合には、期待通りの動作をしない場合が出てきます。 基本機能以外のテストはとても難しい! 基本機能でも、テストに抜けが出る場合は現実には結構あります。 従って、基本機能以外のテストはさらに、テストされていないケースが増えます。 テストされていないだけではなく、プログラムを書いた人が想定していないケースが発生すると、プログラムがどう動くかわからないケースが出てきます。 プログラムが「固まったり」「フリーズする」ようなケースは、大抵は、プログラム

基本的なデータの形とは?

イメージ
ホーム ブログ Firebase情報 基本的なデータの形とは? 2022年8月16日 基本的なデータの形とは? プログラムを書く場合、どのようにデータをプログラム内で扱うかは一つの大きなポイントになります。もちろん、プログラムの目的によってこのデータの形は色々ですが、ある程度基本的なパターンがあります。この記事では、基本的なデータの形について紹介します。 基本データは数値 最近のコンピュータで利用されている CPU の場合、CPU が扱うデータは基本的に全て「数値」になっています。CPU の中では、基本的に全てのデータは二進数で表されていて、二進数のデータを処理しています。 しかし、プログラミング言語の中では、この二進数のデータを処理して、いくつかの違うタイプのデータとして扱えるようにしています。 このデータのタイプはプログラミング言語によって微妙に違いますが、基本的な物は以下のようになっています。 整数 実数(小数点を含む数値) 文字 というのが基本的なデータになる場合が多くなっています。 文字の場合は、私達が普段利用する文字一つ一つに異なる数値を割り当てて、特定の文字として扱えるようにしています。したがって、見かけは文字のようでも、実際のデータの中身は数値という事になっています。 変数と定数 実際に、こうしたデータをプログラムで扱う場合、「変数」や「定数」という形で、名前をつけてメモリ上に場所を割り当てます。この名前はプログラミング言語が便宜上割り当てているもので、実際には、メモリの特定の場所を数字で表して特定できるようにしていてアドレス(メモリ上の番地、住所)と呼ばれる数値で表せるようになっています。 通常は、一つの数値に一つの名前を付けて割り当てますが、同じようなデータをまとめて扱いたい場合も多いので、複数の同じ形をした数値を複数まとめて割り当てられるようにしているプログラミング言語が殆どです。このような、データの型を配列(Array)などと呼んでいます。この場合、複数のデータを入れる箱に名前を付けて、その箱の中の場所を数字で表すようになっています。例えば、複数の名前を入れ