16
総合科学 I「BASIC」 No.1 プログラミングとは 計算機は単なる機械でしかないが、人が計算機に処理して欲しい手続きを記述することに よって、様々な機能を実現している。また、計算機がいろいろと柔軟に対応しているように 見える場面でも、あらかじめ「こういう場合ではこのように対処するようにする」という手 順を人が記述している。そういった手順のことを「プログラム」と呼び、プログラムを記述 することを「プログラミング」という。 1. プログラミング言語とは 計算機に対して一連の動作の指示を記述するための人工言語である。プログラミング言語 は、人間が計算機に命令を指示するために作られており、曖昧なく計算機が解析できるよう に設計されている。この人工言語は様々な種類があるが、本授業では BASIC を使用する。 2. BASIC 実行環境 十進 BASIC の起動 スタート」→「すべてのプログラム」→「十進 BASIC」→「BASIC」をクリック ① 十進 BASIC の実行画面 ② プログラム記述領域 プログラムのソースコードを入力するエリアです。 ③ 実行制御ボタン 記述したプログラムの実行などを行うボタンです。 プログラム記述領域 実行制御ボタン

[Basic] 配布資料

Embed Size (px)

Citation preview

総合科学 I「BASIC」 No.1

プログラミングとは

計算機は単なる機械でしかないが、人が計算機に処理して欲しい手続きを記述することに

よって、様々な機能を実現している。また、計算機がいろいろと柔軟に対応しているように

見える場面でも、あらかじめ「こういう場合ではこのように対処するようにする」という手

順を人が記述している。そういった手順のことを「プログラム」と呼び、プログラムを記述

することを「プログラミング」という。

1. プログラミング言語とは

計算機に対して一連の動作の指示を記述するための人工言語である。プログラミング言語

は、人間が計算機に命令を指示するために作られており、曖昧なく計算機が解析できるよう

に設計されている。この人工言語は様々な種類があるが、本授業では BASIC を使用する。

2. BASIC実行環境 十進 BASIC の起動

「スタート」→「すべてのプログラム」→「十進 BASIC」→「BASIC」をクリック

① 十進 BASICの実行画面

② プログラム記述領域

プログラムのソースコードを入力するエリアです。

③ 実行制御ボタン

記述したプログラムの実行などを行うボタンです。

プログラム記述領域

実行制御ボタン

1年 組 番 氏名( )

●練習問題 1 「Hello World!」を画面に表示する

プログラム「rei001」

できたプログラムは「マイドキュメント」→「プログラミング」に、「rei001」というフ

ァイル名で保存せよ。

※プログラミングの課題は今後すべて「マイドキュメント」→「プログラミング」に保

存すること。

○提出課題 1 ファイル名「kadai001-1」

1行目に学年組番号、2行目に名前、3行目に得意な科目をコンソール画面に表示するプ

ログラムを作成せよ。

●練習問題 2 演算結果を画面に表示する

プログラム「rei002」

○提出課題 2-1 ファイル名「kadai002-1」

999 から 111 を引いた数、 37 に 27 を掛けた数、 5772 を 52 で割った数を表示する

プログラムを作成せよ。

○提出課題 2-2 ファイル名「kadai002-2」

5 * ( 2 + 8 ) を計算し表示するプログラムを作成せよ。

○提出課題 2-3 ファイル名「kadai002-3」

5*4

3 を計算し表示するプログラムを作成せよ。

○提出課題 2-4 ファイル名「kadai002-4」

2)}32(4{ を計算し表示するプログラムを作成せよ。

算術演算子

演算子 意味 例 結果

+ 加算 8 + 3 11

- 減算 5 - 2 3

* 積算 13 * 1.5 19.5

/ 除算 10 / 2 5

^ べき乗 2 ^ 10 1024

PRINT "Hello World!"

END

文字列は,その前後を引用符(")

で囲んで表します。

PRINT 456+321

PRINT 74*12

PRINT 3/4

END

総合科学 I「BASIC」 No.2

変数

コンピュータ上で数値や文字列を保存し

ておく場所のことである。変数名は 1 文

字目が半角英字、2文字目以降は半角英数

字を用いて自由に名前をつけることが可

能である。

変数宣言

変数を使用できるよう、メモリ上に変数

のサイズ分の領域を確保し、「この領域を

変数として使用する」と「宣言」するこ

と。

●練習問題 3 変数と代入文

プログラム「rei003-1」

プログラム「rei003-2」

プログラム「rei003-3」

プログラム「rei003-4」

○提出課題 3-1 ファイル名「kadai003-1」

「rei003-1」の A に代入されている値を 825 に変更せよ。

○提出課題 3-2 ファイル名「kadai003-2」

A に 18, B に 90 を代入し、加算した結果と減算した結果を表示するプログラムを作成

せよ。

○提出課題 3-3 ファイル名「kadai003-3」

「rei003-4」の PRINT 命令を 「PRINT A; "+" ; B ;"+"; C ;"="; A + B + C」に変更

したプログラムを作成せよ。

△発展課題 3-4 ファイル名「kadai003-4」

A に 10, B に 3 を代入し、積算(A * B)と除算(A / B)した結果を表示するプログ

ラムを作成せよ。

△発展課題 3-5 ファイル名「kadai003-5」

A に 60, B に 92, C に 45 を代入せよ。また、A, B, C の平均を表示するプログラム

を作成せよ。

DECLARE NUMERIC A, B

LET A = 825

LET B = 7

PRINT "A + B ="; A + B

END

DECLARE NUMERIC A

LET A = 825

PRINT "Aの値は";A + 10

END

DECLARE NUMERIC A

LET A = 10

PRINT "Aの値は";A

END

DECLARE NUMERIC A, B, C

LET A = 34

LET B = 83

LET C = 42

PRINT "合計は"; A + B + C

END

1年 組 番 氏名( )

●練習問題 4 キーボードからの入力

プログラム「rei004-1」

プログラム「rei004-2」

プログラム「rei004-3」

○提出課題 4-1 ファイル名「kadai004-1」

「rei004-3」を対話型プログラムに改良せよ。

○提出課題 4-2 ファイル名「kadai004-2」

「kadai004-1」の A と B を加算した結果を表示するプログラムを作成せよ。

○提出課題 4-3 ファイル名「kadai004-3」

円の半径を入力し、面積を求める対話型のプログラムを作成せよ。なお円周率は 3.14 と

して計算せよ。

△発展課題 4-4 ファイル名「kadai004-4」

三角形の底辺と高さを入力し、面積を表示する対話型のプログラムを作成せよ。

△発展課題 4-5 ファイル名「kadai004-5」

A君、B君、C君のテストの点数を入力すると、平均が表示される対話型のプログラムを

作成せよ。

□任意課題 4-6 ファイル名「kadai004-6」

直方体の横、縦、高さを入力すると、体積を表示する対話型のプログラムを作成せよ。

□任意課題 4-7 ファイル名「kadai004-7」

円すいの底面の半径、高さを入力すると体積が表示される対話型のプログラムを作成せ

よ。円周率は 3.14 として計算せよ。

複数の入力

複数の変数に値を代入したい場合、左記の

INPUT文のように記述する。

プログラム実行時の入力は「2, 5」のように

コンマで区切って打ち込む。

DECLARE NUMERIC A, B

INPUT A, B

PRINT "Aの値は";A

PRINT "Bの値は";B

END

上記のように改良すると、入力プロンプトに

メッセージを表示することができる。このよ

うに、ユーザーとコンピュータとが問答を交

わすようにして処理を進めるプログラムの

ことを「対話型プログラム」という。

DECLARE NUMERIC A

INPUT PROMPT "整数を入力":A

PRINT "Aの値は";A

END

DECLARE NUMERIC A

INPUT A

PRINT "Aの値は";A

END

入力命令

“INPUT 変数”とすると入力プロ

ンプトが表示され、キーボードから

値を入力することが可能である。

総合科学 I「BASIC」 No.3

●練習問題 5 条件分岐命令

プログラム「rei005」

1: DECLARE NUMERIC TEN

2: INPUT PROMPT "テストの点数を入力":TEN

3: IF TEN < 40 THEN

4: PRINT "赤点でした。"

5: END IF

6: PRINT "テストは";TEN;"点でした。"

7: END

流れ図(フローチャート)

はじめ

おわり

「テストの点を入力」

を表示

ten に値を代入

ten を表示

ここに条件分岐を記入

変数 ten の宣言

1年 組 番 氏名( )

比較演算子

演算子 意味 使用例 式の値

= 等しい x = 0 x が 0 ならば真, それ以外ならば偽

> より大きい y > 5 y が 5 より大きければ真, 以下なら偽

>= 以上 y >= 5 y が 5 以上ならば真, ちいさければ偽

< より小さい z < 1.2 z が 1.2 より小さければ真, 以上なら偽

<= 以下 z <= 1.2 z が 1.2 以下ならば真, 大きければ偽

<> 等しくない z <> 6 z が 6 以外ならば真, 同じであれば偽

論理演算子

演算子 意味 使用例 式の値

NOT 否定 NOT ( A = 5 ) A が 5 でないなら真、 5 ならば偽

AND 積集合 B >= 0 AND B<= 10 B が 0 以上かつ 10 以下ならば真、そ

れ以外は偽

OR 和集合 C < 0 OR C > 100 C が 0 より小さいまたは 100 より大

きければ真、それ以外は偽

○提出課題 5-1 ファイル名「kadai005-1」

入力した値が正の数の場合、「正の数です」と表示するユーザ対話型のプログラムを作成

せよ。

○提出課題 5-2 ファイル名「kadai005-2」

年齢を入力し、20歳未満の場合「未成年です」と表示されるユーザ対話型のプログラム

を作成せよ。

△発展課題 5-3 ファイル名「kadai005-3」

持っているお金と欲しいものの金額の 2つを入力し、購入できるなら「購入できます」

と表示するユーザ対話型のプログラムを作成せよ。

△発展課題 5-4 ファイル名「kadai005-4」

テストの点数を入力し、入力された値が不正な値(0 ~ 100 の範囲外)であれば「正し

い値を入力してください」と表示するユーザ対話型のプログラムを作成せよ。

□任意課題 5-5 ファイル名「kadai005-5」

年齢と身長を入力し、年齢が 12歳以上か身長が 120cm以上であれば「ジェットコースタ

ーに乗れます」と表示するユーザ対話型のプログラムを作成せよ。

IF ≪条件式≫ THEN

<処理>

END IF

≪条件式≫ に合致する(真)場合、

<処理>の箇所を実行する。

合致しない(偽)場合は「END IF」

の次の命令にジャンプする

条件分岐

総合科学 I「BASIC」 No.4

●練習課題 6 2分岐の条件分岐命令

プログラム「rei006」

1: DECLARE NUMERIC TEN

2: INPUT PROMPT "テストの点数を入力":TEN

3: IF TEN < 40 THEN

4: PRINT "赤点でした。"

5: ELSE

6: PRINT "よく頑張りました。"

7: END IF

8: PRINT "テストは";TEN;"点でした。"

9: END

流れ図(フローチャート)

はじめ

「テストの点を入力」

を表示

ten に値を代入

ここに条件分岐を記入

変数 ten の宣言

おわり

1年 組 番 氏名( )

○提出課題 6-1 ファイル名「kadai006-1」

入力した値が正の数の場合は「正の数です」を表示し、それ以外の数は「0 以下の数で

す」と表示するユーザ対話型のプログラムを作成せよ。

○提出課題 6-2 ファイル名「kadai006-2」

2 つの自然数 A と B を入力し、同じ数が入力された場合は「同じ数字が入力されまし

た」と表示し、異なる数の場合は「異なる数字が入力されました」と表示される対話型

のプログラムを作成せよ。

○提出課題 6-3 ファイル名「kadai006-3」

2 つの自然数 A と B を入力し、値の大きい方を表示する対話型のプログラムを作成せ

よ。なお、同じ数が入力された場合は A, B のどちらの数を表示しても構わない。

△発展課題 6-4 ファイル名「kadai006-4」

持っているお金と欲しいものの金額の 2つを入力し、購入できるなら「購入できます」

と表示し、お金が足りない場合は不足金額を表示するユーザ対話型のプログラムを作成

せよ。

△発展課題 6-5 ファイル名「kadai006-5」

テストの点数を入力し、正しい値(0 ~ 100 の値)が入力された場合は「テストの点数

は○○点でした」(○○の部分は入力された値)と表示し、入力された値が不正な値であ

れば「正しい値を入力してください」と表示するユーザ対話型のプログラムを作成せよ。

□任意課題 6-6 ファイル名「kadai006-6」

円柱型の容器 A と B があり、容器 B には液体が満たされている。容器 B から容器 A

に液体を移しかえることができる場合は「移しかえることができます」と表示し、移し

かえることができない場合は「溢れてしまいます」と表示するユーザ対話型のプログラ

ムを作成せよ。なお、それぞれの容器の体積は、底面の半径と高さを入力して求められ

るようにすること。

□任意課題 6-7 ファイル名「kadai006-7」

車の移動速度(km/h)と目的地までの距離(km)を入力し、1 時間未満に目的地に到着する

場合は「あと○○分で到着します」(○○の部分は計算で求める)と表示し、1時間以上

かかる場合は「目的地到着まで 1 時間以上かかります」と表示するユーザ対話型のプロ

グラムを作成せよ。

IF ≪条件式≫ THEN

<処理1>

ELSE

<処理2>

END IF

2分岐の条件文 ≪条件式≫ に合致する(真)場合、

<処理1>の箇所を実行する。<処理

1>を実行後、「END IF」の次の命令

へジャンプする。

≪条件式≫ に合致しない(偽)場合、

<処理2>の箇所を実行する。

総合科学 I「BASIC」 No.5

●練習問題 7 条件分岐の入れ子構造 (ファイル名:rei007)

遊園地の入園料を表示するフローチャートおよびプログラムを作成せよ。

なお、入園料は年齢によって下記の表のようになっている。

年齢 入館料金

15歳未満 1,000円

15歳以上、60歳未満 2,500円

60歳以上 1,500円

流れ図(フローチャート)

はじめ

おわり

年齢を入力

ここに条件分岐を記入

変数宣言

1年 組 番 氏名( )

○提出課題 7 成績表示プログラム (ファイル名:kadai007)

テストの点数を入力し、点数に合わせた成

績を表示するフローチャートを作成せよ。ま

た、フローチャートを参考にしてプログラム

を作成し、ファイル名「kadai007」とし所定

の場所に保存せよ。

なお、テストの点数と成績の関係は右表の

通りである。

テストの点数 成績

80点以上 最良

65点以上 良

50点以上 可

50点未満 不可

流れ図(フローチャート)

はじめ

おわり

点数を入力

ここに条件分岐を記入

変数宣言

総合科学 I「BASIC」 No.6

●練習問題 8 繰り返し

プログラム「rei008」

流れ図(フローチャート)

はじめ

ここに繰り返しを記入

変数 N の宣言

おわり

1: DECLARE NUMERIC N

2: FOR N = 1 TO 10

3: PRINT N

4: NEXT N

5: END

繰り返し命令

同じような処理を何回も繰り返し処

理したい場合に用いる。

繰り返し命令には FOR~NEXT以外にも

DO WHILE~LOOPなどがある。

1年 組 番 氏名( )

○提出課題 8-1 ファイル名「kadai008-1」

コンソール画面に「0」~「100」までの数を表示するプログラムを作成せよ。

○提出課題 8-2 ファイル名「kadai008-2」

コンソール画面に「0」~「100」に含まれている 5の倍数を、数の小さいものから表示

するプログラムを作成せよ。

○提出課題 8-3 ファイル名「kadai008-3」

コンソール画面に「100」~「0」までの数を表示するプログラムを作成せよ。

□任意課題 8-4 ファイル名「kadai008-4」

1から 13までの自然数 Nについて、13

N の演算結果を表示するプログラムを作成せよ。

●練習問題 9 繰り返しを用いた和の求め方

プログラム「rei009」

○提出課題 9-1 ファイル名「kadai009-1」

自然数 Nについて、それらの 1~100の和を求めるプログラムを作成せよ。

○提出課題 9-2 ファイル名「kadai009-2」

自然数 Mを入力すると 1 + 2 + 3 + … + M を求めるプログラムを作成せよ。

□任意課題 9-3 ファイル名「kadai009-3」

自然数 Mを入力すると M ! を求めるプログラムを作成せよ。

□任意課題 9-4 ファイル名「kadai009-4」

自然数 Mを入力すると 1 から 2M+1までの奇数の和を求めるプログラムを作成せよ。

1: DECLARE NUMERIC N, S

2: LET S = 0

3: FOR N = 1 TO 10

4: LET S = S + N

5: NEXT N

6: PRINT "和は"; S ; "です"

7: END

自然数 Nについて、それらの 1~10の

和を求めるプログラムである。

変数 N:1~10のカウント

変数 S:合計を記憶しておく

FOR ≪変数≫ = ≪初期値≫ TO ≪終値≫ STEP ≪加算値≫

<処理>

NEXT ≪変数≫

繰り返し命令

総合科学 I「BASIC」 No.7

●練習課題 10 INT関数

プログラム「rei010-1」

プログラム「rei010-2」

○提出課題 10-1 ファイル名「kadai010-1」

自然数 Aを入力し、9で割った商(整数の範囲)を求める対話型のプログラムを作成せ

よ。

○提出課題 10-2 ファイル名「kadai010-2」

2つの自然数 A と B を入力し、A を B で割った商(整数の範囲)を求める対話型のプ

ログラムを作成せよ。

○提出課題 10-3 ファイル名「kadai010-3」

自然数 A を入力し、A を 2 で割った余りを求める対話型のプログラムを作成せよ。

△発展課題 10-4 ファイル名「kadai010-4」

自然数 A を入力し、A を 3 で割った余りを求める対話型のプログラムを作成せよ。

△発展課題 10-5 ファイル名「kadai010-5」

2つの自然数 A と B を入力し、A を B で割った余りを求める対話型のプログラムを作成

せよ。

□任意課題 10-6 ファイル名「kadai010-6」

自然数 A を入力し、A の値が偶数であれば「偶数です」、奇数であれば「奇数です」と

表示する対話型のプログラムを作成せよ。

□任意課題 10-7 ファイル名「kadai010-7」

3 桁の自然数 A を入力し、「100 の位は○です」、「10 の位は△です」、「1 の位は□です」

(○・△・□は計算で求める)と表示する対話型のプログラムを作成せよ。

除算した結果を、INT関数に引数と

して渡すと「割った商(整数の範

囲)」を得ることができる。

INT関数

引数(括弧内の数字)を超えない最

大の整数を返す関数

PRINT INT(3)

PRINT INT(5.7)

PRINT INT(-4.4)

END

DECLARE NUMERIC Q

LET Q = 10 / 3

PRINT INT(Q)

END

1年 組 番 氏名( )

○最終課題 11-1 ファイル名「kadai011-1」

九々(1×1=1、1×2=2…9×8=72、9×9=81)と表示するプログラムを作成せよ。

流れ図(フローチャート)

はじめ

おわり

総合科学 I「BASIC」 No.8

○最終課題 11-2 ファイル名「kadai011-2」

正の整数 Aの約数をすべて求めるプログラムを作成せよ。

流れ図(フローチャート)

はじめ

おわり

1年 組 番 氏名( )

○最終課題 11-3 ファイル名「kadai011-3」

1~100 を表示するプログラムを作成せよ。なお、3 の倍数と 3のつく整数は数字を表示

するかわりに「(゚д゚)アヒャ」と表示しなさい。

流れ図(フローチャート)

はじめ

おわり