探検
ねねっちと一緒にプログラムを勉強するスレ第2話 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/03/18(土) 13:03:05.05ID:KGlkA67c ぬるぽって何?
560デフォルトの名無しさん
2017/04/24(月) 00:36:27.38ID:73H/OgY9 >>558
言い訳おじさんがまた言い訳してる
言い訳おじさんがまた言い訳してる
561デフォルトの名無しさん
2017/04/24(月) 00:52:28.36ID:JE5n6vCM 自作自演にしか見えない……。
562デフォルトの名無しさん
2017/04/24(月) 06:32:08.39ID:9IqpEK8F >>558
もちろんググれば分かるのに何でググらないの?
ここでの評価をググった結果に優先する理由は何?
ここでの評価を優先しようとするくせに
「34歳は頭が悪い」
っていう自分に対する簡単な評価は頑なに認めようとしないのはなんで?
もちろんググれば分かるのに何でググらないの?
ここでの評価をググった結果に優先する理由は何?
ここでの評価を優先しようとするくせに
「34歳は頭が悪い」
っていう自分に対する簡単な評価は頑なに認めようとしないのはなんで?
563デフォルトの名無しさん
2017/04/24(月) 10:08:03.78ID:9YTeQZy3 片山研究所の実験動物にゴチャゴチャ言うなよ
565デフォルトの名無しさん
2017/04/24(月) 20:33:17.11ID:9YTeQZy3 実験動物のくせにゴチャゴチャうるせぇな
566デフォルトの名無しさん
2017/04/24(月) 20:48:58.13ID:TSPMV/hI ネット環境得てからクズ度がどんどん上がったな
親も失敗だったね
親も失敗だったね
568デフォルトの名無しさん
2017/04/25(火) 18:05:19.79ID:TzUmZKvP 鏡見ろよ
569デフォルトの名無しさん
2017/04/25(火) 18:42:37.81ID:SWAzzsrw >>567
何でそんな頭悪い発言出来るの?
何でそんな頭悪い発言出来るの?
570デフォルトの名無しさん
2017/04/25(火) 21:41:23.98ID:apTIu6Ro もう諦めたら?
571片山博文MZ ◆T6xkBnTXz7B0
2017/04/25(火) 22:36:23.40ID:TBuA3Fu0 Eclipseインストールしてhello, world書いたよ。
572片山博文MZ ◆T6xkBnTXz7B0
2017/04/25(火) 22:53:08.99ID:TBuA3Fu0 Javaは久しぶりだな。何年前になるだろう? 昔、awtでなんか作ってたな。
573片山博文MZ ◆T6xkBnTXz7B0
2017/04/25(火) 22:55:33.57ID:TBuA3Fu0 スマホ開発ではawtは役に立たないから、Javaの基礎からやり直すことにするか。
java.lang.*を見ればいいのか?
java.lang.*を見ればいいのか?
574片山博文MZ ◆T6xkBnTXz7B0
2017/04/25(火) 22:59:57.52ID:TBuA3Fu0 エクリプス、フルインストールで1GB超えてる。まさに巨大なるIDEだ。
注意点としては、C:直下で展開しないと、ファイルパス名が長すぎて展開に失敗するようだ。
注意点としては、C:直下で展開しないと、ファイルパス名が長すぎて展開に失敗するようだ。
一部の攻撃的なレスをする馬鹿に構うとこっちまで悪く見られて損だな。
>>570
やだよ。
>>片山さん
ちょっと便利過ぎるんですよね。
予測変換機能とかあるから、文法を正確に覚えていなくても
書けてしまう場合もあるし。
>>570
やだよ。
>>片山さん
ちょっと便利過ぎるんですよね。
予測変換機能とかあるから、文法を正確に覚えていなくても
書けてしまう場合もあるし。
576デフォルトの名無しさん
2017/04/26(水) 00:14:04.67ID:C1JG3n6h 攻撃的なレスが増えているのは自分の振る舞いのせいなのに・・・
自分に非があるとは思わないんだな
自分に非があるとは思わないんだな
577デフォルトの名無しさん
2017/04/26(水) 00:23:15.56ID:1c8kYD+M 悪く見られてってギャグで言っているのか?
578片山博文MZ ◆T6xkBnTXz7B0
2017/04/26(水) 04:28:25.80ID:ZFKZUpWM579デフォルトの名無しさん
2017/04/26(水) 07:44:56.13ID:mKUyOhF8 インスタグラムのページでソースを表示して、
1枚目の投稿写真のurlを見つけることはできるのですが、
2枚投稿されている場合、2枚目のURLはソースに表示されていないんですかね?
探しても見つからないので。
1枚目の投稿写真のurlを見つけることはできるのですが、
2枚投稿されている場合、2枚目のURLはソースに表示されていないんですかね?
探しても見つからないので。
580デフォルトの名無しさん
2017/04/26(水) 10:13:55.64ID:VMQAT7m5 >>575
お前は悪くない、社会が悪い
お前は悪くない、社会が悪い
582デフォルトの名無しさん
2017/04/26(水) 17:41:55.11ID:VMQAT7m5 お前に良いところなんてないだろ、いい加減にしろ
583デフォルトの名無しさん
2017/04/26(水) 18:09:43.89ID:k4Ao8EcY584デフォルトの名無しさん
2017/04/26(水) 18:21:36.26ID:VMQAT7m5585デフォルトの名無しさん
2017/04/26(水) 18:50:37.59ID:lYhaqZk4586デフォルトの名無しさん
2017/04/26(水) 21:19:59.39ID:Wh7Oh9Mr >>585
しねクズ
しねクズ
587デフォルトの名無しさん
2017/04/26(水) 21:21:37.82ID:Wh7Oh9Mr >>583
黙れうんこ
黙れうんこ
588デフォルトの名無しさん
2017/04/26(水) 21:22:37.79ID:Wh7Oh9Mr さて、AIには真似できないすばらしい反応の手本を見せてもらうとしよう
どんな面白い返しがくるんだろ、わくわく
どんな面白い返しがくるんだろ、わくわく
589デフォルトの名無しさん
2017/04/26(水) 21:24:33.76ID:Wh7Oh9Mr 俺の言葉の深層まで読み取って返してくれんだろうなあ、楽しみだなあ
590デフォルトの名無しさん
2017/04/26(水) 21:26:23.77ID:lYhaqZk4 この度、>>586-587もようなレスをするに至ったことは、
主治医として、大変残念な事であり、
また、治療の効果がまだまだ現れていないことを証明しているため、
そろそろ最終的な決断を下す必要があるようです。
みなさんお聞きになったことがあるかもしれませんが、
必ずしも心の病は、特殊な病気ではなく、誰もがそうなる可能性があります。
しかし、だからといって、これ以上、Wh7Oh9Mr を放置することは、例えば何の関係もない人を傷つけたり、
逆にWh7Oh9Mr 自身の将来にとり、名から図示も良いことではありません。
そこで、私は、Wh7Oh9Mr の両親、臨床心理士などとも相談して、
Wh7Oh9Mr をしばらくの間、ネットの出来る環境から離して、
濃密な人間関係の中で治療をすることにしました。
Wh7Oh9Mr にとっては、納得がいかないことかもしれませんが、
私も、医師免許をかけて、Wh7Oh9Mr を徹底して直すことに致しました。
どうかみなさん!Wh7Oh9Mr が戻ってきましたら、このような人を悲しませる
スレではなく、みんなに感動を届ける以上の人間になっていると思いますので、
暖かく見守ってやってください。
主治医として、大変残念な事であり、
また、治療の効果がまだまだ現れていないことを証明しているため、
そろそろ最終的な決断を下す必要があるようです。
みなさんお聞きになったことがあるかもしれませんが、
必ずしも心の病は、特殊な病気ではなく、誰もがそうなる可能性があります。
しかし、だからといって、これ以上、Wh7Oh9Mr を放置することは、例えば何の関係もない人を傷つけたり、
逆にWh7Oh9Mr 自身の将来にとり、名から図示も良いことではありません。
そこで、私は、Wh7Oh9Mr の両親、臨床心理士などとも相談して、
Wh7Oh9Mr をしばらくの間、ネットの出来る環境から離して、
濃密な人間関係の中で治療をすることにしました。
Wh7Oh9Mr にとっては、納得がいかないことかもしれませんが、
私も、医師免許をかけて、Wh7Oh9Mr を徹底して直すことに致しました。
どうかみなさん!Wh7Oh9Mr が戻ってきましたら、このような人を悲しませる
スレではなく、みんなに感動を届ける以上の人間になっていると思いますので、
暖かく見守ってやってください。
591デフォルトの名無しさん
2017/04/26(水) 21:36:11.16ID:Wh7Oh9Mr スパムみたいな文章だけど一生懸命さは伝わってきた
努力賞ということで
努力賞ということで
592デフォルトの名無しさん
2017/04/26(水) 23:18:34.00ID:pa8V2Lji もはや幼稚園児だな
593デフォルトの名無しさん
2017/04/27(木) 00:38:39.73ID:krvEjk1K プログラムの勉強しないでなにやってんだ
何のスレだここ
何のスレだここ
荒れてるけど知ーらね。
>>583
それにしたって動物呼ばわりはないでしょ。
もうちょっとマシな言い方にして下さいよ。
>>片山さん
話の腰を折るみたいで申し訳ないですが、
試したらイデワンでも複数のクラスを書けるみたいですよ。
https://ideone.com/V0Jd9h
ある程度は、インスタンス化が必要なプログラムもイデワンで
対処できそうです。
>>583
それにしたって動物呼ばわりはないでしょ。
もうちょっとマシな言い方にして下さいよ。
>>片山さん
話の腰を折るみたいで申し訳ないですが、
試したらイデワンでも複数のクラスを書けるみたいですよ。
https://ideone.com/V0Jd9h
ある程度は、インスタンス化が必要なプログラムもイデワンで
対処できそうです。
595デフォルトの名無しさん
2017/04/27(木) 09:13:08.60ID:i5BzzK+e 最近はgitを使えない奴をカス呼ばわりする世の中なのに、
敢えて教えを拒否する奴がいるとは…
敢えて教えを拒否する奴がいるとは…
596デフォルトの名無しさん
2017/04/27(木) 10:18:38.91ID:t6wdZAgr 治療は必要ない、必要なのは保健所
597片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 14:00:42.94ID:Nwh2sTTf598片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 14:11:49.48ID:Nwh2sTTf 課題。lineメソッドの不具合を修正し、「バカ」を「天才」に変えなさい。
599片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 14:55:29.37ID:Nwh2sTTf この課題は、君の考える力を試している。
ヒント:方眼紙
ヒント:方眼紙
600579
2017/04/27(木) 15:18:57.42ID:a+BwFeTM 質問を取り消します
603デフォルトの名無しさん
2017/04/27(木) 17:50:55.68ID:ECqhjgGf どこまで応用力ないんだ34歳
604デフォルトの名無しさん
2017/04/27(木) 18:06:09.07ID:t6wdZAgr 正直な話、笑い事じゃないんだよなぁ
605片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 18:26:43.70ID:Nwh2sTTf 解説しよう。クラスVirtualScreenのコンストラクタは、メソッドresetを呼ぶ。resetメソッドは、文字列の配列を構築する。これが幅width、高さheightの仮想画面となる。
メソッドprintは構築されている仮想画面を出力する。
メソッドprintは構築されている仮想画面を出力する。
606片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 18:29:33.58ID:Nwh2sTTf setPixelメソッドは、画面のある位置の文字を置き換える。単純に文字列処理で文字を置き換えている。
位置が画面をはみ出すなら文字は置き換えない。
位置が画面をはみ出すなら文字は置き換えない。
607片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 18:32:36.42ID:Nwh2sTTf ならば、fillBoxメソッドはどんな処理を行うメソッドだろうか?
608片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 19:02:55.64ID:Nwh2sTTf 貴様、会社のPCで勤務中に仕事をサボって2ちゃんねるに書き込んでいただろう?!
通信記録を見れば丸わかりなんだよ。罰として給料を3分の1減給する。二度と勤務中に2ちゃんねるをしないこと!!
通信記録を見れば丸わかりなんだよ。罰として給料を3分の1減給する。二度と勤務中に2ちゃんねるをしないこと!!
609片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 19:10:13.51ID:Nwh2sTTf (陰口)
。。。ったく最近の新人さんって使えねーのなんの。授業料を請求したいぐらいだ。ぼそぼそ。
。。。ったく最近の新人さんって使えねーのなんの。授業料を請求したいぐらいだ。ぼそぼそ。
611デフォルトの名無しさん
2017/04/27(木) 19:30:00.14ID:t6wdZAgr >>608
3分の1減給はやり過ぎじゃね?
減給するならまず就業規則に明記した上で、
>労働基準法第91条で,「1回の額が平均賃金の1日分の半額を超え,
>総額が賃金支払期における賃金の総額10分の1を超えてはならない」
3分の1減給はやり過ぎじゃね?
減給するならまず就業規則に明記した上で、
>労働基準法第91条で,「1回の額が平均賃金の1日分の半額を超え,
>総額が賃金支払期における賃金の総額10分の1を超えてはならない」
612片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 19:35:23.20ID:Nwh2sTTf これは二重のforループだ。
英単語のtopとは、一番上のこと。bottomとは一番下のこと。leftは左。rightは右。
fillとは塗り潰すこと。boxとは箱のこと。
このメソッドは長方形を塗り潰す。
二重のループの場合は内側のループから解読する。
for (int x = left; x <= right; ++x) { setPixel(ch, x, y); }
ここでsetPixel(ch, x, y);は、文字位置(x, y)に文字chをセットする処理である。
xについて、leftからrightの範囲で繰り返すので、[left, right]という閉区間を塗り潰すことになる。
英単語のtopとは、一番上のこと。bottomとは一番下のこと。leftは左。rightは右。
fillとは塗り潰すこと。boxとは箱のこと。
このメソッドは長方形を塗り潰す。
二重のループの場合は内側のループから解読する。
for (int x = left; x <= right; ++x) { setPixel(ch, x, y); }
ここでsetPixel(ch, x, y);は、文字位置(x, y)に文字chをセットする処理である。
xについて、leftからrightの範囲で繰り返すので、[left, right]という閉区間を塗り潰すことになる。
613片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 19:39:29.53ID:Nwh2sTTf では、
for (int y = top; y <= bottom; ++y) {
...
}
というループが何をするか説明しなさい。
for (int y = top; y <= bottom; ++y) {
...
}
というループが何をするか説明しなさい。
>>613
yが一番上から一番下まで行くまでの処理ですか?
yが一番上から一番下まで行くまでの処理ですか?
615片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 19:47:21.26ID:Nwh2sTTf >>614
そのとおり。では、Mainクラスのmainメソッドで実際にfillBoxを呼んで動作を確認しなさい。
そのとおり。では、Mainクラスのmainメソッドで実際にfillBoxを呼んで動作を確認しなさい。
616片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 19:50:43.31ID:Nwh2sTTf このように、実際のコードが読めなくても、英単語の意味から動作を推定できることがある。つまりは、英語の勉強も必要だ。
>>片山さん
fillBoxメソッドの第一引数であるchはどんな役割を果たしているんですか?
fillBoxメソッドの第一引数であるchはどんな役割を果たしているんですか?
620片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 20:13:26.88ID:Nwh2sTTf chはsetPixelメソッドに渡されるsetPixelはchに指定された文字をセットする。
Stringクラスのsubstringメソッドは部分文字列を返す。setPixelは、行の部分文字列とchを連結して、新しい行に更新する。
Stringクラスのsubstringメソッドは部分文字列を返す。setPixelは、行の部分文字列とchを連結して、新しい行に更新する。
621片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 20:29:02.56ID:Nwh2sTTf 例えばstr.substring(3)は文字列strの四文字目以降の部分文字列を返す。str.substring(3, 2)はstrの四文字以降の2文字を返す。
622片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 20:33:49.25ID:Nwh2sTTf String str = lines[y];
これはlinesのy+1行目を文字列strに格納する。
lines[y] = str.substring(0, x) + ch + str.substring(x + 1);
これは、x+1文字目をchで置き換えたものをlines[y]に格納する。
これはlinesのy+1行目を文字列strに格納する。
lines[y] = str.substring(0, x) + ch + str.substring(x + 1);
これは、x+1文字目をchで置き換えたものをlines[y]に格納する。
623片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 20:36:26.35ID:Nwh2sTTf 大卒には難し過ぎたか。。。
626片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 20:57:13.48ID:Nwh2sTTf その上、画面をはみ出してるよ。
627片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 20:59:22.46ID:Nwh2sTTf VirtualScreen screen = new VirtualScreen(40, 10);
って書いてあるんだから、画面は(0, 0)〜(39, 9)の範囲だよ。
って書いてあるんだから、画面は(0, 0)〜(39, 9)の範囲だよ。
628片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 21:20:18.38ID:Nwh2sTTf 適性なし。
629デフォルトの名無しさん
2017/04/27(木) 21:27:22.31ID:i5BzzK+e ワロタ
631片山博文MZ ◆T6xkBnTXz7B0
2017/04/27(木) 21:32:15.08ID:Nwh2sTTf >>630
ふざけてんのか? 何でleft>rightなんだよ。わざと間違えてるだろ。
ふざけてんのか? 何でleft>rightなんだよ。わざと間違えてるだろ。
632デフォルトの名無しさん
2017/04/27(木) 21:33:31.27ID:i5BzzK+e ワロタ
お茶碗を持つ方がleftで、橋を持つ方がrightなんやで
お茶碗を持つ方がleftで、橋を持つ方がrightなんやで
633デフォルトの名無しさん
2017/04/28(金) 00:03:26.21ID:FtZLbekm 34歳は、答えの用意されている問題(学校のテストとか)を解くことは出来るが、
明確な答えがない、複数あってどれか選ばなくてはいけない系の問題が全然ダメなんじゃないの。
考える力が弱いというか、考えているふりをしてなにも考えていないというか。
想像力と思考力が致命的に足りない感じ。
前に同じような症状の新人を見たことあるけど、
SJIS対応文字列反転関数作らせたらとても楽しいことになった覚えがある。
片山先生、試しにお題を出してあげたらどうだい。
明確な答えがない、複数あってどれか選ばなくてはいけない系の問題が全然ダメなんじゃないの。
考える力が弱いというか、考えているふりをしてなにも考えていないというか。
想像力と思考力が致命的に足りない感じ。
前に同じような症状の新人を見たことあるけど、
SJIS対応文字列反転関数作らせたらとても楽しいことになった覚えがある。
片山先生、試しにお題を出してあげたらどうだい。
635片山博文MZ ◆T6xkBnTXz7B0
2017/04/28(金) 00:37:58.46ID:0yWv+0K/ 今日はこの辺で終わるとするか。次は、lineメソッドのバグ取りをやる。自分の頭が良いと思ってるなら、
だれが認める業績で天才であることを証明してくれ。
だれが認める業績で天才であることを証明してくれ。
>>片山さん
やはりグラフィック系の課題はまだちょっと…。
その代わりメソッドの演習が(戻り値なし、引数ありまで)終わったので、
(前言った範囲に追加して)課題を作ってもらえませんか?
やはりグラフィック系の課題はまだちょっと…。
その代わりメソッドの演習が(戻り値なし、引数ありまで)終わったので、
(前言った範囲に追加して)課題を作ってもらえませんか?
638デフォルトの名無しさん
2017/04/28(金) 07:30:26.79ID:/uuFMZz1 すげー
バカを相手にすると割りきって付き合ってやってた
片山霊長類研究所所長すらキレさせるチンパンジー34歳ちゃんw
バカを相手にすると割りきって付き合ってやってた
片山霊長類研究所所長すらキレさせるチンパンジー34歳ちゃんw
639デフォルトの名無しさん
2017/04/28(金) 08:05:44.46ID:ssoWe7Me グラフィック系の課題はまだちょっとって言うのは課題から何も学んで無いんじゃ
640デフォルトの名無しさん
2017/04/28(金) 08:57:28.08ID:1CH3bO8e どうでも良いが、なぜ自分で課題を考えないんだろう
作りたいものとか微塵もないんだろうか
作りたいものとか微塵もないんだろうか
641片山博文MZ ◆T6xkBnTXz7B0
2017/04/28(金) 09:20:50.10ID:0yWv+0K/ 高校を卒業したのなら、数学ですでに直線のグラフについて学習したはずだ。
線分は直線の一部だから、直線を描く範囲を限定すれば、線分が描ける。
復習しよう。例えば、直線y = 2x + 1のグラフはx軸と(0, 1)で交わり、傾きが2であった。
線分は直線の一部だから、直線を描く範囲を限定すれば、線分が描ける。
復習しよう。例えば、直線y = 2x + 1のグラフはx軸と(0, 1)で交わり、傾きが2であった。
642片山博文MZ ◆T6xkBnTXz7B0
2017/04/28(金) 09:25:36.20ID:0yWv+0K/ では、二点(x0, y0), (x1, y1)を通る線分のグラフは、数学的に考えるとどうなるか答えたまえ。ただし、x0≠x1と仮定する。
643デフォルトの名無しさん
2017/04/28(金) 11:09:57.91ID:xFdhdZjO >>633
答えが用意されてる問題も解けてないんだが
答えが用意されてる問題も解けてないんだが
644デフォルトの名無しさん
2017/04/28(金) 11:29:21.41ID:1CH3bO8e >>643
一度習ったことのある問題じゃないとダメなんだろ
一度習ったことのある問題じゃないとダメなんだろ
646片山博文MZ ◆T6xkBnTXz7B0
2017/04/28(金) 17:12:13.34ID:TxOrBLp1 >>645
そのとおり。正解だ。まあ、インターネットがあるから、「二点 交わる 直線」で検索すれば簡単に答えが見付かるがな。
もうちょっと整理された公式についてyについて整理すれば、
y = {(y1 - y0)/(x1 - x0)}(x - x0) + y0
となる。dx = x1 - x0かつdy = y1 - y0とおくと、
y = (dy/dx)(x - x0) + y0となる。これをxについて整理するとどんな式になる?
そのとおり。正解だ。まあ、インターネットがあるから、「二点 交わる 直線」で検索すれば簡単に答えが見付かるがな。
もうちょっと整理された公式についてyについて整理すれば、
y = {(y1 - y0)/(x1 - x0)}(x - x0) + y0
となる。dx = x1 - x0かつdy = y1 - y0とおくと、
y = (dy/dx)(x - x0) + y0となる。これをxについて整理するとどんな式になる?
650片山博文MZ ◆T6xkBnTXz7B0
2017/04/28(金) 17:30:37.34ID:TxOrBLp1 この線分において、xとyの範囲を不等式で表しなさい。ただし、端点は線分に含まれると仮定する(閉区間)。
651片山博文MZ ◆T6xkBnTXz7B0
2017/04/28(金) 17:35:25.82ID:TxOrBLp1 mainの中身を
VirtualScreen screen = new VirtualScreen(5, 3);
screen.line('#', 1, 1, 3, 1);
screen.print();
にして、実行してみよう。実行結果は、
01234
☆☆☆☆☆
☆★★☆☆
☆☆☆☆☆
のようになる(半角空白を「☆」、'#'を「★」で表している)。
しかしこれは(1,1)??(3,1)の長さ3の線分だから、
01234
☆☆☆☆☆
☆★★★☆
☆☆☆☆☆
のようにならないといけない。線分は、終点を含んでいる。よって、forループの終了条件がおかしい。
for (int x = x1; x < x0; ++x)
を
for (int x = x1; x <= x0; ++x)
に修正する。他のforループについても終了条件を同様に修正する。
VirtualScreen screen = new VirtualScreen(5, 3);
screen.line('#', 1, 1, 3, 1);
screen.print();
にして、実行してみよう。実行結果は、
01234
☆☆☆☆☆
☆★★☆☆
☆☆☆☆☆
のようになる(半角空白を「☆」、'#'を「★」で表している)。
しかしこれは(1,1)??(3,1)の長さ3の線分だから、
01234
☆☆☆☆☆
☆★★★☆
☆☆☆☆☆
のようにならないといけない。線分は、終点を含んでいる。よって、forループの終了条件がおかしい。
for (int x = x1; x < x0; ++x)
を
for (int x = x1; x <= x0; ++x)
に修正する。他のforループについても終了条件を同様に修正する。
652片山博文MZ ◆T6xkBnTXz7B0
2017/04/28(金) 17:38:03.30ID:TxOrBLp1 mainの中身を
VirtualScreen screen = new VirtualScreen(6, 3);
screen.line('#', 0, 0, 5, 2);
screen.print();
にして、実行してみよう。実行結果は、
★★★☆☆☆
☆☆☆★★☆
☆☆☆☆☆★
のようになるが、
★★☆☆☆☆
☆☆★★☆☆
☆☆☆☆★★
のようにすべきである。座標の計算に何かずれが発生している。なぜだろうか。実は割り算の誤差に問題がある。
VirtualScreen screen = new VirtualScreen(6, 3);
screen.line('#', 0, 0, 5, 2);
screen.print();
にして、実行してみよう。実行結果は、
★★★☆☆☆
☆☆☆★★☆
☆☆☆☆☆★
のようになるが、
★★☆☆☆☆
☆☆★★☆☆
☆☆☆☆★★
のようにすべきである。座標の計算に何かずれが発生している。なぜだろうか。実は割り算の誤差に問題がある。
653片山博文MZ ◆T6xkBnTXz7B0
2017/04/28(金) 17:40:21.61ID:TxOrBLp1 Javaにおいては整数同士の割り算の結果は、小数点以下が切り捨てられて整数になる。つまり、3 / 2 == 1。整数の割り算の結果は整数になる。
これ重要。テストに必ずでるからな。
切り捨てないようにするには、どちらかを浮動小数点数にしないといけない。例えば、3を(double)でキャストすると、(double)3 / 2 == 1.5となる。
割り算の誤差を少なくするために、VirtualScreenクラスに次のようなメソッドを用意する。
protected int rdiv(double a, double b) {
??????return round(a / b);
}
この関数に整数を渡せば、引数は自動的にdouble型になり、四捨五入された整数が返ってくる。
浮動小数点数へのキャストと四捨五入により、誤差を最小にすることができる。
この関数を使って、lineメソッドを書き直そう。
これ重要。テストに必ずでるからな。
切り捨てないようにするには、どちらかを浮動小数点数にしないといけない。例えば、3を(double)でキャストすると、(double)3 / 2 == 1.5となる。
割り算の誤差を少なくするために、VirtualScreenクラスに次のようなメソッドを用意する。
protected int rdiv(double a, double b) {
??????return round(a / b);
}
この関数に整数を渡せば、引数は自動的にdouble型になり、四捨五入された整数が返ってくる。
浮動小数点数へのキャストと四捨五入により、誤差を最小にすることができる。
この関数を使って、lineメソッドを書き直そう。
654片山博文MZ ◆T6xkBnTXz7B0
2017/04/28(金) 17:42:23.30ID:TxOrBLp1 int x = x1 + (y - y1) * dx / dy;
を
int x = x1 + rdiv((y - y1) * dx, dy);
に書き換える。他の割り算も同様。これで
★★☆☆☆☆
☆☆★★☆☆
☆☆☆☆★★
のようになる。
lineメソッドには、まだ不具合がある。実は、dx == 0とdy == 0の場合が漏れている。dx == 0とdy == 0の場合はどうすればいいか考えて、lineメソッドをさらに修正せよ。
を
int x = x1 + rdiv((y - y1) * dx, dy);
に書き換える。他の割り算も同様。これで
★★☆☆☆☆
☆☆★★☆☆
☆☆☆☆★★
のようになる。
lineメソッドには、まだ不具合がある。実は、dx == 0とdy == 0の場合が漏れている。dx == 0とdy == 0の場合はどうすればいいか考えて、lineメソッドをさらに修正せよ。
>>650
x1≧x0、y1≧y0の時、x0≦x≦x1、y0≦y≦y1です。
x1≧x0、y1≧y0の時、x0≦x≦x1、y0≦y≦y1です。
656片山博文MZ ◆T6xkBnTXz7B0
2017/04/28(金) 17:52:43.65ID:TxOrBLp1 >>655
その答えは不完全だが、おまけで正解にしておこう。dx, dyの符号に応じて場合分けしないといけない。課題を続けよ。
その答えは不完全だが、おまけで正解にしておこう。dx, dyの符号に応じて場合分けしないといけない。課題を続けよ。
657デフォルトの名無しさん
2017/04/28(金) 18:02:20.08ID:5N5Kiwxg ぬーぶ君というキャラクターは死んだの?なんでいつも発達障害という設定?
659片山博文MZ ◆T6xkBnTXz7B0
2017/04/28(金) 18:08:38.98ID:TxOrBLp1 >>658
intはdoubleに対する互換性がある型だから、自動的にキャストされる。やってみるといい。
intはdoubleに対する互換性がある型だから、自動的にキャストされる。やってみるといい。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- いじめ後遺症 15年前のトラウマに苦悩する当事者「夢の中に出てくる」「された側は一生ものの傷」 [♪♪♪★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 東京の自販機そばに金塊4200万円分、何者かに持ち去られる…札幌の50代が8000万円振り込んだ後に上京して被害 [どどん★]
- 永野ってなんで売れたの?
- お前「趣味……?ないですね。無趣味です」ぼく「ずっと2chしてるんだから2chが趣味でいいじゃん」前「?」
- 武論尊「ヤクザも政治家も一切取材したことない。空想だからあんなにかっこよく描ける」 [309323212]
- 隕石の落ちたところに俺が立ってたら
- 🏡パン🍞つー✌まる👌見え👊😅👊
- 【正論】検察「山上よ、どんな事情があろうと暴力が許されない」 [442080748]
