ねねっちと一緒にプログラムを勉強するスレ第2話 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/03/18(土) 13:03:05.05ID:KGlkA67c
ぬるぽって何?
2017/04/25(火) 18:05:19.79ID:TzUmZKvP
鏡見ろよ
2017/04/25(火) 18:42:37.81ID:SWAzzsrw
>>567
何でそんな頭悪い発言出来るの?
2017/04/25(火) 21:41:23.98ID:apTIu6Ro
もう諦めたら?
2017/04/25(火) 22:36:23.40ID:TBuA3Fu0
Eclipseインストールしてhello, world書いたよ。
2017/04/25(火) 22:53:08.99ID:TBuA3Fu0
Javaは久しぶりだな。何年前になるだろう? 昔、awtでなんか作ってたな。
2017/04/25(火) 22:55:33.57ID:TBuA3Fu0
スマホ開発ではawtは役に立たないから、Javaの基礎からやり直すことにするか。
java.lang.*を見ればいいのか?
2017/04/25(火) 22:59:57.52ID:TBuA3Fu0
エクリプス、フルインストールで1GB超えてる。まさに巨大なるIDEだ。
注意点としては、C:直下で展開しないと、ファイルパス名が長すぎて展開に失敗するようだ。
2017/04/26(水) 00:02:21.85ID:/ZfpN6QH
一部の攻撃的なレスをする馬鹿に構うとこっちまで悪く見られて損だな。

>>570
やだよ。

>>片山さん
ちょっと便利過ぎるんですよね。
予測変換機能とかあるから、文法を正確に覚えていなくても
書けてしまう場合もあるし。
2017/04/26(水) 00:14:04.67ID:C1JG3n6h
攻撃的なレスが増えているのは自分の振る舞いのせいなのに・・・
自分に非があるとは思わないんだな
2017/04/26(水) 00:23:15.56ID:1c8kYD+M
悪く見られてってギャグで言っているのか?
2017/04/26(水) 04:28:25.80ID:ZFKZUpWM
http://ser1zw.hatenablog.com/entry/20110130/1296393620
2017/04/26(水) 07:44:56.13ID:mKUyOhF8
インスタグラムのページでソースを表示して、
1枚目の投稿写真のurlを見つけることはできるのですが、
2枚投稿されている場合、2枚目のURLはソースに表示されていないんですかね?
探しても見つからないので。
2017/04/26(水) 10:13:55.64ID:VMQAT7m5
>>575
お前は悪くない、社会が悪い
2017/04/26(水) 16:56:16.82ID:/ZfpN6QH
>>576
それだけではないです。
実験動物などというふざけた書き込みは私に落ち度があるとは思えません。

>>580
両方とも悪い所と良い所を持っているのでは。
2017/04/26(水) 17:41:55.11ID:VMQAT7m5
お前に良いところなんてないだろ、いい加減にしろ
2017/04/26(水) 18:09:43.89ID:k4Ao8EcY
>>581
だって何言ってもリアクションがワンパターンなんだもん

だから実験動物と呼ばれる

しかしホント表層だけしか読み取れないんだなあ
2017/04/26(水) 18:21:36.26ID:VMQAT7m5
>>545,547-550の片山のレスに対して
>複数のコメントありがとうございます。
>努力します。

煽りに対しての反応は別にして片山に対してはちゃんとレスしたらどうなの?
2017/04/26(水) 18:50:37.59ID:lYhaqZk4
>>583
>>581
> だって何言ってもリアクションがワンパターンなんだもん
> だから実験動物と呼ばれる

ほんこれ。今日日、AIのほうが良い反応返してくれそうな気がする。
586デフォルトの名無しさん
垢版 |
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
俺の言葉の深層まで読み取って返してくれんだろうなあ、楽しみだなあ
2017/04/26(水) 21:26:23.77ID:lYhaqZk4
この度、>>586-587もようなレスをするに至ったことは、
主治医として、大変残念な事であり、
また、治療の効果がまだまだ現れていないことを証明しているため、
そろそろ最終的な決断を下す必要があるようです。
みなさんお聞きになったことがあるかもしれませんが、
必ずしも心の病は、特殊な病気ではなく、誰もがそうなる可能性があります。
しかし、だからといって、これ以上、Wh7Oh9Mr を放置することは、例えば何の関係もない人を傷つけたり、
逆にWh7Oh9Mr 自身の将来にとり、名から図示も良いことではありません。
そこで、私は、Wh7Oh9Mr の両親、臨床心理士などとも相談して、
Wh7Oh9Mr をしばらくの間、ネットの出来る環境から離して、
濃密な人間関係の中で治療をすることにしました。
Wh7Oh9Mr にとっては、納得がいかないことかもしれませんが、
私も、医師免許をかけて、Wh7Oh9Mr を徹底して直すことに致しました。
どうかみなさん!Wh7Oh9Mr が戻ってきましたら、このような人を悲しませる
スレではなく、みんなに感動を届ける以上の人間になっていると思いますので、
暖かく見守ってやってください。
591デフォルトの名無しさん
垢版 |
2017/04/26(水) 21:36:11.16ID:Wh7Oh9Mr
スパムみたいな文章だけど一生懸命さは伝わってきた
努力賞ということで
2017/04/26(水) 23:18:34.00ID:pa8V2Lji
もはや幼稚園児だな
2017/04/27(木) 00:38:39.73ID:krvEjk1K
プログラムの勉強しないでなにやってんだ
何のスレだここ
2017/04/27(木) 01:07:51.26ID:KUrn7ZtR
荒れてるけど知ーらね。

>>583
それにしたって動物呼ばわりはないでしょ。
もうちょっとマシな言い方にして下さいよ。

>>片山さん
話の腰を折るみたいで申し訳ないですが、
試したらイデワンでも複数のクラスを書けるみたいですよ。
https://ideone.com/V0Jd9h
ある程度は、インスタンス化が必要なプログラムもイデワンで
対処できそうです。
2017/04/27(木) 09:13:08.60ID:i5BzzK+e
最近はgitを使えない奴をカス呼ばわりする世の中なのに、
敢えて教えを拒否する奴がいるとは…
2017/04/27(木) 10:18:38.91ID:t6wdZAgr
治療は必要ない、必要なのは保健所
2017/04/27(木) 14:00:42.94ID:Nwh2sTTf
課題。仮想画面を使った図形描画だ。
https://ideone.com/QNetYb
このコードを自由に改造して、作品として完成させなさい。
2017/04/27(木) 14:11:49.48ID:Nwh2sTTf
課題。lineメソッドの不具合を修正し、「バカ」を「天才」に変えなさい。
2017/04/27(木) 14:55:29.37ID:Nwh2sTTf
この課題は、君の考える力を試している。
ヒント:方眼紙
600579
垢版 |
2017/04/27(木) 15:18:57.42ID:a+BwFeTM
質問を取り消します
2017/04/27(木) 17:20:36.40ID:KUrn7ZtR
>>584
はい。

>>595
拒否したわけではありません。ただイデワンの可能性をですね…。

>>596
だめだこの人。

>>片山さん
出来れば学んだ範囲で組める課題にして頂きたいです…。
仮想画面はまだ覚えてませんので。
2017/04/27(木) 17:38:20.29ID:Nwh2sTTf
>>601
仮想画面とは言っても、ただの文字列の配列だよ。文字を並べただけ。
2017/04/27(木) 17:50:55.68ID:ECqhjgGf
どこまで応用力ないんだ34歳
2017/04/27(木) 18:06:09.07ID:t6wdZAgr
正直な話、笑い事じゃないんだよなぁ
2017/04/27(木) 18:26:43.70ID:Nwh2sTTf
解説しよう。クラスVirtualScreenのコンストラクタは、メソッドresetを呼ぶ。resetメソッドは、文字列の配列を構築する。これが幅width、高さheightの仮想画面となる。
メソッドprintは構築されている仮想画面を出力する。
2017/04/27(木) 18:29:33.58ID:Nwh2sTTf
setPixelメソッドは、画面のある位置の文字を置き換える。単純に文字列処理で文字を置き換えている。
位置が画面をはみ出すなら文字は置き換えない。
2017/04/27(木) 18:32:36.42ID:Nwh2sTTf
ならば、fillBoxメソッドはどんな処理を行うメソッドだろうか?
2017/04/27(木) 19:02:55.64ID:Nwh2sTTf
貴様、会社のPCで勤務中に仕事をサボって2ちゃんねるに書き込んでいただろう?!
通信記録を見れば丸わかりなんだよ。罰として給料を3分の1減給する。二度と勤務中に2ちゃんねるをしないこと!!
2017/04/27(木) 19:10:13.51ID:Nwh2sTTf
(陰口)
。。。ったく最近の新人さんって使えねーのなんの。授業料を請求したいぐらいだ。ぼそぼそ。
2017/04/27(木) 19:22:48.03ID:KUrn7ZtR
>>602
はい。それは何となく分かります。

>>607
調べてみましたが、分かりませんでした。すいません。
2017/04/27(木) 19:30:00.14ID:t6wdZAgr
>>608
3分の1減給はやり過ぎじゃね?

減給するならまず就業規則に明記した上で、

>労働基準法第91条で,「1回の額が平均賃金の1日分の半額を超え,
>総額が賃金支払期における賃金の総額10分の1を超えてはならない」
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]という閉区間を塗り潰すことになる。
2017/04/27(木) 19:39:29.53ID:Nwh2sTTf
では、
for (int y = top; y <= bottom; ++y) {
...
}
というループが何をするか説明しなさい。
2017/04/27(木) 19:44:04.85ID:KUrn7ZtR
>>613
yが一番上から一番下まで行くまでの処理ですか?
2017/04/27(木) 19:47:21.26ID:Nwh2sTTf
>>614
そのとおり。では、Mainクラスのmainメソッドで実際にfillBoxを呼んで動作を確認しなさい。
2017/04/27(木) 19:50:43.31ID:Nwh2sTTf
このように、実際のコードが読めなくても、英単語の意味から動作を推定できることがある。つまりは、英語の勉強も必要だ。
2017/04/27(木) 19:56:01.81ID:Nwh2sTTf
>>611
給料ゼロ円の3分の1だから、越えてないよ。
2017/04/27(木) 20:04:14.12ID:KUrn7ZtR
>>片山さん
fillBoxメソッドの第一引数であるchはどんな役割を果たしているんですか?
2017/04/27(木) 20:06:36.31ID:Nwh2sTTf
>>618
chは文字だよ。'a'や'9'などを指定できる。
2017/04/27(木) 20:13:26.88ID:Nwh2sTTf
chはsetPixelメソッドに渡されるsetPixelはchに指定された文字をセットする。
Stringクラスのsubstringメソッドは部分文字列を返す。setPixelは、行の部分文字列とchを連結して、新しい行に更新する。
2017/04/27(木) 20:29:02.56ID:Nwh2sTTf
例えばstr.substring(3)は文字列strの四文字目以降の部分文字列を返す。str.substring(3, 2)はstrの四文字以降の2文字を返す。
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]に格納する。
2017/04/27(木) 20:36:26.35ID:Nwh2sTTf
大卒には難し過ぎたか。。。
2017/04/27(木) 20:44:13.73ID:KUrn7ZtR
>>619-621
ありがとうございます。

すいません、特に変化ありませんでした…。
https://ideone.com/CVbXHi
2017/04/27(木) 20:45:15.24ID:Nwh2sTTf
>>624
screen.print();の前に書かないと意味ないよ。
2017/04/27(木) 20:57:13.48ID:Nwh2sTTf
その上、画面をはみ出してるよ。
2017/04/27(木) 20:59:22.46ID:Nwh2sTTf
VirtualScreen screen = new VirtualScreen(40, 10);
って書いてあるんだから、画面は(0, 0)〜(39, 9)の範囲だよ。
2017/04/27(木) 21:20:18.38ID:Nwh2sTTf
適性なし。
2017/04/27(木) 21:27:22.31ID:i5BzzK+e
ワロタ
2017/04/27(木) 21:29:34.99ID:KUrn7ZtR
やはり反映されません。
どうしてですかねぇ。
https://ideone.com/wSid1J
2017/04/27(木) 21:32:15.08ID:Nwh2sTTf
>>630
ふざけてんのか? 何でleft>rightなんだよ。わざと間違えてるだろ。
2017/04/27(木) 21:33:31.27ID:i5BzzK+e
ワロタ
お茶碗を持つ方がleftで、橋を持つ方がrightなんやで
2017/04/28(金) 00:03:26.21ID:FtZLbekm
34歳は、答えの用意されている問題(学校のテストとか)を解くことは出来るが、
明確な答えがない、複数あってどれか選ばなくてはいけない系の問題が全然ダメなんじゃないの。
考える力が弱いというか、考えているふりをしてなにも考えていないというか。
想像力と思考力が致命的に足りない感じ。

前に同じような症状の新人を見たことあるけど、
SJIS対応文字列反転関数作らせたらとても楽しいことになった覚えがある。
片山先生、試しにお題を出してあげたらどうだい。
2017/04/28(金) 00:29:58.74ID:OeyLlymU
>>631
すいませんでした。やっと表示できました。
https://ideone.com/KzG7af
バカの否定です。
2017/04/28(金) 00:37:58.46ID:0yWv+0K/
今日はこの辺で終わるとするか。次は、lineメソッドのバグ取りをやる。自分の頭が良いと思ってるなら、
だれが認める業績で天才であることを証明してくれ。
2017/04/28(金) 00:38:57.51ID:OeyLlymU
>>片山さん
やはりグラフィック系の課題はまだちょっと…。
その代わりメソッドの演習が(戻り値なし、引数ありまで)終わったので、
(前言った範囲に追加して)課題を作ってもらえませんか?
2017/04/28(金) 00:43:33.16ID:OeyLlymU
>>636>>635の書き込みがなされる前に書いたものです。
lineメソッドの方を先で。
2017/04/28(金) 07:30:26.79ID:/uuFMZz1
すげー
バカを相手にすると割りきって付き合ってやってた
片山霊長類研究所所長すらキレさせるチンパンジー34歳ちゃんw
2017/04/28(金) 08:05:44.46ID:ssoWe7Me
グラフィック系の課題はまだちょっとって言うのは課題から何も学んで無いんじゃ
2017/04/28(金) 08:57:28.08ID:1CH3bO8e
どうでも良いが、なぜ自分で課題を考えないんだろう
作りたいものとか微塵もないんだろうか
2017/04/28(金) 09:20:50.10ID:0yWv+0K/
高校を卒業したのなら、数学ですでに直線のグラフについて学習したはずだ。
線分は直線の一部だから、直線を描く範囲を限定すれば、線分が描ける。
復習しよう。例えば、直線y = 2x + 1のグラフはx軸と(0, 1)で交わり、傾きが2であった。
2017/04/28(金) 09:25:36.20ID:0yWv+0K/
では、二点(x0, y0), (x1, y1)を通る線分のグラフは、数学的に考えるとどうなるか答えたまえ。ただし、x0≠x1と仮定する。
2017/04/28(金) 11:09:57.91ID:xFdhdZjO
>>633
答えが用意されてる問題も解けてないんだが
2017/04/28(金) 11:29:21.41ID:1CH3bO8e
>>643
一度習ったことのある問題じゃないとダメなんだろ
2017/04/28(金) 16:42:04.90ID:OeyLlymU
>>633
文字列反転関数ですか。後でアルゴリズムを考えてみるか。

>>638
この野郎。

>>640
今は本に載っている課題に取り組んでいるからです。

>>641
y軸と交わる、ですかね。

>>642
y={(y1-y0)/(x1-x0)}x+(y0x1-y1x0)/(x1-x0)です。
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について整理するとどんな式になる?
2017/04/28(金) 17:20:40.67ID:OeyLlymU
>>646
dy/dxが出てきてますが、微分しろということですか?
そうではなくて?
2017/04/28(金) 17:22:00.81ID:TxOrBLp1
>>647
これは微分とは直接関係ない。
2017/04/28(金) 17:25:25.11ID:OeyLlymU
まあともかく、
x=x0+(dx/dy)(y-y0)
になりました。
2017/04/28(金) 17:30:37.34ID:TxOrBLp1
この線分において、xとyの範囲を不等式で表しなさい。ただし、端点は線分に含まれると仮定する(閉区間)。
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ループについても終了条件を同様に修正する。
2017/04/28(金) 17:38:03.30ID:TxOrBLp1
mainの中身を
VirtualScreen screen = new VirtualScreen(6, 3);
screen.line('#', 0, 0, 5, 2);
screen.print();
にして、実行してみよう。実行結果は、
★★★☆☆☆
☆☆☆★★☆
☆☆☆☆☆★
のようになるが、
★★☆☆☆☆
☆☆★★☆☆
☆☆☆☆★★
のようにすべきである。座標の計算に何かずれが発生している。なぜだろうか。実は割り算の誤差に問題がある。
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メソッドを書き直そう。
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メソッドをさらに修正せよ。
2017/04/28(金) 17:46:35.67ID:OeyLlymU
>>650
x1≧x0、y1≧y0の時、x0≦x≦x1、y0≦y≦y1です。
2017/04/28(金) 17:52:43.65ID:TxOrBLp1
>>655
その答えは不完全だが、おまけで正解にしておこう。dx, dyの符号に応じて場合分けしないといけない。課題を続けよ。
2017/04/28(金) 18:02:20.08ID:5N5Kiwxg
ぬーぶ君というキャラクターは死んだの?なんでいつも発達障害という設定?
2017/04/28(金) 18:04:08.59ID:OeyLlymU
>>653
>この関数に整数を渡せば、
int型の変数を渡すとコンパイルエラーになりませんか?
2017/04/28(金) 18:08:38.98ID:TxOrBLp1
>>658
intはdoubleに対する互換性がある型だから、自動的にキャストされる。やってみるといい。
2017/04/28(金) 18:10:20.62ID:5N5Kiwxg
無視か
お前らタイミング良すぎだろ
2017/04/28(金) 18:12:44.53ID:TxOrBLp1
>>657
ぬーぶ君はインターネットキャラクターの歴史によって評価されるであろう。。。
2017/04/28(金) 18:19:45.23ID:5N5Kiwxg
不登校の中学生という設定は場合によっては都合がいいかも知れないけどちょっと無理があったね
2017/04/28(金) 18:33:03.44ID:OeyLlymU
途中ですが、

>>657
おそらくですが、もう書き込むのが嫌になって、
書き込むのを止めたのでは。
キャラクターとありますが、私と同一人物ではありません。

>>662
上記のように、設定ではありません。別個の人物です。
2017/04/28(金) 18:39:00.29ID:5N5Kiwxg
もう少し細やかな描写が必要かな

成り済ましにどんなメリットがあるのかわからないが
2017/04/28(金) 18:39:44.63ID:TxOrBLp1
暗黙の型変換について
http://www.atmarkit.co.jp/ait/spv/1009/09/news111_3.html
2017/04/28(金) 18:49:24.99ID:TxOrBLp1
ここはバトルフィールドだ。個人情報を求められても、拒否しないといけない。
2017/04/28(金) 18:55:47.48ID:OeyLlymU
>>片山さん
途中ですが、エラーになってしまいました。
https://ideone.com/wOHvpl
どうしてでしょうか?
■ このスレッドは過去ログ倉庫に格納されています