slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理 PowerPoint Presentation
Download Presentation
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理

Loading in 2 Seconds...

play fullscreen
1 / 14

データ構造とアルゴリズム論 第2章 配列(構造)を使った処理 - PowerPoint PPT Presentation


  • 92 Views
  • Uploaded on

データ構造とアルゴリズム論 第2章 配列(構造)を使った処理. 平成 15 年 10 月 7 日 森田 彦. 配列(構造)とは?. A[1] , A[2] ,・・・,のように、カッコ内の数字(添え字)で変数の値を指定できるデータ構造 例 1,5,3,9,7 を配列変数に保存. 大きさが「 5 」の配列変数 A を 1 個 用意。. A. [1]. [2]. [3]. [4]. [5]. ※ 一般の変数の場合. 5 個 の変数を用意する。. 1. 5. 3. 9. 7. A1. A2. A3. A4. A5. 本章(本日)の学習のねらい.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'データ構造とアルゴリズム論 第2章 配列(構造)を使った処理' - dalila


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

データ構造とアルゴリズム論第2章 配列(構造)を使った処理データ構造とアルゴリズム論第2章 配列(構造)を使った処理

平成15年10月7日

森田 彦

slide2
配列(構造)とは?
  • A[1],A[2],・・・,のように、カッコ内の数字(添え字)で変数の値を指定できるデータ構造

例1,5,3,9,7を配列変数に保存

大きさが「5」の配列変数Aを1個用意。

A

[1]

[2]

[3]

[4]

[5]

※一般の変数の場合

5個の変数を用意する。

A1

A2

A3

A4

A5

slide3
本章(本日)の学習のねらい
  • 配列を使った(典型的な)処理を学習する。
  • 処理内容(アルゴリズム)に応じて配列を利用できるようになる。

注意:配列を理解できなければ、次回以降の講義内容を理解できません。

slide4
2-1 配列の利点
  • 例5個の数値を順に表示させる。

<5個の変数>

<1個の配列変数>

開始

開始

A1を表示

i←1

A2を表示

No

i≦5

i≦100

A3を表示

Yes

A[i] を表示

A4を表示

終了

i←i+1

A5を表示

繰り返し処理の場合 → 配列を利用すると便利!

終了

slide5
配列(利用)の利点
  • 拡張が容易。上の例の場合、データ数が100になっても「5→100」に変えるだけで良い。
  • 処理内容をコンパクトに記述できるので、見通しが良くなる。→アルゴリズムの構造がはっきりとする。
2 2 java
2-2Java言語による配列の宣言
  • p.14~15を熟読して下さい。
  • プリントの訂正(p.14)

double B[] = newdouble[]

double B[] = newdouble[20]

slide7
2-3 配列の応用-最大・最小
  • 4つの正の整数が変数A1~A4に入っている。この中の最大値を求める。

例:1,5,3,8の場合

2.A2とMAXの比較

3.A3とMAXの比較

終了!MAXに最大値が入っている。

1.A1とMAXの比較

4.A4とMAXの比較

A1

A2

A3

A4

MAX

勝ち抜き戦方式

slide8
流れ図で表すと・・・

開始

No

A3>MAX

MAX←0

Yes

No

A1>MAX

MAX←A3

Yes

MAX←A1

No

A4>MAX

Yes

No

A2>MAX

MAX←A4

Yes

MAX←A2

MAX の表示

終了

slide9

ループ

i:1,1,4

ループ

【基礎課題2-1】

開始

MAX←0

配列A[1]~A[4]を用いて表すと・・・

  •  拡張が容易:整数の数が増えてもループの終値を変更するだけで良い。
  • 記述がコンパクトに:繰り返し処理をループ内に一つだけ記述するだけで済む。

No

A[i]>MAX

Yes

MAX←A[i]

MAX の表示

理解度チェック→【基礎課題2-2 】、【基礎課題2-3 】、【基礎課題2-4】

終了

slide10
2-4 配列要素の挿入・削除
  • 例:配列A[1]~A[N]にデータa1~aNが入っている。→配列要素のm番目にデータXを挿入する。

A[1]

A[2]

A[m]

A[m+1]

A[N]

X

am以降を右にずらす

a1

a2

・・・

am

am+1

・・・

aN

A[1]

A[2]

A[m]

A[m+1]

A[m+2]

A[N+1]

挿入完了!

a1

a2

・・・

X

am

am+1

・・・

aN

A[1]

A[2]

A[m]

A[m+1]

A[m+2]

A[N+1]

slide11

ループ

i:N,-1,m

ループ

流れ図で表すと・・・

a1

a2

・・・

am

am+1

・・・

aN

A[1]

A[2]

A[m]

A[m+1]

A[N]

開始

X

a1

a2

・・・

am

am+1

・・・

aN

mの入力

A[1]

A[2]

A[m]

A[m+1]

A[m+2]

A[N+1]

A[N]→A[N+1]

右にずらす。

A[N-1]→A[N]

A[i+1] ←A[i]

・・・

A[m]→A[m+1]

A[m]→A[m+1]から始めると、どうなるか?

A[m] ←X

終了

【基礎課題2-5】

slide12

ループ

i:1,1,N

ループ

2-5 添え字の参照

開始

Gusu←0

  • 例:配列Data[1]~Data[N]にデータ(整数)が入っている。この中で、偶数および奇数の個数を数える。

Kisu←0

Kosu[1]:偶数の個数Kosu[2]:奇数の個数

を導入すると・・・

Y ←Data[i] % 2

No

Y=0

Yes

Gusu←Gusu+1

Kisu←Kisu+1

終了

slide13

ループ

初期化ループ

i:1,1,2

i:1,1,N

ループ

初期化ループ

開始

Kosu[ ]内には、何が入る?

Y=0: Kosu[1]←Kosu[1]+1

Kosu[i]←0

Y=1: Kosu[2]←Kosu[2]+1

となることに注目すると・・・

選択構造が不要になった!

Y ←Data[i] % 2

Kosu[Y+1]←Kosu[Y+1]+1

Kosu[ ]←Kosu[ ]+1

データ構造の変更→アルゴリズムの変更!

p.28~p.29を熟読して【基礎課題2-7】へ

終了

slide14
テストのアナウンス
  • 11/4に第1回目のテストを実施します。
  • 要領は前期と同じペーパーテスト形式です。
  • 試験欠席の場合は、単位を取得できません。→十分注意してください。
  • 詳細は、追ってアナウンスします。
  • 成績=2回のテストの平均点+応用課題数