• 検索結果がありません。

プログラムの基本的な仕組み

N/A
N/A
Protected

Academic year: 2021

シェア "プログラムの基本的な仕組み"

Copied!
27
0
0

読み込み中.... (全文を見る)

全文

(1)

プログラムの基本的な仕組み

著者 鶴貝 達政

雑誌名 明治学院大学法学研究 = Meiji Gakuin law journal

巻 101(中巻)

ページ 225‑250

発行年 2016‑10‑13

その他のタイトル The Fundamental Structure of a Programming Language

URL http://hdl.handle.net/10723/2950

(2)

ラ 基本的 仕組

     

  ラ 作成 ラ ン いう。 ラ ン 学

い方 , ラ い 考え 方 少 い あ

う。 , ラ 基本的 仕組 5 ,そ 1

1 構造 単純 あ 。 ラ ン 味 そ 単純 5 構造

組 合わ 複雑 ラ 作成 あ 。本稿 目的

そ ラ 基本的 仕組 5 構造 説明 あ 。そ 説

明 必 ラ ン 言 必要 わ い , ラ 実

際 入力 ,実行 結 確 ラ 基本的 仕組 理解 手助 。 ラ ン 言 数多 存在 ,本稿 構造 的単純 あ C 言 用い 説明 。本稿 目的 C 言 べ 文法 説明 い。C 言 一部分 用い , ラ 基本的 仕組 説明 あ 。

章 ア ー ョン 仕組 考え 加工

  ラ 基本的 仕組 説明 入 前 1 問題 考え 。

文 作成 ア ー ン ラ あ ー 起 次 文

入力 。 ッ 1 あ 。 ッ い い入

(3)

い 。 ッ 外側 い い 。 ッ 中 い う。 入力 ー イ 保存 , イ 名前 和 文 .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η 回

作成 い。

セ ー 方法 以下 示 。 セ 起 ,新規

作成

   1 イン ラベ B C 境界 。

   2 ラッ ,セ B 。

   3 和文 .docx ー ー ,セ B1 右 ッ 付

   4 文 .docx ー ー ,同様 本文 下 付 。

   5 セ A1 ッ ,1 入力 。

   6 う一度,セ A1 ッ , 集 連続 ー 作成 ッ 。

   7 列 , 分値 2 , 値 9 , OK ッ

   8 セ B6 ッ ,2 入力 。

(4)

   9 う一度,セ B6 ッ , 集 連続 ー 作成

ッ 。

   1η 列 , 分値 2 , 値 1η , OK ッ

   11 A1 B1η ラッ 。    12 び え ッ 。

ー ー 方法 以下 示 。 ー 起 ,新規作成

   1 挿入 表 表 挿入 ッ 。

   2 列数 2,行数 5 入力 OK ッ 。

   3 和文 .docx ー べ 選 CTRL-A , ー CTRL-C 。

   4 表 作成 ,新 い文書 ー 中 ッ 表示 。    5 表 側 ラッ 指定 。

   6 ー 付 CTRL-V 。

   7 文 .docx ー 同様 表 右側 付 。

   8 表全体 ラッ 指定 。

   9 イア 表 解 ッ 。

   1η 文 列 , 落 選び,OK ッ 。

 以上,示 う 表計算 セ 文 作成 ー

ー いう問題 解 可能 あ 。 う ア

ー ン ラ う 理解

ラ 基本的 仕組 理解 重要 あ 。

(5)

3 基本的 5 仕組

 問題 そ ラ 例示 ラ 基本的 5 仕組

説明 。

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 言 ラ 必要 。

(6)

, ラ 1,2,3,5 行目 構成 C 言 組

, 説明 ラ 必 い 。

, C 言 構文 ー 部分 ” ” 中以外 角 数 使用 。 , 文 文 ,main Main,printf Printf

い。

出力 pおinがf 文

 最初 基本的 仕組 , ラ ー 出力 方法 考え,

ラ 1 実行 結 図 1 示 。

 図 1 Hello ! 部分 ラ 1 実行結 あ ,次 行 C:¥test

¥Debug> ン あ 。 以 ラ 実行

結 以下 う 示 。

ラ 1 実行結 Hello!

図 6: ― 6 実行結果

(7)

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 言 述 ラ 付 注釈

(8)

あ 。 部分 ン ュー ン イラ 実行 行う 無視 。

ラ 目的, 作 述 。// ラ 中 述

そ 以 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;

(9)

pおinがf(”%d+%d=%d¥n”1a1b1c);

}

  ラ 2 4 行目,int a, b, c; , ー 入 器 あ 変数 使

用 ン ュー ン イラー え ,変数 言

いう。変数 ,入 ー 型 知 必要 あ , 整数型 ー

入 ,変数 a, b, cint 述 い 。 ラ ン 言

中 変数 言 い 使用 言 ,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)

(10)

ラ 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=ぐ%け;

(11)

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 示 。

(12)

ラ 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);

}

(13)

 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 入 ,次 計算,

結 表示 進行 。

(14)

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 示 。

(15)

表 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) {

(16)

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;

}

(17)

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”);

(18)

}

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 文 使用方法 ,

(19)

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!!!

(20)

Hello!!!

Hello!!!

Hello!!!

Hello!!!

Hello!!!

Hello!!!

Hello!!!

 変数 i 回数 数え ン い 。後 理 あ

i++ i=i+1i=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;

(21)

か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

(22)

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 行目

(23)

#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

(24)

値 ,図 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:円周率 求 考え方

(25)

#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 実行 結 例 以下 示 。

(26)

ラ 11 実行結 例 1

繰 返 回数 入力:6000

円周率= 3.660000

ラ 11 実行結 例 2 繰 返 回数 入力:60000 円周率= 3.643600

ラ 11 実行結 例 3 繰 返 回数 入力:600000 円周率= 3.646760

 発生 点 数 多 点 数 積 値 近 ,求

円周 値 値 近 わ 。

5

 本稿 C 言 用い , ラ 基本的 仕組 説明 行 。 3 示 う ラ 基本的 仕組 5 あ , 4 そ 5 仕組 用い ,ア ー ン ラ 作成 ,問題 解

決 使用 示 。 , う 問題解決

ラ 作成 う , ラ 作成 必要

。 当 い ン ュー ラ ー研究 1A 義

, 示 ラ 5 基本的 仕組 説明 。そ 義

そ 6η ラ 作成 い 。

(27)

参考文献

1  C 言 科書 , 新 C 言 入 古 SOFTBANK , や い C

高 SOFTBANK 。

2  FORTRAN 科書 , や い FORTRAN 入 向俊

3  perl 科書 , わ Perl 深 ( 評論 ) 。 4  本稿 C 言 ラ ,Borland C++ Compiler 5.5 使用 ,

ン イ ,実行形式 イ 変換 ,実行 確 い 。 考 URL ,

https://www.embarcadero.com/jp/free-tools/ccompiler あ 。

表 7:条件 例 条件 演算子 い い &gt; &lt; 以上 以下 &gt;= &lt;= 等 い == 異 !=  例え ,変数 a 3 い いう条件   a  &gt;  3   ,変数 x 10 以下 あ いう条件 , x  &lt;=  10   ,変数 b 変数 c 等 い いう 条件   b == c   。   if 文 用い ,条件 数値 数 あ ,文 1 数 表示,文 2 数 表示 ラ あ 。 数値 数 あ いう条件 数値 2 η 等 い いう条件 。 問題 6 ラ 例 ラ 6 示 。

参照

関連したドキュメント

4 because evolutionary algorithms work with a population of solutions, various optimal solutions can be obtained, or many solutions can be obtained with values close to the

The inclusion of the cell shedding mechanism leads to modification of the boundary conditions employed in the model of Ward and King (199910) and it will be

It turns out that the symbol which is defined in a probabilistic way coincides with the analytic (in the sense of pseudo-differential operators) symbol for the class of Feller

Then it follows immediately from a suitable version of “Hensel’s Lemma” [cf., e.g., the argument of [4], Lemma 2.1] that S may be obtained, as the notation suggests, as the m A

We give a Dehn–Nielsen type theorem for the homology cobordism group of homol- ogy cylinders by considering its action on the acyclic closure, which was defined by Levine in [12]

Our method of proof can also be used to recover the rational homotopy of L K(2) S 0 as well as the chromatic splitting conjecture at primes p &gt; 3 [16]; we only need to use the

Zhang; Blow-up of solutions to the periodic modified Camassa-Holm equation with varying linear dispersion, Discrete Contin. Wang; Blow-up of solutions to the periodic

For a fixed discriminant, we show how many exten- sions there are in E Q p with such discriminant, and we give the discriminant and the Galois group (together with its filtration of