プログラミングの原理
データ構造とプログラミング
(第4回)
情報教育のブーターとしてのプ
ログラミング
情報教育において「プログラミング」の学習は、
「ブーターの読み込み」の過程に相当する
「ブーター」とは、コンピュータが起動(ブート)する際に
一番最初に読み込まれる最小限の命令群
ブーターは、その後に読み込まれる、より複雑なプロ
グラム(ひいてはシステム全体)の基礎となる
ここでは、「応用的な知識を生み出すために必要な最
小限の基盤」を表す比喩
コンピュータの本質
コンピュータの本質はプログラム
コンピュータのあらゆる動作はプログラム
によって規定される
「コンピュータの何たるか」を理解するため
には、「プログラムの何たるか」を学ばなけ
ればならない
プログラムとは
プログラムは「仕事の手順」を書いたもの
プログラムが書けないことを、コンピュータ
は実行できない
人間は手順が書けなくてもいろいろなことを実
行できる
人の顔を見分ける、声を聞き分ける、字を
読む
プログラムの基本構造(1)
プログラムの基本は命令文の連続
1:
2:
3:
fd(100);
rt(90);
fd(100);
.………
……….
……….
命令は上から順に実行される→逐次構造
プログラムの基本構造(2)
同じ命令の繰り返しを
ひとまとめにして記述で
きる →繰り返し
for( i=0; i<4; i++){
fd(100);
rt(90);
}
プログラムの基本構造(3)
あらかじめ設定した条
件に応じて複数の命
令を選択的に実行で
きる →条件分岐
if( i==2 ){
fd(100);
}
else{
fd(50);
}
プログラムの基本構造(4)
逐次、繰り返し、条件分岐は、仕事の手順を記述
する際のもっとも基本となる構造
これら三つをまとめて「(狭い意味の)制御構造」
と呼ぶ
プログラムの基本構造(5)
逐次、繰り返し、条件分岐は「入り口1つ、出口1
つ」の構造を持つ点で共通している
一つの構造の中に別の構造を埋め込んで(=入
れ子構造)、複雑な手順を実現できる
プログラムのコメント(1)
実際にプログラムを書く場合、命令文(=コ
ンピュータに対する指示)だけを書けば済
むわけではない
命令文に加えて、コメント(=人間に対する
注釈)を書くようにする
コメントはコンピュータの動作にとっては不
要だが、人間にとっては重要な意味を持つ
プログラムのコメント(2)
コメントには目的を書く
×
double x; // xは正の数とする
double y;
○
double x; // xは正の数とする
double y;
// xの小数部は0.5以上か?
// xを四捨五入する(xの小数部は?)
if((x - Math.floor(x)) < 0.5){
if((x - Math.floor(x)) < 0.5){
y = Math.floor(x); // xの整数部を
y = Math.floor(x); // (0.5未満)xの
// yとする
// 整数部をyとする
}else if((x - Math.floor(x)) >= 0.5){
}else if((x - Math.floor(x)) >= 0.5){
y = Math.floor(x) + 1; // xの整数部+1を y = Math.floor(x) + 1; // (0.5以上)xの
// yとする
// 整数部+1をyとする
}
}
プログラムのコメント(3)
/**
* 家を描くプログラム
* 作成日:00.5.3 (1bcBコース教材より)
*/
import Turtle;
class House01 extends Turtle{
/**
* 家を描く
*/
void start(){
見出しコメント
ブロックコメント
// 屋根を描く
rt(30); // 前処理(タートルの角度を調整する)
int i;
for(i=1; i<=3; i++){
fd(100); rt(120);
// 三角形の一辺を描く
}
rt(60); // 後処理(タートルの角度を調整する)
}
}
// 本体を描く
for(i=1; i<=4; i++){
fd(100); rt(90);
}
// 四角形の一辺を描く
行コメント
書法を徹底したプログラム
日本語プログラミング
日本語をベースとしたプログラミング言語
が実現されることによって、従来コメントと
して記述していた内容がそのままプログラ
ムの命令文となる
「言霊」によるプログラム
メインとは{
大きさが100の家を描く。
}
大きさが「A(整数型)」の家を描くとは{
長さがAの三角形を描く。
長さがAの四角形を描く。
}
長さが「A(整数型)」の三角形を描くとは{
30度右に曲がる。
{A歩進む。120度右に曲がる。}を3回繰り返す。
30度左に曲がる。
}
長さが「A(整数型)」の四角形を描くとは{
{90度右に曲がる。A歩進む。}を4回繰り返す。
}
コメントがプログラムになる
言霊はその表現力により、
Javaなどで記述していたコメントの
大部分が必要なくなる。
文法表現が理解しやすい
Javaによる以下の表現がどういう意味か、
わかるでしょうか?
if ( a%3 == 5 && b != 10 ){ ・・・ }
既存のプログラム言語は、文法が難しいと
いう問題がある
文法表現が理解しやすい
日本語プログラム言語「言霊」では、以下
のような記述になる
if ( a%3 == 5 && b != 10 ){ ・・・ }
もし aを3で割った余りが5と等しい かつ
bが10と等しくない ならば{
・・・
}
※空白を入れなくても解釈できます。
文法表現が理解しやすい
既存のプログラム言語は文法が難しいと
言う問題がある
その為、やるべき事が分かっているのに、
その処理の記述ができないという人が非
常に多い。
文法表現が理解しやすい
例えば、以下の問題。
タートルグラフィックを使って以下の画像を描いて下さい。
ただし、for文とif文を使って下さい。
ヒント:繰り返し回数が奇数と偶数で場合分けをする
文法表現が理解しやすい
議論すると、この?部分が分からず困る人がたく
さんいる。
public static void main( String args[] ){
for( int i=0 ; i<4 ; i++ ){
if( ?????? ){
drawSikaku( 50 );
}else{
drawSankaku( 50 );
}
move( 60 );
}
}
文法表現が理解しやすい
メインとは{
繰り返し回数(整数型)を生成する。
繰り返し回数に0を代入する。
{
繰り返し回数を2で割った余りが0と等しいならば{
長さが50の4角形を描く。
}そうでなければ{
長さが50の3角形を描く。
}
右に60移動する。
繰り返し回数を1増やす。
}を4回繰り返す。
}
日本語プログラミング言語「言
霊」
これにより、
Java言語の文法に悩むのではなく、
アルゴリズムを考え、作り出し、記述する
事に集中できる
プログラムを学ぶもう一つの意味
何故、プログラムを学ぶか?
コンピュータの本質を理解するため
論理的思考・表現能力を得るため
論理的思考能力とは?
これを養う為の訓練なのです。
このような能力は、社会のあらゆる所で
必要になってきます
・
・
・
漠然としたアイデアを具体的な「目的」に
置き換える能力
「目的」を実現する為に必要なプロセスを、
正確に順序だてて組み立てる能力
組み立てたプロセスを正確かつ
簡潔に記述する能力
なぜプログラムを学ぶのか
タートルで以下の絵が書けると言う事は
絵を書くための論理的なプロセスを
分析・創造・表現
する事ができると言う事なのです
リテラシーとは何か
ことばの使用
文字の使用
人間が解釈する
学校教育が始まる
プログラム(=ことばによる仕組)の使用
コンピュータが解釈する
学校教育が変わる
© Copyright 2026 ExpyDoc