デジタル表現論・第6回

Similar documents
デジタル表現論・第4回

スライド 1

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

プログラミングA

Microsoft Word - java a.doc

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

Prog1_2nd

プログラミング入門1

Java講座

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog03.ppt

Prog1_6th

プログラミング入門1

JavaプログラミングⅠ

ガイダンス

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド


<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

メソッドのまとめ

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

メソッドのまとめ

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

オブジェクト指向プログラミング・同演習 5月21日演習課題

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

Prog1_15th

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

JavaプログラミングⅠ

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

プログラムの基本構成

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

JavaプログラミングⅠ

Java言語 第1回

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

Microsoft Word - 3new.doc

K227 Java 2

JavaプログラミングⅠ

Prog1_11th

memo

基礎計算機演習 実習課題No6

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

Week 1 理解度確認クイズ解答 解説 問題 1 (4 2 点 =8 点 ) 以下の各問いに答えよ 問題 bit 版の Windows8.1 に Java をインストールする時 必要なパッケージはどれか 但し Java のコンパイルができる環境をインストールするものとする 1. jdk

Microsoft PowerPoint - prog08.ppt

Prog2_10th

Program Design (プログラム設計)

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 3 回コレクションと例外処理 テクノロジックアート 瀬嘉秀

2

新・明解Javaで学ぶアルゴリズムとデータ構造

Microsoft PowerPoint - chap10_OOP.ppt

JavaプログラミングⅠ

ポインタ変数

Prog2_9th

明解Javaによるアルゴリズムとデータ構造

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

JavaプログラミングⅠ

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

Prog1_10th

2

r1.dvi

JavaプログラミングⅠ

DVIOUT-exer

JavaプログラミングⅠ

問題1 以下に示すプログラムは、次の処理をするプログラムである

Microsoft PowerPoint - prog08.ppt

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

Microsoft Word - problem3.doc

PowerPoint プレゼンテーション

PowerPoint Presentation

System.out.println("char : " + (int)character.min_value + "~" + (int)character.max_value); System.out.println("float : " + Float.MIN_VALUE + "~" + Flo

プログラミング入門1

Prog1_3rd

2

情報実習Ⅱ

Microsoft PowerPoint - OOP.pptx

プログラミング基礎I(再)

マークアップ言語

プログラミング入門1

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog13.ppt

Microsoft PowerPoint - prog13.ppt

文字列操作と正規表現

プログラミング入門1

Microsoft PowerPoint - 計算機言語 第7回.ppt

JavaプログラミングⅠ

JavaプログラミングⅠ

メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

Assignment_.java 課題 : 転置行列 / class Assignment_ public static void main(string[] args) int i,j; int[][] array = 1,,,,,,,,,,,,,1,1,; 行 列行列 i

プログラミング入門1

基礎プログラミング2015

PowerPoint プレゼンテーション

スライド 1

PowerPoint Presentation

第二回独習 Java ゼミ 第二章クラスとメソッド 2.1 メソッドの構造 2.2 静的メソッドと静的変数の概要 2.3 インスタンスメソッドとインスタンス変数の概要 2.4 Integerクラス 2006/04/19 神津健太

基本情報STEP UP演習Java対策

ToDo: 今回のタイトル

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

Transcription:

デジタル表現論 第 6 回 劉雪峰 ( リュウシュウフォン ) 2016 年 5 月 16 日 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 1 / 16

本日の目標 Java プログラミングの基礎配列 ( 復習 関数の値を配列に格納する ) 文字列ファイルの書き込み 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 2 / 16

配列 ( 復習 ) 配列は同じ型のデータの集まりである 配列の宣言 int[] my_array = new int[10]; // my_array の値 ( アドレス ) の確認 Systemoutprintln(my_array); (*) 変数 my_array の値はメモリにおける配列のアドレスとなる 上記のコードは以下のものと同じである int[] my_array; my_array = new int[10]; Systemoutprintln(my_array); 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 3 / 16

配列のイメージ 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 4 / 16

配列 配列の初期化 ( 方法 1) ịnt[] my_array = {1,2,3,4,5; 配列の初期化 ( 方法 2) int[] my_array = new int[5]; my_array [0]=1; my_array [1]=2; my_array [2]=3; my_array [3]=4; my_array [4]=5; 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 5 / 16

配列のコピー 以下のコードでは array_a と array_b は同じ配列に対応している int [] array_a = {4,5,6,7,8; int [] array_b; array_b = array_a; 整数のコピーと比較してください int a = 1, b; b = a; b = -1; イメージ : 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 6 / 16

配列のコピー 以下のコードの出力結果を推測してください ( このコードはホームページからダウンロードできます ) public class Demo6_1 { public static void main ( String [] args) { int [] array_a = {1,2; int [] array_b; int b; int a=1; array_b = array_a; //array_a と array_b は同じ配列に対応している b = a; Systemoutprintln("Before:first value of A:" + array_a[0]); Systemoutprintln("Before:first value of B:" + array_b[0]); Systemoutprintln("Before:value of a,b:" + a + "," + b); array_b[0] = -1; //B を使って配列の要素の値を更新する b = -1; Systemoutprintln("After:first value of A:" + array_a[0]); Systemoutprintln("After:first value of B:" + array_b[0]); Systemoutprintln("After:value of a,b:" + a + "," + b); 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 7 / 16

演習 1: 配列に関数の値を入れる 関数 f(x) = 1 + x 3 + sin(πx) について 以下の x i での f の値を浮動小数型配列 FunctionValues に格納する x 0 = 0, x 1 = 01,, x i = i 01, x 10 = 1 ヒント 数学関数の計算はクラス Math を使うこと : Mathsin(x), MathPI, Mathpow(x,3) ( 返却値は double ) 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 8 / 16

演習 1 の雛ファイル // ファイル名 : Exe6_1java public class Exe6_1 { public static double f ( double x) { double value; // ここに f の計算式のコードを書く return value; public static void main ( String [] args) { double [] FunctionValues = new double [11]; for( int i=0; i <11; i++){ // ここにコードを書く for(int i=0; i<11; i++){ // 配列を確認する Systemoutprintln( "["+i+"]:" + FunctionValues[i]); // main // Exe 6_1 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 9 / 16

文字列 文字列とは 文字列は文字 (char) の集まりである クラス String を利用すること で 文字列を処理できる 文字列の宣言 ( 方法 1) Ṣtring greeting = " Hello world!"; 文字列の宣言 ( 方法 2) char[] helloarray = { 'h', 'e', 'l', 'l', 'o', '' ; String greeting = new String( helloarray); 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 10 / 16

クラス String には多くの文字処理のメソッドが用意されている 例えば 特定の文字の探す 置き換えなどの処理 (*) クラス String の仕様説明 https://docsoraclecom/javase/8/ docs/api/java/lang/stringhtml String のメソッドの例 :charat(i) 文字列の i 番目の文字は charat(i) となる String hello = " Glad to meet you"; for( int i=0; i< hello length(); i++){ System out println( hello charat(i)); 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 11 / 16

演習 2: 文字列の逆順番入力した文字列を逆順番で表示する 例えば ABC を入力すると CBA を出力する 以下の雛ファイルを参照ください // ファイル名 : Exe6_2java import java util Scanner; public class Exe6_2 { public static void print_reverse ( String x) { // コードを書いてください ; public static void main ( String [] args) { Scanner input = new Scanner( Systemin); String input_string, output_string; System out println(" Please input a string"); input_string = input next(); System out println(" Reverse string is:"); print_reverse( input_string); // main // Exe6_2 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 12 / 16

演習 3: 文字列の逆順番 [ オプション ]( 難しい!) 入力した文字列の逆順番を新しい文字列に格納する import javautilscanner; public class Exe6_3 { public static String string_reverse ( String input_string) { String new_string = ""; // コードを書いてください ; return new_string; public static void main ( String [] args) { Scanner input = new Scanner(Systemin); String input_string, output_string; Systemoutprintln("Please input a string"); input_string = inputnext(); output_string = string_reverse(input_string); Systemoutprintln("Reverse string is:"); Systemoutprintln(output_string); // main // Exe6_3 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 13 / 16

ファイルの書き込み PrintWriter の使用 文字列をファイルに書き込むために PrintWriter を使用する 1) IO クラスを利用するために コードの先頭に IO クラスを import が必要である 2) 書き込みのエラーを処理するために main メソードの宣言に throws IOException を追加して 以下のようになる public static void main ( String [] args) IOException { //main の中身 3) close() メソッドは書き込みの終了後に呼び出す throws 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 14 / 16

ファイルの書き込み 例 import javaio*; public class Demo6_2 { public static void main( String [] args) throws IOException{ // コードとは同じフォルダーの下にファイルを書き込む File file = new File(" data txt"); PrintWriter out = new PrintWriter( file); out println(" Data in file:"); out println (32); outclose(); System out println(" Data is saved in data txt"); // main // Demo 6_2 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 15 / 16

演習 4: ファイルの書き込み [ オプション ] 演習 1 中の f の数値を格納している配列 FunctionValues の値をファイル function_valuestxt に保存する 以下は function_valuestxt の中身の例である 10 23 12 023 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 16 / 16