高等学校情報/情報I/プログラミングの基礎技術
基礎知識

なお、windowsで下記のプログラミングを実行するためには一般に、あらかじめコンパイラなどの実行環境のインストールが必要です。(テキストエディタにそのまま文字を入れても、何も起きません。)
基礎知識

例外的にJavaScriptなら、webブラウザを用いて実行できますが、しかしC言語など他の言語のコードはwebブラウザでは処理が不可能です。
基礎知識

入門レベルの中学高校生が実行するには、たとえば教育用の簡易的なC言語実行アプリ、または教育用のPython実行アプリなどの利用が考えられるでしょう。
基礎知識

テキストを扱うプログラミング言語では、多くのプログラミング言語で、
基礎知識

のような構文で、文字列を表示します。
基礎知識

上の例はPythonで、printは関数です。 C言語でも関数ですが関数名が異なり puts("Hello, world!") となります。 また、JavaScriptの場合は window.confirm("Hello, world!") と関数ではなくメソッドです。
基礎知識

Pythonの場合、print("Hello, world!")を実行すると、
基礎知識

と表示されます。
基礎知識

さて、中学校で「条件分岐」の考えを習いましたが、しかしどのような構文で条件分岐のプログラミングが出来るかは、習っていないでしょう。(カリキュラムによる)
基礎知識

多くのプログラミング言語では、条件分岐にif文を使います。
基礎知識

たとえば、Pythonの場合は if x == 2 : print("abcd")は、 「もし変数xが2なら、文字列 "abcd" を表示せよ」という意味になります。
基礎知識

他の言語でも一般的に、区切り文字に違いなどがありますが概ね
基礎知識

の語順でif文が書かれます。
基礎知識

多くのプログラム言語で、繰り返しには、for文を使います。
基礎知識

たとえばPythonの場合、
基礎知識

なら、 表示結果として
基礎知識

と画面に文字出力されます。
基礎知識

for 変数 in range(回数): 処理 の書式です。
基礎知識

この様にプログラミング言語が異なると、同じ機能を実現するためでも、異なるプログラミングが必要になります。
基礎知識

たとえば、Pythonでは、「#」という記号を使うことにより、その記号から文末までにメモを入れる事が出来ます。
基礎知識

つまり、上記のコード例の場合、#記号以降から文末までの『# 「ようこそ」と出力』の部分は実行されません。
基礎知識

この「#」記号のような機能のことを、プログラミング用語で「コメント」と言います。
基礎知識

コメントの機能は、他の多くのプログラミング言語にもあります。記号の文字そのものは違いますが、C言語やJavaScriptにもコメント機能があるので、プログラム中にメモを必要に応じて書くことができます。
基礎知識

プログラミングでいう「関数」(function)と、数学用語の二次関数や三角関数などの「関数」(function)とは、意味が違います。(日本語でも英語でも、つづりが同じです。)
基礎知識

プログラミングでいう「関数」とは、コンピュータにさせたい処理手続きをまとめたて名前をつけたものです。
基礎知識

そして、C言語やJavaScriptやPythonなど、多くの現代で普及しているプログラミング言語には、プログラミングでいう「関数」の機能があります。
基礎知識

どの言語でも、理解すべき用語は「関数」のほか、「引数」(ひきすう)と、「戻り値」(「返り値」ともいう)という用語が基本的です。
基礎知識

プログラミング言語によっては、この繰り返し処理の関数のことを「サブルーチン」と読んだりします。
基礎知識

ある関数Aから、別の関数Bを呼び出すこともできます。
基礎知識

ただし、たとえば
基礎知識

関数Aから関数Bを呼び出し、その関数Bから関数Cを呼び出し、関数Cから関数Dを・・・(中略)・・・、関数yから関数Zを呼び出す、
基礎知識

みたいに、あまりにも呼び出しの階層が深すぎると、かえってプログラミングしづらくなることが、経験的に知られています。
基礎知識

関数の呼び出しの階層が、あまり深くなり過ぎないようにしましょう。
基礎知識

同様に、プログラミング言語の多くには、実行中のファイルから別のファイルを呼び出してそれを実行する機能もあるのですが、やはりファイルAからファイルBを経由して・・・(中略)・・・ファイルZを実行、みたいなのは、とても困ります。
基礎知識

このように、プログラミング言語には、あるモジュールから別のモジュールを呼び出す機能があります。
基礎知識

関数化などモジュール化の際の注意点として、モジュールから別のモジュールを呼び出す際の階層構造があまり深くならないように、全体設計をする必要があります。
基礎知識

この理由のひとつは、会社などの仕事でつくるプログラムは一般的に集団作業だから、です。もし階層構造が深くなりすぎると、他のプログラマーがモジュールを探しづらくなったり、あるいは、モジュールの見落としのミスによって、プログラムミスなどの不具合の発生につながったりします。(※ 研修資料には、こういう理由までは書いてないです。)仮に現時点では自分ひとりで作っているプログラムであったとしても、もしかしたら将来には別の人(たとえば後輩など)がそのプログラムを引き継ぐかもしれない、といった将来まで考える必要があるのです。
基礎知識

同様の理由で、モジュールの数をあまり増やしすぎたりしないようにする工夫も必要ですし、あるいは一つのモジュールから呼び出すモジュールを増やしすぎないようにする工夫も必要です。
基礎知識

サイコロの目のように、確率的に発生する現象をコンピュータで実行したい場合、「乱数」という機能を使います。これらの機能には、 random (ランダム)などの用語が使われる場合が多いです。
基礎知識

Pythonの場合なら、本wikiでは『Python/モジュールのインポート』に説明があります。
基礎知識

Pythonでは「リスト」、C言語やJavaScriptでは「配列」と言われる機能があります。
基礎知識

Pythonの場合については『Python/リスト』を参照してください。
基礎知識

コンピュータに計算させたりそれを表示させたい場合、なにも必ずしもC言語やPythonなどのプログラミングの方法を使う必要は無い。
基礎知識

Widows用のオフィスソフトのエクセル(EXCEL)でも、計算などが可能である。(※ エクセルを使う方法は、文部科学省の教員用資料にも紹介されている、教育的にも正当な方法です。)
範囲外？: JavaScriptのプログラム

(東京書籍や日本文教出版などの一部の教科書で、JavaScript(ジャバ スクリプト)が紹介されている。)
範囲外？: JavaScriptのプログラム

webブラウザ上で、ちょっとしたプログラムを動かしたい時のためのプログラミング言語として、『JavaScript』(ジャバ スクリプト)があります。
範囲外？: JavaScriptのプログラム

なお、名前の似た別のプログラミング言語として、『Java』(ジャバ)がありますが、まったく別の言語です。
範囲外？: JavaScriptのプログラム

さて、本書では、JavaScriptについて、説明します。
範囲外？: JavaScriptのプログラム

まず、次のコードを見てください。JavaScriptは、次のコードのようhtmlに埋めこんで(うめこんで)、使います。
範囲外？: JavaScriptのプログラム

まず、JavaScriptを使うためには、<script type="text/javascript">および</script>が必要です。
範囲外？: JavaScriptのプログラム

このタグ内には、JavaScriptのプログラムだけを書かないと、いけません。
範囲外？: JavaScriptのプログラム

もしタグ内に、htmlタグ(pタグやh1タグなど)を書くと、エラーになります。
範囲外？: JavaScriptのプログラム

また、プログラムの文を入力するときは、文字入力モードは、直接入力モードにしてください。ほかの文字モードで入力しても、エラーになるでしょう。
範囲外？: JavaScriptのプログラム

さて、JavaScriptで、足し算などの計算のために変数(へんすう)を使用できます。
範囲外？: JavaScriptのプログラム

まず、上記のプログラムでは、「hensuu + 100」という計算をしています。上記のプログラムでは、「hensuu」は、変数です。
範囲外？: JavaScriptのプログラム

このように、変数をつかって計算を行うためには、「これから変数をつかいます」という事をプログラム中で宣言する必要があります。
範囲外？: JavaScriptのプログラム

変数の使用を宣言するには、変数の名前の前に「var」をつけ、スペースを1文字あけます。 言い方を帰ると、varの後ろにある語句が「変数である」と認識されます。
範囲外？: JavaScriptのプログラム

(なお、「var」とは、英語のvariable(バリアブル)が由来であろう。variableの意味は、「変数」。数学用語でも、数学の変数のことを「variable」という。)
範囲外？: JavaScriptのプログラム

「var hensuu;」の意味は、「変数として「hensuu」を用意しなさい」という意味です。 さて、javascriptによるプログラミングでは、1個の変数の作業が終わったことを示すために、さいごに「;」(セミコロン)をつけます。
範囲外？: JavaScriptのプログラム

「hensuu = 132;」の意味は、「変数『hensuu』に、数値132を代入しなさい」という意味です。
範囲外？: JavaScriptのプログラム

JavaScriptにかぎらず一般にプログラミングでは、「=」記号の意味は、「代入をやりなさい」の意味です。数学の等号とは、意味が違いますので、気をつけてください。
範囲外？: JavaScriptのプログラム

一般にプログラミングでは、=の右側にある計算の結果を、=の左側にある変数に代入します。
範囲外？: JavaScriptのプログラム

さて、javascriptによるプログラミングでは、1個の変数の作業が終わったことを示すために、さいごに「;」(セミコロン)をつけます。 上記のプログラムでも、「var hensuu = 132;」となっています。
範囲外？: JavaScriptのプログラム

他の言語では、変数の宣言方法が違っている場合もあるので、まったく暗記の必要は、ありません。
範囲外？: JavaScriptのプログラム

なお、数学でいう「変数」とは少し事情がちがていて、JavaScriptの変数の名前は1文字でなくても、かまいません。(一般に、ほかのプログラミング言語でも、変数名は1文字でなくても、かまわない。 )
範囲外？: JavaScriptのプログラム

そして、JavaScriptの変数は、数でもありますので、四則演算(数学でいう「+」、「ー」、「×」、「÷」)などの計算をできます。(一般に、ほかのプログラミング言語でも、変数をつかって、四則演算の計算をできる。)
範囲外？: JavaScriptのプログラム

たとえば、上記のプログラムでは、「hensuu + 100」という計算をしています。
範囲外？: JavaScriptのプログラム

そして、式の終わりであることを示すために、さいごに「;」(セミコロン)をつけます。上記のプログラムでも、「hensuu + 100;」となっています。
範囲外？: JavaScriptのプログラム

「document.write()」とは、「カッコ内の式を出力しろ」というような意味のプログラム命令です。
範囲外？: JavaScriptのプログラム

そして、そのカッコ内に、「hensuu + 100」と書かれているので、その式のとおりに計算して「232」(=132+100)を表示する仕組みです。
範囲外？: JavaScriptのプログラム

プログラムを実行するには、このJavaScriptの書かれたhtmlファイルごと保存してから、そのまま普通のwebブラウザで、そのhtmlファイルを開くだけです。
範囲外？: JavaScriptのプログラム

実際に上記コードの書かれたhtmlファイルを開いてみると、計算結果の「232」(=132+100)も出ています。