プログラムの基本的な仕組み
著者 鶴貝 達政
雑誌名 明治学院大学法学研究 = Meiji Gakuin law journal
巻 101(中巻)
ページ 225‑250
発行年 2016‑10‑13
その他のタイトル The Fundamental Structure of a Programming Language
URL http://hdl.handle.net/10723/2950
ラ 基本的 仕組
第 6 章
ラ 作成 ラ ン いう。 ラ ン 学
い方 , ラ い 考え 方 少 い あ
う。 , ラ 基本的 仕組 5 ,そ 1
1 構造 単純 あ 。 ラ ン 味 そ 単純 5 構造
組 合わ 複雑 ラ 作成 あ 。本稿 目的
そ ラ 基本的 仕組 5 構造 説明 あ 。そ 説
明 必 ラ ン 言 必要 わ い , ラ 実
際 入力 ,実行 結 確 ラ 基本的 仕組 理解 手助 。 ラ ン 言 数多 存在 ,本稿 構造 的単純 あ C 言 用い 説明 。本稿 目的 C 言 べ 文法 説明 い。C 言 一部分 用い , ラ 基本的 仕組 説明 あ 。
第 7 章 ア ー ョン 仕組 考え ー 加工
ラ 基本的 仕組 説明 入 前 1 問題 考え 。
文 作成 ア ー ン ラ あ ー 起 次 文
入力 。 ッ 1 あ 。 ッ い い入
い 。 ッ 外側 い い 。 ッ 中 い う。 入力 ー イ 保存 , イ 名前 和 文 .docx 。次 訳 , Here is one glass. A lot of water enters the glass. A lot of drops of water are lucky outside of the glass. The water in the
glass will be cold. ー 入力 , ー イ 保存 。 イ
名前 文 .docx 。 2 イ 和文 1 ッ
1 あ 。 次 文 1 Here is one glass. ,和文 2 ッ
い い入 い 。 次 文 2 A lot of water enters the glass.
う 新 い イ 作成 問題 考え 。 , 例 簡単
5 文 ー い , ー 多 文 例え 1,ηηη
文 構成 あ 考え 。 , ー 付 1η 回
作成 い。
6 セ ー 方法 以下 示 。 セ 起 ,新規
作成
1 イン ラベ B C 境界 。
2 ラッ ,セ B 。
3 和文 .docx ー ー ,セ B1 右 ッ 付
。
4 文 .docx ー ー ,同様 本文 下 付 。
5 セ A1 ッ ,1 入力 。
6 う一度,セ A1 ッ , 集 連続 ー 作成 ッ 。
7 列 , 分値 2 , 値 9 , OK ッ
。
8 セ B6 ッ ,2 入力 。
9 う一度,セ B6 ッ , 集 連続 ー 作成
ッ 。
1η 列 , 分値 2 , 値 1η , OK ッ
。
11 A1 B1η ラッ 。 12 び え ッ 。
7 ー ー 方法 以下 示 。 ー 起 ,新規作成
1 挿入 表 表 挿入 ッ 。
2 列数 2,行数 5 入力 OK ッ 。
3 和文 .docx ー べ 選 CTRL-A , ー CTRL-C 。
4 表 作成 ,新 い文書 ー 中 ッ 表示 。 5 表 側 ラッ 指定 。
6 ー 付 CTRL-V 。
7 文 .docx ー 同様 表 右側 付 。
8 表全体 ラッ 指定 。
9 イア 表 解 ッ 。
1η 文 列 , 落 選び,OK ッ 。
以上,示 う 表計算 セ 文 作成 ー
ー いう問題 解 可能 あ 。 う ア
ー ン ラ う 理解
ラ 基本的 仕組 理解 重要 あ 。
第 3 章 基本的 5 仕組
問題 そ ラ 例示 ラ 基本的 5 仕組
説明 。
6 C 言語 枠組
C 言 簡単 ラ 示 ,C 言 組 説明 。
問題 1 Hello ! 表示 ラ 作成 。
問題 1 C 言 ラ 例 ラ 1 示 。
ラ 1
#inclきde<かがdio.h>
main () {
pおinがf(”Hello!”);
}
C 言 行 いう考え方 い ,説明 上 1 行,2 行 考え ,
ラ 5 行 構成 い 。 1 1 行目 #include <stdio.
h> 正 理解 ,本稿 説明 い関数 知識 必要 。
, C 言 ラ 必要 あ 理解
。 2 2 行目 main( ) ラ 名前 あ 。 C 言
ラ 必要 あ 。 3 3 行目 { 5 行目 } ラ
開 終了 示 い 。 C 言 ラ 必要 。
, ラ 1,2,3,5 行目 構成 C 言 組
, 説明 ラ 必 い 。
, C 言 構文 ー 部分 ” ” 中以外 角 数 使用 。 , 文 文 ,main Main,printf Printf 述
い。
7 ー 出力 pおinがf 文
最初 基本的 仕組 , ラ ー 出力 方法 考え,
ラ 1 実行 結 図 1 示 。
図 1 Hello ! 部分 ラ 1 実行結 あ ,次 行 C:¥test
¥Debug> ン あ 。 以 ラ 実行
結 以下 う 示 。
ラ 1 実行結 Hello!
図 6: ― 6 実行結果
printf 文 使用方法 , 構文 printf (” ~ ”);
あ , ” ” 部 表示 構文 あ 。 ,printf
文 分 説明 あ , 分 次 ラ
計算方法 説明 必要 。 ,C 言 構文 セ ン
; 示 。
問題 2 A B C 表示 ラ 作成 。
問題 2 C 言 ラ 例 ラ 2 示 。
ラ 2
#inclきde<かがdio.h>
main () {
pおinがf(”A¥nB¥nC¥n”);
}
ラ 2 実行結 A
B C
C 言 い 行 表示 ” ” 中 ¥n 述 。
3 コ ン
ン ,C 言 述 ラ 付 注釈
あ 。 部分 ン ュー ン イラ 実行 行う 無視 。
ラ 目的, 作 述 。// ラ 中 述
そ 以 1 行 ン 。複数行 ン 作成 場合 ,/*
ン あ ,*/ ン 終わ 。例え ,
// 変数 a b c 整数型 言
や
/* 作成 時 2η16 年 5 25 更新 時 2η16 年 5 26 */
ン あ 。
4 四則演算 方法 =+2*/%
2 番目 基本的 仕組 , ラ 則演算 方法 示 。
問題 3 3 + 5 計算 ,結 3 + 5 = 8 表示 ラ 作成 。
問題 3 ラ 例 ラ 3 示 。
ラ 3
/*3+5 計算 ,結果 3+5=8 表示 */
#inclきde<かがdio.h>
main () {
inがa1b1c; // 変数 abc 整数型 宣言
a=3; // 変数 a 3 代入
b=5;
c=a+b;
pおinがf(”%d+%d=%d¥n”1a1b1c);
}
ラ 2 4 行目,int a, b, c; , ー 入 器 あ 変数 使
用 ン ュー ン イラー え ,変数 言
いう。変数 ,入 ー 型 知 必要 あ , 整数型 ー
入 ,変数 a, b, c 前 int 述 い 。 ラ ン 言
中 変数 言 い 使用 言 ,FORTRAN や perl あ ,
C 言 変数 言 い 使用 ラー 実行 い。
ラ 2 5 行目,a=3; ,変数 a 中 ー あ 3 入 作 い 。 ラ ン 言 等 = 意味 数学 等 意味 異
,右 評価結 変数 中 入 代入 いう 。
, ラ 2 7 行目,c=a+b; ,変数 a b 中 ー 計算結 ,8 変数 c 代入 い 。 ,数学 等 意味 異
a+b=c; 。 ,printf 文 分 使用方法 ,
構文 printf (” ~ ~ ”,変数 );
あ , 変数 中 表示 書式 入 。書式以外 部分 そ 表示 。変数 ー 型, 言 方法,書式 表 1 。
表 6:変数 ー 型,宣言 方法,書式
変数 ー 型 言 方法 書式
整数 int %d
実数 float %f
文 文 列 char %c (%s)
ラ 3 実行 結 以下 示 。
ラ 3 実行結 3+5=8
則演算 方法 , 算 + , 算 - , 算 * , 算 / あ ,
計算 表 。
問題 4 99 4 乗 計算 表示 ラ 作成 。
問題 4 ラ 例 ラ 4 示 。
ラ 4
/*99 4 加減乗除 計算 表示 */
#inclきde<かがdio.h>
main () {
inがぐ1け1くa1かa1かeki1かhoき1amaおi; // 変数 整数型 宣言
ぐ=99; //99 変数 ぐ 代入
け=4;
くa=ぐ+け; // 計算 行う
かa=ぐ2け;
かeki=ぐ*け;
かhoき=ぐ/け;
amaおi=ぐ%け;
pおinがf(”%d %d ¥n”1ぐ1け); // 結果 表示 pおinがf(”和 = %d¥n”1くa);
pおinがf(”差 = %d¥n”1かa);
pおinがf(”積 = %d¥n”1かeki);
pおinがf(”商 = %d¥n”1かhoき);
pおinがf(”余 = %d¥n”1amaおi);
}
ラ 4 実行 結 以下 示 。
ラ 4 実行結 99 4
和 = 603 差 = 95 積 = 396 商 = 74
余 = 3
5 キー ー ー 入力 かcanf 文
3 番目 基本的 仕組 , ラ ー ー ー 入力 方法 示 。
問題 5 ー ー 2 ー 入力 ,そ 2 数 乗 計
算 表示 ラ 作成 。
問題 5 ラ 例 ラ 5 示 。
ラ 5
/*キー ー 入力 7 数 加減乗除 計算 表示 */
#inclきde<かがdio.h>
main () {
inがぐ1け1くa1かa1かeki1かhoき1amaおi; // 変数 整数型 宣言
pおinがf(”数値6 入力:”);
かcanf(”%d”1&ぐ); // キー ー 変数 ぐ ー 入力 pおinがf(”数値7 入力:”);
かcanf(”%d”1&け);
くa=ぐ+け; // 計算 行う
かa=ぐ2け;
かeki=ぐ*け;
かhoき=ぐ/け;
amaおi=ぐ%け;
pおinがf(”%d %d ¥n”1ぐ1け); // 結果 表示 pおinがf(”和 = %d¥n”1くa);
pおinがf(”差 = %d¥n”1かa);
pおinがf(”積 = %d¥n”1かeki);
pおinがf(”商 = %d¥n”1かhoき);
pおinがf(”余 = %d¥n”1amaおi);
}
scanf 文 使用方法 ,
構文 scanf (” ”, & 変数 );
あ , 変数 入力 書式 入 。 scanf 文 , ー ー ー
入力 変数 & 付 使用 。
ラ 5 実行 結 以下 示 。
ラ 5 実行結 数値 6 入力:87 数値 7 入力:64 87 64
和 = 96 差 = 68 積 = 6648
商 = 5
余 = 67
,82 14 ー ー 入力 ー 。 ラ
,6 行目 printf (”数値 1 を入力:”) ; 表示 。 ,7 行目
scanf (”%d”, &x); ー ー 変数 x ー 入 待 い 。
そ ー ー 82 入力 ,Enter ー 82 変数 x 入
,次 printf (”数値 2 を入力:”) ; 表示 。9 行目 scanf (”%d”,
&y); ー ー 変数 y ー 入 待 い 。そ ー ー
14 入力 ,Enter ー 14 変数 y 入 ,次 計算,
結 表示 進行 。
6 条件判定 if 文
4 番目 基本的 仕組 , ラ 仕 分 方法 あ 条件 定 方法 示 。
問題 6 ー ー 入力 数値 数 数 定 ラ
作成 。
ラ 入力 数値 変数名 suuchi 数値 数
あ 場合
pおinがf(”%d 偶数 ¥n”1かききchi);
いう構文 必要 , 数値 数 あ 場合 pおinがf(”%d 奇数 ¥n”1かききchi);
いう構文 必要 。 2 構文 同時 実行 生 う ,条件 定 構文 if 文 必要 。
if 文 使用方法 , if( 条件 ) { 文 6;
} elかe{
文 7;
}
あ ,条件 あ 正 い 場合 文 1 実行 ,条件 あ 正
い 場合 文 2 実行 。else 以下 略 可能 あ 。
条件 例 表 2 示 。
表 7:条件 例
条件 演算子
い い > <
以上 以下 >= <=
等 い ==
異 !=
例え ,変数 a 3 い いう条件 a > 3 ,変数 x 10
以下 あ いう条件 , x <= 10 ,変数 b 変数 c 等 い いう
条件 b == c 。
if 文 用い ,条件 数値 数 あ ,文 1 数
表示,文 2 数 表示 ラ あ 。 数値 数
あ いう条件 数値 2 η 等 い いう条件 。
問題 6 ラ 例 ラ 6 示 。
ラ 6
/* キー ー 入力 数値 偶数 奇数 判定 */
#inclきde<かがdio.h>
main () {
inがかききchi;
pおinがf(”数値 入力 さい:”);
かcanf(”%d”1&かききchi);
if(かききchi%7==0) {
pおinがf(”%d 偶数 ¥n”1かききchi);
} elかe{
pおinがf(”%d 奇数 ¥n”1かききchi);
} }
ラ 6 実行 結 例 以下 示 。
ラ 6 実行結 例 1
数値 入力 さい:5
5 奇数
ラ 6 実行結 例 2
数値 入力 さい:8
8 偶数
次 複雑 条件 考え 。
問題 7 ー ー 入力 ,う う年 う 定 ラ 作成 。
if 文 使用方法 ,
if ( 条件 1){
文 1;
}
else if ( 条件 2){
文 2;
} else{
文 3;
}
あ ,条件 1 あ 場合 文 1 実行 ,条件 1 あ ,条件 2 あ 場合 文 2 実行 ,条件 1 あ ,条件 2 あ 場合 文 3 実行 。else if ッ 可能 あ ,else if 以 下 略 可能 あ 。
問題 7 ラ 例 ラ 7 示 。
ラ 7
/* 西暦 キー ー 入力 ,う う年 う 判定 */
#inclきde<かがdio.h>
main () {
inがけeaお;
pおinがf(”西暦 入力 さい :”);
かcanf(”%d”1&けeaお);
if(けeaお%400==0) {
pおinがf(” う う年 ¥n”);
}
elかeif(けeaお%4==0&&けeaお%600!=0) { pおinがf(” う う年 ¥n”);
} elかe{
pおinがf(” う う年 あ ¥n”);
} }
ラ 7 実行 結 例 以下 示 。
ラ 7 実行結 例 1
西暦 入力 さい :7066
う う年
ラ 7 実行結 例 2
西暦 入力 さい :7067
う う年 あ
7 繰 返 foお 文
5 番目 基本的 仕組 , ラ 仕 行う方法 示 。
問題 8 Hello !!! 1η 回表示 ラ 作成 。
for 文 使用方法 ,
foお( 初期設定 ; 条件 ; 後処理 ) { 文 ;
}
あ ,最初 初期 定 1 度 実行 ,条件 あ 間,文 後 理 構文 あ 。
問題 8 ラ 例 ラ 8 示 。
ラ 8
/* 画面 Hello!!! 60 回表示 */
#inclきde<かがdio.h>
main () { inがi;
foお(i=6;i<=60;i++) { //foお( 初期設定 ; 条件 ; 後処理 ) pおinがf(”Hello!!!¥n”);
} }
ラ 8 実行 結 以下 示 。
ラ 8 実行結 Hello!!!
Hello!!!
Hello!!!
Hello!!!
Hello!!!
Hello!!!
Hello!!!
Hello!!!
Hello!!!
Hello!!!
変数 i 回数 数え ン い 。後 理 あ
i++ i=i+1 略 i=i+1 同 構文 。 中
変数 使用 例 次 示 。
問題 9 1 N 入力 ー 和 積 計算 ラ 作成 。
問題 9 ラ 例 ラ 9 示 。
ラ 9
/*6 N
入力 ー和 積 計算 */
#inclきde<かがdio.h>
main () {
inがi1n1くa1かeki;
pおinがf(”6 和 積 計算 い ?:”);
かcanf(”%d”1&n);
くa=0;
かeki=6;
foお(i=6;i<=n;i++) { くa=くa+i;
かeki=かeki * i;
}
pおinがf(”6 %d 和= %d¥n”1n1くa);
pおinがf(”6 %d 積= %d¥n”1n1かeki);
}
ラ 9 実行 結 以下 示 。
ラ 9 実行結
1 和 積 計算。い 1η 1 1η 和= 55
1 1η 積= 36288ηη
以上 , ラ 基本的 仕組 あ 。表 3 構文 行う。
表 3
基本的 仕組 C 言
出力 printf
計算 = + - * / %
入力 scanf
条件 定 if else if else
for
第 4 章 ア ー ョン 作成
3 説明 ラ 5 基本的 仕組 用い ア ー ン ラ 作成 ,あ 問題 解決 使用 示 。 問題 円周 値 近似値 ン 法 計算 あ 。 ン
法 用い 必要 数 発生 仕組 次 示 。
問題 1η 数 1η 生成 ラ 作成 。 問題 1η ラ 例 ラ 1η 示 。
ラ 1η
/* 乱数 60 個生成 */
#inclきde<かがdio.h>
#inclきde<かがdlib.h>
main () { inがi;
foお(i=0;i<60;i++) { pおinがf(”%d¥n”1おand ());
} }
rand () 数 1 発生 ,そ ラ 使用 3 行目
#include <stdlib.h> 必要 。
ラ 1η 実行 結 以下 示 。
ラ 1η 実行結 630
60987 6090 66656 7667 67595 6465 77948 36676 9004
13η 9ηη4 規則性 い整数値 1η い 。 数 発
生 rand () 目 。
ン 法 用い 円周 値 計算 ,円 積 求 式 必要 あ 。
円 積= × ×円周
式 使 円周 求 考え方 図 2 示 。図 2 ,1 辺 1 あ 正方形 中 1 円 4 分 1 形 い い 。 図
x , y 。rand ( ) 用い ,η 1 実数値
数 2 発生 。rand ( ) 整数値 数 発生 ,そ 最 値
32767 η 1 実数値 数 。そ そ x y
値 ,図 2 中 点 や 。 三 方 定理 原点 x,y 離 乗 x +y
可能 。 点 数 , 積 近似値 ,円周
近似値 計算 。図 2 場合,正方形 積 1 × 1 = 1 中 点 数
18 6 24 。 , 形 積 1 × 1 ×円周 4
中 点 数 18 。 ,図 2 場合,
正方形 積 形 積= 1 円周 4 = 2η 14
,円周 値 ,3 。 発生 点 数 多 ,円周
近似値 値 近 。
問題 11 ン 法 用い 円周 求 ラ 作成 。 問題 11 ラ 例 ラ 11 示 。
ラ 11
/*円周率 求 */
#inclきde<かがdio.h>
図 7:円周率 求 考え方
#inclきde<かがdlib.h>
main () {
とoaがぐ1け1か=01pi;
inがi1n;
pおinがf(”繰 返 回数 入力:”);
かcanf(”%d”1&n);
foお(i=0;i<n;i++) { ぐ=おand ()/37767.;
け=おand ()/37767.;
if (ぐ*ぐ+け*け<6) { か++;
} }
/*n:6ぐ6 正方形 面積,か: 半径 6 円 4 分 6*/
pi=か*4/n;
pおinがf(”円周率= %f¥n”1pi);
}
ラ 11 実行 結 例 以下 示 。
ラ 11 実行結 例 1
繰 返 回数 入力:6000
円周率= 3.660000
ラ 11 実行結 例 2 繰 返 回数 入力:60000 円周率= 3.643600
ラ 11 実行結 例 3 繰 返 回数 入力:600000 円周率= 3.646760
発生 点 数 多 点 数 積 値 近 ,求
円周 値 値 近 わ 。
第 5 章
本稿 C 言 用い , ラ 基本的 仕組 説明 行 。 3 示 う ラ 基本的 仕組 5 あ , 4 そ 5 仕組 用い ,ア ー ン ラ 作成 ,問題 解
決 使用 示 。 , う 問題解決
ラ 作成 う , ラ 作成 必要
。 当 い ン ュー ラ ー研究 1A 義
, 示 ラ 5 基本的 仕組 説明 。そ 義
そ 6η ラ 作成 い 。
参考文献