単純ソート (1) 配列の先頭から順に, 次の要素以降の中から最小なものを次々に選び出し, 入れ替える. int[] a = new int[m]; と宣言され,M 個のデータが配列 a に格納されているとき, Step 1.: a[0] に着目し,a[1]~a[M-1] のうち最小のものが a[0

Similar documents
Java プログラミング Ⅰ 11 回目多次元配列 2 次元配列 2 次元配列配列要素が直線上に並ぶ一次元配列に対して 平面上に並ぶ配列要素をもつ配列 直観的には 2 次元配列の準備配列変数の宣言は型と識別子を指定して次のように行う 型識別子 [ ][ ]; または 型 [ ][ ] 識別子 ; 配

メソッドのまとめ

JavaプログラミングⅠ

情報処理Ⅰ

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は

講習No.9

文字列操作と正規表現

JAVA入門

Microsoft PowerPoint - 5Chap15.ppt

PowerPoint プレゼンテーション

gengo1-8

基礎プログラミング2015

2 ASCII コードと文字型変数 2-1 ASCII コード 文字 コードコードコードコードコードコードコードコード文字文字文字文字文字文字文字 10 進 10 進 10 進 10 進 10 進 10 進 10 進 10 進 0 16 SP P 80 ` 96 p 112

ファイル入出力

ポインタ変数

< F2D837C E95CF CF68A4A94C5816A2E6A>

講習No.8

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

プログラミングI第5回

情報処理概論(第二日目)

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

ポインタ変数

Prog1_6th

プレポスト【解説】

基礎情報処理 I (文字型)

プログラミング基礎

Microsoft Word - no202.docx

Java講座

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

Microsoft PowerPoint - ruby_instruction.ppt

Taro-ファイル処理(公開版).jtd

Microsoft Word - 3new.doc

演習1

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

sinfI2005_VBA.doc

JAVA入門

pp2018-pp9base

_unix_text_command.pptx

Prog1_2nd

Taro-cshプログラミングの応用.jt

program7app.ppt

PowerPoint プレゼンテーション

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

PowerPoint プレゼンテーション

スライド 1

Microsoft PowerPoint - prog03.ppt

Microsoft Word - no103.docx

Prog1_10th

講習No.1

memo

プログラミングI (手続き)

第9回 配列(array)型の変数

正規表現応用

Microsoft PowerPoint - prog03.ppt

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

基礎プログラミング2015

Sort-of-List-Map(A)

PowerPoint プレゼンテーション

デジタル表現論・第4回

JavaプログラミングⅠ

Excel2013 データベース1(テーブル機能と並べ替え)

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

文字入3-2 力3 文字入力について ひらがな 漢字 カタカナ 英数字 記号 絵文字などが入力できます 文字入力方式には モード1( かな方式 ) モード2(2タッチ方式 ) モード3( ニコタッチ方式 ) の3 種類があります 本書では モード1( かな方式 ) での入力例を中心に記載します モー

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

プログラミング入門1

デジタル表現論・第6回

Microsoft PowerPoint - info1-8.ppt [互換モード]

Prog2_10th

このルールをそのまま正規表現として書くと 下記のようになります ^A[0-9]{2}00[0-9]{3}([0-9]{2})?$ ちょっと難しく見えるかもしれませんが 下記のような対応になっています 最初 固定 年度 固定 通番 ( 枝番 ) 最後 ルール "A" 数字 2 桁 0 を 2 桁 数字

UNIX 初級講習会 (第一日目)

文字入3-2 力3 文字入力について ひらがな 漢字 カタカナ 英数字 記号 絵文字などが入力できます 文字入力方式には モード1( かな方式 ) モード2(2タッチ方式 ) モード3( ニコタッチ方式 ) の3 種類があります 本書では モード1( かな方式 ) での入力例を中心に記載します モー

ポインタ変数

Xperia™ XZ ユーザーガイド

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i

Microsoft PowerPoint - 05.pptx

ポインタ変数

PowerPoint プレゼンテーション

GEC-Java

PowerPoint プレゼンテーション

※ ポイント ※

Microsoft PowerPoint - CproNt02.ppt [互換モード]

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

スライド 1

X2 使いこなしガイド

memo

DIGNO® E 503KC ユーザーガイド

Word2013基礎 基本操作

PowerPoint Presentation

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(VBA) サンプル問題 知識科目 第 1 問 ( 知

PowerPoint プレゼンテーション - 物理学情報処理演習

kiso2-09.key

memo

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

Transcription:

単純ソート (1) 配列の先頭から順に, 次の要素以降の中から最小なものを次々に選び出し, 入れ替える. int[] a = new int[m]; と宣言され,M 個のデータが配列 a に格納されているとき, Step 1.: a[0] に着目し,a[1]~a[M-1] のうち最小のものが a[0] より小さければ a[0] と交換する. Step 2.: a[1] に着目し,a[2]~a[M-1] のうち最小のものが a[1] より小さければ a[1] と交換する. : Step M-2.: a[m-3] に着目し,a[M-2]~a[M-1] のうち最小のものが a[m-3] より小さければ a[m-3] と交換する. Step M-1.: a[m-1] の方が小さければ a[m-2] と交換する. 2020 年度都市環境学科プログラミング言語 265

単純ソート (2) 配列の先頭から後に向かって走査して比較をし後ろの要素が小さければ入れ替える a[0] a[1] a[2] a[3] a[4] 0-1 20 13 3 55 6 比較して入替え 2020 年度都市環境学科プログラミング言語 266

単純ソート (3) a[0] a[1] a[2] a[3] a[4] 0-1 20 13 3 55 6 0-2 13 20 3 55 6 比較して入替え 2020 年度都市環境学科プログラミング言語 267

単純ソート (4) a[0] a[1] a[2] a[3] a[4] 0-1 20 13 3 55 6 0-2 13 20 3 55 6 0-3 3 20 13 55 6 比較して入れ替えない : v 以下同様に繰り返す 2020 年度都市環境学科プログラミング言語 268

単純ソート (5) a[0] a[1] a[2] a[3] a[4] 0-1 20 13 3 55 6 0-2 13 20 3 55 6 0-3 3 20 13 55 6 0-4 3 20 13 55 6 1-2 3 20 13 55 6 1-3 3 13 20 55 6 1-4 3 13 20 55 6 2-3 3 6 20 55 13 2-4 3 6 20 55 13 3-4 3 6 13 55 20 3-F 3 6 13 20 55 ソーティング完了 2020 年度都市環境学科プログラミング言語 269

単純ソート (6) なくても可 実行結果 第 1 番目 : 11 第 2 番目 : 22 第 3 番目 : 32 第 4 番目 : 57 第 5 番目 : 91 2020 年度都市環境学科プログラミング言語 270

Array.Sort() メソッドによる配列のソート Array クラスの Sort() メソッドに配列を渡すとソーティングが行われて戻ってくる. 実行結果 第 1 番目 : 11 第 2 番目 : 22 第 3 番目 : 32 第 4 番目 : 57 第 5 番目 : 91 2020 年度都市環境学科プログラミング言語 271

Fortran で記述した p.270 と同様なプログラム program simplesort implicit none 継続行 integer :: i, j, temp, n=5 integer :: a(1:5)=(/22, 57, 11, & 91, 32/) do i=1, n-1 do j=i+1, n if (a(i) > a(j)) then temp = a(i) a(i) = a(j) a(j) = temp endif enddo enddo do i=1, n write(*,*) ' 第 ', i, ' 番目 : ', a(i) enddo endprogram simplesort 配列 a の 5 つの要素の初期化. 2020 年度都市環境学科プログラミング言語 272

配列 (18) ー 2 次元配列 int[,] a = new int[2,3]; と宣言すると a[0,0] a[0,1] a[0,2] a[1,0] a[1,1] a[1,2] 4 バイト 2 3 のように領域が確保され,a[0,0], a[0,1], a[0,2], a[1,0], a[1,1] および a[1,2] などとアクセスできる. 初期化 int[,] a = new int[,] {{1,2,3}, {4,5,6}}; a[0,0]=1; a[0,1]=2; a[0,2]=3; a[1,0]=4; a[1,1]=5; a[1,2]=6; のように配列のサイズが確定し各要素が初期化される. 2020 年度都市環境学科プログラミング言語 273

配列 (19) ー 2 次元配列の例 2 次元配列 aの行数 =2 2 次元配列 aの列数 =3 配列要素の参照 a.lengthは全要素数 6になる. 実行結果 1 2 3 4 5 6 2020 年度都市環境学科プログラミング言語 274

配列 (20) ー 2 次元配列の例 実行結果 本来不要なカンマだが, データの追加, 削除を容易にするためにつけても良い. ( 東京,Tokyo, とうきょう,) ( 大阪,Osaka, おおさか,) ( 名古屋,Nagoya, なごや,) ( 福岡,Fukuoka, ふくおか,) 2020 年度都市環境学科プログラミング言語 275

配列 (21) ー凸凹な 2 次元配列 凸凹な配列をジャグ配列という 配列の行数のみ指定 配列の各行の列数を指定.0 で初期化 配列要素の参照 実行結果 0 0 0 0 0 2020 年度都市環境学科プログラミング言語 276

配列 (22) ー凸凹な 2 次元配列 int[][] 型の配列変数. 参照先は int[] 型の配列 配列本体. 構成要素型は int 型. 要素数は 3 int[] 型の配列変数. 参照先は int 型の配列 配列本体. 構成要素型は int[] 型. 要素数は 2 int 型の変数 配列本体. 構成要素型は int 型. 要素数は 2 2020 年度都市環境学科プログラミング言語 277

配列 (23) ー凸凹な 2 次元配列 本来不要なカンマだが, データの追加, 削除を容易にするためにつけても良い. 実行結果 10 11 12 13 14 15 16 17 18 19 20 21 2020 年度都市環境学科プログラミング言語 278

配列 (24) ー凸凹な 2 次元配列 配列宣言時にデータで初期化 実行結果 Tokyo, Osaka, Nagoya, Fukuoka, Dog, Cat, Bird, Island, Lake, Peninsula, Mountain, Bitter, Sweet, Sour, 2020 年度都市環境学科プログラミング言語 279

配列 (25) ー凸凹な 2 次元配列 配列宣言とは別にデータで初期化 2020 年度都市環境学科プログラミング言語 280

配列 (26) 2020 年度都市環境学科プログラミング言語 281

foreach 文 (1) 一般的形式 foreach ( データ型変数 in コレクション ) 文 ; 意味 コレクション内のすべての変数に対して文を繰り返し実行する. 2020 年度都市環境学科プログラミング言語 282

foreach 文 (2) for 文を使用 配列の各要素の合計を求める foreach 文を使用 2020 年度都市環境学科プログラミング言語 283

foreach 文 (3) 実行結果 10 20 30 40 50 60 70 80 普通の多次元配列であれば 1 つの foreach 文で全要素にアクセス可能 ジャグ配列であれば行と列のそれぞれに foreach 文を用いる必要がある 2020 年度都市環境学科プログラミング言語 284

文字列と文字の配列 ( 文字配列 ) 行例文字列 >ABCDEFG. s1 = ABCDEFG s2 = 2020 年 6 月 9 日 s3 = 中央大学 3 年 1 組 s4 = 大学 3 年 s5 = 12345 ch2 = 2020 年 6 月 9 日実2020 年度都市環境学科プログラミング言語 285

文字列の長さの取得 ( 文字の個数 ) 実行例 文字列を入力 > 中央大学 3 年 1 組. 文字列の長さは :8 Length プロパティで文字列の長さを取得できる. 全角半角の区別はない. 2020 年度都市環境学科プログラミング言語 286

文字列の英字の大文字化 小文字化 大文字化 : ToUpper() メソッド小文字化 : ToLower() メソッド 実行例 元の文字列 : Good Morning 大文字へ変換 : GOOD MORNING 小文字へ変換 : good morning 2020 年度都市環境学科プログラミング言語 287

文字列の連結 s3 + d; も可 string.concat( 文字列 1, 文字列 2) メソッドで, 2 つの文字列を連結できる. 実行例 ABCD1234 現在時刻 : 2020/06/06 15:26:05 2020 年度都市環境学科プログラミング言語 288

文字列配列の各要素の区切り文字つき連結 string.join( 区切り文字, 文字列配列名 ) メソッドで, 区切り文字を指定して文字列を連結できる. 実行例 abc, DEF, 123, 999 abcdef123999 2020 年度都市環境学科プログラミング言語 289

区切り文字による文字列の分離 区切り文字に, 空白, カンマ, タブを指定 タブ 連続した区切り文字を適切に処理するオプション Split() メソッドにより, 区切り文字を指定して, 文字列を分離して, 配列に記憶させることができる. 実行例 ABCDE 中央大学 123456 xyz ()!#$% 2020 年度都市環境学科プログラミング言語 290

文字列の比較 (1) 2 つの文字列の内容を比較するだけならば, 比較演算子 "==" で可能 (Java では不可 ) 2020 年度都市環境学科プログラミング言語 291

文字列の比較 (2) 文字列 1.CompateTo( 文字列 2) メソッドにより文字列のコードの大小を比較できる ソーティングに利用できる. 2020 年度都市環境学科プログラミング言語 292

文字列中の文字の取得 (1) i はインデックス番号という 文字列中の各文字は, 文字列があたかも文字の配列かのように, 文字列名 [ インデックス番号 ] で取得できる. ただし,S[i]=' 中 ' のような代入は不可. 文字の配列は可 2020 年度都市環境学科プログラミング言語 293

行例文字列中の文字の取得 (2) インデックス番号文字列実0 1 2 3 4 5 6 7 中央大学 3 年 1 組 文字列を入力 > 中央大学 3 年 1 組. s[0]= 中 s[1]= 央 s[2]= 大 s[3]= 学 s[4]=3 s[5]= 年 s[6]=1 s[7]= 組 2020 年度都市環境学科プログラミング言語 294

文字列中の一部の文字列の取得 (1) 3 文字目から 3 文字を抽出 Substring() メソッドにより, 文字列中の一部の文字列を取得できる. 抽出開始文字位置 ( 抽出開始インデックス番号 ) と抽出文字数を与える. 2020 年度都市環境学科プログラミング言語 295

文字列中の一部の文字列の取得 (2) 実行例 1 文字列を入力 >ABCDEFGH 抽出文字列は CDE です. インデックス番号文字列 0 1 2 3 4 5 6 7 A B C D E F G H 実行例 2 文字列を入力 > 中央大学 3 年 1 組抽出文字列は大学 3 です. インデックス番号文字列 0 1 2 3 4 5 6 7 中央大学 3 年 1 組 インデックス番号の始まりは 0 であることに注意! 2020 年度都市環境学科プログラミング言語 296