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

第 7章  アルゴリズムの練習

N/A
N/A
Protected

Academic year: 2021

シェア "第 7章  アルゴリズムの練習"

Copied!
3
0
0

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

全文

(1)

第 7章  アルゴリズムの練習

【課題1

  A1 に正の整数を入れて下さい。

 約数を全て求め、B1, B2, B3, ……に書き込むプログラムを作成しなさい。

(ヒント)

 正の整数をnとすると、n1nまでの数で割ります。余りが0ならば、割る数は 約数です。a ÷ b の余りをcとするとき、c = a Mod b と書きます。

【課題2

  A1 B1 1が入っています。

 以下のように2行目~ 10 行目に2項係数を書き込むプログラムを作成しなさい。

(ヒント)

Range ではなくCells(i, j)を使います。

2重ループを使います。

1列目は常に1です。

【課題3

 直角三角形の3つの辺はa2 + b2 = c2 を満たします。この式を満たす整数値の組み 合わせをa, b1100の範囲 (ただし a < b) で全て求め、表を作成するプロ グラムを作りなさい。表はA列にaの値、B列にbの値、C列にcの値を書き込みなさ い。

(ヒント)

abの数を変化させるのに2重ループを使います。

a2 a * a と書いても良いですが、a ^ 2 と書くこともできます。

1

(2)

・ある数 n c ^ 2 の形で表せるか否かは、d = Sqr(n) のようにnの平方根 を計算し、dが整数か否かで判定できます。dが整数か否かはd = Int(d) で判断 します。

【課題4

(a) A2に入れた数字が素数かどうか判定し、素数なら B2 "素数 " と書き入れ、

そうでないとき "" を書き込むプログラムを作りなさい。

(ヒント)

・数字を nとするとき、2, 3, 4, ...., n-1 まで順番に割っていき、全ての数 で割り切れなかったら素数です。

・フラグ変数を導入します。初期値として 0を入れておき、割り切れたなら1を代入 します。最後まで調べ終わった時点で、0のままであれば、素数です。

(b) A2A1002~100の数字を入れ、A列の数値が素数のとき、B列に "素数

" と書き入れ、そうでないとき "" を書き込むプログラムを作りなさい。

(c) 素数を抽出して C1, C2, C3, ... のセルに並べるプログラムを作成しなさ い。

【課題5

  A1 に入っている数値を素因数分解してB1, B2, B3... に書き込むプログラムを 作りなさい。ただし A1 の数値が素数の場合は約数1は書かなくても構いません。

(ヒント)

・素因数分解する数値を n、割る数をwaruとします。waruの初期値は2です。n waru で割り、割り切れたときは約数なので waru B列に入れ、 n = n /

waru n の値を更新します。そうでないときwaru1増やします。

 この操作を何回も繰り返し、warunより大きくなったら終了です。

・本来はこのプログラムは無限ループを使って組む問題です。しかし、無限ループは 終了条件が誤っていたとき、 Excel がハングアップしてしまいます。 For i = 1 to 1000 などのように、ループ回数を多くしたFor文を使いなさい。Forループか ら抜けるにはExit Forを使います。

【課題6

 正の整数をセル A1 に入れなさい。桁数を求めて B1 に記入するプログラムを作りな さい。ただし、関数Logを使わずに求めなさい。

2

(3)

(ヒント)

・「 10 で割ってIntをとる」という行為を繰り返します。0になったら終わりです。

割った回数と桁数の関係を考えなさい。

【課題7

  A1 10 進数の値が入っています。ただし、255(2進数で11111111)以下です。

すなわち2進数で8桁以下です。これを2進数に直し、A2,B2,C2,D2...2行目に 各々の位の数値を書き込むプログラムを作りなさい。

 シートに検算用の数式を埋め込んでいます。 A1 I4 の値が同じであれば、正しく 2進数に直せています。

(ヒント)

10 進数を2進数に直すには2通りの方法があります。ここでは、128の位から順 番に、その位が1か否かを調べていく方法をお勧めします。

【課題8

 セル A1 8桁の2進数を書き込みます。たとえば00111011のように、0の位には 0を記入し、8文字記述して下さい。セル A1 は書式を「文字列」に設定しているので、

入力したものは「文字列」となります。

(a) 1 桁ずつ分解して A2, B2, C2,....H2 8個のセルに01を書き込むプロ グラムを作りなさい。

(b) 10進数に直した数値を A3 に書き込みなさい。

(ヒント)

(a) はMidを使います。

(b) A2→H2 の順番に上の位から処理する方法と、 H2→A2 の順番に下の位から処 理する方法があります。下の位から処理するときの方法を以下で述べます。

 処理する列は8, 7, 6, .... , 1 のように変化し、位の重みは1, 2, 4, 8,... のように変化します。

 For ループを8 → 7 → 6 → 5 → ……… →1 のように変化させたいとき、以下のよ うに書きます。

For i = 8 To 1 Step -1 Next i

3

(4)

4

参照

関連したドキュメント

カリキュラム・マネジメントの充実に向けて 【小学校学習指導要領 第1章 総則 第2 教育課程の編成】

第一章 ブッダの涅槃と葬儀 第二章 舎利八分伝説の検証 第三章 仏塔の原語 第四章 仏塔の起源 第五章 仏塔の構造と供養法 第六章 仏舎利塔以前の仏塔 第二部

で得られたものである。第5章の結果は E £vÞG+ÞH 、 第6章の結果は E £ÉH による。また、 ,7°²­›Ç›¦ には熱核の

平成25年3月1日 東京都北区長.. 第1章 第2章 第3 章 第4章 第5章 第6章 第7 章

第1章 生物多様性とは 第2章 東京における生物多様性の現状と課題 第3章 東京の将来像 ( 案 ) 資料編第4章 将来像の実現に向けた

□ ゼミに関することですが、ゼ ミシンポの説明ではプレゼ ンの練習を主にするとのこ とで、教授もプレゼンの練習

第1章 総論 第1節 目的 第2節 計画の位置付け.. 第1章