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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/03/18(土) 13:03:05.05ID:KGlkA67c
ぬるぽって何?
2017/04/01(土) 21:24:32.10ID:Q4azjyiD
>>119
Javaを使えば、アンドロイドのアプリが作れるよ。一山当ててみろよ。
2017/04/01(土) 21:27:32.30ID:Q4azjyiD
役に立つアプリとは何かを追求することになるね。お金を出しても欲しいアプリとは何か。考えてみたまえ。
2017/04/01(土) 23:30:08.31ID:/fRbcSnx
>>125
デフォルトでトリップつければいいだろ。
ぬーぶくんでも出来る事が出来ないの?
2017/04/01(土) 23:30:09.01ID:WZU9IM9M
近くだとトリップ付けない意味が分からん
嫌がらせにしか見えない
付けろよ 毎回よ
2017/04/02(日) 00:15:18.96ID:3RCsxlEH
ちょっと前に体験行ってみた

やっぱり無理そうだったからやめた


と言う流れが既に見えてるな
2017/04/02(日) 00:45:19.17ID:0YNwrlW6
>>126
違うよ。
何か課題出してよ、って言いたかった。嫌ならいいけど。

>>127
でもそれって普通のJava以外に専門の開発環境が必要って書いてあったんですが…。

>>129
言わないと伝わらないだろうけど、基本的にガラケーから書き込んでるんだよね。

>>130
善処する。

>>131
勝手に悪い結論出さないでくれる?
2017/04/02(日) 05:15:48.06ID:v4BdJDDa
>>132
だから課題は以前書いたじゃんけんプログラムの改良だって言ってるだろ。
会話が成り立たないどころか何言われてるのかすら理解してねーじゃん
2017/04/02(日) 06:37:26.36ID:1+7yf7b2
どんどん態度も悪くなって本性が出てきてるなw
2017/04/02(日) 07:43:08.71ID:Gs8AFczl
残念ながら、ガラケー(フィーチャーフォン)はもうオワコンで、未来がないことが確定している。そんなものにしがみつくのは、時代に逆らう行為に他ならない。
2017/04/02(日) 10:11:33.31ID:Hff31D6F
>>132
ガラケーでもデフォルトの設定くらい出来るだろ。
後、課題としてじゃんけんプログラムの改良とJSPの作成及び公開(Hello World出力)で宜しく。
2017/04/02(日) 10:33:24.72ID:sdVS2U1R
>>132
善処するじゃなくて必ずやれ
この程度ができないなら二度と書き込むな
2017/04/02(日) 18:13:22.58ID:0YNwrlW6
その前に、とりあえず、じっぷら板にスレ立ててしまった。
見なくていいけど。
2017/04/02(日) 18:18:55.43ID:gA1K9u3h
一日も早く仕事できるようにならなきゃならんのに何遊んでるんだ?

そんな余裕も猶予もお前さんにはないはずだが?本当にやる気あるのか?
2017/04/02(日) 18:23:58.76ID:sdVS2U1R
>>138
あのさぁ、ここプログラミングの勉強スレなんだけど
何度も何度も言わせんなや
クズが
2017/04/02(日) 18:34:39.51ID:7Ml4f7iz
見てきたがひどすぎるな…
以降、◆BrBq2CJg6HGdはスルーで

1 Ψ 2017/04/02(日) 15:08:24.17 ID:rP5l5K5Q
多分頭悪いってレスしてる輩より高学歴。

13 1 sage 2017/04/02(日) 15:25:12.36 ID:rP5l5K5Q
学歴は抜きにしても、少なくともお前よりは頭いいぞっていう…。
2017/04/02(日) 18:44:13.72ID:tgU2qROn
>>141
ちょっと待って、このスレのことじゃないよ。
プログラマー板って書いてあるでしょ。
あっちのスレ出禁で直接反論できないから代わりにじっぷらで表現したんだよ。
ここではその報告しただけ。
ここの方たちにそんな暴言吐くわけないじゃないですか。
2017/04/02(日) 18:54:35.01ID:W5HhdQvp
マ板とム板の住人ってかぶってんだよなぁ
それにクソスレを立てたことをなんでワザワザここで宣伝するかなぁ

お前、もういいよ
失せろ
2017/04/02(日) 19:03:06.35ID:tgU2qROn
>>143
そんなこと言わないで下さいよ。


とりあえず以前のじゃんけんプログラムを貼ります。
実行時エラーが発生していますが…。
https://ideone.com/ccxD7R
2017/04/02(日) 19:04:21.87ID:gA1K9u3h
いつまでも甘えてるなよクズ
2017/04/02(日) 19:13:33.66ID:sdVS2U1R
>>144
なんでエラーとらないまま出してくるんだ
前にも注意されてたよな

それに前と同じもの出してきてどうすんだよ
コードを書けと何度も何度も言われているのにまだ理解できないのか?
2017/04/02(日) 19:13:50.98ID:Gs8AFczl
>>144
行入力と文字列出力のコードをメソッドにしろ。
2017/04/02(日) 19:19:00.23ID:Gs8AFczl
String myName = new java.util.Scanner(System.in).nextLine();
何で毎回scannerをnewしてんだ? まともな書籍読めよ。
2017/04/02(日) 19:19:43.31ID:gA1K9u3h
もはや生きる屍だな
2017/04/02(日) 19:35:15.09ID:Gs8AFczl
お前、全然マニュアル読んでないだろ?
System.inを五回読み直せ。
2017/04/02(日) 22:01:54.55ID:OOqUnJiU
34歳無職がいかに無能で健常者とは出来が違うのかがわかるスレだな
2017/04/02(日) 22:17:18.42ID:Gs8AFczl
入力は一つだけの標準入力しかないのに、2つ以上のスキャナから読み込もうとしたら、失敗して当たり前だ。
そもそもこの場合はスキャナは必要ない。マニュアルのSystem.inを見てみればわかる。
2017/04/02(日) 22:28:50.44ID:Gs8AFczl
https://www.mlab.im.dendai.ac.jp/~yamada/java/stream/key.html
2017/04/02(日) 22:58:32.23ID:Gs8AFczl
http://www.cis.twcu.ac.jp/~asakawa/java_intro/io.html
2017/04/02(日) 23:11:13.31ID:Gs8AFczl
>>154は、非推奨。
2017/04/03(月) 00:07:22.39ID:QRQ9n9IP
>>149>>151
そこまで言うことないだろ。

>>148
スッキリJavaというネット書店年間売り上げ1位の本に書いてあった通りに入力しました。
あの本スキャナークラスの使い方書いてない…。
2017/04/03(月) 00:12:32.88ID:bd0HZsPG
Io関係は基本小難しいからしっかり勉強しないと
2017/04/03(月) 03:08:47.11ID:k0xRY1bb
おいおい、勉強する気無いのかよ
http://echo.2ch.net/test/read.cgi/tech/1478863511/971
2017/04/03(月) 04:06:51.84ID:xGsKqTNR
java.util.Scanner myScanner = new java.util.Scanner(System.in);
でいったん変数myScannerで保持しておき、String myName = myScanner.nextLine();で入力を取得するといいんじゃね。あと、ideoneは標準入力(standard input)が指定できるから、それを使え。
2017/04/03(月) 04:30:13.19ID:xGsKqTNR
直しといたよ。
https://ideone.com/lMV8X1
2017/04/03(月) 04:53:42.02ID:xGsKqTNR
ちょっと改良したよ。
https://ideone.com/2I98j6
2017/04/03(月) 05:18:33.43ID:xGsKqTNR
https://ideone.com/2r6hwE
2017/04/03(月) 05:28:56.71ID:xGsKqTNR
https://ideone.com/kEZvq7
2017/04/03(月) 06:34:10.87ID:xGsKqTNR
https://ideone.com/QGbkUc
2017/04/03(月) 07:09:29.51ID:fkeTvsFB
これで34歳はぬーぶくんよりはっきり劣ることが証明されたな。
2017/04/03(月) 07:16:22.06ID:xGsKqTNR
課題。
>>164を改造して、人間n人とコンピュータm人でジャンケンができるようにせよ。
ヒント:2つの配列を使う。
2017/04/03(月) 17:16:51.61ID:QRQ9n9IP
>>158
ありますよ。ググってます。

>>165
んな証明すな。

>>片山さん
プログラムの解読中です。
2017/04/03(月) 18:59:17.63ID:OjSCP+pk
>>167
いや、さっさと課題やれよ
2017/04/03(月) 20:24:30.29ID:uNrfjwY7
>>166
>>164のプログラム文がところどころ理解できないんですが…。
2017/04/03(月) 20:30:27.57ID:xGsKqTNR
>>169
所々ってどこ?
static { ... } で囲っている部分は最初に実行される。ジャンケンの勝敗は、大学数学の群論(剰余類)に関係していて、3で割った余り(剰余)に関係していることが知られている。
2017/04/03(月) 20:42:59.44ID:xGsKqTNR
「ジャンケン 剰余」で検索
2017/04/03(月) 21:02:22.39ID:gZTdU5yD
初心者スレで聞いたんじゃねえのか?
2017/04/03(月) 21:07:12.20ID:xGsKqTNR
trimはStringクラスのメソッドであり、文字列の両端の空白を切り捨てる。
2017/04/03(月) 21:25:18.75ID:xGsKqTNR
staticブロックの中でstaticな変数myScannerを初期化する。これでプログラム実行中は、
myScannerにインスタンスが格納された状態が保証される。複数のScannerによってSystem.inが所有されると問題が発生する。
スキャナの新規作成(new)は一回だけでいい。
2017/04/03(月) 21:31:48.71ID:xGsKqTNR
Scannerは入力をパイプラインのように流れ(stream)として処理する。
2017/04/03(月) 21:47:01.77ID:xGsKqTNR
入力の読み込みに必要なデータは、System.inが保持している。複数のスキャナからSystem.inを読み込もうとすると、System.inが混乱して、読み込み状態がおかしくなり、読み込みに失敗する。
2017/04/03(月) 21:58:42.81ID:xGsKqTNR
このストリーム処理というのは、複数箇所への出力を想定したものではない。複数への出力はパフォーマンスを低下させる。
2017/04/03(月) 22:12:53.13ID:xGsKqTNR
単純に言えば、スキャナとかストリームというのは、所有する入力ストリームのreadメソッドを使って一連のデータの流れを流れ作業で処理しているだけだ。
2017/04/03(月) 23:24:16.26ID:QRQ9n9IP
>>172
あっちでは主にイデオンの使い方を聞いてた。

>>片山さん
丁寧にありがとうございます。
アルゴリズム考え中です。
2017/04/04(火) 00:00:02.13ID:sDkjbU3y
https://ideone.com/FspoyA
以前作った、人間1人対コンピューター2人のプログラムなんですが、
こういう方向性で作っていくとうまくいきませんよね?
2017/04/04(火) 05:48:37.49ID:7cliCNtZ
>>180
じゃあコンピュータ側が3人に増えたらプログラムどうすんの? 100人にしろって言われたら?
っていう話

課題だから自分で考えてね
2017/04/04(火) 06:38:58.98ID:cXgzdAGm
34ハゲはもう向いてないんだから筋トレでもしとけ
2017/04/04(火) 11:47:06.61ID:eEU/vhzO
ヒント:
全員手を出してもらう。
配列int count[3];を用意する。
グーの個数count[0]を数える。
チョキの個数count[1]を数える。
パーの個数count[2]を数える。
int alpha = (count[0] > 0) + (count[1] > 0) + (count[2] > 0)とする。
alpha == 3 || alpha == 1ならあいこ。
alpha == 2なら、count[k] == 0となる0≦k<3を見付ける。そしてkとは異なる手i1,i2について、勝敗を判定する。
勝ちの手を出したグループを勝ちとし、負けの手を出したグループを負けとする。
勝ったグループだけが生き残る。
勝ったグループが一人になるまで繰り返す。
2017/04/04(火) 11:52:32.33ID:eEU/vhzO
一人ひとりのプレイヤーが生き残っているかどうかを記録しておかないといけないね。
2017/04/04(火) 16:54:06.52ID:K+/Sgfl7
>>183
34歳無職はjavaだから、そのコード案はどうかなぁ
2017/04/04(火) 17:10:22.75ID:eEU/vhzO
訂正。Javaって面倒だな。
(誤)int count[3];
(正)int[] count = new int[3];

(誤)int alpha = (count[0] > 0) + (count[1] > 0) + (count[2] > 0)
(正)
int alpha = 0;
if (count[0] > 0) alpha++;
if (count[1] > 0) alpha++;
if (count[2] > 0) alpha++;
2017/04/04(火) 17:33:08.67ID:o6M7V6x8
真面目か?
2017/04/05(水) 01:13:34.04ID:zd2XobMn
>>181
そうなんですよねぇ。
このやり方には限界があるんです。

>>182
エムの部分が少しキてるだけで大した禿げ方ではないぞ。

>>片山さん
すいません、出来ないかも…。

Scannerを使ってcpuの人数読み込み
→その変数を制御変数と組み合わせてfor文内で、人数分Randomクラスをnew
→for文を抜けたら上のようにして作成した変数は消失
でうまくいきません…。
2017/04/05(水) 01:25:18.78ID:KOeCSQ1C
ぬーぶは春休み
ニートは禿休み
2017/04/05(水) 01:46:52.11ID:+Y9nZqnB
>>188
だから、変数のインスタンスをクラスのインスタンスにキープさせるといい。
ただし、そのためにはstaticを使わない、Mainクラスのインスタンスを
生成する必要がある。main関数の中でMainクラスのインスタンスをnewで作成する。
2017/04/05(水) 01:49:50.90ID:+Y9nZqnB
インスタンスに変数を置けば、ループの外側に変数をキープできる。
2017/04/05(水) 01:58:44.72ID:+Y9nZqnB
こうゆう風にインスタンスに変数を持たせる。
https://ideone.com/GeQUPV
2017/04/05(水) 02:10:16.82ID:+Y9nZqnB
あるいはこのように。
https://ideone.com/xXu50t
194デフォルトの名無しさん
垢版 |
2017/04/05(水) 10:44:36.57ID:fUwjSFIc
>>片山博文MZ ◆T6xkBnTXz7B0
そんなコード書いて恥ずかしくないの?

(いやぁ、深くは聞かないけど……)
2017/04/05(水) 12:31:39.56ID:+Y9nZqnB
君は、まだ基本をバカにできるような実力じゃないはずだ。君の実力に合わせてるんだよ。
2017/04/05(水) 13:16:11.48ID:+Y9nZqnB
>>188
そりゃforループの中で変数宣言したからだろう。forの外側か、インスタンスで変数を宣言するとよい。
2017/04/05(水) 13:24:43.44ID:+Y9nZqnB
変数には有効範囲(スコープ)というものがあって、ブロック{ }の内側で宣言された変数は、ブロックの外側から使えない、外側に出ると変数が破棄される。
2017/04/05(水) 23:55:13.26ID:zd2XobMn
すいません、アルゴリズムが分からないです…。
ちょっと出来なそうです…。
2017/04/06(木) 05:33:19.34ID:6JovfZjm
>>198
何がわかんないのか、どこまでわかってる(つもり)なのか説明してくれないと、返しようがない。
2スレぐらい前で、n人ジャンケンは色々皆で考察してたろ?
2017/04/06(木) 12:35:03.45ID:N6xn3VBK
>>198
高学歴で頭いいんだろ?
人並みの頭がついてることくらい証明して見せてよ。

そこそこ高学歴なのにプログラマー板で頭悪いと言われる
http://carpenter.2ch.net/test/read.cgi/liveplus/1491113304/
2017/04/06(木) 13:11:00.66ID:0SmLVS9o
配列と繰り返しについては、理解してる?
2017/04/06(木) 13:16:44.51ID:833YyDXY
イテレーターですか?
2017/04/06(木) 14:05:03.82ID:0SmLVS9o
もうちょっと簡単な課題。
要素数10の整数配列を作成し、1から10までの整数を格納する。
次に、配列の各要素を1だけ増加させる。その後、各要素を順番に出力する。
2017/04/06(木) 16:18:27.77ID:zjRfXGZ4
>>200
入試にプログラミングはない…。

>>199
1つには>>188で挙げた問題がある。不特定多数とコンピュータの人数が定められていない以上、Scannerを用いて(人数入力用)for文でcpuHandをnewしないといけないが…。(プレーヤー側も同じ)
あとは勝者判定がよく分からない。グ・チ・パ、グ・チ、チ・パ、パ・グ、グのみ、チのみ、パのみの7通りだけど、誰がどの手ってのを考えるとものすごい数の組み合わせがありそう。

>>201
理解してるつもりです。ただJavaでは配列を使ったプログラムは組んだことがないです…。

>>202
イテレータ使うんですか?

>>203
ちょっと待って下さいね。
2017/04/06(木) 20:01:36.82ID:oEbJRC8j
プログラミングの知識ゼロの大学一年生なのですが
お金になるという面だけで考えた場合一番コスパの良い言語って何でしょうか?
2017/04/06(木) 20:22:16.07ID:0SmLVS9o
>>205
Javaだね。Javaの技術者は引っ張りダコだ。間違ってもUnmanagedなCやC++は選んじゃだめだ。
2017/04/06(木) 20:38:19.21ID:mvwWXB2K
>>203
出来ました。
https://ideone.com/tjg7de
2017/04/06(木) 20:44:02.59ID:0SmLVS9o
じゃあ、次の課題。
要素数20の整数配列を0〜2の整数乱数で埋める。
配列の中の0の個数、1の個数、2の個数を出力せよ。
2017/04/06(木) 21:09:15.21ID:0SmLVS9o
>>207
合格。ただ一つ言うとしたら、forと(の間に空白を入れた方がいいな。
2017/04/06(木) 21:47:54.01ID:wxzs61S8
>>205
結局全部できるやつが強い
とりあえずはJavaから始めればいい
2017/04/06(木) 22:58:36.89ID:oEbJRC8j
>>206
>>210
ありがとうございます
アンドロイドアプリ制作もJavaと聞いたのでやってみます
2017/04/06(木) 23:47:37.74ID:6mGUCvmD
大学一年ならfortranとscheme(lisp)やっとけ
これらの言語のよいところは設計思想が明確なところだ
そんじょそこらの妥協に妥協を重ねた言語とは重みが違う、美学があるのはこの二つだけ

それからJava,javascript or python or rubyを勉強しとけ
ここまでやったら、言語なんてなんでもいいと気づく
抽象構文木をどのように構築するのか、メモリの配置とCPUサイクル、そして可読性のどれを選ぶかでしかなくなる

そこまで真剣にやったら、パフォーマンスを出すにはCが必要だという現実に気づくだろう

君はまだ一年生だ、勉強する時間は山のようにある
高みに到達したいなら、言語の歴史の通りに進むことだ
間違ってもCからはいってはいけない、Cからはいるのは学習曲線がきつすぎる割には、初学者が学ぶべきことをあまり言語がサポートしてくれない

全てを配列で考えるようになったら、プログラマとしての将来はないし、生産性もあがらないのだから低賃金になるしかない
Javaもだいたい同じで、シンタックスが冗長なのがダメだが、javaは懐が広い標準語でもあるから学んで損はない
Javaからはいって、javaを使いこなせないと思うけどね
Javaを勉強したいならオブジェクト指向関連の思想はスルーしておくこと
オブジェクト指向のおかげで、javaのクラスライブラリが乱れまくってる、特にIO周りはひどすぎなことにも目をつぶらないといけない、まあCも腐ってるけど
2017/04/06(木) 23:52:33.43ID:zjRfXGZ4
>>209
すいません、せっかくのアドバイスですが、詰めて書いてもいいですか?
2017/04/07(金) 00:00:23.48ID:h5rZiyBe
>>213
コーディングスタイルは、組織の裁量と個人の自由になるが、
forやwhileは関数呼び出しではないことを示すためにカッコの前にスペースを置く慣習がある。
2017/04/07(金) 00:04:28.19ID:7g/og4rQ
Javaを勉強するコツはオブジェクト指向の思想にとらわれないこと

ただひたすらクラスやライブラリの使い方を理解し活用すること

僕の最強のクラス構成とか語り出したらプログラマとしての将来はない、残るのは設定だけで、何一つ実行可能なコードは作成されず、できてもチープでしょぼしょぼで何の役にも立たない産物だけだ、
その現実に使えるライブラリを何とか探そうとするが、クラス設計に埋没する奴は十中八九ライブラリの使い方がわからない
自分のやりたいことをコードにおとせないしょぼしょぼプログラマになるしかない

javaにはそういう現実逃避の側面があるから、そういった本は避けること
私がfortranとlispをオススメするのは、fortranは科学計算という目的のためにパフォーマンスが引き出されていること
lispには明確な目的はないがラムダ計算にもとづく抽象構文木の操作という数学的な設計思想があるから、くだらん感情が入る余地がないということだ
例えばセミコロンが気に入らなかったり、ドル記号が気に入らなかったり、そんなのはコードを書かない理由にはならないが、

そんな理由で現在でもプログラミング言語が生産されている
2017/04/07(金) 00:20:51.79ID:g05Ok9Aj
>>214
ちょっと保留にさせて下さい。

>>208
出来ました。
https://ideone.com/3OG5za
2017/04/07(金) 00:40:50.56ID:h5rZiyBe
>>216
やれば出来るじゃん。配列の中の個数を数えるという処理がn人ジャンケンでは重要。
前述したことだが、配列にジャンケンの手が人数分すべて格納されていると仮定すると、あいこになる条件は、何か。
2017/04/07(金) 01:10:13.25ID:g05Ok9Aj
先のプログラム文でいうと、
counter_0>=1 && counter_1>=1 && counter_2>=1
になることですか?
2017/04/07(金) 04:30:20.47ID:h5rZiyBe
それはすべての手が出された場合。それだけではない。全部が同じ手になる場合も考えよ。
2017/04/07(金) 09:07:57.32ID:3cGfJivt
ひたすら持論を展開するだけの長文は
読むに値しない事だけは良く分かる
2017/04/07(金) 13:14:58.84ID:OHa2uSEC
javaからはじめても
n人じゃんけんすらなかなか実装できそうにないというのはこのスレを見てもわかることだけど
2017/04/07(金) 13:16:17.15ID:OHa2uSEC
そんなプログラマにひとやまいくらの値段がつくと思ってるんだ?
そういうシステムエンジニアがそれだけ顧客の迷惑になるか考えたことはあるのか
2017/04/07(金) 14:21:29.45ID:h5rZiyBe
あいこになるのは、
int x = 0;
if (counter_0 > 0) x++;
if (counter_1 > 0) x++;
if (counter_2 > 0) x++;
としたときにx==1 || x==3となる場合だね。x==2の場合は、勝敗が存在する。
2017/04/07(金) 14:28:25.20ID:h5rZiyBe
課題。
コンピュータのみでn人ジャンケン。出来るところまで作れ。
2017/04/07(金) 14:49:54.23ID:h5rZiyBe
ヒント:
CPUの名前はCPU#0、CPU#1、CPU#2、…とする。String[] cpuNamesに格納せよ。
生き残りを表す配列 boolean[] survivalを用意せよ。
生き残りが1以下であれば、生き残りが優勝。
2017/04/07(金) 16:56:01.71ID:g05Ok9Aj
>>219 >>223
あいこになる条件は、
(counter_1==0 && counter_2==0) || (counter_0==0 && counter_2==0) ||
(counter_0==0 && counter_1==0) || (counter_0>=1 && counter_1>=1 && counter_2>=1)
と表記してもいいですか?
何か問題ありますか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況