SlideShare a Scribd company logo
1 of 34
XMLPro 11回目
前回の復習
乱数の生成
無限ループとbreak文
2
乱数の使い方
importで読み込み
nextInt()で取得、範囲は0~()内の数値-1
まで
3
無限ループ
4
break文で脱出
•
5
本日の内容
ファイル入出力
型の変換
問題
6
ファイル入出力
• Javaには、ファイルから読み込んだり、ファイ
ルに書き込んだりする機能(クラス)が入って
います。
• ICPCでだいたい最初にでてくるので今回は
ファイル入出力の方法をやります
詳しい話はクラスしてからします
8
• というわけでworkspace>プロジェクト名
(XMLPro2014)直下にFilesフォルダ作成>
中にtest.txt作成
9
• workspaceの場所は人により違うと思います
10
注意
• Eclipseから実行するときは、Eclipseの
ワークスペースからのパスで指定したしたほ
うがいいみたいです
例えるとLinuxのターミナルで今いる場所
がプロジェクト名> となっているため
11
書いてみて ファイル読み込み
•
12
書いてみて ファイル書き込み
13
class: FileRead
try {
//ファイルを扱うファイルクラスの準備 パスでファイル指定
File file = new File("Filestest.txt");
//文字をまとめて扱うときに使われるBufferedReaderクラス 引数はFileReaderでfileを指定
BufferedReader br = new BufferedReader(new FileReader(file));
String str;
//一行ずつ読み込み br.readLine();で
while ((str = br.readLine()) != null) {
System.out.println(str);
}
br.close();
} catch (FileNotFoundException e) {
System.out.println(e);
} catch (IOException e) {
System.out.println(e);
}
14
class: FileWrite
try {
//ファイルを扱うファイルクラスの準備 パスでファイル指定
File file = new File("Filestest.txt");
//ファイルに書き込むFileWriter 準備書き込む先は ↑で指定したfile
FileWriter fw = new FileWriter(file);
//fw.write(); で書き込み
fw.write("Hello World");
fw.close();
} catch (IOException e) {
System.out.println(e);
}
15
で両方書いたら実行
• ファイルの読み書きできたらおkです
とりあえず、この文を記述すれば
ファイルから読み込み、書き込みが
行えるってことだけわかればおkです
16
型の変換
やってるかもわからんけど
String型をint型、double型に
• String型(中身が数字)をint型、double型に
変換するには・・・
int型
Integer.parseInt(変換したいString型変
数);
Double型
Double.parseDouble(変換したいString型変
数);
18
String型をint型、double型に
19
int型、double型をString型に
• int型、double型をString型に変換するに
は・・・
String型
String.valueOf(変換したい変数);
20
問題やります
できたら先に進んでいっちゃってくだ
さいな
問題
• 九九の表を作る
• 形を整えるためには ”t” を使う
22
問題1
1~1200までの数で、17または12の倍数を出
力するプログラム
似た問題をやったことあるような…
(1から100までの数で3または5の倍数に
FizzとかBuzzとかつけて出力するプログラム)
23
問題2
1から99までのランダムな数値を一つ作成して
正解するまで入力させる数あてゲームを作る
入力した数が答えより
大きかったら「もっと小さいです」
小さかったら「もっと大きいです」と表示させると良い
ヒント)
99までのランダムな数値を作る nextInt(100)
当てるまで無限に続く while(true)
入力にはscannerを使う
24
Scanner,Randomの使い方
これら使うときはimportを忘れずに!
Scanner scan =new
Scanner(System.in);
int Input=scan.nextInt();
• Random rand = new Random();
• int answer = rand.nextInt(数値);
25
問題3
• 乱数を使って、じゃんけんをするプログラムを
つくってみよう
• キーボードから自分の手を選択し、勝敗に
よって出力を変える
26
ヒント
27
問題4
• じゃんけんをするプログラムをあいこならもう
一度じゃんけんをするようにし、決着がつくま
でじゃんけんを行うよう改良してみる
28
問題5
29
• 1~1000までのフィボナッチ数を求めるプログラ
ムをつくってみよう
フィボナッチ数というのは,
1,1,2,3,5,8,13,21,34,55…となる数です
初めに1,1をおいて,最後の数とその前の数をた
した数が次の数となる
3 +2 = 5 5 +3 = 8 8 + 5 = 13
問題5 実行結果
30
問題6
• ファイルの読み込みを用いてtxtファイルから
数値を読み込み、配列に格納する
←最初のtest.txtの
中身を書き換えれ
ばおk
31
ラスボスICPC第1問
• http://judge.u-
aizu.ac.jp/onlinejudge/description.jsp?id=1172&lang=jp
• n が正の整数ならば,n より大きく 2n 以下の素数が1個以上存在する.このこ
とはチェビシェフの定理またはベルトラン・チェビシェフの定理として知られている.
ベルトラン(Joseph Louis François Bertrand, 1822–1900)が予想してい
たことを,1850年にチェビシェフ(Пафнутий Львович Чебышёв, 1821–1894)
が証明した.ラマヌジャン(Srinivasa Aiyangar Ramanujan, 1887–1920)
は,1919年に公表された論文で,初等的な証明を与えた.エルデシュ(Paul
Erdős, 1913–1996)は,1932年に,別の初等的な証明を発見した.
• たとえば,10より大きく20以下の素数は 11, 13, 17, 19 で,4個ある. 13よ
り大きく26以下の素数は 17, 19, 23 で,3個ある.
• あなたの使命は,与えられた正整数 n に対して,n より大きく 2n 以下の素数
を数えるプログラムを書くことである. そのようなプログラムを使うと,個別の正
整数に対してチェビシェフの定理が成り立つことを確認できる.
32
ICPC 第1問つづき
• 入力はデータセットの並びである. データセットは,
ちょうど一つの正整数 n からなる行である.
n ≤ 123456 と仮定してよい.
• 入力の終わりは,1文字の0からなる行で示される.
これはデータセットではない.
• 出力は入力データセットと同数の行で構成されなけれ
ばならない. 各行は一つの整数を含まなければなら
ない. 余計な文字を含んではならない.
• 整数 n からなるデータセットに対応する出力の整数
は,n < p ≤ 2n をみたす素数 p の個数でなくては
ならない.
33
ICPC 第1問つづき
• 処理が重たくなるので8392はでてくるのが遅
いです
34

More Related Content

What's hot

基礎構文班 5回目 繰り返し
基礎構文班 5回目 繰り返し基礎構文班 5回目 繰り返し
基礎構文班 5回目 繰り返し
XMLProJ2014
 
Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説
JPCERT Coordination Center
 

What's hot (12)

JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
 
PowerShell 紹介
PowerShell 紹介PowerShell 紹介
PowerShell 紹介
 
Cobolでもやりたいテスト自動化
Cobolでもやりたいテスト自動化 Cobolでもやりたいテスト自動化
Cobolでもやりたいテスト自動化
 
Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)Pythonが動く仕組み(の概要)
Pythonが動く仕組み(の概要)
 
JVM上で動くPython処理系実装のススメ
JVM上で動くPython処理系実装のススメJVM上で動くPython処理系実装のススメ
JVM上で動くPython処理系実装のススメ
 
Linuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイント
Linuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイントLinuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイント
Linuxカーネルモジュール自作入門 kprobesでカーネル空間ブレークポイント
 
GDG Dev Fest Tokyo 2019
GDG Dev Fest Tokyo 2019GDG Dev Fest Tokyo 2019
GDG Dev Fest Tokyo 2019
 
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
 
131026 kansai-emacs
131026 kansai-emacs131026 kansai-emacs
131026 kansai-emacs
 
基礎構文班 5回目 繰り返し
基礎構文班 5回目 繰り返し基礎構文班 5回目 繰り返し
基礎構文班 5回目 繰り返し
 
POSIX Threads
POSIX ThreadsPOSIX Threads
POSIX Threads
 
Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説
 

Viewers also liked

Vacham10a3up 100623030851-phpapp01
Vacham10a3up 100623030851-phpapp01Vacham10a3up 100623030851-phpapp01
Vacham10a3up 100623030851-phpapp01
tai tran
 
Mpj marketing mix
Mpj marketing mixMpj marketing mix
Mpj marketing mix
Ade Yh
 
Cartilha de deveres, obrigações e Beneficions - MEI
Cartilha de deveres, obrigações e Beneficions - MEICartilha de deveres, obrigações e Beneficions - MEI
Cartilha de deveres, obrigações e Beneficions - MEI
Cambara Empreendedora
 
อุปกรณ์เชื่อมต่อคอมพิวเตอร์
อุปกรณ์เชื่อมต่อคอมพิวเตอร์อุปกรณ์เชื่อมต่อคอมพิวเตอร์
อุปกรณ์เชื่อมต่อคอมพิวเตอร์
anoeyy
 
Neoplasias
NeoplasiasNeoplasias
Neoplasias
QUIRON
 

Viewers also liked (20)

Vacham10a3up 100623030851-phpapp01
Vacham10a3up 100623030851-phpapp01Vacham10a3up 100623030851-phpapp01
Vacham10a3up 100623030851-phpapp01
 
Nas Nuvens
Nas NuvensNas Nuvens
Nas Nuvens
 
Maikel Verhaaren (GfK) @ MPJC2014
Maikel Verhaaren (GfK) @ MPJC2014Maikel Verhaaren (GfK) @ MPJC2014
Maikel Verhaaren (GfK) @ MPJC2014
 
Reti di spazi condivisi per i piccoli centri
Reti di spazi condivisi per i piccoli centriReti di spazi condivisi per i piccoli centri
Reti di spazi condivisi per i piccoli centri
 
Mpj marketing mix
Mpj marketing mixMpj marketing mix
Mpj marketing mix
 
Meu mundo
Meu mundoMeu mundo
Meu mundo
 
Cartilha de deveres, obrigações e Beneficions - MEI
Cartilha de deveres, obrigações e Beneficions - MEICartilha de deveres, obrigações e Beneficions - MEI
Cartilha de deveres, obrigações e Beneficions - MEI
 
Le Quartier Vert
Le Quartier VertLe Quartier Vert
Le Quartier Vert
 
Aleluia diante do trono-
Aleluia diante do trono-Aleluia diante do trono-
Aleluia diante do trono-
 
Les Residences de Monaco
Les Residences de MonacoLes Residences de Monaco
Les Residences de Monaco
 
อุปกรณ์เชื่อมต่อคอมพิวเตอร์
อุปกรณ์เชื่อมต่อคอมพิวเตอร์อุปกรณ์เชื่อมต่อคอมพิวเตอร์
อุปกรณ์เชื่อมต่อคอมพิวเตอร์
 
Lótus
LótusLótus
Lótus
 
Ufcd 0822 gestão e organização da informação
Ufcd 0822 gestão e organização da informaçãoUfcd 0822 gestão e organização da informação
Ufcd 0822 gestão e organização da informação
 
Cases
CasesCases
Cases
 
Novittá Residenze
Novittá ResidenzeNovittá Residenze
Novittá Residenze
 
Neoplasias
NeoplasiasNeoplasias
Neoplasias
 
Paço Real
Paço RealPaço Real
Paço Real
 
Aluminium Interior Wall Cladding from Gooding Aluminium
Aluminium Interior Wall Cladding from Gooding AluminiumAluminium Interior Wall Cladding from Gooding Aluminium
Aluminium Interior Wall Cladding from Gooding Aluminium
 
Ferido de Deus
Ferido de DeusFerido de Deus
Ferido de Deus
 
Aguas cristalinas
Aguas cristalinasAguas cristalinas
Aguas cristalinas
 

Similar to 基礎構文班 11回目 ファイル入出力 型変換 問題やる回

XMLPro 2回目 画面出力 変数
XMLPro 2回目 画面出力 変数XMLPro 2回目 画面出力 変数
XMLPro 2回目 画面出力 変数
XMLProJ2014
 
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
Hirotaka Kawata
 
基礎構文班19回目 変数のスコープとforの並び替え
基礎構文班19回目 変数のスコープとforの並び替え基礎構文班19回目 変数のスコープとforの並び替え
基礎構文班19回目 変数のスコープとforの並び替え
XMLProJ2014
 
XMLPro 3回目 画面出力 変数
XMLPro 3回目 画面出力 変数XMLPro 3回目 画面出力 変数
XMLPro 3回目 画面出力 変数
XMLProJ2014
 
What is java_se_7
What is java_se_7What is java_se_7
What is java_se_7
TakumiIINO
 
Clojureの発表など
Clojureの発表などClojureの発表など
Clojureの発表など
Kikuta Go
 

Similar to 基礎構文班 11回目 ファイル入出力 型変換 問題やる回 (20)

ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
XMLPro 2回目 画面出力 変数
XMLPro 2回目 画面出力 変数XMLPro 2回目 画面出力 変数
XMLPro 2回目 画面出力 変数
 
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
 
基礎構文班19回目 変数のスコープとforの並び替え
基礎構文班19回目 変数のスコープとforの並び替え基礎構文班19回目 変数のスコープとforの並び替え
基礎構文班19回目 変数のスコープとforの並び替え
 
js-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチjs-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチ
 
Xcore introduction
Xcore introductionXcore introduction
Xcore introduction
 
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクトOpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
 
xv6から始めるSPIN入門
xv6から始めるSPIN入門xv6から始めるSPIN入門
xv6から始めるSPIN入門
 
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1
 
XMLPro 3回目 画面出力 変数
XMLPro 3回目 画面出力 変数XMLPro 3回目 画面出力 変数
XMLPro 3回目 画面出力 変数
 
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
 
ニコニコを支える Erlang / Elixir
ニコニコを支える Erlang / Elixirニコニコを支える Erlang / Elixir
ニコニコを支える Erlang / Elixir
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
 
What is java_se_7
What is java_se_7What is java_se_7
What is java_se_7
 
2019年度若手技術者向け講座 インデックス
2019年度若手技術者向け講座 インデックス2019年度若手技術者向け講座 インデックス
2019年度若手技術者向け講座 インデックス
 
第5回勉強会
第5回勉強会第5回勉強会
第5回勉強会
 
SCPコマンドについて
SCPコマンドについてSCPコマンドについて
SCPコマンドについて
 
Clojureの発表など
Clojureの発表などClojureの発表など
Clojureの発表など
 

More from XMLProJ2014 (20)

Java班講義資料第3回
Java班講義資料第3回Java班講義資料第3回
Java班講義資料第3回
 
Java班講義資料第2回
Java班講義資料第2回Java班講義資料第2回
Java班講義資料第2回
 
第1回Java講義資料
第1回Java講義資料第1回Java講義資料
第1回Java講義資料
 
00環境構築
00環境構築00環境構築
00環境構築
 
Mash up awards(クリスマス会)
Mash up awards(クリスマス会)Mash up awards(クリスマス会)
Mash up awards(クリスマス会)
 
きのこたけのこ戦争
きのこたけのこ戦争きのこたけのこ戦争
きのこたけのこ戦争
 
クリパ用Lt2014
クリパ用Lt2014クリパ用Lt2014
クリパ用Lt2014
 
ポケモン解説
ポケモン解説ポケモン解説
ポケモン解説
 
クリスマス会Lt
クリスマス会Ltクリスマス会Lt
クリスマス会Lt
 
一年ツイッター
一年ツイッター一年ツイッター
一年ツイッター
 
C++班
C++班C++班
C++班
 
C#班
C#班C#班
C#班
 
Web班
Web班Web班
Web班
 
Web 11
Web 11Web 11
Web 11
 
Web 09
Web 09Web 09
Web 09
 
Android班第4回
Android班第4回Android班第4回
Android班第4回
 
Web 10
Web 10Web 10
Web 10
 
OpenSource
OpenSourceOpenSource
OpenSource
 
百合について
百合について百合について
百合について
 
Web 08
Web 08Web 08
Web 08
 

基礎構文班 11回目 ファイル入出力 型変換 問題やる回

Editor's Notes

  1. if文だけでいけます Scannerを使う
  2. 無限ループとbreak文