ニートです1からプログラミングを教えてくれる [無断転載禁止]©2ch.net

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001たかし2015/12/25(金) 18:43:55.48
先生を募集します

先生!!
0002仕様書無しさん2015/12/25(金) 19:30:40.21
なんですか私を呼びましたか?
0003仕様書無しさん2015/12/25(金) 19:34:07.23
ハロワの職業訓練でも逝け
0004仕様書無しさん2015/12/25(金) 19:49:26.03
>>2
先生!まず何をすれば良いのですか??

>>3
ネットで職業訓練の事調べたらあんなとこ行くより独学で勉強した方が身につくとか書かれてました!
と、いうかニートなので訓練校に通うお金を捻出できません!職歴なしなので手当も貰えません!!遺影!!!
0005たかし2015/12/25(金) 19:59:32.62
社会的に終わってるのでたまごっち感覚で育てて下さい(*^_^*)
0006片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 20:05:09.62
1.ファイル拡張子について調べよ。
2.拡張子を表示する設定にしろ。
3.テキストエディタをインストールせよ。
4.バイナリエディタをインストールせよ。
5.エディタで適当にファイルを作ったり編集してみよ。
0007仕様書無しさん2015/12/25(金) 20:10:42.93
>>4
職業訓練は職歴なくても問題ないよ。
ちゃんと続けることできますかって
最初に聞かれるくらい。
月11万くらいもらえる。
職業訓練の講師ってプロのプログラマに教えてるような人だから
独学よりもよほど良いよ。
0008takasi2015/12/25(金) 20:17:11.37
先生!できました!
1、拡張子とはファイルの種類を表す名前です!
2、フォルダの設定からできました!
3、4、備え付けのメモ帳とBzEditorをインストールしました!
5、ファイルを作成、編集しました!
ttps://i.gyazo.com/01f6f2e0fec5f9b1013e261d5b1368a8.gif
0009takasi2015/12/25(金) 20:22:39.05
>>7
職業訓練自体は職歴無しでも受けることはできるみたいですが(審査が厳しい?)
手当は貰えないような事を聞きました(グーグルで調べました)
手当を貰える対象は失業者、更にその中でも条件があるようですが、、、
僕の認識違いでしたかね?もう一度よく調べてみます。
ありがとうございます先生!!
0010片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 20:36:59.28
6.次のような内容のテキストファイルを作成し、「hello.txt」という名前で保存せよ。
「set VAR=hello, world
echo %VAR%
pause」
ただし、行と行の間には「改行文字」(Enterキー)を入力せよ。
7.「hello.txt」の拡張子を「.bat」にしてダブルクリックせよ。
0011片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 20:45:29.82
8.全角文字と半角文字の違いについて調べよ。
0012仕様書無しさん2015/12/25(金) 20:48:54.19
この先生はだめです。まずはVisual Studio Communityをインストールしなさい
0013takasi2015/12/25(金) 20:49:20.04
先生できました!BATファイルを実行するとコマンドプロンプト?が立ち上がりました!なんのために使うのかはわかりません
6ー7。ttps://i.gyazo.com/f26f498866d66c94d64498af93fba288.png
8,全角文字は2バイト文字、半角文字は1バイト文字です!
0014片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 20:58:49.21
「set (変数名)=(値)」は、変数に値を代入するコマンドです。
「echo (文字列)」は画面に文字列を表示するコマンドです。
「pause」は何かキーが押されるまで待つコマンドです。
コマンドは普通、上から順番に実行されます。
9.「echo 私は天才プログラマです」という行を「hello.bat」の先頭に追加して保存し、ダブルクリックしなさい。
0015takasi2015/12/25(金) 21:10:05.59
>>12
いろんな先生が居て楽しいです!ビジュアルスタジオインストール中ですすごい容量でかいです!

>>14
よくわかりました!できました!
ttps://i.gyazo.com/e787b1180adb505bb01063724ae2ed93.png
0016片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 21:11:26.74
>>12
環境が古いので最新のIDE入れたら時間切れになっちゃう。
0017takasi2015/12/25(金) 21:26:12.07
ビジュアルスタジオインストール完了したので再起動してきます
0018仕様書無しさん2015/12/25(金) 21:31:31.29
ok
0019takasi2015/12/25(金) 21:33:12.72
先生!再起動終わりました!
0020takasi2015/12/25(金) 21:36:36.24
先生、質問です!
変数をechoで出力する際に変数を%で囲みましたが、文字列では%で囲まなくても>>15で出力されていました。
これは変数をechoで出力する際は%が必要、文字列では不要。というルールで良いのでしょうか??
0021片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 21:41:13.38
>>20
変数名を% %で囲ったら、そこは変数の値に「展開」される。試しに

set VAR=test
echo VAR 123
echo %VAR% 123

を実行してみればわかる。
0022takasi2015/12/25(金) 21:54:37.28
%で囲むと変数の中身が飛び出すんですね!分かりましたありがとうございます先生!
0023片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 22:05:58.70
10.条件分岐
「set A=123
if "%A%"=="123" echo OK
if "%A%"=="124" echo NG
pause」

11.無限ループ
「:LOOP
set VAR=%VAR%!
echo %VAR%
goto LOOP」
0024takasi2015/12/25(金) 22:30:47.29
できました!
10.条件分岐
https://i.gyazo.com/c5c05fcea3e96dc096079c7b05ce56fa.png
変数Aに123という数値をセットし、もし変数Aから123が飛び出せば、OKと表示。
もし変数Aから124が飛び出せば、NGと表示する処理ですね!

11.無限ループ
https://i.gyazo.com/6962a1d81cabe20078262c913792a0a5.gif
変数VARに!をセットし、LOOPで無限に!を表示しつづける処理ですね!
set VAR=%VAR%! でなぜ一度の処理で!がたくさん表示されたのかがわかりません
結果を見ると決まった数だけ!が表示されているようですが、setでは!の数は指定していないです
僕の予想だと!が1つ表示される処理がループされると思ったのですが、、、
たぶん%VAR%!これがキーポイントなんですね!
ちなみに実行したらPCから変な音が出ました!!
0025takasi2015/12/25(金) 22:35:29.18
あ!set VAR=%VAR%! は1回の処理ごとに!が1つずつ増えていってるでしょうか
でもはじめから大量に!は表示されていたし、見た感じ!の数は一定だった気がしたようなしないような
実行して確認しようにもPCから変な音出るので怖いです
0026片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 22:39:45.94
なにも実行してないときはVARの中身は空っぽ。最初に「set VAR=%VAR%!」を実行すると
VARは!になる。二回目はVARが%VAR%!、つまり!!になる。三回目は%VAR%!、つまり!!!になる。
代入の左辺の展開では代入する前の変数の値が使われる。
0027片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 22:41:01.97
×左辺
D右辺
0028takasi2015/12/25(金) 22:44:21.96
先生!後出しですが僕そんなようなこと言おうとしてたんです!
でも毎回setで変数の中身がリセットされるんじゃないかと思って、、、
知識ないのに勝手な想像しないほうがいいですね!
0029片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 22:47:29.98
gotoは指定したラベルに移動するコマンドだ。コマンドプロンプトで
ラベルを置く場合は、行の先頭にコロン(:)を付ける。
0030takasi2015/12/25(金) 22:53:56.15
gotoがポイントでLOOPはただの変数なんですね、ためしにNEETでやったらめっちゃ驚かれました
もしかしてこのコマンドプロンプトでは変数は半角大文字英数で表記するのでしょうか
0031片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 22:58:55.50
12.適当なフォルダーをShiftキーを押しながら右クリックして、「ここでコマンドプロンプトを開く」を選びなさい。
13.開かれたコマンドプロンプトで「dir」「cd ..」「echo TEST」「echo /?」「cd /?」「copy /?」などのコマンドを実行しなさい。
0032片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 23:03:04.07
>>30
プロンプトでは大文字小文字の区別はない。
ラベル名と変数名は違う。
0033片山博文MZ ◆T6xkBnTXz7B0 2015/12/25(金) 23:05:54.21
お休み。
0034takasi2015/12/25(金) 23:10:35.49
できました!dirはフォルダ内の情報を表示、cd..はひとつ前のフォルダに移動、echo TESTはコマンドプロンプトに"TEST"と表示、xx /?はxxコマンドのヘルプを表示です!
そうなんですか!ラベル名と変数名の違いがわかりませんが宿題にしときます。おやすみなさいセンセー!
0035takasi2015/12/25(金) 23:13:59.08
ビジュアルスタジオをインストールしなさいという先生が居ましたがこれで何をすればよいのでしょうか、、、
助けて他の先生!何か課題だされないとやる気もでないし何するかもわからないよ〜(TOT)
とりあえず時間も時間だし僕は帰宅します さようなら
0036takesi2015/12/25(金) 23:16:01.98
尊敬する人物はクロエ・オブライエンです
0037仕様書無しさん2015/12/25(金) 23:28:31.79
プログラミング入門サイトでも作ってみるわ。ちょっと待っててな
0038takasi2015/12/26(土) 17:46:15.48
おはようございます

入門サイトうれしゅうございます
今日は何しましょう
0039片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 17:54:20.47
君のOSの種類と、Visual Studioのバージョンを教えて。
0040takasi2015/12/26(土) 18:04:11.80
先生おはようございあmス
OS:Win7 Pro
VS:Microsoft Visual Studio Community 2015 14.0.24720.00 Update 1
昨日DLしたての最新版でございます
0041片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 18:09:21.96
ハードディスクとSSDのどちらを使ってるか?
C++とC#のどちらをインストールした?
0042たかし2015/12/26(土) 18:13:10.37
アプリケーション用にSSD,データ用にHDD
VSはSSDにインストールしました
それはVSと別でインストールするのでしょうか?VSをインストールする過程でインストールされるのであればすべて推奨設定でインストールしました!
0043片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 18:19:30.59
SSDはハードディスクよりずっと速いが、信頼性が低く、壊れるときは一気に壊れる。必ず別のドライブにバックアップしておけ。
君の環境は恵まれている。デフォルトの設定でインストールしたならVisual C#が入っているはずだ。
スタートメニューからそれを探しだして起動しろ。
0044片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 18:24:14.82
コマンドプロンプトでできることは限られている。
C#という言語を使うともっと自由にプログラミングできる。
C#の主な用途はゲーム、業務、ツール作りである。
C#でどんなものを作りたい?
0045takasi2015/12/26(土) 18:24:38.52
はいい!
Visual C#というアプリが無かったのですが、VSを起動すれば良いのでしょうか?
そうであればVSを起動しました!
0046takasi2015/12/26(土) 18:30:12.33
なるほど。作りたいものはありません!最初の方に書いたとおりたまごっち感覚で育てていただけるとありがたいです!
でもしいて挙げるなら、時間を指定してPCをシャットダウンするソフトと最前面表示固定するシンプルなメモ帳が作りたいです!愛用のエディタはWIN付属のメモ帳です、これ以外は合いませんでした!
0047takasi2015/12/26(土) 18:31:34.38
発言が矛盾しておりました
時間を指定してPCをシャットダウンするソフトと最前面表示固定するシンプルなメモ帳が作りたいです!
0048takasi2015/12/26(土) 18:33:21.99
ネットブラウザで2chは不便なので2ch専用ブラウザをインストールします
少々おまちくだされ
0049片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 18:35:27.72
そうだ、VSに統合されてた。VSは日本語になってるか?
「ファイル」メニューから「新規作成」→「プロジェクト」を選べ。
Visual C#とVisual C++の項目はあるか?
0050takasi2015/12/26(土) 18:38:35.76
VSは日本語です
どちらもあります!
0051takasi2015/12/26(土) 18:47:54.32
C#を起動するんでしたね。しかし色んなテンプレートがあって混乱しますhttps://i.gyazo.com/18528f8594fb2c4dbd1856832b830c7b.png
C#を選択するとAndroidやiOSの項目が出てくるのですがC#でこれらのアプリも作れるんですかねえ
0052片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 18:48:53.61
C#のコンソールアプリを作ってみろ。名前はMyFirstConsoleAppで。
0053takasi2015/12/26(土) 18:51:22.17
できました
ttps://i.gyazo.com/f6fdcf06327ec2080419b2225df4281a.png
0054片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 18:55:09.02
Mainの内部に
「Console.WriteLine("こんにちは世界");
Console.WriteLine("Enterを押してね");
Console.ReadLine();」
と入力して「ビルド」しろ。
成功したら「デバッグを開始」せよ。
0055takasi2015/12/26(土) 19:02:33.39
ttps://i.gyazo.com/bdcd67f152a5aad641feb662f6e6ca36.png
できました!これで大丈夫ですかね?
なんか”とか関数?とか勝手に入力してくれるんですがこれでプログラミング上達するんですかね
0056片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 19:06:59.52
Mainの中身を
「String str = "変数の中身";
Console.WriteLine("「" + str + "」");
Console.WriteLine("Enterを押してね");
Console.ReadLine();」 にして「デバッグを開始」せよ。
0057takasi2015/12/26(土) 19:12:25.41
ttps://i.gyazo.com/24f2f50ac2e273253e6fcc89a4f80518.png
できました!
0058片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 19:14:42.17
>>55
インテリセンスと言う入力支援機能だよ。
文字を少し入力してCtrl+Tabで補完ができる。
0059片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 19:18:39.53
Stringとか" "で囲まれたものは文字列だ。
+という演算子で文字列どうしを連結できる。
文字列をConsole.WriteLineという関数に渡すと
その文字列を画面に出力する。
0060片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 19:23:18.67
「Console.Write("文字列を入力してね: ");
String str = Console.ReadLine();
Console.WriteLine("【"+str+"】");
Console.WriteLine("Enterを押してね");
Console.ReadLine();」にして開始しろ。
0061takasi2015/12/26(土) 19:24:26.08
なるほど!ReadLineは変数を指定せずにWriteLineで書き込んだ文字列をすべて表示してくれるんですね!
0062片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 19:27:15.50
次はforループだ。
「for (int i = 0; i < 10; ++i) {
Console.WriteLine("【"+(i + 1).ToString()+"】");
}
Console.WriteLine("Enterを押してね");
Console.ReadLine();」にして開始しろ。
0063片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 19:32:37.27
intとか0とか10というのは整数を意味してる。
「for (int i = 0; i < 10; ++i)」というのは、おおざっぱにいうと
「int i;
for (i = 0; i < 10; i = i + 1)」と同じだ。
i.ToString()はiを文字列にした結果を返す。
0064takasi2015/12/26(土) 19:33:39.95
できました!
>>60 ttps://i.gyazo.com/3ad06236b595803a180acb8b9efab974.png
>>62 ttps://i.gyazo.com/aa8ae7a3dd71f66f205bb3f92fc5cc91.png
0065takasi2015/12/26(土) 19:37:39.27
変数に文字を入れるときはString、数値を入れるときはintを付けるんですね!
0066片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 19:38:20.70
整数とか文字列といったデータの種類のことを「型」という。
intとかStringというのは型名だ。
C#で変数を使うには、型名と変数名を指定しないといけない。
関数に渡すパラメーター(引数;ひきすう)には指定できる型が決まっている。
型の不一致はエラーになる。
0067片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 19:42:46.27
C#で利用できるすべての型について調べなさい。
0068片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 20:01:29.72
0069片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 20:07:14.93
0070片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 20:10:29.91
制御フローについて
http://ufcpp.net/study/csharp/st_control.html

基本的なことは、このサイトに全部書いてあるな。
0071片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 20:29:10.28
課題12.BMIを計算するプログラムを作れ。
ヒント: Console.ReadLineで文字列を読み込み、文字列変数に代入。
文字列をSystem.Single.Parseでsingle型に変換。
BMIを計算する公式を使う。
計算結果を文字列にしてConsole.WriteLineで出力。
0072takasi2015/12/26(土) 20:37:01.10
まだ読んでるので少し時間がかかります
申し訳ありません!!!!!
0073片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 20:41:29.86
時間制限はない。かまずに飲み込むよりも、むしろ噛み砕く時間が重要だ。気長にやりたまえ。
0074片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 21:18:00.17
行き詰まったら何なりと質問してくれ。
あと、プロジェクトは1つだけでなく何個も作ることができるぞ。
目的に応じてプロジェクトを分けておくと再利用しやすい。
プロジェクトの名前の付け方は十年後のことも考えて命名したまえ。
0075takasi2015/12/26(土) 21:19:02.85
ttps://i.gyazo.com/db16280fa4efcb134b3cdaeb4e4b7bc8.png
できました!

数値を入れる型についてなのですが、int使うならlong使えばいいじゃん!byte?いらないよ!と思ったのですが
これは型に入れる数に関わらず型自体にサイズ?があって、たくさんコードを書くプログラムを作るときに動作が重くなるから使う型を分けているのでしょうか?
例えば、
byte a = 1;

int a = 1;
は入ってる数は同じですが、型のサイズが違うので数値の範囲が決まっているのならbyteの方が節約できるということですか?
文章へったくそなので僕のイメージを伝えます
おちょこ=Byte
ジョッキ=Int
おちょことジョッキを用意して同じ分量水を入れて人間の手で運びます
おちょこは小さいのでたくさん運べる!(プログラムが軽快)
ジョッキは大きいので少しずつしか運べない!(プログラムが重い)
0076takasi2015/12/26(土) 21:24:02.62
詰まった部分書きます
System.Single.Parse(taiju)
System.Single.Parse(shincho)
Console.WriteLine( taiju / (shincho*2) );
としようとしたらできませんでした

あとReadLineを最後の行に入れないとプログラムが待機状態にならないで終了してしまうんですね
0077片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 21:37:38.79
型によってデータサイズや処理速度が異なる。
サイズが大きいとメモリーを圧迫したり、遅くなったりする。またintより小さくても遅くなる。
Parseの結果は値として返される。それをsingle型の変数に代入せよ。
0078takasi2015/12/26(土) 21:39:46.51
>>75の続きです。
なら小さいプログラム作るときはlongでもいいね。とはならないのは、大きなプログラム作るときになったらサイズ節約しなきゃならんしやりかた統一しようぜ!ってことですか?
それとよく例文とかの小さい整数を入れる際にint型を使うのは、値は小さいけどbyte以上の値扱うかもしれないしそこまで大きい値扱わないからintでいっかーみたいなノリでしょうか?
すべて僕の見当違いでしたら忘れて下さい!
0079takasi2015/12/26(土) 21:44:33.83
分かりましたありがとうございます

こうすればよかったんですね
ttps://i.gyazo.com/546dc1eeeebc84d69b0ff8740bc65c7e.png
0080片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 21:46:17.44
電卓を使って計算結果が正しいかどうか確認しなさい。
0081takasi2015/12/26(土) 21:46:42.44
>>76と言ってることが違かった!
Single taiju2 = System.Single.Parse(taiju)
Single sincho2 = System.Single.Parse(sincho)
Console.WriteLine( taiju2 / (shincho2*2) );
0082片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 21:54:14.64
よし、これで君も素人C#プログラマだ。
課題13.じゃんけんゲームを作りなさい。
ヒント:利用者の手を整数で入力(1:グー、2:チョキ、3:パー)。コンピューターの手を乱数で生成。ifで条件分岐(3×3通り)。勝ち負けを表示。
0083takasi2015/12/26(土) 21:55:38.73
>>80
計算式が違ってました!グーグルで調べたのに!!
正しくはこちらです
ttps://i.gyazo.com/81228b3c5437c27c277ef843e918f49d.png
かなり無理やりやった感あります
0084片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 22:11:12.58
お休み。
0085takasi2015/12/26(土) 22:35:31.87
んほおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
0086takasi2015/12/26(土) 22:36:44.77
おやすみなせい
0087仕様書無しさん2015/12/26(土) 22:43:10.61
http://dorakuehoshi.hatenablog.com/entry/2015/12/26/184047
ゲーム攻略ブログで儲ける方法。
0088takasi2015/12/26(土) 22:52:42.77
ちょっと疲れたので休憩後再開

URLは見てないですが、ブログで儲ける方法ってすんごーい数のブログ作りまくればちりつもで儲けられるんじゃないですか
0089片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 23:41:30.86
新しく別のプロジェクトを作る場合は、ファイルメニューから
「ソリューションを閉じる」を選んでから、新規作成→プロジェクトを選ぶ。
ソリューションとは、1個以上のプロジェクトをまとめたものだと考えるといい。
0090片山博文MZ ◆T6xkBnTXz7B0 2015/12/26(土) 23:51:11.98
知的労働者は頭脳を酷使する。考えることや覚えることは案外エネルギーを消費する。
ハチミツ、チョコレート、コーヒーを適量摂取することをお薦めする。また、タンパク質やカルシウムも大切だ。
子どもの頃を思い出して規則正しい生活を心掛けよ。
睡眠時間と睡眠の質は頭の働きにかかわる。
0091片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 00:12:28.45
変数名に型情報を含めれば、変数の命名が楽になり、変数名を見るだけで型がわかる。
(int型なら変数名の頭にiを付けるなど)
このような規則をハンガリアン記法という。
0092片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 00:21:07.31
//乱数を生成する準備。
Random cRandom = new System.Random();
//1〜3の乱数を生成する。
int iResult1 = cRandom.Next(3) + 1;
0093片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 00:30:07.31
if (iPlayerTe == 1) {
if (iComputerTe == 1) {
//あいこ
...
}
if (iComputerTe == 2) {
//あなたの勝ち
...
}
if (iComputerTe == 3) {
//あなたの負け
...
}
}
0094片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 01:20:00.02
BMI計算のプロジェクトをConsoleBmiKeisanという名前で保存してくれ。
じゃんけんゲームのプロジェクト名はConsoleJankenGameでいいだろう。
簡単なテスト用にConsoleTestというプロジェクトも作っておけ。
0095片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 01:55:27.63
拡張子が.slnのファイルがソリューションで、拡張子が.csのファイルがC#のソースファイルだ。
中身はテキストファイルだから、どちらもテキストエディタで開けるはずだ。
保存されたソリューション(プロジェクト)をVSで開きたいときは.slnファイルをダブルクリックする。
0096片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 03:18:58.62
変数を使うときは型名を指定しないとダメと言ったが、あれはウソだ。
型が明らかなときは型名の代わりにvarと書くことができる。
var eSincho = System.Single.Parse(str);
0097takasi2015/12/27(日) 06:07:10.58
すみませんサボってました!
なんか長ったらしくもっと簡単にできそうなのでまた書き直します・・・
https://i.gyazo.com/8a48cd85b871a38532a1cb453f9d6d71.png
https://i.gyazo.com/aa82bd6ae0022fad2bd2bda153f6a543.png
https://i.gyazo.com/0807c570af4dd328f430f5c9ecb7514e.png
今まで作ったプログラムは消して上書きしてしまいました
ジャンケン2で新しくプロジェクト作って命名します!
あまりレス読めてませんが起きたら読みます!
0098takasi2015/12/27(日) 06:11:44.29
プロジェクト名が変わらない・・・明日考えよう
0099takasi2015/12/27(日) 06:15:35.08
ああああああああああああああああああああああああ
前回作ったプログラムを見ながら新たに書き直したいのにウィンドウ増えない・・・明日考えよう
0100takasi2015/12/27(日) 06:24:57.71
>>97
あ、これループ前に変数に乱数を代入してるので相手がどの手をだすか2回め以降わかっちゃいますね
0101takasi2015/12/27(日) 06:27:55.59
あ〜〜〜〜〜〜寝る!!
0102takasi2015/12/27(日) 20:28:06.17
おはようございます
続きをやります
0103takasi2015/12/27(日) 20:42:59.45
なるほど頭に型の名前付ければ分かりやすいですね
cRamdomのcってなんでしょう rRamdomとはならないのでしょうか

じゃんけんゲームで詰まったところはあいこになった際の繰り返しです
ifを使うことを指定されていたので悩みましたがifじゃ無理なきがする・・・と思いグーグルで検索してWhileを使ってみました
0104片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 20:43:36.36
他のソリューションにある.csファイルもVSで開けるはずだ。Mainの内部をコピペしろ。
0105takasi2015/12/27(日) 20:48:49.73
先生おはようございます
最初に作ったプロジェクト「MyFirstConsoleApp」ですべてのプログラムを書いていたのですが、色々いじってslnファイルの名前をConsoleJankenにしたのですが、フォルダ名はMyFirst~のママです。
これは直接フォルダ名を手打ちで変更してもいいものでしょうか?他のファイルに影響出ませんか?
0106takasi2015/12/27(日) 20:51:57.20
あと>>97で短く書き直すと言ったのですが、正直言います。面倒くさい!なので
>>100で言っていた部分を直しcpuHand = rnd.Next(1, 4); をwhileの中に移動しました
0107片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 21:01:45.50
>>105
.slnや.csprojの中にもソリューション名やプロジェクト名の情報が入ってるから、
ファイル名を変えただけだと、不具合になるかもしれない。
面倒でもプロジェクトを一から作ることから始めるのがいいと思う。
汚い方法ならフォルダーまるごとコピーってのもあるけどプロジェクト名がかぶることになる。
0108片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 21:09:14.52
ソリューションのフォルダーの中に「bin」というフォルダがある。
その中に「Debug」フォルダがある。
中を見ると拡張子が「.exe」のファイルがあるはずだ。
実行可能ファイル、通称「エグゼファイル」。
このファイルは、コマンドプロンプトからコマンドと同じように実行できる。
0109片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 21:17:50.74
もちろん、プログラムが使用するバージョンの.NET Frameworkがインストールされていないと、
プログラムが開始しないでエラーになる。ユーザーにframeworkをインストールするように説明しないといけない。
0110takasi2015/12/27(日) 21:17:50.98
面倒なので新しく作りプログラム内容をコピペしました
他のファイル、フォルダはすべて削除しました
exeファイルでコマンドプロンプトからプログラムを実行デキルことを確認しました!
0111片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 21:24:43.71
コマンドプロンプトは、昔のMS-DOSを引き継いでいる。
基本的な使い方と見た目はMS-DOSとあまり変わっていない。
キーボードで文字ベースの画面に文字列を入力して操作する操作系をCUIとかコンソールなどという。
0112片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 21:28:31.26
BMI計算プログラムの計算結果を小数点以下第二位で四捨五入させて表示させよ。
0113片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 21:35:10.42
>>103
クラス(class)のcだ。
クラスとはデータと、そのデータに対する処理を行う関数をまとめたものを扱うための型だ。
クラスの中の関数をメソッドという。
ソースをよく見るとclassが見つかるだろう?
0114片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 21:49:06.20
失礼、staticのついた関数はインスタンスとは無関係でメソッドではない。
class Programの中にMainというstaticな関数がある。
Mainの引数はコマンドラインで渡された文字列の配列である。
コマンドラインは空白区切りである。
0115片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 21:54:52.60
staticな関数を作ってみよう。
class Programの中に
「static int add(int x, int y) {
int z = x + y;
return z;
}」
と書きましょう。これは足し算する関数addです。returnは値を返します。
Mainでこのadd関数を呼び出すことができます。試してみよう。
0116takasi2015/12/27(日) 22:06:25.15
できました
static void Main(string[] args)
{
//BMI= 体重kg ÷ (身長m)^2
double dBmi;
double dWeight;
double dHeight;
Console.WriteLine("BMI計算プログラム");
Console.WriteLine("体重を入力して下さい(kg)");
//入力された文字列をfloat型に変換
dWeight = double.Parse(Console.ReadLine());
Console.WriteLine("身長を入力して下さい(m)");
dHeight = double.Parse(Console.ReadLine());
dBmi = dWeight / Math.Pow(dHeight, 2);
dBmi = Math.Round(dBmi, 2);
Console.WriteLine("あなたのBMIは" + dBmi);
Console.ReadLine();
}
0117takasi2015/12/27(日) 22:08:39.46
躓いたところは、変数に入れる値が低いのでfloat型にしようとしたのですが、Math.PowがDouble型の変数にしか対応していなかったのでやむなくDouble型にしました
0118片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 22:10:02.35
メソッドを作ってみよう。class Programの中に
「int m_i = 0;
int f(int x){return m_i + x;}

とかいて、Main関数の中に
「var cMain = new Program();
cMain.m_i = 3;
Console.WriteLine(cMain.f(2).ToString());」
と書いて実行してみよう。予想通りに動いたかな? fはメソッドです。cMainはProgram型のインスタンスです。
0119takasi2015/12/27(日) 22:17:22.07
>>115
こんな感じで大丈夫でしょうか

class Program
{
static void Main(string[] args)
{
Console.WriteLine(add(100, 200));
Console.ReadLine();
}
static int add(int x,int y)
{
int z = x + y;
return z;
}
}
0120片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 22:20:17.08
インスタンスは型を指定したnewによって作成され、メモリーにインスタンスのデータが格納されます。
インスタンスはメモリー上に複数存在することができます。
0121仕様書無しさん2015/12/27(日) 22:21:27.01
>>119
ok
0122takasi2015/12/27(日) 22:23:58.07
スタティックとかインスタンスとかよく分かってませんができました!

class Program
{
int m_i = 0;
int f(int x)
{
return m_i + x;
}
static void Main(string[] args)
{
var cMain = new Program();
cMain.m_i = 3;
Console.WriteLine(cMain.f(2).ToString());
Console.ReadLine();
}
}
0123takasi2015/12/27(日) 22:26:19.76
var cMainはインスタンスが入った変数ってことでしょうか
0124takasi2015/12/27(日) 22:27:34.54
メモリーが何なのかどこに存在するのかどのくらいの容量なのかわかりませんがそこはまだ追求しなくてもいいレベルですかね!頭がツアkれます!
0125takasi2015/12/27(日) 22:28:33.42
単語の意味は分かっていませんが、なぜこういう動作をするのかは一応分かりました
0126仕様書無しさん2015/12/27(日) 22:33:06.12
>>123
はい
0127takasi2015/12/27(日) 22:35:14.68
あと型varについてですが、型が明らかな時varを使うと仰っておりましたが、どこで明らかになっているかわかりません!
代入する値で判断しているのでしょうか?
例えば、
var i = 10 ←これは整数値だからint型だ!とコンピュータが判断
と、なればもう全てvarでもコンピュータの判断に任せることができるのではないでしょうか!
文章ヘッタクソなのでおかしなこと言っていたらごめんなさい!
0128takasi2015/12/27(日) 22:36:45.84
>>126
ありがとうございます先生!
クラスをNEWすると分身(インスタンス)ができるんですね
0129片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 22:40:46.21
代入以外にもvarで型が決まるのはいろいろあるが、
代入の場合は右辺の型で決まる。
規則に従って型を推論する。
型推論というらしい。
0130takasi2015/12/27(日) 22:44:06.96
なるほど、推論ということは作り手の思ったものと違う型が作られてしまう場合もあるので”明らか”な時に使うのですね!
でも僕は確実にこれはこの型!ってはっきりしている方がいいのでvarを使うのは何か不安ですね
考えすぎですかね??
0131片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 22:45:43.98
インスタンスを2個作って何かを試してみよ。
0132片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 22:53:20.60
配列を作ってみよう。

int[] array = {12,34,56};
foreach(var item in array) {
Console.WriteLine(item);
}」
0133片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 22:59:21.03
コマンドライン引数を表示してみよう。
「for(int i=0;i<args.Length;++i){
Console.WriteLine(i + ": " + args[i]);
}
0134片山博文MZ ◆T6xkBnTXz7B0 2015/12/27(日) 23:03:01.89
お休み。
0135takasi2015/12/27(日) 23:05:18.39
0136takasi2015/12/27(日) 23:12:52.67
>>132
できました
https://i.gyazo.com/886075721a18e99db212f49242ea5653.png

>>133
何も表示されませんでした・・・
https://i.gyazo.com/e726234b42bdede43ff02d7d50046559.png

おやすみなさい
0137takasi2015/12/27(日) 23:15:22.84
今日は余り進まなかった
単純なこと考えるだけなのに勝手にあたまがこんがらがるうううううううううう
0138仕様書無しさん2015/12/27(日) 23:42:02.64
>>114
修飾子がstaticのものはメソッドではないだとwww
0139takasi2015/12/28(月) 00:35:39.58
先生こんばんは
staticとは何なのかお教え下さい
0140takasi2015/12/28(月) 01:02:08.57
他に先生はいらっしゃいませんか!夕方8時に起きたので寝れないのです!
言語は問いません、なんでもやります僕はたまごっちです!
0141takasi2015/12/28(月) 01:06:38.66
言語は問わないと言いましたが、環境を用意するのが楽な言語が好ましいです・・・
Web開発とかアプリ開発に興味があります
偏差値40前後の高校を卒業後約10年ほぼニートでした
頭のできは良くありません!やる気もあまりありません!
今更自己紹介です!と、いうか違う言語を平行して勉強しないほうがいいですね!黙っときます!
0142仕様書無しさん2015/12/28(月) 01:07:50.41
>>141
違う言語を並行して学習するのは全然悪くないよ。
0143takasi2015/12/28(月) 01:11:52.03
>>142
そうなんですか先生
たしかにこのスレを立てる前にスプリクト言語?のUWSCというのをちょろっといじってましたがC#と似てる部分がありましたね
他の言語も似てるのでしょうかね?今ある言語はC言語の兄弟みたいなことを聞いたことあるのでたぶん似ているのでしょうね・・・
まあ僕に平行して勉強するような器用なことができるかはわかりませんが。。。
何か僕にやらせたい言語有りますか?すっごい他人任せですが
0144仕様書無しさん2015/12/28(月) 05:58:51.88
>>143
paizaに登録してスキルテストでまずはDランク問題全てクリアしなさい。C#も使えるよ
0145takasi2015/12/28(月) 17:18:48.12
おはようございます
paiza登録しました今から殺ります
0146takasi2015/12/28(月) 19:22:26.76
yesかnoを7回入力し、何回noを入力したかを出力するプログラムを書いているのですが

class Program
{
static void Main(string[] args)
{
int yukyu = 0;
for(int i = 1; i > 7 + 1; ++i)
{
String d_i = System.Console.ReadLine();
System.Console.WriteLine(d_i);
if(d_i == "no")
{
++yukyu;
}
}
System.Console.WriteLine(yukyu);
}
}
これでうまく動作しませんでした
エラーにもならないのですが、どこか問題あるのでしょうか。。。
0147takasi2015/12/28(月) 19:24:52.27
ReadLineが作動しないのです
forの外にあるReadLineは動作するのですが、for内のReadLineは動かないのでしょうか
0148片山博文MZ ◆T6xkBnTXz7B0 2015/12/28(月) 21:13:06.72
i > 7 + 1
0149takasi2015/12/28(月) 21:31:23.64
アッ・・・
0150仕様書無しさん2015/12/28(月) 23:27:17.27
こうなってるのか?
(i>7)+1
0151takasi2015/12/29(火) 00:19:33.58
正 i < 7 + 1
誤 i > 7 + 1
でした
0152takasi2015/12/29(火) 02:21:53.24
今日はサボってしまいました申し訳ございません
0153takasi2015/12/29(火) 21:46:23.67
おはようございます
さっさとpaizaの課題を終わらせます
0154片山博文MZ ◆T6xkBnTXz7B0 2015/12/29(火) 21:55:38.35
Main関数のargsは、実行時に渡されるコマンド引数を表す。
コマンドプロンプトでスペース区切りで渡すことができる。
プロジェクトのプロパティでもデバッグ時のコマンド引数を指定できるぞ。
0155片山博文MZ ◆T6xkBnTXz7B0 2015/12/29(火) 21:58:30.19
コマンド引数によって処理を変えることはコンソール(CUI)ではよくある。
指定したファイルを開いて処理したい場合などに便利だ。
0156takasi2015/12/29(火) 23:17:51.73
>>10あたりで勉強したコマンドですね、覚えておきます
paizaの問題D002で1時間以上掛かってしまいました
適性が無いと感じ泣きそうになります
0157takasi2015/12/30(水) 01:49:38.62
8/32まで終わりました 残りも頑張ります

先生方に質問です。VSで引数"()"の"("を入力するとインテリセンス機能?で")"が入力されますが
文字入力位置は"("と")"の間に有り、引数が要らないReadLine()などですと
末尾に移動するのにアローキーの→を押すか、Endキーを押さなくてはならなくて指の移動が辛いです!
先生方はどのように移動させていますか?我慢して→かEndを押さねばならないのでしょうか?
冬で手がかじかみ誤打を頻発させています・・・
0158片山博文MZ ◆T6xkBnTXz7B0 2015/12/30(水) 07:48:28.06
>>157
そのまま)を入力する。
手がかじかむなら暖房を掛ければ?
0159takasi2015/12/30(水) 20:56:53.90
おはようございます

それは)を入力して自動入力された)を削除でしょうか?
もしくは()の自動入力をOFFにしているので)をそのまま入力ということでしょうか?
後者であればその()の自動入力をOFFにする方法を教えていただきたいです!
他の自動入力機能は便利なので()だけOFFにするっていうのはできませんかね?
0160片山博文MZ ◆T6xkBnTXz7B0 2015/12/30(水) 21:18:50.47
「ツール」→「オプション」から自分で探せ
0161仕様書無しさん2015/12/31(木) 20:56:03.54
応援してるよ!がんばって
0162takasi2015/12/31(木) 21:36:11.04
>>160
ありがとうございます

>>161
ありがとうございます

ありがとうございます

ありがとうございます

良いお年を
0163片山博文MZ ◆T6xkBnTXz7B0 2016/01/01(金) 00:16:42.73
明けましてすみません。
0164takasi2016/01/02(土) 05:35:53.62
明けましておめでとうございます。今年もよろしくお願い致します。
課題の続きをします
このところ課題しかやってる気がしないのですがこれでいいのでしょうか
たぶんいいのでしょうねまずはコード書くことに慣れること
果てしてシンプルなメモ帳と自動シャットダウンタイマーを作れるところまで成長するのでしょうか、続くのでしょうか・・・
スマホアプリなんかも作ってみたいと思うようになってきましたそんな2016年
0165takasi2016/01/02(土) 08:52:04.12
配列のインデックス番号は0から始まりますよね
例えば配列に5つの要素を入れたい場合は0から始まるので、
要素1.[0]
2.[1]
3.[2]
4.[3]
5.[4]
new int[4]となるはずですが
int[] s = new int[4];
for (int i = 0; i < 5; ++i)
{
s[i] = int.Parse(Console.ReadLine());
}
としたところエラーがでました
しかし、宣言でint[5]にしたところエラーにならず、要素も5つ入れることができました
int[5]だと要素が6つ入るのでは?????????
????????状態です
0166takasi2016/01/02(土) 08:55:46.04
ああ、馬鹿だあああああああ
そりゃループ回数が5回だから要素が6つも入るわけ無いですよね
と、いうことは↑s[5]は何も要素が入ってないことになりますよね
わざわざ空の要素を用意しないといけないのでしょうかああわからない
0167takasi2016/01/02(土) 08:58:50.57
MSのガイドを見たら
int[] array = new int[5];

array[0]~[4]の要素しかないんですね
間違って覚えてた!!!!!!!!!!!!!
0168takasi2016/01/02(土) 08:59:17.84
ややこしい!!!!コンニャロう!!
0169片山博文MZ ◆T6xkBnTXz7B0 2016/01/02(土) 14:10:34.05
int NUM = 5;
int[NUM] a;
for (int i = 0; i < NUM; ++i) {
a[i] = i;
}
0170仕様書無しさん2016/01/02(土) 15:19:44.76
>>1
ニートには100%無意味だから無駄な時間を使うべきではない。
0171仕様書無しさん2016/01/02(土) 16:50:25.39
バッチファイル厨嫌いじゃない
0172片山博文MZ ◆T6xkBnTXz7B0 2016/01/02(土) 17:25:39.25
次はファイル入出力だ。
九九の表をテキストファイルに出力してみよ。
0173片山博文MZ ◆T6xkBnTXz7B0 2016/01/02(土) 17:30:02.02
ファイルを入出力する前にオープン(開く)という操作が必要だ。
入出力が終わったらクローズ(閉じる)しないといけない。
0174仕様書無しさん2016/01/02(土) 20:18:53.09
あけおめ

なにこれ、マジスレ?
0175仕様書無しさん2016/01/02(土) 20:33:29.78
>>174
マジスレだよ。たかしは本気だ。
0176片山博文MZ ◆T6xkBnTXz7B0 2016/01/02(土) 20:40:42.77
コマンドプロンプトで「notepad」と入力するとメモ帳が起動する。
メモ帳のファイル名が「notepad.exe」で、システムに登録されているからだ。
「notepad "(パスファイル名)"」を入力すればメモ帳でファイルが開かれる。試して見なさい。
0177片山博文MZ ◆T6xkBnTXz7B0 2016/01/02(土) 20:59:53.53
コマンドを探しだす方法は、「サーチパス」、すなわちPATHという環境変数によって指定する。
詳しくは「Windows サーチパス」で検索。
環境変数にはシステムの環境変数と、プロセスの環境変数の二種類ある。
プロセスはプログラムのインスタンスである。
また、Windowsはサーチパス以外にもAppPathというレジストリーからの情報も使ってコマンドを検索することがある。
AppPathに登録していれば、Win+Rからコマンドを起動できる。
0178takasi2016/01/02(土) 21:39:22.76
おはようござざいます

ファイルの入出力やってみます

このスレはマジですけどやる気はマジではないかもしれません
0179片山博文MZ ◆T6xkBnTXz7B0 2016/01/02(土) 22:13:13.55
「C:\Program Files」はプログラムと、変更しないデータを格納するためのシステムフォルダである。
このフォルダにプログラムを格納したい場合、「インストーラ」を使う。
このフォルダは管理者権限なく、勝手に変更してはならない。
よってこのフォルダに設定ファイルを書き込んではいけない。
設定を書き込みたい場合は、AppDataかレジストリを使う。
0180takasi2016/01/02(土) 22:16:00.36
九九の表できた・・・!
class Program
{
static void Main(string[] args)
{
int num;
for(int i = 1; i < 10; ++i)
{
num = i;
for(int n = 1; n < 10; ++n)
{
if (n == 9) Console.WriteLine(num * n);
else if (n == 1) Console.Write(i + "の段 " + num * n + " ");
else Console.Write(num * n + " ");
}
}Console.ReadLine();
}
}

嬉しいので報告だけしました
0181片山博文MZ ◆T6xkBnTXz7B0 2016/01/02(土) 22:18:44.87
バイナリファイルの読み書きができたら、Windows Forms (WinForms) に進んでもいいぞ。
0182片山博文MZ ◆T6xkBnTXz7B0 2016/01/02(土) 22:22:42.12
>>180
それをテキストファイルに書き込めばいい。

http://ufcpp.net/study/csharp/lib_file.html
0183片山博文MZ ◆T6xkBnTXz7B0 2016/01/02(土) 22:33:33.05
数値の出力において桁をそろえたい場合はString.Formatメソッドを使う。
Stringクラスはよく使うので、ひまなときはStringのメソッドを眺めておきなさい。
0184takasi2016/01/02(土) 23:07:56.26
できました!これでよかでしょうか
https://i.gyazo.com/dc888ad7d26be90b98ab70f4c5700482.png
0185takasi2016/01/02(土) 23:10:45.17
質問です。今C#を勉強していますが、このままC#を勉強すればCは勉強しなくても良いでしょうか
0186takasi2016/01/02(土) 23:14:46.30
と、いいますかC#の基本を理解すれば他の言語への学習もすんなり活きますか?
0187片山博文MZ ◆T6xkBnTXz7B0 2016/01/02(土) 23:24:22.88
>>184
水平位置がそろっていないように見える。
九九の表ではそろえないといけない。
数値をそろえるためのstatic関数を作ってみろ。
String.Formatが使えるはず。
OSを作りたいならCは必須だが、C#の後でいい。
0188片山博文MZ ◆T6xkBnTXz7B0 2016/01/02(土) 23:35:49.30
お休みなさい
0189takasi2016/01/02(土) 23:37:53.66
>>184
↑のすでに記述されたコードはいじらずに関数の追加だけでyそうか?
0190takasi2016/01/02(土) 23:39:18.32
おやすみなさい!!
0191takasi2016/01/03(日) 03:39:37.95
>>144先生!やっと終わりました!https://i.gyazo.com/41c13dc803015cb945175b67089c10d3.png
>>184の訂正は明日やりますおやすみなさい
0192仕様書無しさん2016/01/03(日) 10:57:18.83
>>191
なかなか飲み込み早いな!
0193片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 13:51:52.10
九九の表の「データの流れ」(data flow)について考えよう。
九九のそれぞれの数はintであった。それが単一行Stringになり、WriteLineに渡される。
実は、改行文字は"\n"で表せる。これをWriteに渡せば勝手に改行してくれる。
改行文字を使うと、九九の表は複数行文字列で表せる。
データの流れは次のようにできる。

int→単一行文字列→複数行文字列⇒Write
0194takasi2016/01/03(日) 15:01:40.20
おはようございます続きやります
0195仕様書無しさん2016/01/03(日) 15:07:11.52
プログラムは役に立たせるためにあるの。
ニートは人が困ってるのを理解できてないからやれることなの。
人が困っているのを理解できない奴は役に立つプログラムは組めないの。
よって無駄。
0196takasi2016/01/03(日) 15:19:40.58
static関数を作って水平位置を揃える方法が分からなかったので
すでに記述されたコードをいじれば簡単にできそうだったのでやりました!
https://i.gyazo.com/e5b8f5933aeab6d63ce186064a51c487.png

それはプログラムだけではなく全ての事に言えますね!
なら僕は自分がやりたいことだけやります!!
0197片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 15:27:53.06
今度は、そのテキストファイルをいっぺんに読み込んで画面に出力してみろ。
0198takasi2016/01/03(日) 15:53:05.90
できました
https://i.gyazo.com/2bc9319292001ca6ea87abefd2ac14ba.png
質問です。結果を確認するためにはReadLineで画面に出力して確認するしか無いのでしょうか?
0199片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 16:07:45.16
>>198
デバッグ機能にステップ実行がある。少しずつ実行しながら、下の「自動変数」などの画面で変数の内容を確認できる。
また、右下の画面で呼び出し履歴が見られるし、指定したブレークポイントでデバッグ実行を止めることができる。
ただし、プログラムがDebug versionじゃないといくつかの機能は使えないかもしれない。
0200takasi2016/01/03(日) 16:11:30.02
ReadLineで画面出力の方が手っ取り早いから使っているんですねわかりましたありがとうございます
0201片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 16:12:37.06
Release versionはデバッグ情報がない分、プログラムサイズが小さく、実行が速くなる。
だから、一般にプログラムを配布する場合はReleaseを使う。
0202片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 16:15:27.34
ReadLineは入力だぞ。出力ではない。
0203片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 16:19:06.40
次はバイナリファイルの読み書きだ。
int[] aに適当なデータを入れてその内容をバイナリファイルに書き込め。
0204片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 17:22:59.63
改行コードを含むテキスト文字列を一気に読み込む場合はFile.ReadAllTextを使う。
逆に一気に書き込みたい場合はFile.WriteAllTextを使う。
0205片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 17:39:21.25
ReadAllTextやWriteAllTextにはオープンが必要ない。
0206片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 18:21:12.82
バイナリ形式ファイルは、16進数の00〜FFを1バイトとして、n個のバイトが並んだものと考えることができる。
このバイト数がファイルサイズである。ただし、どんなファイルでもバイナリとして読み込める。
通常、慣習としてテキストファイルではないものをバイナリファイルという。
0207仕様書無しさん2016/01/03(日) 18:43:28.81
今Fラン文系大卒職歴30歳営業なんですが
昔からプログラマーに憧れていまして
今から未経験でプログラマー関連の仕事に就きたい思っています
ですが35歳定年説なんてのも聞きますし
流石にこの歳からプログラマーは厳しいでしょうか?
0208片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 18:58:52.60
>>207
未経験はベクターとかストアなどで職歴を作れ。
中途は実力と職歴があれば就職できる。
0209仕様書無しさん2016/01/03(日) 19:24:30.27
>>208
ありがとうございます
30歳からでもプログラマーを目指す事は可能なんですね
ただ未経験なので、知識や実力がないので、まずは仕事しながら勉強をして
その後、職業訓練校のC言語やマイコンなど勉強するコースに入りプログラマー系の仕事につけるようにガンバリマス
0210片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 19:54:27.31
少し補足しておくと、日本企業は体裁を重んじるから注意が必要だ。
学歴はもちろん、体臭・口臭がひどかったり、受け答えが障害者っぽかったり、
マナーやエチケットを守らなかったりすると、落とされる可能性が高くなる。
就職活動にもマナーというものがあり、事前に本などを読んで把握しておかないといけない。
履歴書が手書きじゃないと受け付けない企業さえある。
0211片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 20:21:02.27
ニートになってしまったなら、これまでの親の教育を全部疑わないといけない。
何かが世間体と違うのではないか?
なぜいつも軍隊っぽいのかとか。
キャッチボールもサッカーもしたことがないのはなぜなんだ、とか。
0212片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 20:28:55.64
お前は旧日本軍なのか?
0213片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 20:47:07.01
洗顔料やインターネットの存在も知らないような毒親の教育を受けたら最悪だぞ。
0214片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 20:48:59.42
で、毎晩酒を飲んで悪酔いして、からんでくるんだぞ
0215片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 21:13:43.37
やつらは体裁やら面子などを重んじて、子どもの生活など、1つも考えてはいない。
そんな奴等は地獄を見て滅んでしまえばいい。
0216takasi2016/01/03(日) 22:11:00.40
おはようございます
今から始めます
0217takasi2016/01/03(日) 22:39:41.36
できました
https://i.gyazo.com/488e837c6c5091f3d0f53b89e399dbb3.png
バイナリファイルとはテキストファイル以外を言うんですね、初めて知りました。

質問です。Streamクラス?を使うには一番上にあるusing System.IOを追加しないと使えませんでした
はじめから記述されていないのはファイルサイズやプログラムの実行速度に影響があるからでしょうか?
と、すると綺麗なコードを書くにはすでに記述されているLinqやTextも消したほうが良いですか?
0218takasi2016/01/03(日) 22:44:10.99
なんかあまり理解できていません
インスタンス?の作成のusing使う時と使わない時の違いとか
usingだと短く書けるからでしょうか
というか基本を全然理解できていない感
本とか読んだほうがいいですかねえ
0219片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 23:19:47.41
バイナリ形式のnバイトの整数データを書き込むときに、上位バイトと下位バイトのどちらを
先に書き込むのかは、システムによって異なる。
C#では下位バイトを先に書き込む。このようなデータ形式をリトルエンディアンという。
バイナリデータの読み書きにおいてはデータサイズを常に意識しないといけない。
0220片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 23:25:19.57
>>218
usingは記述を少なくして楽をするために使う。
重複した長いコードを何度も記述すると、コードを読むのも書くのも疲れるだろう。
0221片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 23:41:47.25
お休み。次はお待ちかねのWinFormsをやるぞ。
0222takasi2016/01/03(日) 23:52:49.05
下位バイトとか上位バイトとかその他にも専門的な用語が散見されてこれはもう本買って読んだほうが良いかもしれませんね ついて行けてない感

ありがとうございましたおやすみなさい
0223片山博文MZ ◆T6xkBnTXz7B0 2016/01/03(日) 23:55:14.54
.exeファイルもテキストファイルではないからバイナリである。
.csファイルはテキストファイルだから、バイナリファイルではない。
バイナリファイルをテキストエディタで開くと文字化けすることがある。
0224takasi2016/01/03(日) 23:57:05.92
文字もバイナリデータの集まりでは無いのでしょうか?
0225片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 00:19:47.33
>>224
人間は動物だが、人間のことを動物呼ばわりすると失礼だろ。慣例だよ、慣例。
0226takasi2016/01/04(月) 00:33:15.96
そういうものなのですね
こういう性格なので飲み込みが遅いです・・・
0227takasi2016/01/04(月) 00:35:52.82
WinFormsはGUIを持ったプログラムなんですね!
アプリ制作に一歩近づきますね
0228仕様書無しさん2016/01/04(月) 04:58:07.33
どんなアプリ作りたいの?
0229takasi2016/01/04(月) 17:26:48.96
目下の目標はwindowsアプリの自動シャットダウンタイマーと最前面表示できるテキストエディタですね
0230takasi2016/01/04(月) 17:29:23.69
おはようございます
0231片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 17:41:18.88
Windowsフォームアプリを作るよ。ファイルメニューからプロジェクトを新規作成。
Visual C#のWindowsフォームアプリケーションを選択してOK。
フォームのデザインが表示される。
0232片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 17:46:27.36
1つ注意点がある。デザインのために自動生成されるコードには直接触らない。
編集する前にコメントを読んで自動生成コードじゃないか確認。
下手に編集するとデザインが変更できなくなる。
0233片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 17:53:48.61
Form1のデザインでフォームを右クリックしてプロパティを選べ。
フォームのプロパティが表示される。
Textプロパティを「こんにちはWinForms」に変更してEnterキー。
TopMostというプロパティを探し出してTrueにしろ。
0234片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 17:57:14.76
デザインが変わったのを確認してデバッグ開始。これでWinFormsアプリができた。
次にVS画面の右側に縦書きで「ツールボックス」という項目があるだろう。クリックしてみよ。
0235片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 18:02:08.20
すべてのWindowsフォームをクリックして展開。ボタンを追加するぞ。
Buttonをクリック。デザインフォーム上をドラッグ。これでボタンができた。
ボタンを右クリックしてプロパティ。Textに「終了」と入力してEnter。
さらにボタンをダブルクリック。
0236片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 18:06:23.24
button1_ClickメソッドがForm1クラスに追加される。
そこで「this.Close();」と入力する。デバッグ実行せよ。
0237片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 18:15:36.71
課題。デザインフォームにいくつかLabelとTextBoxを追加して
BMIを計算するアプリを作れ。
ヒント:Textプロパティに文字列をセット
0238takasi2016/01/04(月) 18:20:20.49
おはおうございます
今から始めます
0239片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 18:39:03.30
つまずいたら質問したまえ
0240片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 18:55:12.12
どうした?
0241takasi2016/01/04(月) 19:15:10.35
できました!https://i.gyazo.com/e13d55b77a9005e84156751faeb1aa83.png
すべてのWindowsフォームが見つからずつまづきました
テキストボックスやラベルの縦のサイズは変更できないんですかね?
0242片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 19:20:13.65
>>241
複数行(multiline)にするプロパティがあるはずだ。
TopMostプロパティはフォームを最前面に保つ働きをする。
0243片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 19:24:49.22
Form1はクラスだから、1プロセスに複数のインスタンスを作ることができる。
ソースコード全体がどうなってるか把握しなさい。
0244takasi2016/01/04(月) 19:32:25.17
マルチライン見つけました
ソースコード把握しあした
0245片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 19:34:57.02
「ボタンを押す」という出来事(イベント)に対してメソッドで処理を行う。
典型的なイベント駆動型プログラミングだね。
プロパティとイベントの使い方をマスターすれば、さまざまなアプリを作れるだろう。
0246takasi2016/01/04(月) 19:36:52.54
はいい!
0247片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 19:52:07.73
新しいアプリを作成しよう。フォームのTopMostをTrueにする。フォームのAutoSizeModeをGrowAndShrinkにする。
TextBoxを配置。TextBoxを複数行に。TextBoxのDockをFillに。デバッグ開始。
0248takasi2016/01/04(月) 20:03:22.86
できました!https://i.gyazo.com/5c6e00277ece5f85d540dfafee9965de.png
Textに入力する文字は改行できないのでしょうか?
0249takasi2016/01/04(月) 20:06:06.13
右の↓をクリックしたら入力幅が広がって改行できるようになりました
0250takasi2016/01/04(月) 20:08:19.79
メモ:プロパティのTextの右側の↓クリック
https://i.gyazo.com/edfc66c55f84d20ab93181c0f392156a.png
0251片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 20:08:20.64
>>248
AcceptsReturnプロパティ。昔はEnterキーのことをReturnキーと言っていた。
このフォームにメニューを付ければテキストエディタに見えるだろう。
0252takasi2016/01/04(月) 20:13:32.06
もしかしてwin純正のメモ帳もTextBoxを画面いっぱいに表示して作られてるんですか?
C#で作られてるかはワカリマセンが
0253片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 20:16:02.92
テキストボックスがフォーム全体に広がっているからフォームを右クリックできない。
こんなときは「プロパティ」ウィンドウの上側のコンボボックスで切り替える。
プロパティウィンドウのカミナリアイコンをクリックするとすべてのイベントが見れるぞ。
0254片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 20:24:12.46
>>252
メモ帳はC/C++で作られている。C/C++のテキストボックスはEDITというウィンドウクラスから
作られており、C#のそれとは多少違う。フォームのサイズが
変更されたらWM_SIZEメッセージを受け取り、テキストボックスのサイズを
合わせるといった原始的なことをやっている。
0255takasi2016/01/04(月) 20:30:27.61
C#でも純正メモ帳と全く同じようなものを作れるのでしょうか?
またC/C++でシンプルなメモ帳を作る人がいたらその理由は何でしょうか?
C#の方が楽に作れる気がするのですが
C/C++にもwinformsみたいなのがあって楽に作れるんですかね
0256片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 20:33:38.76
そのサイズを合わせるのもSetWindowPosとかMoveWindowといったAPI関数呼び出しで
しなきゃいけない。プロパティは使わない。
なんというか、C/C++は生産性が低く、スマートではない。
0257片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 20:36:55.39
C#は.NETという枠組みで動くが、C/C++はそれより外側の、OSに近い低レベルなところで動く。
.NETがなかった頃はVBやC/C++などしかなかった。
0258片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 20:42:57.76
実行環境に.NETがないと動かない。これが最大のデメリット。
0259takasi2016/01/04(月) 20:44:09.57
わかったようなわからないような
C/C++は細かいところをいじれる と、いうか細かくしかいじれない感じですね
0260takasi2016/01/04(月) 20:46:04.98
.NET FREAMWORKSでしたっけ?あれがなきゃC#を動かせないんですか ふむふむ
WINマシンでしか動かせないんでしょうか?
0261takasi2016/01/04(月) 20:46:48.59
汎用的に動かせるのがC/C++という認識で良いでしょうか
0262takasi2016/01/04(月) 20:51:18.05
お風呂へ入ってきます
0263片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 21:28:34.66
C++は基本的に自由だからフレームワークがいくつもある。
GTK+、Qt、Tcl/Tk etc.
しかしどれも決定的なものはなく、
インテリセンスが満足に動かない開発環境がほとんどだ。
迷路に迷うのも自由。避難指定地域へ行くのも自由。こめかみを撃ち抜くのも自由。
技術者の迷い道しかない。
0264片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 21:40:53.25
LinuxにはMonoというフレームワークがあり、これが.NET Framework互換になっている。
だからC#で作ったゲームをLinuxで動かすということもある程度できる。
0265片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 21:44:47.77
このようなゲーム作りに興味があるなら、「Unity C#」を検索したまえ。
Unityは今、もっとも熱いゲームエンジンだ。
0266仕様書無しさん2016/01/04(月) 22:09:53.21
おまえら、おれは吊り、自演じゃないと信じて応援すっけど、スカイプとかメールでやりとりしたほうが早くねえか?w
0267片山博文MZ ◆T6xkBnTXz7B0 2016/01/04(月) 23:01:30.52
おやすみ
0268takasi2016/01/05(火) 00:48:16.91
なるほど、とりあえず今は何も考えずにC#やりますね
おやすみなさい

>>266
釣りとか自演の類に見えますかね??
いやあ色んな人から教わりたいですし、こういうところで経過報告した方が続くかなと思いまして
別に片山さんとマンツーマンでやってるわけでもなく>>144さんから出された課題もこなしてるので
僕に教えたいことがあればなんでも言って下さい
僕は>>5なので
0269takasi2016/01/05(火) 11:47:55.24
おはようございます
何やればいいかわからないのでpaizaCランク全部やります
0270takasi2016/01/05(火) 12:02:05.14
難易度がぐっとあがった・・・
本借りてきます
0271仕様書無しさん2016/01/05(火) 12:48:08.14
>>270
Cランカーなめんなw
0272takasi2016/01/05(火) 13:05:06.06
1週間の勉強じゃ足りないでしょうか?
何やればいいですかねえ、自分で課題探すのすごく苦手です
0273takasi2016/01/05(火) 13:06:35.55
模範解答を見てみたんですが、見たことのない関数が使われていたので
全ての関数が列挙された本とか買えばいいですかね
0274仕様書無しさん2016/01/05(火) 14:05:15.20
逆引き系ならポケットリファレンスかな?基礎学びたいなら独習C#。
この辺は片山先生の意見を待ってみたらいいかもしれない。
0275takasi2016/01/05(火) 14:14:02.02
とりあえず検索で出てきた勉強サイトで基礎を復習しつつ演習解きまくってみます
0276takasi2016/01/05(火) 15:16:07.30
ポケットリファレンスですか、本屋でどんなものか見てきあmスね
0277takasi2016/01/05(火) 15:20:23.33
本にしろサイトでの勉強にしろ結局は自分でどこまでやるか目標決めなくてはならないので
今の授業スタイルはこれをやれ、と指定された明確な目標があるからやりやすいですね
自分で勉強できない人間は独学というのは難しい・・
0278takasi2016/01/06(水) 20:53:45.88
おはようございます!!!!!!!センセーーーーーーーーー!!!!!!!
0279片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 21:03:10.86
今日はメニューとダイアログをやろう。
ツールボックスのMenuStripをダブルクリックしてフォームに追加。
デザインフォームのメニューを右クリックして標準項目を追加。
ファイルメニューの終了をダブルクリックして終了コードを書き込む。
ツールメニューに「テスト(&T)」を追加。それをダブルクリック。
0280片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 21:05:51.24
MessageBox.Show("テストです", "テスト", MessageBoxButtons.OKCancel);
というコードを追加。
0281片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 21:10:04.76
ユーザーはコンピュータと対話するためにダイアログボックスというものを使う。
メッセージボックスは、ボタンを押すだけのシンプルなダイアログだ。
コモンダイアログは、「ファイルを開く」「印刷」などのよく使う共通のダイアログである。
0282片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 21:16:57.15
ダイアログは「OK」「キャンセル」などのボタンが押されるか、Escキーが押されるまで
コントロール項目へのデータ入力を待つ。「OK」が押されるとダイアログ上の
コントロール項目のデータを読み込んでアプリに反映させて、ダイアログが閉じられる。
「キャンセル」やEscキーだとダイアログが閉じられるだけだ。
0283片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 21:25:02.30
メニューはコマンドを選択するだけでなく、コマンドに関する現在の
状態や、ショートカットを表示したりできる。
0284片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 21:29:03.68
デザインを間違ったときは、Ctrl+Zで1つ元に戻すことができる。
Ctrl+Yはその逆で1つ進めることができる。
0285takasi2016/01/06(水) 21:48:43.25
おはようございます今から始めます
0286片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 22:02:40.71
独自のダイアログを作りたいなら、プロジェクトに新しいフォームを追加して
まずはMaximizeBox、MinimizeBox、ShowInTaskbarをFalseにする。
http://www.atmarkit.co.jp/fdotnet/dotnettips/139dialog/dialog.html
これを読んでテストがクリックされたら、自作のダイアログを表示するようにしなさい。
0287takasi2016/01/06(水) 22:04:53.53
>>284まで終わりました続けます
0288片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 22:21:45.11
フォームの追加は、プロジェクトから追加→新規項目から行う。
モーダルダイアログの表示は次のようなコードになる。
var form2 = new Form2();
form2.ShowDialog(this);
0289takasi2016/01/06(水) 22:24:03.28
質問です>>286ではフォームの最大化、最小化ボタンの無効化をコードで記述していますが
これはフォームデザインのプロパティでFalseを選択してることと同じで記述する必要はありませんよね?
0290片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 22:26:13.47
>>289
その通り。それらのプロパティはデザイン時でも実行時でも変更できる。
0291片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 22:37:00.92
これを参考に、「ファイルを開く」コモンダイアログを使ってみなさい。
http://www.atmarkit.co.jp/fdotnet/csharptips/007dialog/007dialog.html
0292takasi2016/01/06(水) 22:39:03.61
できましたhttps://i.gyazo.com/93c2d336e20c2cd87d0b537c88108f93.png
難しいコードが記述されてましたが>>288だけで充分だったのですね
続きやります
0293片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 23:01:15.03
コモンダイアログはパラメータがたくさんあって大変難易度が高い。
最適なパラメータを選ぶのはプロでも難しい。
0294takasi2016/01/06(水) 23:20:58.46
てっきり新しいフォームを作って、それをコモンダイアログにするかと思い躓いていました
実際はメインフォームの開くスイッチにコード記述するだけで単純でした
https://i.gyazo.com/c245f9138c647884bb84f1c38f2af97f.png
0295takasi2016/01/06(水) 23:22:34.52
お風呂入ってきます
0296takasi2016/01/06(水) 23:27:52.83
ああああああああああ新しいフォームからもできますねこれ
0297takasi2016/01/06(水) 23:31:58.87
ああ、やってみたらコモンダイアログと新しいフォームが2つ立ち上がってしまい失敗ですね
>>294で正しかったです
0298片山博文MZ ◆T6xkBnTXz7B0 2016/01/06(水) 23:44:45.61
おやすみなさい
0299takasi2016/01/07(木) 00:35:50.07
ありがとうございましたおやすみなさい
0300仕様書無しさん2016/01/07(木) 18:42:04.30
おなようございます
独習か猫でもわかるを買ってきます。
0301片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 18:53:19.03
課題。最前面表示のテキストエディタを作れ。
【要件】
・ファイルメニューからテキストファイルが開ける。保存できる。
・複数行のテキストを編集できる。
・フォームのサイズを変えると中のテキストボックスもフィットする。
・常に最前面に表示される。
0302片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 19:06:43.87
ReadMe.txtとLicense.txtというファイルを追加すること。
Git for Windowsをインストールせよ。
.gitignoreというファイルを追加して無視すべきファイルを除外するようにしておくこと。
Gitレポジトリとしてコミットせよ。
完成したプログラムはGitHubにアップロードせよ。
ライセンスはNew BSD Licenseとする。
0303たかし2016/01/07(木) 19:50:01.19
おはようございます
猫でもわかるを買ってきました。
帰宅してから始めます
0304仕様書無しさん2016/01/07(木) 20:07:21.98
>>302
ちょwなんかいきなり難易度高くなってません?
0305takasi2016/01/07(木) 20:31:18.47
おはようございます今から初めます
0306takasi2016/01/07(木) 20:37:58.91
質問です、VSでプロジェクトが異なるファイルを別のタブで開くことはできますか?
例えばプロジェクト1のAファイルをプロジェクト2の作業中に開くことです。
コード内容を見比べたり参考にしたいのです
開けないとしたら見比べるのに良い方法は有りますか?別のテキストエディタを起動して読み込ませる方法しかないでしょうか
0307片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 20:44:25.67
>>306
ファイルメニューの「開く」→「ファイル」で開けるぞ。
ファイルタブを右クリックして、「タブグループの新規作成」で比較ができる。
0308片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 20:52:18.61
訂正。
AutoSizeModeはGrowOnlyのままでいい。
0309片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 21:01:42.30
GUI項目の名前は、(Name)プロパティで指定できるが、
デザインした後に編集する裏技を紹介しよう。
編集メニューの「検索と置換」→「フォルダを指定して置換」を選んで
「すべて置換」。
プロジェクト名の場合はさらにプロジェクトの「名前の変更」と「プロパティ」、
ファイルメニューの「名前を付けて保存」を行う。
0310片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 21:13:56.20
もう気付いてると思うが、変数や関数の名前に日本語が使える。
日本語のGUIについては、英語にこだわる必要はない。
0311takasi2016/01/07(木) 21:25:25.26
質問です。この授業ではネット上にあるオープンの既存のコードをコピペで使用して良いのでしょうか?
もちろん自分なりに添削し改良をしました。
それともコードを1から書かなければいけませんか?今の僕の知識と技術ではコピペしないとできそうにありません
0312takasi2016/01/07(木) 21:27:02.65
コード内容もきちんと読みどういう動作をしているかを考えて使っています
0313片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 21:32:17.51
>>311
ライセンス上、著作権上の問題なければ使っても構わない。
中には使用条件のあるコードがあるかもしれないので、気を付けて。
0314takasi2016/01/07(木) 21:35:09.02
ありがとうございます。
>>301の要件のみを満たしたテキストエディタ完成しました
Git for Windowsをインストール中です
0315片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 21:35:38.05
誰が書いても同じようになるコードには著作権はない。
アルゴリズムには著作権はない。
短いコードには著作権はない。
0316takasi2016/01/07(木) 21:37:25.25
Git for Windowsが何かもコミットと言葉の意味もワカリマセンがとりあえずやってみます
0317takasi2016/01/07(木) 21:40:15.07
Gitをどのコマンドラインで使うか聞かれたのですが
デフォルトで選択されているGit Bashで良いでしょうか
0318片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 21:40:35.79
メールアドレスは持っているか?
GitHubにアップするためにはGitHubでアカウント作成が必要で、
アカウント作成にはメールアドレスが必要だ。
0319takasi2016/01/07(木) 21:41:06.37
GitHubのアカウント作成してきます
0320片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 21:42:44.18
>>317
Git BashでOK。これはLinux風の端末だ。これを使うとLinuxの勉強にもなる。
0321takasi2016/01/07(木) 21:42:46.26
GitHubには学習で作った実用性の無いアプリもアップロードして良いのですか?
ゴミをアップするなとか怒られないでしょうか
0322片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 21:50:50.40
>>321
実用性がなくても教育目的で役に立つかもしれない。
全く役に立たないと思ったら、後でprivateにしたり削除したりできる。
今は気にしないでいい。
0323takasi2016/01/07(木) 21:51:01.42
GitHubのアカウント取得、Gitのインストール完了しました
使い方が全くわからず困っています
0324takasi2016/01/07(木) 21:52:47.46
えーまずReadMe.txtとLicense.txtの追加をしたいのですが、これはVSから追加するのでしょうか?
形だけで内容を書かなくても良いでしょうか
0325片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 21:53:52.22
まず、プロジェクトフォルダを右クリックしてGit Bashを選ぶ。
次に「git init」を入力する。これでローカルレポジトリができる。
0326片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 21:56:44.02
>>324
フォルダのエクスプローラから新規作成で作成する。
ReadMe.txtはプロジェクトの内容を記述する。
License.txtにはNew BSD Licenseを記載する。
0327takasi2016/01/07(木) 21:59:58.37
ローカルレポジトリが何のことか分かりませんが git init しました masterってのが表示されました

フォルダはプロジェクトフォルダの事でしょうか?そのフォルダにReadMe.txtとLicense.txtを作成すれば良いですか?
0328片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:00:58.60
さらに.gitignoreファイルをテキストエディタなどで作成する。
「C# .gitignore」で検索。
0329仕様書無しさん2016/01/07(木) 22:01:43.42
>>327
はい
0330片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:10:32.40
【メモ帳で.gitignoreを作る方法】
メモ帳に「bin
obj
.vs」と書き込み、
ファイルメニューから名前を付けて保存。
ファイルの種類を「すべてのファイル」に変更。
プロジェクトフォルダに移動して「.gitignore」で保存。
0331takasi2016/01/07(木) 22:14:23.27
ファイル名は何でも良いですか?空白はできないとの警告があります
内容はこれでよいでしょうかhttps://i.gyazo.com/6f9577c12fb35ead09fe5b35865e0850.png
0332片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:15:02.75
次はレポジトリにファイルを追加する。
Git Bash上で
「git add *.cs *.sln *.csproj *.resx」
「git add .gitignore App.config」
「git add Properties/*」
と入力。
「git status」で追加したファイルを確認。
0333takasi2016/01/07(木) 22:15:28.14
>>330で作り直します
0334takasi2016/01/07(木) 22:16:32.63
>>331全てのファイルから保存を選んだらファイル名無しでも保存できました
0335片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:17:33.13
>>331
名前を付けて保存のときに二重引用符をつけた「".gitignore"」で試してみなさい。
0336takasi2016/01/07(木) 22:19:49.25
0337片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:21:18.27
次はコミットだ。
「git commit -m "first commit"」
その次はGitHubにログインして「New Repository」を作れ。
0338片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:23:18.36
>>336
untracked filesが追加されてない
0339takasi2016/01/07(木) 22:26:24.19
>>337
できました

>>338
何をすればよいでしょうか?
>>332をもう一度入力しますか?
0340takasi2016/01/07(木) 22:28:19.38
ああ、赤字のファイルが存在しないってことですかね
0341片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:29:52.65
>>339
「git add (追加したいファイル)」で追加して、
「git commit -m "second commit"」でコミットだ。
できたらGitHubで作った場所をブラウズせよ。
0342片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:31:41.47
その場所には何が書かれている?
0343takasi2016/01/07(木) 22:38:08.21
addしてstatusで赤字が無いことを確認し、セカンドコミットしました
GitHubで作った場所をブラウズせよで躓いていますhttps://i.gyazo.com/f523c28f90a4e7a0761e03cdd44612e1.png
0344片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:39:55.13
>>343
右上のアイコンつついてプロフィールに移動して
0345takasi2016/01/07(木) 22:40:59.64
0346片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:43:56.11
レポジトリがないようだ。ボタン押してレポジトリを作成。名前は「CSharpTest」でいい。
0347takasi2016/01/07(木) 22:46:22.64
設定はどういたしましょうかhttps://i.gyazo.com/22f84a3fbbeab2e475166af903debfb5.png
0348片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:48:51.33
>>347
optionalだから入力しなくていい。そのまま。
0349takasi2016/01/07(木) 22:52:48.03
ここからどう進めばよいでしょうかhttps://i.gyazo.com/2795a649cfc0a83431bd544afcceafd5.png
0350片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:53:12.06
おやすみ
0351takasi2016/01/07(木) 22:54:21.54
ありがとうございましたおやすみなさい
0352片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 22:56:14.64
そこに書いてある
git remote add ...
git push ...
の二行。
0353takasi2016/01/07(木) 23:01:35.13
できました
0354片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 23:06:48.25
リモートレポジトリのURLをここに貼れ。
0355takasi2016/01/07(木) 23:08:49.56
0356片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 23:16:53.95
空っぽだ。何かBashにエラーメッセージが表示されなかったか?
Gitの設定ができていない可能性がある。
0357takasi2016/01/07(木) 23:21:25.49
>>336の赤字以外特にエラーはありませんでした
https://i.gyazo.com/931d10ca0210c42451a813dd94a2ab2b.png
ここでメールアドレス教えろ言われてますけどこれですかね?
0358片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 23:26:12.21
>>357
それだ。書かれた通りにgit configしてエラーが出たところからやり直せ。
Gitの鍵の設定は終わってるか?
0359takasi2016/01/07(木) 23:32:03.81
できました
鍵の設定は何のことやら分かりません
0360takasi2016/01/07(木) 23:34:34.80
https://i.gyazo.com/9cedaac0e767f618ebd6149e48b63412.png
これのことでしょうか?これはユーザーネームを入力するのですか?それともログインパスでしょうか
0361片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 23:35:09.83
0362片山博文MZ ◆T6xkBnTXz7B0 2016/01/07(木) 23:44:44.49
もう寝なさい
妖怪「めのしたクマー」にならないように
0363takasi2016/01/07(木) 23:52:51.29
あと少し付き合って下さいお願いします!!!
>>360まで終わりましたまたgit remote add origin https://github.com/takasi-desu/CSharpTest.git
git push -u origin masterを入力すれば良いのでしょうか
0364takasi2016/01/07(木) 23:54:34.96
適当にいじってたらできました!!!!!!!

https://github.com/takasi-desu/CSharpTest.git
0365takasi2016/01/07(木) 23:56:23.54
ここまでやりましたがGitHubが何なのかGitが何なのかコミットの言葉の意味とかよくわからないなまま色々入力しましたがとりあえずは休憩しますありがとうございました
0366takasi2016/01/07(木) 23:58:56.27
なんか個人情報とか漏れてませんよね色々入力したりアップしたので心配です
0367仕様書無しさん2016/01/08(金) 00:47:26.91
たかしってもしかして飲み込み速いんじゃね!!
0368仕様書無しさん2016/01/08(金) 07:39:34.66
すげえ!!
0369仕様書無しさん2016/01/08(金) 11:45:21.90
案外みんな優しいのな
イチが総攻撃されるスレかと思ってきてみたら
0370仕様書無しさん2016/01/08(金) 16:23:36.44
あげ
0371takasi2016/01/08(金) 17:48:17.50
おはようございます
ありがとうございます
今日は体調が優れない為お休みさせて頂きます
おやすみなさい
0372仕様書無しさん2016/01/08(金) 18:31:24.30
職業訓練3年前いったけどなかなか良かったよ
仕事やめて2年ニートして行ったんだが、まず生活習慣変えるのがきつかった
毎月10万もらえるんだが、遅刻欠席に異様に厳しくて1回でも理由ない遅刻欠席したら0円
もう必死に通ったよ
授業も二進数とかネットワークの仕組みとか本当基礎から初めてくれてありがったかった
1日が9:30〜16:00だったから放課後にちょっと勉強して、卒業するときには応用情報取って、技術的にはJavaでWEBアプリケーション作れるようになってた
就職先も斡旋してくれて、面接の練習もしてくれてなんとか就職できた
最近ようやく設計にも関われるようになった
0373仕様書無しさん2016/01/08(金) 22:14:15.50
>>366
全てのファイルを見たけど個人情報はなかったよ
ちょっぴり漏れるのを期待してたんだけどな
0374仕様書無しさん2016/01/08(金) 22:21:30.24
差分がデカすぎる
殺人的プルリクが早速合って少しワロタ
0375仕様書無しさん2016/01/09(土) 00:23:00.42
片山さんもtakashiさんもすごいな。
片山さんやさしい。
寝なさいとかいってくれる上司がほしい。
働けとはいうけど寝なさいとか言ってくれる上司はいないからなーー
0376仕様書無しさん2016/01/09(土) 13:24:06.83
自演だろ
0377takasi2016/01/09(土) 13:39:06.40
おはようございます
職業訓練は今考えています、給付金は頂けないと思いますが
休み明けにでもハロワに行ってきます

差分がでかすぎるとは何か余計なものまでアップしちゃいましたかね
先生から直しを頂いたのですが後で保存の仕方調べておきます

半分ノリで建てた部分もあるんですが、まさかここまで熱心に教えてもらえるとは思いませんでした
なので僕も頑張りたいです

自演にしろ自演でないにしろ僕が勉強してることは事実なので生暖かく見守って下さい
ちょいと久しぶりの外出をして帰宅後に猫でも分かる〜を読んで勉強したいと思います
先生が来たら授業の続きを受けたいと思いますそれではさようなら
0378仕様書無しさん2016/01/09(土) 13:56:49.72
たかしは何歳なの?
0379仕様書無しさん2016/01/09(土) 14:41:21.62
0380仕様書無しさん2016/01/09(土) 14:43:49.49
>>377
> 差分がでかすぎるとは何か余計なものまでアップしちゃいましたかね

"katahiromz"って人からのPull Request(通称プルリク)があるでしょう
その"改良してみたよ"のコミットがデカすぎるwと、>>374で書いただけ

アナタの"second commit"には何の問題もないよ
0381takasi2016/01/09(土) 18:45:54.99
おはようございます

僕は26です

問題なかったですか良かったです
0382片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 18:55:46.50
GitHubのレポジトリを開いてプルリクの内容を確認してmergeしてみて。
0383takasi2016/01/09(土) 19:17:11.94
おはようございます
今からやります
0384takasi2016/01/09(土) 19:22:06.94
mergeしました自分がなにやってるかわからないんですけど大丈夫ですかね
0385片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 19:26:22.74
Gitとは分散型のバージョン管理システムだ。
GitHubはGitリモートレポジトリを管理するウェブサービスだ。
レポジトリとはソフトウェアの格納庫のようなものであり、
主にパッケージやライブラリのソースを保管する。
0386片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 19:30:09.79
今度は、ローカルレポジトリにpullしてみなさい。
pushは押す、pullはその反対の引き出す。
タンスの引き出しを連想するといい。
0387片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 19:36:38.32
すまない、初心者はpullを使わなくてもいい。代わりにcloneしてみてくれ。
適当なフォルダで
git clone https://github.com/...(以下略)
を実行してみてくれ。
0388takasi2016/01/09(土) 19:43:05.59
できました フォルダにファイルがDLされました
0389片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 19:45:52.12
そのローカルリポジトリでもバージョン管理されているのを
確認するために「git log」を実行してみてくれ。
0390takasi2016/01/09(土) 19:49:08.98
プログラムの変更履歴みたいなのが出てきました
0391片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 19:50:33.80
viというエディタが起動する。矢印キーやPgDnキーでスクロールできる。
viの終了にはqを押す。
0392takasi2016/01/09(土) 19:52:06.90
ログは出てきましたけどエディタは起動していません
0393片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 19:55:19.53
そこに出てきたのはコミットした記録だ。
git commit -m "(メッセージ)"
で指定したメッセージがタイトルになる。
複雑な文字列はハッシュだ。これがコミットのIDである。
コミットとは確定とか確約などの意味があるが、日本語には適当な訳語はない。
Gitはすべてのコミットを記録する。
0394片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 20:00:37.58
ログが短いときはviは起動せずコンソールに出力されるだけだ。
0395takasi2016/01/09(土) 20:00:54.25
なるほどなんとなくわかってきました
さっきのpullはgitでプロジェクトフォルダ上でpullしろって事だったんですね
そうすれば新しいバージョンにプログラムが更新されると
0396片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 20:04:45.33
課題。編集メニューを追加し、「切り取り」「コピー」「貼り付け」
「削除」「すべて選択」ができるようにしなさい。
さらに変更ファイルをgit statusで確認、git addしてコミットしなさい。
0397takasi2016/01/09(土) 20:08:16.36
始めます
0398片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 20:35:44.62
わかったかな?
textBox.Cut();
textBox.Copy();
textBox.Paste();
textBox.SelectedText = "";
textBox.SelectAll();
0399takasi2016/01/09(土) 20:40:17.93
今からコミットします
0400片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 20:44:56.76
引き出しを押してリモートに保管しなさい。
おまじないは「git push origin master」だ。
0401takasi2016/01/09(土) 21:00:59.38
同じレポジトリ?にコミットする場合は以前コミットしたフォルダでコミットしなければなりませんか?
先ほどクローンしたプログラムのフォルダの名前が以前のと違っていたので
クローンのプログラムに手を加えてaddしてコミットしたんですが、いくつかのファイルが無いってエラーがでました
0402片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 21:01:56.05
Gitのその他、役に立つコマンドを紹介する。
「git diff」でコミット後の変更点を見る。
「git diff (ファイル名)」でコミット後のファイルの変更点を見る。
「git checkout (ファイル名)」でファイルをコミット直後の状態に戻す。
0403takasi2016/01/09(土) 21:02:58.49
最初にレポジトリを作成した時のフォルダはTextEditer301で今回はCSharpTextをコミットしようとしました
0404片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 21:05:15.21
>>401
「git status」の結果を見せて
0405片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 21:07:20.01
「git mv (旧ファイル名) (新ファイル名)」は名前の変更。
「git rm (ファイル名)」はファイルの削除。
0406takasi2016/01/09(土) 21:08:39.84
0407片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 21:11:13.30
>>406
エラーメッセージは?
0408takasi2016/01/09(土) 21:15:09.60
error: pathspec 'second commit' did not match any file(s) known to git.
です
0409片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 21:18:14.74
git commit -m "4th commit"
0410takasi2016/01/09(土) 21:20:01.25
できました!!
-m が無かったのが原因です失礼しました
0411takasi2016/01/09(土) 21:22:31.79
GitHubに無事反映されました
0412takasi2016/01/09(土) 21:25:21.78
赤は変更前で緑が変更後だと思うんですが、いじってないところもハイライトされてるので見辛いですね
こういう仕様なんですかね
0413片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 21:26:20.15
ローカルリポジトリの記録は「.git」という隠しフォルダに記録される。
コミット内容を消したい場合は.gitを削除すればいい。
0414片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 21:28:01.78
>>412
無視したいファイルは.gitignoreに相対パスで指定する。
0415片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 21:31:38.11
ソースファイル(*.cs)はコンパイルされてオブジェクトファイル(*.obj)が出力される。
オブジェクトファイルとライブラリを組み合わせて.exeファイルにする処理をリンクという。
一連のコンパイルとリンクのことをビルドという。
0416takasi2016/01/09(土) 21:34:56.60
ファイルというか中身のコードですねhttps://i.gyazo.com/1688c0e20b691be3f118b3e6129e56a3.png
Form1.csは138行以降から新規にコードが記述されましたが1-27は何も変更していないのにハイライトされてるので
どこが違うんだ〜と探しちゃいますね
0417片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 21:36:26.85
>>416
おそらく改行コードの違いだろう。
0418takasi2016/01/09(土) 21:39:41.14
ああそういえば先生のプログラムに手を加えるときに書式がなんたらかんたら言われて適当に押した覚えがあります
それですね
0419takasi2016/01/09(土) 21:41:58.25
ここまで把握しました
0420片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 21:42:39.60
0421takasi2016/01/09(土) 21:51:05.60
そこを見てgit config --global core.autoCRLF falseをしました
statusで確認したらcore.autocrlfが2つあって3行目のcore.autocrlfはtrueで
最後の行のcore.autocrlfはfalseでちゃんと設定できたかよく分かりませんね
0422takasi2016/01/09(土) 21:54:28.50
いじってみたら最後の行だけ変わるみたいですね、この問題は自分で調べておきます
0423片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 21:57:42.32
まだ時間あるな。
「編集」→「元に戻す」(undo)と「ヘルプ」→「バージョン情報」を実装せよ。
0424片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 22:01:57.56
終わったら試しに「git diff」してみて。
それからadd, commit, pushだ。
0425片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 22:22:38.35
「バージョン情報」というフォームを作って
バージョン情報をそこに記載する。
それをモーダルダイアログとして表示する。
0426takasi2016/01/09(土) 22:30:09.24
git diffしました
文字が出続けてるんですが終わるまで待てばいいですか?
0427takasi2016/01/09(土) 22:33:04.48
なかなか終わらないんでエンター押しっぱなしにしたらENDになったんですが
閉じようと思ったらまだプロセスが動いてると警告出ました
時間かかりますかね?
0428片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 22:33:46.52
>>426
矢印キーやPageUp/PageDownキーを押してみて。
終わるにはqを。
0429片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 22:38:48.96
お困りですか?
0430takasi2016/01/09(土) 22:39:35.70
5thコミット完了しましたhttps://github.com/takasi-desu/CSharpTest
0431takasi2016/01/09(土) 22:41:19.72
core.autoCRLF falseちゃんと機能してました
0432片山博文MZ ◆T6xkBnTXz7B0 2016/01/09(土) 22:45:02.86
おやすみなさい
0433takasi2016/01/09(土) 22:45:50.93
本日もありがとうございましたおやすみなさい
0434片山博文MZ ◆T6xkBnTXz7B0 2016/01/10(日) 03:43:22.75
【今後の予定】
プルリクの方法
GUIデザイン
マルチメディア
データベース
ネットワーク
0435片山博文MZ ◆T6xkBnTXz7B0 2016/01/10(日) 20:44:55.02
勇者はおらんのか?
0436takasi2016/01/10(日) 22:45:42.75
申し訳ありません!!!!!!!!!
なかなか寝付けず今起きました
明日頑張ります
おやすみなさい・・・
0437仕様書無しさん2016/01/11(月) 00:00:52.53
片山さん共同プロジェクトの授業の予定があったら呼んでください馳せ参じますからね
0438片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 00:06:29.40
はい、無断欠勤ひとーつ。減給ね。
0439takasi2016/01/11(月) 06:44:44.66
(T_T)

寝れません
本での学習は進んでいます 猫でもわかるC# 142/404p
授業には間に合いたいです
おやすみなさい
0440仕様書無しさん2016/01/11(月) 13:45:50.57
>>439
猫はわかりやすい?
0441仕様書無しさん2016/01/11(月) 15:33:10.17
C#やるなら、LINQPadがチョー便利
フリー版でも十分使えるぞ
これ豆な
0442takasi2016/01/11(月) 19:17:14.85
おはようございます
0443片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 19:22:20.87
https://github.com/katahiromz/JankenGUI
これをForkしたものをローカルにcloneしてみたまえ。
Forkとは、方向性の違う分家を作り、自分好みに変えるために、
自分のリポジトリとして複製することだ。
0444takasi2016/01/11(月) 19:24:50.91
>>440
分かりやすいですけど完全な初学者向けではないかもしれません
2進数やビットが何も解説無く出てくるので
別に知らなくても読み進められますけど、猫でも分かるはいいすぎかもしれませんにゃ

LINQはまだ学習していませんがそこまで行ったら使ってみますね
0445takasi2016/01/11(月) 19:26:06.27
先生おはようございます
寝起きなので少々お待ち下さい
0446片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 19:27:00.43
JankenGUI.slnを開き、デザインフォームで二つのPictureBoxのWidth,Heightを60にしなさい。
ドラッグやShiftキーでフォーム上のコントロールを複数選択し、VSの
「書式」メニューを使ってコントロールの位置を調整しなさい。
0447片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 19:32:14.41
同じフォルダにある音声ファイル(*.wav)や画像ファイル(*.png)を確認。
ソリューションエクスプローラの「Properties」をダブルクリック。
リソースを選択。「リソースの追加」の右三角をクリック、
「既存のファイルの追加」を選ぶ。ファイルの種類を「ビットマップ」にし、
Shiftを押しながらpngファイルをすべて選択して開く。
オーディオのwavファイルも同様。
0448片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 19:35:33.57
ここで「リソース」というのは、EXEファイルにデータを埋め込む機構のことだ。
データが埋め込まれていないデータファイルなら、容易に第三者に盗用されてしまう。
リソースはある程度これを防ぐ。
0449takasi2016/01/11(月) 19:36:51.66
今から始めます
スタート
0450片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 19:40:31.55
button1をダブルクリック、次のコードを追加。
「pictureBox1.Image = Properties.Resources.gu;
var player = new System.Media.SoundPlayer(Properties.Resources.gu1);
player.PlaySync();」
できたら、デバッグ実行して、button1をクリックしてみよ。
0451片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 19:45:49.55
コントロールはFontプロパティで文字を大きくしている。
また、ボタンを大きくした文字列に合わせるためにAutoSizeをTrueにした。
0452takasi2016/01/11(月) 19:48:37.97
デザインフォームはどうやって表示させるのでしょうか?
slnファイルを開きエクスプローラからファイル一つ一つクリックしたのですが
コードが表示されるだけです
0453takasi2016/01/11(月) 19:49:16.22
右クリックからビューデザイナで表示できました失礼しました
0454片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 19:50:06.53
課題。ジャンケンゲームを完成させなさい。
ボタンとフォームの背景色を変更しなさい。
フォームはサイズ変更できないようにしなさい。
0455takasi2016/01/11(月) 20:03:30.19
課題始めます
0456仕様書無しさん2016/01/11(月) 20:05:49.76
>>444
あ、勘違いしてる
LINQPadはLINQ専用のツールじゃないよ

ちょっと試したいC#コードの断片がある時に、
わざわざVisual StudioでSolutionやProjectとか作らずに
気楽に試すことができるツール
0457片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 20:06:34.60
フォームが読み込まれたときの処理はLoadイベントで行う。
表示されたときの処理はShownイベントで行う。
イベントはプロパティウィンドウのカミナリをクリックすれば見られる。
0458片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 20:13:34.58
画像がPictureBoxからはみ出る場合は
SizeModeプロパティをいじるとよかろう。
ちなみに、画像はGoogle画像検索で「ジャンケン フリー素材」を検索して拾った。
音声は自分で録音したものだ。
0459片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 20:17:14.83
自分で画像を用意したい場合はGIMPやInkscapeといったフリーソフトで
作成・編集したり、カメラやスキャナで取り込んだりするとよい。
0460takasi2016/01/11(月) 20:23:30.63
>>456
課題終わったら使ってみます!

思ったより頭が働いてないので少し時間かかります
0461片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 20:29:58.66
リソースデータは名前で参照する。名前が重要だ。
どのリソースを使うかは、名前で決めないといけない。
0462仕様書無しさん2016/01/11(月) 20:36:45.79
>>460
気が向いたらでおkっす
0463片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 21:01:55.05
ヒント:ボタンのクリック処理を関数で共通化
0464片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 21:06:36.41
ヒント:勝ち負け判定関数
0465takasi2016/01/11(月) 21:11:19.73
最序盤でつまづいています
スタートボタンを押して開始→手をクリック→手を受け取り条件分岐
こういう流れで行きたいのですが
えーまず、メインのジャンケンの処理をどこに記述すればよいのかで混乱しています
0466takasi2016/01/11(月) 21:17:10.61
頭のなかではこんな感じなのですがhttps://i.gyazo.com/18d3d208948dbd5047961437a72d9359.png
実装の仕方がわからず・・・
さっさと質問しとけばよかったですすみません
0467片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 21:20:18.45
... button1_click(...) {
show_hand(1);
}
... button2_click(...) {
show_hand(2);
}
... button3_click(...) {
show_hand(3);
}
void show_hand(int player_hand) {
int comp_hand = get_comp_hand();
...手を表示する処理をここに書く...
switch(hantei(player_hand, comp_hand)) {
...勝ち負けを表示...
}
}
0468takasi2016/01/11(月) 21:24:17.30
ありがとうございます
分からなかったらまた聞きます
行ってきます
0469takasi2016/01/11(月) 22:30:37.72
今日中に終わらなそうです
0470片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 22:32:51.24
残りは明日にするか。
どこまでできた?
0471takasi2016/01/11(月) 22:42:42.02
判定して結果を表示させる所まで来ました
あとはあいこのループ処理と画像の表示と音声のタイミングが合ってないのでそれを直すことです
0472takasi2016/01/11(月) 22:46:06.33
・スタートおした時のジャンケンポンの効果音
・判定後のスタートをリセット
・画像のサイズをあわせる
まだまだありました
0473takasi2016/01/11(月) 22:46:37.45
明日の授業までに終わらせておきます
0474片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 22:48:43.00
PlaySyncを使うとそこで処理が動かなくなる。
画像を変えるなら再生の前にするとよい。
一方、Playは非同期で動く。
非同期再生処理のタイミングを調整したいなら、スレッドを使うことになる。
0475takasi2016/01/11(月) 22:51:07.18
分かりました
頭をすっきりさせるためにお風呂に入ってきます
0476片山博文MZ ◆T6xkBnTXz7B0 2016/01/11(月) 22:51:07.43
今日もよくがんばった。おやすみ。
0477takasi2016/01/11(月) 22:51:32.48
本日もありがとうございました!!おやすみなさい
0478takasi2016/01/12(火) 00:56:08.92
>>454
なんとか完成しました

今までは一つのメソッドに処理書いていたので楽でしたが
今回はメソッド同士の値の受け渡し?などがよく分かってなくて難しかったです
数こなしてなれるしか無いですね
0479片山博文MZ ◆T6xkBnTXz7B0 2016/01/12(火) 11:11:05.72
>>478
add, commit, pushしてから、Githubでプルリクしなさい。
0480takasi2016/01/12(火) 16:48:13.54
おはようございます
プルリクエストしてみました。ちゃんとできていますでしょうか
体調不良のため途中で離脱するかもしれません
0481片山博文MZ ◆T6xkBnTXz7B0 2016/01/12(火) 17:14:09.31
今日の勉強会は休みにします。
0482takasi2016/01/12(火) 17:20:28.56
分かりました、自習します
0483仕様書無しさん2016/01/12(火) 18:49:16.21
先生、たかし君のペースでいいので是非データベースとの連携もご教示ください!
0484takasi2016/01/13(水) 13:50:41.92
病院行こうと思ったら午前で終わってました
おはようございます
0485片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 19:10:53.68
ジャンケンゲームの続きだ。
https://github.com/katahiromz/JankenGUI
これを適当なフォルダにcloneしてソースを眺めてみよ。
0486takasi2016/01/13(水) 19:26:21.36
おはようございます
始めます
0487片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 19:32:23.31
Visibleプロパティをfalseにすると非表示になる。
SoundPlayer.Stopで音を止めることができる。
0488片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 19:37:24.49
コードを読んだ感想を述べよ。
0489takasi2016/01/13(水) 19:47:25.22
僕のぐっちゃぐちゃなコードに比べるとすごく綺麗にまとまっていて
これはどういう動作をするコードなのかひと目で分かります
条件分岐の負けの判定の仕方でelse if ((3 + player_hand - comp_hand) % 3 == 1)
を見てこれはすげえと思いました
全体のコード量は少ないですが、すっきりしていて感動しました
そして自分にこんな綺麗に書ける自信が無くて胃が痛くなりました
0490takasi2016/01/13(水) 19:49:19.08
こういうやり方もあるのかと色々発見がありました
以上、小学生並みの感想文でした
0491takasi2016/01/13(水) 19:52:11.35
あとじゃんけんゲームがなかなかおもしろいです
0492片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 19:57:19.20
その判定は大学数学の剰余類という概念を使っている。
多分、大学一年生で習うだろう。
0493takasi2016/01/13(水) 20:04:12.87
初めて聞いた単語で胃が痛くなりました
とりあえず頑張ります
ちなみに僕は数学は大の苦手です
数学の知識があったほうがどう考えてもいいですね
0494片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 20:04:33.55
今日はアプリの設定データについて勉強する。
アプリを終了した後でも、データを保存しておきたい場合、
ファイルやレジストリにデータを記録することになる。
レジストリはWindowsが持っている、階層構造を持ったデータベースで
あり、ファイルとは異なる。
0495片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 20:10:02.84
二つのTextBoxをフォームに配置し、さらにOKボタンとキャンセルボタンを置く。
0496takasi2016/01/13(水) 20:12:34.79
置きました
0497片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 20:18:30.96
OKボタンをダブルクリックして、次のコードを追加。

var key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Takashi\MySoftware");
key.SetValue("Text1", textBox1.Text);
key.SetValue("Text2", textBox2.Text);
key.Close();
0498takasi2016/01/13(水) 20:20:17.35
追加しました
0499片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 20:23:26.62
プログラムを実行してOKを押す。これでレジストリに書き込まれた。
Win+Rキーを押してregeditと入力してEnterキーを押す。
これでレジストリエディターが起動する。
HKEY_CURRENT_USER\Software\Takashi\MySoftwareがあることを
確認せよ。
0500takasi2016/01/13(水) 20:28:09.63
Tkashi\Mysofrwareとレジストリを確認しました
0501片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 20:31:55.02
次は読み込みだ。フォームのLoadイベントに次のコードを追加。

var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware");
textBox1.Text = key.GetValue("Text1");
textBox2.Text = key.GetValue("Text2");
key.Close();
0502片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 20:36:28.82
文字列リテラルに@が付いているのは\によるエスケープシーケンスを解釈しないためだ。
以前、"\n"は改行を表すと言った。"\t"はタブ文字だ。このように通常、""の中の\は特殊な解釈をする。
0503takasi2016/01/13(水) 20:41:47.46
オブジェクト型はString型に代入できないと注意されたのでConvert.ToStringしましたが大丈夫でしょうか

private void Form1_Load(object sender, EventArgs e)
{
var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware");
textBox1.Text = Convert.ToString(key.GetValue("Text1"));
textBox2.Text = Convert.ToString(key.GetValue("Text2"));
key.Close();

}
0504片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 20:41:56.00
レジストリはシステムの資源を占有するので、サイズの大きなデータを書き込むべきではない。
大きな設定データはファイルに記録する。
ではどこに設定ファイルを書き込めばいいか?
特殊フォルダのAppDataに書き込むのがいいとされる。
0505片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 20:45:29.99
>>503
key.GetValue("Text1").ToString();
でOKだ。
0506片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 20:49:48.52
特殊フォルダの場所を取得するには次のように書く。
var path = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
0507片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 20:57:53.42
読み込みされるか実行して確認せよ。
次にレジストリエディタでMySoftwareキーを削除してプログラムを再起動せよ。
例外が発生するはずだ。実はキーが開けないときkeyはnullになる。
nullというのは無効なデータのことだ。
0508takasi2016/01/13(水) 21:01:26.06
読み込まれないです!
https://i.gyazo.com/f2e5ff48bd5fa2390e783ff8d86d6c9e.png
Form1_Loadは初めから存在してなかったので自分で作ったのですがこれが原因でしょうか
0509片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 21:03:06.24
キーが開けないときや作れないときはkey == nullになる。
このまま書き込んだり、読み込もうとすると例外が発生してしまう。
対処法はnullチェックをすることだ。
if (key != null) {
...
key.Close();
}
0510片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 21:04:38.96
>>508
それはいったん消してプロパティウィンドウ
からイベントを追加せよ。カミナリのアイコンだ。
0511takasi2016/01/13(水) 21:12:54.68
>>507例外がスローされるのを確認して
>>509nullチェックで回避しました
0512takasi2016/01/13(水) 21:19:18.77
あ、読み込みも問題なくできました
0513片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 21:20:52.39
課題。ジャンケンゲームでの勝ち・負け・引き分けの回数を
レジストリに記録するようにせよ。
0514片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 21:22:48.11
アプリ設定に使ったファイルやレジストリキーを消すのは、
インストーラ側で行うことが多い。
0515片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 21:34:51.21
課題が出来たら、プルリクせよ。残り時間は自習とする。
0516片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 22:11:34.19
質問はありませんか?
0517takasi2016/01/13(水) 22:19:11.11
質問はありませんが、値の受け渡しで頭がぐるぐるしてます

とりあえずsave_keyメソッドとload_keyメソッドを作りぐっちゃぐちゃやってます頑張ります
0518takasi2016/01/13(水) 22:45:21.86
えーと、やりたいことは分かっているんですが思考が迷子です
時間がかかりそうなので宿題とさせて下さい
えーとプログラミング適正無しでしょうか悲しいです
0519片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 23:12:37.34
ヒント:
アプリ側で保持するのは、回数が増えた分だ。現在の回数ではない。
レジストリへのアクセスは読み書きを一度に行う。
アプリ側の増分だけレジストリの回数を増やした後でアプリ側の増分をゼロにする。
回数を増やすのは勝敗引き分けが決まったときに行う。
回数の増分はフォーム側ではなくプログラム側で保持する。
0520片山博文MZ ◆T6xkBnTXz7B0 2016/01/13(水) 23:16:19.59
おやすみ。身体を冷やすなよ。
0521片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 20:36:18.94
ヘイ、ヨー!
始めっぞ
0522takasi2016/01/14(木) 20:40:53.10
おはようごじます・・・
0523片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 20:44:14.18
さあーて、どこまでできたかなっ♪
0524takasi2016/01/14(木) 20:50:08.39
正直に言いますとまだ出来ていません
あまりの出来の悪さに悲しみに暮れ寝て起きたら今です
○にたい
0525片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 20:54:55.82
ヘイ、まずは、三つのint型のメンバー変数を追加するよぉ。
初期値はゼロだぜぃ。
int kachi_count = 0;
int make_count = 0;
int aiko_count = 0;
0526takasi2016/01/14(木) 20:56:23.94
追加しました
0527片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 20:58:47.83
お次は、勝敗判定の箇所を探してみよー。
hantei関数の呼び出しをしている場所があるよね。
ここで判定に応じてカウント変数を1つ加算だよお!
0528takasi2016/01/14(木) 21:02:23.71
加算できました
0529片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 21:03:36.91
その後にレジストリのカウント値を更新だ。
CreateSubKeyはキーがなければキーを作成してそれを開く。
あればそのまま開く。
カウント値はGetValueで取得、SetValueで設定だ。
しかしまだ値を設定していないときにGetValueしたらどうなるか?
0530takasi2016/01/14(木) 21:05:55.97
例外がスローされます
0531片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 21:17:48.07
>>530
ノーノー、nullが返される。
var value = key.GetValue("KachiCount");
int count = kachi_count;
if (value != null)
{
count += Convert.ToInt32(value);
}
...
0532片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 21:20:30.78
そしてcount.ToString()をSetValueしてからkachi_countをゼロにする。
他のカウント変数も同様だ。
0533takasi2016/01/14(木) 21:23:48.93
どのタイミングでキーを作成しなければいけないのか分からないです
0534片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 21:25:18.15
カウントを表示するのは別のフォームで行う。
新しくフォームを追加だ。
その上にラベルをいくつか追加。
フォームのLoadイベントでレジストリを読み込んでラベルテキストをセット。
OKボタンでフォームを閉じるようにする。
0535片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 21:28:59.98
>>533
いつカウントを更新するかは、自由に決めることができる。
アプリが終了するときか、フォームが閉じたときか、カウンタが更新したときか。
ここではすぐに更新してほしいので、hantei関数が呼ばれた後に
レジストリを更新する。
0536片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 21:33:18.31
どうだね? 作れそうかな?
0537takasi2016/01/14(木) 21:33:36.08
>>534
private void Form2_Load(object sender, EventArgs e)
{
var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware");
label4.Text = key.GetValue("KACHI").ToString();
label5.Text = key.GetValue("MAKE").ToString();
label6.Text = key.GetValue("AIKO").ToString();
}
で大丈夫ですよね
0538片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 21:35:57.02
>>537
try/catchしないならkeyとvalueのnullチェックが必要だよ。
0539takasi2016/01/14(木) 21:36:07.69
レジストリの更新はメソッドを新たに作成してそこでやらせたほうがいいですよね
0540片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 21:37:03.59
>>539
そうだね。
0541片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 21:45:20.04
\MySoftware
のところは
\JankenGUI
にしておこう。
0542takasi2016/01/14(木) 21:46:11.30
var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware");
if (key != null)
{
var value_kachi = key.GetValue("KACHI");
var value_make = key.GetValue("MAKE");
var value_aiko = key.GetValue("AIKO");
if (value_kachi != null) label4.Text = key.GetValue("KACHI").ToString();
if (value_make != null) label5.Text = key.GetValue("MAKE").ToString();
if (value_aiko != null) label6.Text = key.GetValue("AIKO").ToString();

こういうことでしょうか
0543片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 21:48:05.12
if (value_kachi != null) label4.Text = key.GetValue("KACHI").ToString();
ちょっと無駄があるな。
if (value_kachi != null) label4.Text = value_kachi.ToString();
こっち。
0544片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 21:57:22.37
git add -a
git commit -m "add counters"
git push origin master
0545片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 22:05:30.78
どうだね?
何があっても、とにかく陽気に行こうぜ
0546takasi2016/01/14(木) 22:13:32.93
もう少しで動かします
0547片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 22:14:28.61
どうした? ん?
0548片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 22:21:25.15
ブラインドタッチの特訓と基本情報の取得が必要だな。
1ヶ月以内にブラインドタッチをマスターして、
1年以内に基本情報を取得しなさい。
0549takasi2016/01/14(木) 22:24:31.61
上手くいきません
とりあえず現時点のコードをコミットした方がいいですか
0550片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 22:25:37.85
レジストリの更新はカウント加算の後だ。
0551takasi2016/01/14(木) 22:27:44.43
ブラインドタッチ一応できます・・・
実質的な死刑宣告と捉えたほうが良いですか・・・
0552takasi2016/01/14(木) 22:29:36.69
switch (hantei(player_hand, comp_hand))
{
case HanteiKekka.HANTEI_KACHI:
label3.Text = "あなたの勝ちです";
kachi_player.Play();
++kachi_count;
save_key("KACHI");
break;
case HanteiKekka.HANTEI_MAKE:
label3.Text = "あなたの負けです";
make_player.Play();
++make_count;
save_key("MAKE");
break;
case HanteiKekka.HANTEI_AIKO:
label3.Text = "あいこ";
aiko = true;
++aiko_count;
save_key("AIKO");
break;
}
0553片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 22:30:23.51
じゃあ、pushしといて。
明日見るから。
0554takasi2016/01/14(木) 22:31:57.33
わかりましたpushしておきます
0555片山博文MZ ◆T6xkBnTXz7B0 2016/01/14(木) 22:32:05.26
今日はおやすみ。
0556takasi2016/01/14(木) 22:33:02.13
すみませんでした
おやすみなさい
0557takasi2016/01/14(木) 23:36:49.80
$ git push origin master
remote: Permission to katahiromz/JankenGUI.git denied to takasi-desu.
fatal: unable to access 'https://github.com/katahiromz/JankenGUI/': The requested URL returned error: 403

ぐぬぬ
0558仕様書無しさん2016/01/15(金) 00:55:53.21
0559片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 01:19:31.01
あ、フォーク忘れてた? ごめんね。
0560takasi2016/01/15(金) 02:12:03.82
んぐぐぐぐぐぐぐ
プスプスプスシューーーーーーーーーーー
0561takasi2016/01/15(金) 02:20:50.29
なぜでしょうpushができません
0562片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 07:48:52.11
>>561
自分のリポジトリじゃないからね。
最初にforkすべきだった。
pushしなくていいよ。変更点少ないし。
0563takasi2016/01/15(金) 08:22:44.17
0564片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 16:39:11.05
いくつか注釈しておこう。
引数がゼロ個の関数を作ることができる。
save_keyは引数のない三つの関数に分けた方がいい。
記録がない場合はゼロ回として扱うべきだ。
異常な表示にならないようにすべての場合の「状態」を管理しないといけない。
0565片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 19:39:31.24
JankenGUIにリソースのアイコン(*.ico)を追加せよ。フリー素材で構わない。
可能ならばJankenGUIに署名を行え。
JankenGUIをReleaseビルドせよ。
Inno Setupをダウンロード&インストールせよ。
0566片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 19:41:08.11
Inno Setupのウィザードに従ってインストーラのスクリプト(*.iss)を試作せよ。
スクリプト中の絶対パスを相対パスにせよ。
JankenGUIが使っている.net frameworkのバージョンを確認せよ。
次のサイトを参考にインストール時に.net frameworkの有無をチェックするようにせよ。
http://qiita.com/bellx2/items/14ac4e02283d5c1ef12b
0567片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 20:09:15.33
今日はインストーラ作成を行う。今回の課題は英語ができないと難しいかも知れないな。
質問が有ったらお気軽に。
0568takasi2016/01/15(金) 20:14:40.64
おはようございます
準備ご始めます
0569片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 20:24:28.92
署名は多少時間がかかると思う。今日は後回しでいい。
0570片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 20:36:34.17
ローカルリポジトリ情報の隠しフォルダ「.git」を「rm -rf .git」で消す。
「rm -rf」はファイルやフォルダをまるごと消すLinuxのコマンドだ。
GitHubのTakasi-DesuのJankenGUIをSettingsから消して(delete)作り直す。
それからgit init, add, commit, push -uだ。
0571片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 20:39:05.60
git remote addも忘れずに。
0572片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 21:07:44.34
教員免許を持っていない私が指導するのだから、不充分な点も
あるかもしれないが、御了承頂きたい。
進捗報告を。
0573takasi2016/01/15(金) 21:20:27.37
Inno Setupの使い方を調べている途中です
0574片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 21:26:32.48
Releaseビルドしたなら、bin/Releaseフォルダにexeができているだろう。
これをInno Setupのウィザードでプログラムファイルとして指定する。
0575takasi2016/01/15(金) 21:43:42.57
使い方がさっぱりわかりません
exeファイルはできましたがInno Setupのウィザードでプログラムファイルとして指定するのはどうすればよいのでしょうか
0576片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 21:44:30.97
わからない点はある?
0577片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 21:47:26.33
>>575
Inno Setupは日本語になっているか?
参照ボタン(browse)をクリックして、ファイルの場所を指定する。
0578takasi2016/01/15(金) 21:52:54.29
参照ボタンはどこでしょうか?
開くはスクリプトファイルしか開けないようです
今この画面ですhttps://i.gyazo.com/3a0dffc78162915778d17ec7ea5504a3.png
0579片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 21:56:07.64
File→New
0580片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 22:07:21.09
英語が読めないなら、日本語化した方がいいんじゃないか?
0581takasi2016/01/15(金) 22:14:29.43
日本語化できますか?
インストールウィザードを日本語化するのしか見つかりませんでしたが
0582takasi2016/01/15(金) 22:21:56.78
先生、今回ばかりは無理かもしれません
使い方が全くわからなくて調べながらやらないといけないので時間が凄いかかると思います・・・
順序立てて教えていただければ分かりやすいですが、それもまた時間かかりそうですし・・・
0583片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 22:23:26.45
InnoEditXにしようか?
0584takasi2016/01/15(金) 22:26:31.40
簡単なのであればそちらでお願いします
DLします
0585片山博文MZ ◆T6xkBnTXz7B0 2016/01/15(金) 22:36:59.62
今日はこの辺でお開きといたしやしょう。
おやすみでござります。
0586takasi2016/01/15(金) 22:38:58.93
すみませぬ・・・・・・・・・おやすみなさい・・・・・・・・・・・・・・_(:3」∠)_
0587仕様書無しさん2016/01/15(金) 23:11:10.08
じゃんけんは意外と作るの面白いよね
がんば
0588仕様書無しさん2016/01/16(土) 15:14:46.12
0589片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 17:22:50.44
InnoEditXをDL、展開して適当なフォルダに配置する。
InnoEditXのReadMeを読んだ後で、InnoEditXを起動する。
「ツール」→「設定」で、Inno Setupの場所を指定する。
あらかじめJankenGUIにReadMe.txtとLicense.txtを追加しておく。

[Setup]タブをクリック。「基本情報」タブで、アプリの名前を入力
(「たかしのジャンケン」「たかしのジャンケン ver.1.0」)。
インストール先を入力({pf}\Takashi Janken)。
0590片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 17:23:50.31
「アンインストーラー」タブをクリック。
「アンインストーラーを作る」をチェック。
表示するアイコンに「{app}\JankenGUI.exe」を指定する。

{pf}は「C:\Program Files」などを表している。
{app}はインストール先のフォルダを表している。

「情報」タブをクリック。「製作者」「説明」「バージョン」を入力。
0591片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 17:24:15.92
「フラグ」タブをクリック。
「中断を許可」「UNCパスを許可」「アプリ用ディレクトリを作る」
「情報をレジストリに保存」をチェック。

「ダイアログ」タブをクリック。
「インストールを行いますダイアログを出さない」をチェック。

ここまで、[Setup]タブ。
0592片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 17:24:42.42
[Files]タブをクリック、リストを右クリックして「アイテムの追加」。
ソースファイルに「JankenGUI.exe」を選んで指定、
出力先ディレクトリを「{app}」にして、「OK」。
さらに「アイテムの追加」。「ReadMe.txt」を選んで指定、
出力先ディレクトリを「{app}」にして、「OK」。
さらにさらに「アイテムの追加」。「License.txt」を選んで指定、
出力先ディレクトリを「{app}」にして、「OK」。
0593片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 17:25:18.48
[Icons]タブをクリック。
このタブはショートカットアイコンの追加に関する設定だ。

リストを右クリックで「アイテムの追加」。
作成先を「{group}\たかしのジャンケン」に、
リンク先を「{app}\JankenGUI.exe」にして、「OK」。

さらに「アイテムの追加」。
作成先を「{commondesktop}\ReadMe.txt」に、
リンク先を「{app}\ReadMe.txt」にして「OK」。

さらにさらに「アイテムの追加」。
作成先を「{commondesktop}\License.txt」に、
リンク先を「{app}\License.txt」にして「OK」。
0594片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 17:26:45.27
さらにさらにさらに「アイテムの追加」。
作成先を「{commondesktop}\たかしのジャンケン」に、
リンク先を「{app}\JankenGUI.exe」にして「OK」。

さらにさらにさらにさらに「アイテムの追加」。
作成先を「{group}\アンインストール」に、
リンク先を「{uninstallexe}」にして、「OK」。

{group}は、スタートメニューの項目を表している。
{commondesktop}は、すべてのユーザのデスクトップを表している。
{uninstallexe}は、アンインストールプログラムを表す。

ここまで[Icons]タブ。
名前「JankenGUI.iss」を付けて保存。ビルドしてエラーがなければ
インストーラが作成される。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0595片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 19:12:34.29
>>593 訂正。
× 作成先を「{commondesktop}\ReadMe.txt」に、
○ 作成先を「{group}\ReadMe.txt」に、

× 作成先を「{commondesktop}\License.txt」に、
○ 作成先を「{group}\License.txt」に、
0596仕様書無しさん2016/01/16(土) 19:51:40.96
たかし書籍化パターンだろこれw
0597仕様書無しさん2016/01/16(土) 19:52:21.97
謝辞に片山先生へのお礼が書かれてるend
0598takasi2016/01/16(土) 20:07:07.86
おはようございます
ありがとうございます・・・
始めます
0599takasi2016/01/16(土) 20:45:19.33
0600仕様書無しさん2016/01/16(土) 20:48:10.27
どうでもいいことだろうけど、

>>594になぜ
Rock54: Cautionがついているのだろう

exeかな?
0601仕様書無しさん2016/01/16(土) 20:49:17.37
剛田たけしのジャイアンじゃんけん
0602片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 20:49:51.11
>>570-571の手順でGitHubにアップしてくれ。
以前のレポジトリは消えても構わない。
0603takasi2016/01/16(土) 20:53:08.37
作成したセットアップファイル?もフォルダに加えるんでしょうか
0604片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 20:53:33.06
.issもレポジトリのフォルダに入れて。
setup.exeは.gitignoreで除外して。
0605片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 21:12:03.30
修正1.JankenGUI.issをテキストエディタで開いて絶対パスの記述を相対パスに直しなさい。
修正2.使用しているレジストリキーをアンインストール時に削除するようにしなさい。
0606片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 21:14:19.67
終わったらInnoEditXで開いてビルド。
インストールしてインストールした項目をテスト、アンインストールを何度か繰り返しなさい。
0607片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 21:23:48.25
進捗報告を。
0608takasi2016/01/16(土) 21:36:08.78
今>>605です
0609片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 21:39:38.33
絶対パスと相対パスについてはご存じかな?
0610takasi2016/01/16(土) 21:45:31.48
いいえ
0611片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 21:50:20.18
現在のフォルダが「C:\Users」であるとき、「C:\Users\takasi\himitsu」という場
所(パス)は相対パス「takasi\himitsu」で参照できる。
「C:\Users\takasi\himitsu」は絶対パスだ。
パスを相対的に指定するか、絶対的に指定するかの違いだ。
0612takasi2016/01/16(土) 21:54:06.18
これを直すんですよね?
Name: "{group}\たかしのジャンケン"; Filename: "{app}\JankenGUI.exe";
Name: "{group}\ReadMe.txt"; Filename: "{app}\ReadMe.txt";
Name: "{group}\License.txt"; Filename: "{app}\License.txt";
Name: "{commondesktop}\たかしのジャンケン"; Filename: "{app}\JankenGUI.exe";
Name: "{group}\アンインストール"; Filename: "{uninstallexe}";
0613片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 21:58:08.41
{ }がついたものは直す必要ない。
[Files]の記述はどうなってる?
0614takasi2016/01/16(土) 21:59:43.12
[Files]はありません[Setup]と[Icons]のみです
0615片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 22:03:53.38
ファイルがインストールされていない。>>592をやり直して。
0616takasi2016/01/16(土) 22:13:40.06
これで良いでしょうか

[Files]
Source: "JankenGUI\bin\Release\JankenGUI.exe"; DestDir: "{app}";
Source: "JankenGUI\ReadMe.txt"; DestDir: "{app}";
Source: "JankenGUI\License.txt"; DestDir: "{app}";

[Registry]
Root: HKCU; Subkey: "Software\Takashi"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\Takashi\JankenGUI"; Flags: uninsdeletekey
0617takasi2016/01/16(土) 22:17:09.20
[Files]
Source: "bin\Release\JankenGUI.exe"; DestDir: "{app}";
Source: "ReadMe.txt"; DestDir: "{app}";
Source: "License.txt"; DestDir: "{app}";
こうでした
0618片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 22:17:41.38
JankenGUI.issは、フォルダJankenGUIの中にあるんだろ? だったら
Source: "License.txt"; DestDir: "{app}";
じゃないかい?
0619片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 22:19:04.50
>>617
それでOK。テストに入りなさい。
0620takasi2016/01/16(土) 22:20:47.16
問題なくインストールでき、アンインストール時にレジストリが削除されることを確認しました

_(:3」∠)_
0621片山博文MZ ◆T6xkBnTXz7B0 2016/01/16(土) 22:24:11.12
pushしたら今日はここまで。おやすみ。
0622takasi2016/01/16(土) 22:33:30.36
pushしました本日もありがとうございましたおやすみなさい_(:3」∠)_
0623takasi2016/01/16(土) 22:36:16.91
ツールの使い方が全くわからない辛い・・・
0624片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 13:09:32.88
JankenGUIのプロパティの「公開」タブをクリックして、マイナー
バージョンを1にし(1.1)、Releaseバージョンをビルドしなさい。
プログラムに変更が有った場合、プログラムをバージョンアップしないと
インストーラがファイルを更新しないことがあるので注意。
JankenGUI.issをInnoEditXで開いて[Setup]タブをクリック。
「デフォルトのスタートメニューグループ名」を「たかしのジャンケン」にしなさい。
0625片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 13:15:15.24
[Languages]タブをクリック。リストを右クリックして、名前を「Japanese」にし、言語ファイルで「Languages」→「Japanese.isl」を順に選んで「OK」。
[Setup]タブをクリック。「基本情報」と「情報」のバージョンを1.1にしなさい。
「基本情報」の「出力」の「セットアップファイルの出力時の名前」を
「tjanken-1.1-setup.exe」にしなさい。古いsetup.exeは削除。
.gitignoreで「tjanken-*-setup.exe」を無視するように設定しなさい。
0626片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 13:21:21.93
JankenGUIを自由に改良しなさい。1つ改良するたびにgit add, git commitしなさい。
改良に失敗したら「git checkout (ファイル名)」で1つ元に戻しなさい。
0627片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 15:28:59.15
次はインストーラなしのパッケージを作ってみよう。
プログラムのインストールができない環境の利用者はインストーラが使えない。
だから、インストーラなしのプログラムもそれなりに需要がある。
0628片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 15:32:42.17
次のような内容のバッチファイル「pack-bin.bat」を作れ。

set DIR=tjanken-bin
del /Q /S %DIR%
copy bin\Release\JankenGUI.exe %DIR%
copy ReadMe.txt %DIR%
copy License.txt %DIR%
pause
0629片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 15:39:39.09
pack-bin.batをダブルクリックすると、tjanken-binフォルダが作成され、
必要なファイルがコピーされる。
このフォルダを右クリックして「送る」→「圧縮(zip形式)」を選ぶと、
このフォルダが圧縮されたzipファイルtjanken-bin.zipができる。
これの名前を変更し、tjanken-1.1-bin.zipにすると、
インストーラなしパッケージが完成する。
.gitignoreにzipファイルとtjanken-binフォルダを無視するように
「*.zip」「tjanken-bin」を設定しなさい。
0630仕様書無しさん2016/01/17(日) 18:24:22.58
たかし半角になっててワロタw
0631takasi2016/01/17(日) 20:15:43.13
おはようございます
21時から始めます
0632takasi2016/01/17(日) 21:36:43.63
>>628でpack-bin.batを作りダブルクリックしましたがフォルダは作られませんでした
代わりにtjanken-binというファイルが出来ました
フォルダのなりぞこないでしょうかこれは
0633片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 21:42:09.33
>>632
delとcopyの間にmkdir %DIR%を忘れてた。
できたファイル消してやり直して。
0634takasi2016/01/17(日) 21:47:26.64
>>629まで完了しました
0635片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 21:52:43.25
アプリが使用している.Net Frameworkのバージョンを確認せよ。
ReadMe.txtに作品名、作者名、動作環境を記せ。
配布するファイルのサイズを確認せよ。
ウイルスチェックを行え。
0636片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 22:04:29.96
frameworkのバージョンはプロジェクトのプロパティから確認できる。
ファイルサイズはファイル右クリックのプロパティで確認できる。
0637takasi2016/01/17(日) 22:12:09.22
配布するファイルとはJankenGUI.exeの事でしょうか?
0638片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 22:15:47.64
>>637
tjanken-1.1-setup.exe

tjanken-1.1-bin.zip
が配布するファイルだ。
前者がインストーラつきのプログラム、後者がインストーラなしのプログラムである。
0639片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 22:23:57.34
どうした
0640takasi2016/01/17(日) 22:27:06.97
>>635
完了しました
0641片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 22:28:42.72
pushしたら終わりだ。
青少年はもう寝る時間だ。
おやすみ。
0642片山博文MZ ◆T6xkBnTXz7B0 2016/01/17(日) 22:39:13.20
0643takasi2016/01/17(日) 22:41:45.79
遅くてすみません
pushしましたhttps://github.com/takasi-desu/JankenGUI
0644仕様書無しさん2016/01/17(日) 23:51:15.01
たかしのじゃんけんゲームやってみたがよく出来てる
頑張ってな
0645takasi2016/01/17(日) 23:59:50.66
ありがとうございます
ほとんど片山先生の作品なんですけどね・・・
最近勉強できていません
体の調子が悪くて・・・起きる時間も夜・・・ふぁああああああああ
0646takasi2016/01/18(月) 00:02:00.04
最近プログラミングの適性がないのではないかと悩んでいるお年ごろです
慣れでしょうか
0647仕様書無しさん2016/01/18(月) 00:12:07.22
無料ホームページ作成
http://freehp.ojaru.jp/
0648片山博文MZ ◆T6xkBnTXz7B0 2016/01/18(月) 12:14:59.18
今度は、○×ゲームだ。
https://github.com/katahiromz/MaruBatsuGame
こいつをForkして、適当なフォルダにcloneしてくれ。
dataフォルダに、画像と音声のデータがある。
画像はInkscapeで作成、音声は自分で録音した。
0649片山博文MZ ◆T6xkBnTXz7B0 2016/01/18(月) 12:19:22.23
今回は、辞書(dictionary)を使っている。
一般に辞書というのは、単語から意味を調べる書物だね。
C#で辞書というのは、あるデータに他のデータを関連づけるデータ構造だ。
単語に相当するデータをキー(key)といい、
意味に相当するデータを値(value)という。
キーをintとし、値をMasuとする辞書の型は、Dictionary<int, Masu>と書く。
0650片山博文MZ ◆T6xkBnTXz7B0 2016/01/18(月) 12:58:34.33
黒い線を表示するのにLabelを使った。
Labelの背景色を黒にし、AutoSizeをFalseにしてある。
それぞれのマスはPictureBoxになっている。
画像と音声のデータはすでにリソースとして追加した。
0651takasi2016/01/18(月) 13:15:29.04
おはようございます
今日も夜から始めると思います
0652片山博文MZ ◆T6xkBnTXz7B0 2016/01/18(月) 13:28:05.84
データとUIの分離のために、盤を表すBoardというクラスを用意した。
Boardに空ではないマスを数えるカウント変数countを追加せよ。
盤の初期化のときにcountをゼロにせよ。
set_masuでcountを加算せよ。
0653片山博文MZ ◆T6xkBnTXz7B0 2016/01/18(月) 13:39:44.00
Boardに次のような思考関数kangaeruを追加せよ。
int kangaeru(Masu comp) {
Masu anata;
compがマルならanataはバツ。
compがバツならanataはマル。
空マスが1つ、compが2つの並びがあれば、その空きマスの番号を返す。
anataがなく、compが1つ以上の並びがあれば、その空きマスの番号を返す。
空きマスをランダムに選び、その空きマスの番号を返す。
}
0654片山博文MZ ◆T6xkBnTXz7B0 2016/01/18(月) 13:44:57.25
課題。○×ゲームを完成せよ。
プレイヤーはマル(先攻)、コンピュータはバツ(後攻)とする。
プレイヤーがマルをつけたら、タイマーで2秒待ち、
コンピュータがバツをつける。
待っている間は操作できないようにせよ。
0655takasi2016/01/18(月) 18:00:48.51
ちょっと今日は夜に出てこれないです!
完成したらプッシュすれば良いでしょうか
0656片山博文MZ ◆T6xkBnTXz7B0 2016/01/18(月) 18:16:25.10
好きにしたまえ。
0657片山博文MZ ◆T6xkBnTXz7B0 2016/01/18(月) 18:20:32.09
今日の勉強会は休みにします。
0658takasi2016/01/19(火) 12:56:45.26
おはようございます、課題ですがまだ終わっていません
朝からずっとコードとにらめっこしていたのですが
これらがどういう動きをしていてどう使うのかが理解できませんでした
前回のじゃんけんゲームの時もでしたが、課題の難易度に対して自分の能力が全く追い付いていないと強く感じました
このままでは分からない事がある度に片山先生の言葉ををただコピペするだけで
理解せずに無駄な時間を過ごしてしまうことになってしまいそうです。
僕は>>141で言いましたとおり、頭の出来がよくありません。理解するのに普通の人より時間がかかります
分からないことだらけの今、その度に片山先生に聞いていては先生にも僕にも負担になってしまうと思います
僕に今必要なのは基礎で、それを身につけることでやっと先生の授業にちゃんと付いていけるのではないかと思います
僕のためにプログラムを書いて頂いたり、画像や音声ファイル等も用意して頂いたり、色々教えて頂き片山先生には本当に感謝しています
GUIのアプリを作るのは楽しかったです
しかし、今のままでは辛いのでしばらく授業をお休みさせていただきます
初学者向けの本でしっかり勉強してから復帰したいと思います
応援してくださった方、片山先生、その他の先生方、本当にありがとうございました
またいつか戻ってきます、パワーアップしたたかしで・・・
0659片山博文MZ ◆T6xkBnTXz7B0 2016/01/19(火) 16:58:30.49
ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]・2ch.net
http://peace.2ch.net/test/read.cgi/tech/1448207673/
0660仕様書無しさん2016/01/19(火) 21:48:06.50
〜 完 〜
0661takesi2016/01/20(水) 00:10:51.81
では私のスレにしてよろしいでしょうか
0662片山博文MZ ◆T6xkBnTXz7B0 2016/01/20(水) 08:51:17.77
OK
0663仕様書無しさん2016/01/20(水) 09:11:11.90
たかしニートプログラミング本出版までいけよw
0664takesi2016/01/20(水) 13:31:22.23
私はPythonを勉強中です
チュートリアルを読んで条件分岐くらいまではできるようになりました
機械学習に興味があります
先生ご指導よろしくお願いします
0665takesi2016/01/20(水) 13:32:45.56
まずは何をすればいいでしょうか
paizaでDランクは全部解けたレベルです
0666仕様書無しさん2016/01/21(木) 00:04:58.89
こんばんはたかしです、急にやめてすみませんでした
今後の予定ですが、職業訓練校に行くことになりました
入学選考試験が結構難しいので一ヶ月間がんばって勉強しなくてはなりません
頑張ります。たけしさんもがんばってください。
0667仕様書無しさん2016/01/22(金) 00:38:53.36
>>662
先生!!!
0668仕様書無しさん2016/01/22(金) 01:20:09.58
訓練校ならお金もらえながら勉強できてオイシイもんね
0669片山博文MZ ◆T6xkBnTXz7B0 2016/01/22(金) 04:46:25.53
私はPythonのことはあまり知りません
0670takesi2016/01/22(金) 13:41:45.47
では、Javaはどうでしょうか
Androidアプリをつくるという目標もあります
0671takesi2016/01/23(土) 00:23:40.54
>>669
先生の得意な言語はなんでしょうか
0672仕様書無しさん2016/01/23(土) 16:15:03.02
     ∧_∧
     ( ゚ω゚ ) JAVAなら任せろー
 バリバリC□l丶l丶
     /  (   ) やめて!
     (ノ ̄と、 i
        しーJ
0673takesi2016/01/23(土) 16:20:00.27
>>672
本当ですか?Java教えてくださいませ
0674t.mourning ◆HeJleJP5y2 2016/01/23(土) 16:29:08.94
しょうがないにゃあ…
まずPCの環境教えてね多分windowsかな
0675takesi2016/01/23(土) 16:32:19.93
>>674
ありがとうございます!
開発環境はeclipseです
0676takesi2016/01/23(土) 16:32:40.38
>>674
windowsPCです
0677t.mourning ◆HeJleJP5y2 2016/01/23(土) 16:35:56.08
把握
大学でもらった教材使えるな
ちょい探してくる
今のスキルレベルは?
0678t.mourning ◆HeJleJP5y2 2016/01/23(土) 16:42:21.05
ちくせうC++とLispのしか見当たんね

まあいいや

流れ

今のスキルの確認

おさらいしながらJavaの基礎一通り

CUI課題

GUI(androidアプリケーション)

Unity導入

こんな感じでおk?
0679takesi2016/01/23(土) 16:47:06.78
おkです
今のスキルレベルは条件分岐がなんとか使えるレベルで
オブジェクト指向は完全に理解していないくらいです
Unityはさわりだけやったことがあります
0680t.mourning ◆HeJleJP5y2 2016/01/23(土) 16:50:33.63
まず環境整備しよか

Github知っとる?
Gitやsubversion、CVSとかバージョン管理ソフトでもいいけど。

第一目標:Githubユーザー作ってソース共有できるようにする
0681takesi2016/01/23(土) 16:52:13.27
Github聞いたことがあります
ググってみます
0682t.mourning ◆HeJleJP5y2 2016/01/23(土) 16:55:44.75
んじゃ毎回質問は

質問:〜〜〜

と書くから答えるなり調べるなりしてね
答え大体既存の解説サイトのURL下に貼るから答えがわかったらまずそっち見てね。
したらわかんないとこあるだろうから質問タイム
の流れで。

同様に

課題:〜〜〜

とかやるからその辺は臨機応変によろ
0683takesi2016/01/23(土) 16:56:40.06
分かりました!
0684takesi2016/01/23(土) 16:57:21.48
Githubのアカウント作りました
0685t.mourning ◆HeJleJP5y2 2016/01/23(土) 17:03:43.38
バージョン管理とは
複数人で同じものを編集する(wikiなんかをイメージしてね)時に
編集が衝突(同時に同じ個所を編集しようとすること)したときに
整合性を保ったり
昔の履歴を見たいといったときに対応するためだったりのために管理すること

バージョン管理ソフトとは
そのためのソフトウェア
いろいろ実現方法の違いでソフトウェアが違う。
今有名なのはGitやsubversion

Gitとは
バージョン管理ソフト
こまけぇことはいいんだよ

Githubとは
Gitでファイル保存してくれるファイルサーバーとか思っとけばいいよ
0686takesi2016/01/23(土) 17:10:03.93
なるほど
Gihubは英語ばかりで使うのが難しいです
なんせ中学生レベルの英語しかわからないもので
0687t.mourning ◆HeJleJP5y2 2016/01/23(土) 17:13:15.24
最初のうちしかサイトは見ないからがんがれ

↓にリポジトリ(ファイルのひとまとまりになったディレクトリみたいなもん)作った
https://github.com/tamochu/neet1programming.git
まずアクセスしてみて
0688takesi2016/01/23(土) 17:15:07.04
アクセスしました
…どうすればいいのでしょうか?
0689t.mourning ◆HeJleJP5y2 2016/01/23(土) 17:17:53.97
右側にDownload ZIPってあるはず
そこでファイルをダウンロード
→解凍してhello.batをダブルクリック(怖かったらしないほうがいいバッチファイルわかんないだろうし)
なんにせよこれでファイルを共有できることを感じてもらえればおk
0690takesi2016/01/23(土) 17:20:28.26
できました
少し感動
0691t.mourning ◆HeJleJP5y2 2016/01/23(土) 17:23:11.40
じゃあそれをeclipseでできるようにします。

課題:「eclipse github」などで検索しeclipseでgithubにアクセスする方法を調べよ

調べるまででおk
多分どっかで詰まるからやるのは一緒に
0692takesi2016/01/23(土) 17:25:29.62
調べて概要は理解しました
0693t.mourning ◆HeJleJP5y2 2016/01/23(土) 17:28:24.11
eclipseを開きます
バージョンを確認してね
起動画面にheliosとかjunoとか書いてあるから

したら↓参照
http://rough-and-ready-co-jp.blogspot.jp/2012/02/giteclipsegithub.html
0694takesi2016/01/23(土) 17:35:17.34
EGitというのが見つからないのですが
Eclipse Github 統合(タスク・フォーカス・インターフェース)
というのをインストールすればよいのでしょうか?
バージョンはMarsでづ
0695t.mourning ◆HeJleJP5y2 2016/01/23(土) 17:47:45.25
作業対象に入れたURL教えて
0696takesi2016/01/23(土) 17:51:24.67
0697t.mourning ◆HeJleJP5y2 2016/01/23(土) 17:56:06.84
重すぎ…

多分

Eclipse Gitチームプロバイダー

無印のやつ
0698takesi2016/01/23(土) 18:00:40.17
分かりました
インストールします
0699takesi2016/01/23(土) 18:06:29.46
コミットするというのがよく分かりません
ファイルを選択してもコミットボタンが押せません
どこかで誤ったのでしょうか
0700t.mourning ◆HeJleJP5y2 2016/01/23(土) 18:13:08.10
コミットはちょい待って今環境整備中
0701t.mourning ◆HeJleJP5y2 2016/01/23(土) 18:17:01.55
今から秘密鍵送る
捨てアド作ってさらして
0702t.mourning ◆HeJleJP5y2 2016/01/23(土) 18:20:15.57
コミットとは
自分が更新・追加したのをGitに伝えること
これ更新したからって宣言するようなこと

プッシュとは
コミットした差分をリモートに送ること
ファイルサーバーにアップロードするようなこと

チェックアウトとは
リモートのファイルを持ってくること
ダウンロードと思えばいい


今はチェックアウトしかできないはず
0703仕様書無しさん2016/01/23(土) 18:26:23.42
wuzhaiteng3@gmail.com
秘密鍵とは何に使うのですか?
0704takesi2016/01/23(土) 18:27:19.46
つまり今はコミットしなくていいってことですね
0705t.mourning ◆HeJleJP5y2 2016/01/23(土) 18:32:22.39
課題にしよか

課題:暗号を送る方法
例えば手紙をある人に送るが途中で覗き見られても
中身がばれないようにする
を一つ考えよ
0706takesi2016/01/23(土) 18:36:58.49
共通の決まりを作っておいて暗号化してそれを送る
0707t.mourning ◆HeJleJP5y2 2016/01/23(土) 18:37:12.31
秘密鍵とは
秘密鍵暗号方式の共通キーもしくは
公開鍵暗号方式のペアキーのうち受信側が持つ鍵

公開鍵暗号とは
ある文章を二つのペアーの鍵によって安全に送信する方法のひとつ
1.受信者は公開鍵と秘密鍵のペアを作る
2.公開鍵を文字通り公開する
3.文章の送信者は公開鍵を用いて暗号を作る
4.暗号を送信する
5.受信者は秘密鍵を用いて暗号を複合(解読)する
このとき公開鍵では暗号を作れるが複合はできない
秘密鍵は複合できる
ということが保証されている
細かい原理は省略
0708t.mourning ◆HeJleJP5y2 2016/01/23(土) 18:40:01.85
その答えは秘密鍵(共通鍵)暗号方式やね
今回使うのは↑の公開鍵暗号

http://qiita.com/t-kashima/items/251acd9ce70ce8929836
参照
0709takesi2016/01/23(土) 18:40:04.52
なるほど
どうやって使うのですか?
0710takesi2016/01/23(土) 18:40:37.00
理解しました
0711t.mourning ◆HeJleJP5y2 2016/01/23(土) 18:47:04.95
秘密鍵の設定
eclipseの
ウィンドウ→設定を押す
一般→ネットワーク接続→SSH2を選択する
一般タブの秘密鍵に今送った秘密鍵を設定する

Gitリポジトリの設定
ウィンドウ→パースペクティブを開く→その他を選択する
Gitリポジトリ・エクスプローラーを選択する
Gitリポジトリの「複製」を選ぶ
URIを選ぶ(ここら辺違うかも)
URIに「git@github.com:tamochu/neet1programming.git」を入力(コピペでおk)
プロトコルにsshを選ぶ
次へを選ぶ
0712takesi2016/01/23(土) 19:00:42.05
途中でよく分からないメッセージが出てきましたが
多分出来たと思います
0713t.mourning ◆HeJleJP5y2 2016/01/23(土) 19:08:25.61
eclipseのJavaパースペクティブで
neet1programmingプロジェクトが表示されていれば成功

プロジェクトを右クリックして
チーム→プル
Exam1.javaが出てくると思う
そこに

課題:1〜100を足すプログラムを書きなさい
0714t.mourning ◆HeJleJP5y2 2016/01/23(土) 19:16:03.07
できたらお待ちかねのコミット→プッシュ
といってもプルと同じように
チーム→コミット
を押して更新のあるファイルを選択したら
「Commit and push」を選ぶだけ
0715takesi2016/01/23(土) 19:19:42.71
Javaパースペクティブとはどこでしょうか
これは成功しているのでしょうか
スマホからなので直撮りですみません
http://i.imgur.com/ZAUTelg.jpg
0716t.mourning ◆HeJleJP5y2 2016/01/23(土) 19:23:13.47
あ、チェックアウトしてないや
Gitリポジトリのneet1programmingを右クリック
プルを選択
いろいろ聞かれるけど次へか完了でおk
0717仕様書無しさん2016/01/23(土) 19:29:07.16
完了しました
変化はありません
どうすればいいのでしょうか
0718t.mourning ◆HeJleJP5y2 2016/01/23(土) 19:29:20.48
もしくはインポートしてないって可能性もあるか

Gitリポジトリのneet1programmingを展開
作業ディレクトリを右クリック
プロジェクトのインポート既存のプロジェクトのインポートを選んで次へ
neet1programmingをチェックして完了
0719仕様書無しさん2016/01/23(土) 19:36:31.53
できました
0720t.mourning ◆HeJleJP5y2 2016/01/23(土) 19:37:04.63
どこまでー?
0721takesi2016/01/23(土) 19:42:07.60
Exam1,2 を出すまでできました
今から課題に取り掛かります
0722t.mourning ◆HeJleJP5y2 2016/01/23(土) 19:44:45.11
ガンバ
もうすぐ飯落ち
課題作っとくからいない間気が向いたら解いてね
0723takesi2016/01/23(土) 19:47:44.85
久々にJAVAで書いたので思ったよりてこずりました
今からコミットします
0724takesi2016/01/23(土) 19:49:38.41
あれ?コミットできません
コミットボタンが押せない状態です
0725t.mourning ◆HeJleJP5y2 2016/01/23(土) 20:05:54.65
コミットメッセージを入力する
0726takesi2016/01/23(土) 20:18:14.88
できました
0727takesi2016/01/23(土) 20:33:02.01
Exam2も完了しました
0728t.mourning ◆HeJleJP5y2 2016/01/23(土) 20:53:35.93
戻りました
プッシュできてないっぽいかな
プロジェクトを右クリック
チーム→アップストリームへプッシュ
0729takesi2016/01/23(土) 20:56:31.15
やってみました
どうでしょうか
0730takesi2016/01/23(土) 21:02:43.99
新しいExamをEclipseに取り入れるにはどうすればいいのでしょうか?
0731t.mourning ◆HeJleJP5y2 2016/01/23(土) 21:03:57.35
うーん来ない

TeamViewerで画面見せてもらていい?
0732t.mourning ◆HeJleJP5y2 2016/01/23(土) 21:05:35.97
取り込みはプル
0733takesi2016/01/23(土) 21:11:45.17
了解しました
TeamViewerはちょっと…すみません
0734takesi2016/01/23(土) 21:12:31.88
よく分からなくて怖いんで
0735t.mourning ◆HeJleJP5y2 2016/01/23(土) 21:16:17.58
じゃあ問診で行こう
コミットもう一度できる?
0736takesi2016/01/23(土) 21:17:08.04
できません
0737t.mourning ◆HeJleJP5y2 2016/01/23(土) 21:21:13.76
じゃあコミットはちゃんとできてるな
アップストリームにプッシュはもう一度できる?
0738takesi2016/01/23(土) 21:22:44.05
やってみました
0739t.mourning ◆HeJleJP5y2 2016/01/23(土) 21:25:43.12
エラーメッセージとか出た?
0740takesi2016/01/23(土) 21:33:30.13
こんなのが出てOK押してもなんともなりません
http://i.imgur.com/zl03IUa.jpg
0741t.mourning ◆HeJleJP5y2 2016/01/23(土) 21:35:22.82
ああ、それ出てんのか
対処法忘れたからちょい待ってね
0742t.mourning ◆HeJleJP5y2 2016/01/23(土) 21:38:31.49
プロジェクトを右クリック
チーム→アップストリームからフェッチしてみて
そしたら
チーム→ワークスペース同期化
出てきた画面で全部のファイル選んで右クリック
マージ済みとしてマーク

終わったらもっかいプッシュ
0743t.mourning ◆HeJleJP5y2 2016/01/23(土) 21:39:38.58
ワークスペース同期化の前に
チーム→マージ
忘れてた
0744takesi2016/01/23(土) 21:42:28.46
ここからどうすればいいのでしょうか
http://i.imgur.com/mGhQBeG.jpg
0745t.mourning ◆HeJleJP5y2 2016/01/23(土) 21:44:39.16
何もフェッチできないんだったら
今度は
チーム→リベース
0746takesi2016/01/23(土) 21:50:13.14
下の項目2つともにチェックを入れればいいんですか?
0747takesi2016/01/23(土) 21:51:43.52
うーん…よく分かりません
0748t.mourning ◆HeJleJP5y2 2016/01/23(土) 21:52:34.16
チェック?入れると来ないと思うが
しいて言うならリモートトラッキングのorigin/master
0749t.mourning ◆HeJleJP5y2 2016/01/23(土) 21:53:11.24
×と来ない
○所ない
0750takesi2016/01/23(土) 21:57:56.98
こんな画面です
http://i.imgur.com/nYnWMt8.jpg
0751t.mourning ◆HeJleJP5y2 2016/01/23(土) 22:04:43.11
0752takesi2016/01/23(土) 22:06:10.16
その通りになりません
0753takesi2016/01/23(土) 22:07:21.59
リベース結果
HEADはすでに最新の状態のためリベースは何もしませんでした
と出ます
0754t.mourning ◆HeJleJP5y2 2016/01/23(土) 22:08:41.92
どっちもチェック入れないでやってみて
0755takesi2016/01/23(土) 22:10:23.36
そうすると>>753になります
0756t.mourning ◆HeJleJP5y2 2016/01/23(土) 22:11:31.49
よしもっかいチェックアウトからやり直したほうがいいな

問題解いたファイルをどっかにコピーしといて
プロジェクトを右クリック→削除
Gitリポジトリ・エクスプローラーで右クリック→リポジトリの削除

終わったらもっかいGitの複製→インポート
その後コピーしといたファイルで上書きしてコミット→プッシュ
0757takesi2016/01/23(土) 22:16:28.78
やってみても以前と同じ状態になってコミットできません
0758t.mourning ◆HeJleJP5y2 2016/01/23(土) 22:23:26.30
削除の時に出るチェックボックスチェックつけてもっかいお願い
0759takesi2016/01/23(土) 22:26:55.43
全てにチェック入れても再び行うと元の状態に戻っています
0760t.mourning ◆HeJleJP5y2 2016/01/23(土) 22:36:25.51
チーム→切断
チーム→プロジェクトの共有
Git
http://imgur.com/TkvgQp2
0761takesi2016/01/23(土) 22:39:26.70
やりました
次にどうすればいいのでしょうか
0762t.mourning ◆HeJleJP5y2 2016/01/23(土) 22:40:17.85
またコミット→プッシュしてみて
0763takesi2016/01/23(土) 22:41:20.53
…(;´Д`)ウウッ…
できません
0764takesi2016/01/23(土) 22:46:42.65
teamviewer使ってみます
ID送ります
0765t.mourning ◆HeJleJP5y2 2016/01/23(土) 22:49:23.02
プロジェクトを右クリック
プロパティでプロジェクトの置き場所確認してください
0766takesi2016/01/23(土) 22:52:52.47
送りました
操作できますか?
0767takesi2016/01/23(土) 23:01:01.71
これからの変更はコミットすれば届くのでしょうか
0768t.mourning ◆HeJleJP5y2 2016/01/23(土) 23:01:32.77
できましたね

さっき行った操作のおさらい
マージとは
同じファイルを編集してしまった場合あとからプッシュする人が
何が二人の更新を合わせたうえで正しいか判断する必要がある
その作業をマージという
gitでは衝突(まったく同じ個所を編集)していなければ大体勝手にマージしてくれる
0769t.mourning ◆HeJleJP5y2 2016/01/23(土) 23:03:21.86
そうです

またnon-fast-forwardと出たら
1.プルして再度コミット→プッシュ
2.フェッチしてマージして再度コミット→プッシュ
が原則です
0770takesi2016/01/23(土) 23:05:45.39
分かりました!
とりあえずGithubでファイルが共有できるまでになりました
自分で課題を進めていきます
今日はありがとうございました
0771takesi2016/01/23(土) 23:07:06.59
私は学生で受験生なので低浮上になるかもしれませんがよろしくお願いします
3月中頃から春休みで本格的に勉強ができますが、それまでもできるだけ毎日顔を出したいと思います
0772t.mourning ◆HeJleJP5y2 2016/01/23(土) 23:07:49.55
乙です
次の課題用意+講義内容まとめときます
わかんないとこあったらカキコよろです
0773takesi2016/01/23(土) 23:13:32.30
わざわざありがとうございます
期待に沿えるよう頑張ります
0774takesi2016/01/24(日) 13:30:33.40
おはようございます
課題に取り組みます
特に配列の理解が甘いみたいなのでググりながら解いていきます
0775takesi2016/01/24(日) 14:34:23.47
Exam4,7以外は終了しました
コミット完了です
0776takesi2016/01/24(日) 17:10:58.24
いま確認したらコミットできてませんでした
なぜだろう
0777takesi2016/01/24(日) 17:16:19.68
昨日のことを思い出しながら闇雲にボタン触ってたら出来ました
こんなんでいいのやら
0778t.mourning ◆HeJleJP5y2 2016/01/24(日) 17:45:37.57
うごきゃあいいんだよ
0779takesi2016/01/24(日) 18:15:09.77
Exam4,7は分かりません
他の問題もググりながら解きました
難しいですね
0780t.mourning ◆HeJleJP5y2 2016/01/24(日) 19:48:15.04
じゃあ4,7のヒント出す
4
「abcdefghijklmnopqrstuvwxyz .,-」
をcharの配列で持つ
charを渡してその配列の何番目の文字(int)か調べる(関数化するとよい)
暗号の文字列を上の処理を使ってintの配列に直す
その配列すべてに同じ数xを足す
30(文字の種類数)を超えたものは30を引く
intの配列をまたcharの配列に戻す
charの配列中に「person」の並びがあるか調べる
並びがあればその並びが正解
このような数xを探す

7
たらいまわし関数とは
まずxとyを比較し
yのほうが大きければ
return y;
そうでなければ
int newX = tarai(x-1, y, z);
int newY = tarai(y-1, z, x);
int newZ = tarai(z-1, x, y);
return tarai(newX, newY, newZ);
する関数。
0781t.mourning ◆HeJleJP5y2 2016/01/24(日) 19:56:30.87
今日はどれやりたい?
関数について
オブジェクト指向について
パッケージとアクセス修飾子について
0782takesi2016/01/24(日) 20:17:01.44
オブジェクト指向についてお願いします
0783t.mourning ◆HeJleJP5y2 2016/01/24(日) 20:32:16.57
把握
関数については知ってるものとしてやるよー

オブジェクト指向とは
http://nobuo-create.net/java-beginner-17/
よく言われるのはものを基準にプログラミングを考えるということ
生徒というオブジェクトを考える
生徒には名前と学年という情報(もっとあるがここでは省略)がある
3人の生徒
takesi:1年生
John:2年生
Suzuki:3年生
がいた場合
オブジェクト指向を使わないでこの情報を持つとしたら
String[] names = new String[]{"takesi", "John", "Suzuki"};
int[] grades = {1, 2, 3};
とかやるわけだが、一人の情報は一人の情報でまとめて持っておきたい
そのためJavaではクラスというものを使ってオブジェクトを作る
その場合以下のようになる
class Student {
String name;
int grade;
};
Student students = new Student[3];
Student takesi = new Student;
takesi.name = "takesi";
takesi.grade = 1;
students[0] = takesi;
…以下略
0784t.mourning ◆HeJleJP5y2 2016/01/24(日) 20:39:19.09
この一つのオブジェクトに属する情報は一つのオブジェクトに持たせる
というのがカプセル化とか呼ばれるオブジェクト指向に必要な要素を実現させる

カプセル化とは
学年ではなく中身では生年月日とかで情報を持っているけど
その情報は教えずに何学年かという情報だけ教えたいということがある
このとき外部から不必要な情報(今の例では生年月日)は直接アクセスできず
アクセスが許可されている情報(今の例では学年)にのみアクセスできると
情報の安全性を保つことができる
このように情報を内部に持つこと(および外部からアクセスできる情報とできない情報を管理すること)
をカプセル化という

今回は学年と年齢という情報がカプセル化されたことになる
0785takesi2016/01/24(日) 20:43:43.29
関数は概要は理解していますが
Pythonで理解したのでコードはかけません
そこは自習します
0786t.mourning ◆HeJleJP5y2 2016/01/24(日) 20:46:55.26
今クラスの中には名前と学年の変数(情報)がある
生徒というオブジェクトには名前を名乗るというメソッド(行動)が可能であるとしよう
その場合
class Student {
String name;
int grade;

String getName() {
return "My name is " + name;
}
}

などとしてやれば生徒オブジェクトに自己紹介をさせることが可能になる
このようにカプセル化では変数だけではなく関数も内部に持たせることができる


あ、あとでまとめてStudentクラスコミットするから細かいとこ気にしなくていいよ
0787t.mourning ◆HeJleJP5y2 2016/01/24(日) 20:53:04.61
以上のように情報を持ち行動が規定されているものをプログラミングでは
カプセル化されたオブジェクトという

課題:Studentクラスを参考にしながらTeacherクラスを作成せよ
ただしTeacherクラスは名前と担当教科の情報を持ち
授業の最初に挨拶「おはようございます。(教科名)の授業を始めます」する行動
ができるものとする
0788t.mourning ◆HeJleJP5y2 2016/01/24(日) 21:01:51.47
コミットした
プルしてね
0789takesi2016/01/24(日) 21:22:43.18
コミットしました
書経のような感じでしたが
理解できるように考えながらコードを書きました
0790t.mourning ◆HeJleJP5y2 2016/01/24(日) 21:25:44.45
いい感じ
続いて
課題:Teacherクラスにも自己紹介「My name is 〜〜〜」するメソッドを追加せよ
0791t.mourning ◆HeJleJP5y2 2016/01/24(日) 21:32:11.02
やってる間に次の話題書いとく
ここでTeacherクラスにもStudentクラスにも
name変数
が存在し、
getName関数
が全く同じ内容で存在することに気付く
これは何度も書くのは無駄無駄無駄ァ
これはなぜか考えると
生徒も教師も人である
人だから名前を持っている
また自己紹介もする
ということは生徒も教師も
name変数
を持ち
getName関数
を持つHumanクラスという風に考えられる

Javaではこれを

class Human {
String name;
String getName() {
return "My name is "name;
}
}

class Student extends Human {

}
のようにする
これを継承という
0792t.mourning ◆HeJleJP5y2 2016/01/24(日) 21:37:04.19
継承とは
基本となるクラス(基底クラス・親クラス)から
それらの要素を引き継いだ新しいクラス(派生クラス・子クラス)
を作ること
派生クラスでは基底クラスのメソッド以外に派生クラスで独自に追加した
変数やメソッドを利用できる
また基本となるクラスには(基本的に)制限はなく
派生クラスの派生クラスといったものも作れる
0793takesi2016/01/24(日) 21:39:40.63
>>769の通りにしているはずがコミットできません
0794t.mourning ◆HeJleJP5y2 2016/01/24(日) 21:43:37.56
ウボァ
プルした?
そのあとアップストリームへプッシュした?
0795takesi2016/01/24(日) 21:45:55.85
アップストリームにプッシュすると
non-fast-forward
と出てきます
0796t.mourning ◆HeJleJP5y2 2016/01/24(日) 21:48:17.04
うーん
マージは?
0797takesi2016/01/24(日) 21:49:39.92
マージすると
結果 失敗
とでます
0798t.mourning ◆HeJleJP5y2 2016/01/24(日) 21:51:26.62
じゃあリベースは?
0799takesi2016/01/24(日) 21:56:40.77
いじってたらしばらくして
HEAD はすでに最新の状態のためリベースは何もしませんでした
と出ました
0800takesi2016/01/24(日) 21:57:58.93
いきました!
リベースのリセット?のあとプッシュでいけました
0801t.mourning ◆HeJleJP5y2 2016/01/24(日) 21:59:14.89
あ、きたね
じゃあ続き
Humanのクラスコミットすんね
0802t.mourning ◆HeJleJP5y2 2016/01/24(日) 22:06:13.73
pullよろ

Humanクラスについてもう一つ考えてみよう
人間には性別というものがある
そこで

課題:Humanクラスにgender(性別)メンバー(変数)を追加し
それを設定する関数setGenderと取得する関数getGenderを追加せよ
その後Studentクラスの自己紹介でgetGenderせよ
0803takesi2016/01/24(日) 22:09:37.55
うーむ、難しい
時間がかかりそなので宿題ということで考えておきます
0804takesi2016/01/24(日) 22:12:00.79
>>771の通り学業が忙しため平日はあまり時間が取れません
受験が終われば時間が取れるようになるのですが…
0805t.mourning ◆HeJleJP5y2 2016/01/24(日) 22:14:06.78
了解
次はオブジェクト指向の続きからね

流れ
継承

多態性(オーバーロードおよびオーバーライド)

継承その2(仮想関数)

テンプレートクラス

アクセス修飾子

それとは別に演習作っとく
0806t.mourning ◆HeJleJP5y2 2016/01/24(日) 22:14:55.55
ゆっくりで構わんよ
っていうか自分も平日疲れてすぐ寝るからそのほうがありがたい
0807仕様書無しさん2016/01/24(日) 22:55:35.64
なにこのスレすごい
あとで読み返してみる
0808仕様書無しさん2016/01/25(月) 01:05:24.47
String[] names = new String[]{"takesi", "John", "Suzuki"};
int[] grades = {1, 2, 3};

のほうがはるかに合理的 データ0番、1番、2番って番号で管理できる
Suzukiが5人いたとしても番号が一意で分かれているから混同もしない
人間クラスから派生して生徒、教師ってのも変 役割が根本的に違うのだからそれぞれ別でいい
学校クラスがないのも変だな〜 学校クラスにそれぞれの生徒と教師がメンバとしているはずだ
0809takesi2016/01/25(月) 02:04:03.82
眠れないので課題やってみました
全く分かりません
どこからの知識が抜けてるのやら
Teacherクラスをコピペ改変したようなコードしか書けませんでした
0810takesi2016/01/25(月) 02:09:44.46
どこを勉強すればいいのでしょうか
今日はまとまった時間が取れそうなので勉強します
0811t.mourning ◆HeJleJP5y2 2016/01/25(月) 22:04:30.90
あれで問題ない
最初はまねて
次は少し変えてみて
最後に自分で書けるようになればいい

Exam4穴埋め式にした
何か好きなパズルとかある?それ題材にする
0812takesi2016/01/25(月) 22:08:34.00
あれでいいんですか?!自身なかった
自分で書けるのか不安だったけど安心しました

あんまりパズルはしませんが…
クロスワードはやったことあります
0813t.mourning ◆HeJleJP5y2 2016/01/25(月) 22:09:29.88
クロスワードはちょっと向かないなぁ
数独とかカックロとか数字しか使わない系で
0814takesi2016/01/25(月) 22:14:32.67
数独はやったことあります
0815takesi2016/01/25(月) 22:28:17.49
Exam4難しい‥
ちんぷんかんぷんです
0816t.mourning ◆HeJleJP5y2 2016/01/25(月) 22:31:44.49
じゃあオーソドックスに数独にしとこうか
平日は演習問題の形でコミットするからそれとくような感じで
休日が昨日みたいな感じで
最初は強く当たって後は流れで
0817takesi2016/01/25(月) 22:37:43.22
了解しました
0818takesi2016/01/25(月) 22:47:49.69
Exam4は分かりません
どこか復習が必要でしょうか
0819t.mourning ◆HeJleJP5y2 2016/01/25(月) 23:00:28.78
じゃあそれは飛ばして答えコミットする
土曜はそれの解説からね
0820t.mourning ◆HeJleJP5y2 2016/01/25(月) 23:01:26.95
できたとこまででいいからコミットしてくれたらヒント書いて返す
0821takesi2016/01/25(月) 23:09:04.26
全く手を付けられませんでした
0822仕様書無しさん2016/01/26(火) 09:52:55.08
すみません


C言語ができれば


ずっと食べていけますかね?

android からwindows のソフトまで作れますよね???
0823仕様書無しさん2016/01/28(木) 20:55:55.34
なにこれ、本気で教育が始まってるの?
0824takesi2016/01/30(土) 19:17:22.28
受験との両立をしようと思っていたのですが
学校も忙しくなり受験も追い込み時期になったことで余裕がなくなってしまいました
3月12日から再開させてもらってもよろしいでしょうか
0825t.mourning ◆HeJleJP5y2 2016/01/30(土) 21:08:54.99
ええよ
スレなくなってたら建ててな
0826takesi ◆5LQe9dJ7ck 2016/01/30(土) 21:24:27.65
ありがとうございます
3月12日にもどってきます
トリップつけときます
0827仕様書無しさん2016/01/31(日) 08:57:35.56
>>208
ベクターとかストアに作品のせれば経験になりますか?
0828takesi ◆5LQe9dJ7ck 2016/03/12(土) 07:28:09.90
おはようございます
今日から再開お願いします
課題に手を付けます
0829仕様書無しさん2016/03/12(土) 11:53:24.79
>>828
まずは空白期間に身に付けたスキルを洗い流したまえ
0830takesi ◆5LQe9dJ7ck 2016/03/12(土) 14:32:39.08
>>829
Unityの基本操作とC#を少々
受験が忙しくてあまり手を付けてません
0831t.mourning ◆HeJleJP5y2 2016/03/12(土) 15:38:19.90
再開すんよ
まずExam4の解説からでおk?
0832takesi ◆5LQe9dJ7ck 2016/03/12(土) 16:32:09.63
はい、お願いします
Exam10も分かりそうにないです
11、12は今から取り組みます
0833t.mourning ◆HeJleJP5y2 2016/03/13(日) 00:22:17.64
ホワイトデーのお返し作ってて遅れた
exam4から


シーザー暗号を解きなさい

まず手で解いてみる
一文字ずつずらしていき中に「person」があれば答え

プログラムで解釈する

1.文字列をn文字ずらす
2.中にpersonが含まれるか調べる
3.含まれていればそれを表示して終了、含まれていなければnに1足して1からやり直し

もう少しプログラムっぽく
for (int n = 0; n < 文字の種類数; n++) {
String text = n文字ずらした暗号;
if (textに「person」が含まれていたら) {
system.out.println(text);
break;
}
}

これを実装していくことになる
0834t.mourning ◆HeJleJP5y2 2016/03/13(日) 00:32:35.66
・文字の種類数
まず文字のchar配列を作っておく
そうすることでずらす処理や文字種数を取得するのに便利になる

static final char[] chars = {
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','.',',','-'
};

そうしたうえで配列の要素数はlengthで取得する
つまり
chars.length

・n文字ずらした暗号
文字列を文字ごとに分解して分解した文字をn文字をずらす
もともと暗号文はcharの配列であるので暗号文に対してforで一つずつアクセスし
n文字ずらした文字を取得すればよい
この最中するのが文字種数30より大きくなったaに戻ることを考慮すること
これは30で割ったあまりとすれば解決できる

・textに「person」が含まれていたら
StringにはindexOfというメソッドがありそれによって文字列が含まれているかどうかを調べることができる
indexOfで文字列が含まれていない場合は返り値は-1になる
0835t.mourning ◆HeJleJP5y2 2016/03/13(日) 00:39:43.32
Exam10ヒント
数列の状態は
int[9][9]の配列で持とうExam8参照

まずは枠線なしで数字のまま出力することを目標にする

その後0だったら0でなくスペースを表示するように変更する

最後に枠線を表示する
上と下の枠線は固定で構わない
左右の枠線は数字を表示する前と後に「|」を表示すればよい

表示する関数は
System.out.println()

System.out.print()

上は出力したら改行も出力され
下は改行は出力されない
使い分けよう
0836takesi ◆5LQe9dJ7ck 2016/03/13(日) 06:51:26.23
すみません昨日は私用で全く課題ができませんでした
今日も19時まで予定があるのでそれ以降に取り組みます
空いた時間に解説理解しておきます
0837t.mourning ◆HeJleJP5y2 2016/03/13(日) 20:01:30.22
こっちも今体空いた
次の課題とか用意しとく
終わり次第多態性についてやるよ
0838t.mourning ◆HeJleJP5y2 2016/03/13(日) 20:40:52.29
課題1個追加した
プル忘れないでね
多態性についてやるから適当なところで切り付けて
0839takesi ◆5LQe9dJ7ck 2016/03/13(日) 20:47:28.57
今やっと私用が終わりました
今から取り組みます
0840仕様書無しさん2016/03/13(日) 20:59:23.27
同じような境遇のものとして応援してます
頑張って
0841takesi ◆5LQe9dJ7ck 2016/03/13(日) 21:28:43.66
最近の課題は僕には解けないものが多いのですが、基本がなってないのでしょうか?
やり方は分かるのですがコードに置き換えられません
今日は次の説明をお願いします
明日じっくり課題をやります
0842t.mourning ◆HeJleJP5y2 2016/03/13(日) 21:55:33.42
単純に慣れの問題じゃないかな
写経量が少ない
今は調べてパクるだけでいい
そのうちここ変えたらどうなるかなって思ったら
実際やってみて違いを調べたりしてみるとよさげ

じゃあ多態性について
オブジェクト指向の重要な要素の一つ多態性(ポリモーフィズム)
ttp://www.nulab.co.jp/designPatterns/designPatterns1/designPatterns1-4.html#%E3%83%9D%E3%83%AA%E3%83%A2%E3%83%95%E3%82%A3%E3%82%BA%E3%83%A0
多態性とは
別のオブジェクトに対し同じ関数を定義したいことがある
例えば生徒と教室の二つのオブジェクトがあるとする
この二つは共通の親クラスを持っているわけではない
しかし、両方とも名前(String name)を持っており
名前を取得する共通の関数(getName)を作りたいと思っているとする
この際引数として渡されるオブジェクトによって挙動を変える関数が作ることができる
これを多態性という。

Javaにはオーバーライドとオーバーロードという二つの多態性の実現方法がある。
オーバーライド:二つのオブジェクトが親子(継承の親子)関係にある時親クラスで定義されたものを子クラスで再定義すること
例)HumanクラスとProfessorクラス
class Human {
String name;
String getName() {
return name;
}
}
class Professor extends Human {
String getName() {
return "Prof."+name;
}
}
0843t.mourning ◆HeJleJP5y2 2016/03/13(日) 22:04:25.17
オーバーロード:二つのオブジェクトがどのような関係であろうとかまわないが、
同じ関数の引数として違うオブジェクトを渡した際に違う挙動を定義すること
例)ClassRoomクラスとStudentクラス
String getName(ClassRoom classRoom) {
return classRoom.name + " class";
}
String getName(Student student) {
return "student:" + student;
}


以上からわかるように
オーバーライドはメンバー関数のみ
オーバーロードはどのような関数でもできるといった違いがある

今はそのようなものがあると知っておくだけでおk
気づかないうちに使ってて、あとからこれが多態性だったのかってなると思う
0844t.mourning ◆HeJleJP5y2 2016/03/13(日) 22:17:48.08
習うより慣れろ
課題:Humanクラスで実装されているメンバー関数getNameをStudentクラスでオーバーライドせよ
その再表示する内容は
My name is 〜〜〜

I'm 〜〜〜
にせよ

課題:PrintUtilクラスを作成せよ
PrintUtilクラスには以下の二つのオーバーロードした関数を作成せよ
public static void printName(Human x) {
//ここに表示処理を書く
}

public static void printName(Teacher x) {
//ここに表示処理を書く
}

Humanを渡した関数はnameを表示(System.out.printlnするだけ)
Teacherを渡した関数はnameの前に「Mr.」をつけて表示せよ

その後
Student student = new Student();
student.name = "takesi";
PrintUtil.printName(student);
としてどのように表示されるか確認しその理由を考えよ
0845仕様書無しさん2016/03/14(月) 08:39:59.84
良スレage
0846仕様書無しさん2016/03/14(月) 11:07:56.73
FJネクスト エフ・ジェー・ネクスト 迷惑勧誘電話7 [無断転載禁止]・2ch.net

http://hayabusa6.2ch.net/test/read.cgi/estate/1457609776/
0847takasi2016/03/14(月) 20:24:33.70
お久しぶりです
職業訓練校のプログラミングコースに合格したので4月から通うことになりました
たけしくん、お互いがんばりましょう
0848仕様書無しさん2016/03/14(月) 20:50:44.53
あげ
0849takesi ◆5LQe9dJ7ck 2016/03/14(月) 21:21:45.84
今日も忙しくてできませんでした
疲れたので寝ます
明日で卒業なのでこれからはちゃんと時間が取れるようになります
何度もすみません
0850仕様書無しさん2016/03/15(火) 18:05:56.72
>>847
職業訓練通ってたが明らかに君はそのレベルを超えてるね
多分javaでweb系のアプリ作ったり、androidアプリ作ったりすると思うけど
プログラムなんか言語が違くてもだいたいやることは一緒だからjavaもずっと出来るのかな
まあお金ももらえるし、プログラムだけじゃなくてインターネットの仕組みやらコンピュータの仕組みやらを勉強できるから頑張りな
0851仕様書無しさん2016/03/15(火) 18:06:37.05
javaもずっと→すっと
0852takesi ◆5LQe9dJ7ck 2016/03/16(水) 22:28:22.36
だいぶ粘ったのですがExam10,11,12,13は分かりません
0853仕様書無しさん2016/03/16(水) 22:51:23.20
スレにも問題公開していただけませんか?
私も挑戦してみたいです
0854t.mourning ◆HeJleJP5y2 2016/03/17(木) 21:08:43.46
https://github.com/tamochu/neet1programming
は公開リポジトリだから勝手に見てね
一応何も書いてない問題のほうをexam/original
に置いたからそっち見るとよいかと思われ
0855t.mourning ◆HeJleJP5y2 2016/03/17(木) 21:13:29.04
>>852
あいよじゃあ解説してく
あと次から問題レベル下げたほうがいい?
↑の844の課題はやっといてね

Exam10.part1
9×9のintの配列を用意せよ

Exam10.part2
上の配列をすべて0で初期化せよ。
(厳密には既に初期化されているが明示的に初期化せよ)

まずはここまでやってコミットよろ
0856仕様書無しさん2016/03/18(金) 23:52:52.65
>>854
ありがとさんです
0857takesi ◆5LQe9dJ7ck 2016/03/20(日) 10:20:50.34
進学の準備やらで忙しく課題ができませんでした
今日は予定がないので今から取り組みます
0858takesi ◆5LQe9dJ7ck 2016/03/20(日) 11:44:15.30
わかる範囲でやってみました
完全に感覚です
0859t.mourning ◆HeJleJP5y2 2016/03/20(日) 12:13:26.19
赤入れたからプルしてね
今はこんな感じかなでいい
間違えたほうが経験になるしね

Exam10.part3
できた配列の数字を表示する
→OK

Exam10.part4
各行の始めと終わりに「|」を出力する
System.out.print("|");
を行えばよい。

Exam10.part5
表示する前と後に「+-----------------+」を表示する
System.out.println("+-----------------+");
を行えばよい

次ここまでね
0860takesi ◆5LQe9dJ7ck 2016/03/20(日) 13:21:11.96
すみません用事が出来てしまいました
また夕方頃に再開します
0861takesi ◆5LQe9dJ7ck 2016/03/20(日) 19:59:56.41
コミットしました
0862t.mourning ◆HeJleJP5y2 2016/03/21(月) 11:14:11.62
あとはデータを入れる
Exam10.part6
穴埋め問題にするのでプルして解くこと

Exam10.part7
0はスペースで表示にする
System.out.print(sudoku[a][b] + " ");

if (〜〜〜) {
System.out.print(sudoku[a][b]);
} else {
System.out.print(" ");
}

と変更し〜〜〜を適切な条件句に直しなさい
0863仕様書無しさん2016/03/21(月) 15:48:55.73
懐かしいな
コンソールでオセロとかやったな
0864takesi ◆5LQe9dJ7ck 2016/03/21(月) 16:37:59.02
コミットしました
0865t.mourning ◆HeJleJP5y2 2016/03/21(月) 18:03:51.60
おk
Exam10はそのまま発展問題にしていくからちょい待ってね

Exam11.part1〜3
Exam12.part1〜3
課題:数値のソートとは何か調べなさい
課題:数値の配列「4,3,8,1」を小さい順に並べなさい。ただし過程を細かく記述すること。
課題:プログラムでのソートの実装方法を3つ挙げなさい(中身を理解する必要はない)

Exam13.part1
課題:平方根とは何か述べよ
0866t.mourning ◆HeJleJP5y2 2016/03/21(月) 18:11:42.38
Exam10をもとに数独解くプログラム作ってくよ
Sudokuクラス作ったのでそっち見てね

課題:表示する処理を関数化せよ
ただし以下の2通りで関数化すること
public void print(){}
public static void printState(Sudoku x){}
上はメンバー関数としてthis.sudokuを表示させる。
下はスタティック関数としてSudokuクラスを受け取りx.sudokuを表示させる。

ヒント:上の実装にはsudokuをSudokuクラスのメンバーに持てばよい。
0867takesi ◆5LQe9dJ7ck 2016/03/21(月) 19:12:06.12
>>865
コミットしました
0868takesi ◆5LQe9dJ7ck 2016/03/21(月) 19:19:41.00
>>866
わかりませんでした
関数の知識が乏しいのでしょうか
課題の意味があまり理解できません
0869t.mourning ◆HeJleJP5y2 2016/03/22(火) 21:20:23.44
プルした
まずソートの解説から
ソートとは:特に解説無し

小さい順に並べる:これはクイックソートと呼ばれるソートの考え方です。
とても速いといわれるソートの一種で実装は再帰を使った方法などいくつかあります。

実装方法:
1.バブルソートがこれになります。
バブルソートとはソートの様子を可視化した際に
泡(小さい値)が水面(列の最初)に上がっていくようであることから名づけられました。
海底(列の最後)から水面(列の最初)まで隣り合った値を比較し、
大小が逆なら入れ替えを行うと、
水面(列の最初)には泡(最小の値)が来る。
これを水面を下げながら行うことで全ての列がソートできるというもの。

例)
4381
  ↑↑
8>1なので入れ替える
4318
 ↑↑
3>1なので入れ替える
4138
↑↑
4>1なので入れ替える
1438←一番小さい「1」が列の最初に来た。水面を下げてまた海底から。
0870t.mourning ◆HeJleJP5y2 2016/03/22(火) 21:27:04.37
1 438
   ↑↑
3<8なので入れ替え無し
1 438
  ↑↑
4>3なので入れ替え
1 348←2番目に小さい「3」が2番目に来た。同様に3番目。

13 48
   ↑↑
4<8なので入れ替え無し
1348
ソート完了

これをふまえてExam11に再チャレンジ

ヒント
int a[2] = {1, 3};
の入れ替えは以下のように行う
int x = a[0];
a[0] = a[1];
a[1] = x;

n番目とm番目なら
int x = a[n];
a[n] = a[m];
a[m] = x;

n-1番目とn番目なら…
0871t.mourning ◆HeJleJP5y2 2016/03/22(火) 21:38:07.95
2.これは選択ソートと呼ばれるソート方法になります
一番小さい数を探し(選択し)最初に持ってくる。
残りからまた一番小さい数を探し(選択し)最初に持ってくる。
以下繰り返しで、最後まで行うとソートが完了する。

例)
4318
「4318」の中で一番小さいのは「1」
1番目と「1」を入れ替える
1 348
「348」の中で一番小さいのは「3」
2番目と「3」を入れ替える(もともと2番目なので入れ替え無し)
13 48
「48」の中で一番小さいのは「4」
3番目と「4」を入れ替える(もともと3番目なので入れ替え無し)
1348
ソート完了

同様にExam12に再チャレンジ

ヒント
一番小さい数を探すときにその場所も一緒に覚えておく。
一番小さい数だけを探す方法は以下のように行う。
int a[4] = {4, 3, 1, 8};
int min = a[0];
for (int i = 1; i < a.length; i++) {
if (a[i] < min) {
min = a[i];
}
}
0872t.mourning ◆HeJleJP5y2 2016/03/22(火) 21:53:01.98
3.これがクイックソートになります
なぜ早いかはググれ
というわけでExam14でクイックソートを実装してもらいます。
勿論11,12が終わったのち。

次、関数について
関数とは
プログラミングにおいては処理の集合を関数と呼ぶ。
集合なのでもちろん1つの処理だけでも良いし、何千何万個もの処理の集まりでも良い。
処理の集合をまとめて一つのものに定義すると何がうれしいかというと、
同一処理を繰り返し書かなくてもよいということである。

例えば1〜10の2乗-1の値を表示する場合何も考えずに書くと
System.out.println((1 * 1) - 1);
System.out.println((2 * 2) - 1);
System.out.println((3 * 3) - 1);
System.out.println((4 * 4) - 1);
System.out.println((5 * 5) - 1);
System.out.println((6 * 6) - 1);
System.out.println((7 * 7) - 1);
System.out.println((8 * 8) - 1);
System.out.println((9 * 9) - 1);
System.out.println((10 * 10) - 1);

となる。
これではプログラムより電卓を使ったほうがいいかもしれない。
0873t.mourning ◆HeJleJP5y2 2016/03/22(火) 22:12:29.04
関数を使う場合は
int func(int n) {
return ((n * n) - 1);
}
System.out.println(func(1));
System.out.println(func(2));
System.out.println(func(3));
System.out.println(func(4));
System.out.println(func(5));
System.out.println(func(6));
System.out.println(func(7));
System.out.println(func(8));
System.out.println(func(9));
System.out.println(func(10));

となる。
関数には引数と呼ばれるものがあり、
それを受け取り引数ごとに違う処理をしたり、
違う結果を返したりすることができる。
また、Javaのオブジェクト指向ではメンバ関数と呼ばれるインスタンスの処理を定義することができる。
HumanクラスのgetName関数などがメンバ関数となる。
メンバ関数はそのインスタンスの変数にアクセスできるため、
引数として渡されているような挙動が可能である。

逆にインスタンスに(あまり)関係のない挙動をふるまう関数を
静的関数、スタティック関数などと呼ぶ。
staticを関数の宣言部につけ、関数から参照できるのは
(基本的に)そのクラスのstaticな変数か
引数として渡された変数のみである。

以上を踏まえて
課題:Sudokuクラスの70〜84行目を何でもよいので関数化せよ
0874takesi ◆5LQe9dJ7ck 2016/03/23(水) 11:57:39.19
コミットしました
Exam11はできましたが12と関数についてはわからなかったのでなんとなくでやりました
0875仕様書無しさん2016/03/25(金) 00:11:55.28
>>1
はしめてのC!!
0876t.mourning ◆HeJleJP5y2 2016/03/26(土) 10:17:44.28
12と関数赤付けた。コメント見ながらもっかいやってみてね
関数についてはここでも少し解説
Javaでは関数の中に関数(クロージャという)は作ることはできない
public static void main(String[] args)
も関数の一つで実行するときクラス内にこれがあればこれを呼ぶという特権がついている
関数は基本的にクラスの直下に記述する。
class Hoge {
public static void main(String[] args){

}
void print(){

}
static void printState(Hoge hoge){

}
boolean isHuga(){

}
static boolean nearlyEquals(Hoge a, Hoge b) {

}

}
ダメな例
class Piyo{
public static void main(String[] args){
print(){

}
}
}
0877t.mourning ◆HeJleJP5y2 2016/03/26(土) 10:50:47.42
Exam13
探査とかいうプログラミングの問題
数あてゲームの自動化したものと考えればよい

数あてゲーム(Exam14に差し込んでやります)
1.AとBの二人で行う
2.まずAが好きな数を頭の中で決める
3.Bが数を言う
4.同じか大きいか小さいかをAが答える
5.同じでなければ3からやり直し

これを少数にして「同じ」の範囲をある程度決めたものがExam13
上の例でいうと
2.Aが√2を頭の中で決める
3.Bが少数を言う(x)
4.精度2桁とすると
x<1.40:小さい
1.40<=x<=1.42:同じ
1.42<x:大きい
とAが答える
問題と考えればいい

まずは数あてゲームをExam14で作る。
プルして上から順に解くこと
調べてもわからなくなった時点で一旦手を止めここに書き込むこと
0878takesi ◆5LQe9dJ7ck 2016/03/28(月) 19:38:29.48
用事が入ってしまい1日まで課題ができません
度々すみません
0879takesi ◆5LQe9dJ7ck 2016/04/02(土) 12:56:42.03
8日からのスタートでお願いします
また用事が入ってしまいました
すみません
0880仕様書無しさん2016/04/09(土) 16:12:40.41
>>8
>>ファイルを作成、編集しました!

と画像がありますが、

どうすれば、画像のようにメモ帳に文字を出せるのでしょうか?

どうぞよろしくお願いします。
0881仕様書無しさん2016/04/09(土) 20:56:22.07
>>880
全角キーを押してローマ字入力、変換
0882仕様書無しさん2016/04/09(土) 21:13:04.13
>>881
ご回答ありがとうございます。

できれば、もう少し詳細に教えていただけないでしょうか?

全くの初心者なものですから…。
0883仕様書無しさん2016/04/09(土) 21:24:41.83
>>882
プログラミングの前にパソコンの使い方を勉強した方がいい
0884仕様書無しさん2016/04/09(土) 21:49:19.68
ここにもスマホバカが
0885仕様書無しさん2016/04/10(日) 08:31:07.34
>>8
バイナリエディタに入力したものを、メモ帳にどうやって反映させるのでしょうか?
0886仕様書無しさん2016/04/10(日) 09:08:12.73
>>885
保存して開き直す
0887仕様書無しさん2016/04/10(日) 10:21:03.79
https://gyazo.com/830212aa2b0f04618cf808d9e279eb0a

「俺の名前はタカシだ」と入力したつもりが、上記のように記号がいくつかでてくるだけです。
0888仕様書無しさん2016/04/10(日) 10:22:53.68
https://gyazo.com/830212aa2b0f04618cf808d9e279eb0a

「俺の名前はタカシだ」と入力したつもりが、上記のように記号がいくつかでてくるだけです。
0889仕様書無しさん2016/04/10(日) 11:22:40.57
>>888
メモ帳に入力する
0890仕様書無しさん2016/04/10(日) 11:40:39.83
>>889
ああ、そういう意味だったんですね。

私は、バイナリエディタに入力したものが、連動してテキストのメモ帳に表記されるものと思っていました。

どうも、失礼致しました。

また、解らないことがあったら、またよろしくお願いします。
0891takesi ◆5LQe9dJ7ck 2016/04/11(月) 20:58:15.27
遅れて申し訳ありません
できるところまでコミットしました
全然できませんでした
出来が悪くてすみません
0892t.mourning ◆HeJleJP5y2 2016/04/13(水) 18:35:25.04
最初からできる人なんていないから。
また赤付けた
というより若干答え書いた
差分のところよく見て理解してね
またできるとこまでtry
0893takesi ◆5LQe9dJ7ck 2016/04/16(土) 19:22:15.22
遅くなってすみません
コミットしました
0894仕様書無しさん2016/04/16(土) 21:04:50.77
明日まで出先だから月曜日また赤つけます
次進めそうなら解説とかその時書く
0895仕様書無しさん2016/04/24(日) 15:02:23.98
NHK教育を見て49941倍賢く昼 [無断転載禁止](c)2ch.net
http://nhk.2ch.net/test/read.cgi/liveetv/1461474473/
0896t.mourning ◆HeJleJP5y2 2016/04/24(日) 23:28:48.01
遅くなったけどまた赤つけた
Exam12はあと一息がんば
Exam14はequalは一致を判定する関数なので比較には使いません
一応比較にはcompareToという関数があるが、この場合は一旦
lineを数値に変換してから<,==,>で比較しましょう
こっちはもう一息かな
0897仕様書無しさん2016/05/02(月) 16:19:36.60
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrent(Covenant)がオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


通話料が激安になるブラステル(050 Free)で、かなり遅延や音声途切れが発生する方は、以下の設定を試してください
○ Wifiと3Gのコーデックは2つ(GSM、G.711u-Law)とも有効にしておく
○ エコーキャンセルをOFF(チェックを外す)にする
○ あとの設定はデフォルトのまま
http://blog.livedoor.jp/gnunobian/archives/52013458.html
上記の設定でも音質が良くならない人は、wolfsonの高音質チップを搭載した機種(Galaxy 初代S、S3、S6、 AQUOSPhone ZETA SH-06E、AQUOSPhone si SH-07E、AQUOSPhone Xx 206SH、 Galaxy Note II)に買い換えて下さい。

500円以下の格安SIMで使えて登録・月額無料、IPベース発信なら携帯へは5.5円/30秒、固定へは8円/3分(月額無料でこの価格はすごい!)
http://blog.jikoman.jp/2015/11/brastel-050-free.html

あと、050Freeの起動もしくは発着信が2週間以上ないとプッシュサーバー期限切れでプッシュ着信が出来なくなるので、Llama Location Profilesで1週間に一度050Freeを自動起動するように設定すると、2週間以上経過してもプッシュ着信できます


最後にロケットストーブの焚き口へ超省電力なDC扇風機で風を送ると、横引き煙突が12m以上あっても煙が逆流してきません。
よって、横引き煙突で超高効率な熱回収ができるので薪が少量で済みます
あと、燃焼室の大きさは『無煙竹ボイラMBG150』で検索して参考にして下さい
http://i.imgur.com/iVuglg9.jpg 
http://jp.misumi-ec.com/material/mech/KRT1/PHOTO/KRT1_221004926837.jpg
http://livedoor.blogimg.jp/zoukibayashinokai/imgs/2/a/2a3c6dc0.jpg
0898仕様書無しさん2016/05/05(木) 08:53:33.67
個数 名前
96 t.mourning ◆HeJleJP5y2
281 takasi
80 takesi
21 takesi ◆5LQe9dJ7ck
4 たかし
97 仕様書無しさん
318 片山博文MZ ◆T6xkBnTXz7B0

何でt.mourningと片山君は熱心なのか
0899takasi2016/05/22(日) 00:31:52.76
たかしです

この年で就職できるか不安です

たかしでした
0900仕様書無しさん2016/05/30(月) 05:44:44.02
たかしです・・・・たかしです・・・・たかしです・・・・
0901仕様書無しさん2016/05/30(月) 21:28:33.80
たかしかし
0902takasi2016/06/01(水) 22:14:23.52
たかしです

誰か僕を拾ってくれませんか

なんちゃって

たかしでした
0903仕様書無しさん2016/06/01(水) 22:28:51.79
>>902
スレの前半で片山さんと特訓してた、たかしさん?
職業訓練校は、どうだった?
まだ、通っているのかな?もう修了したのかな?
0904takasi2016/06/01(水) 23:26:23.70
はい、そのたかしです。まだ通校しております
訓練校はIT関連の知識を幅広く学べて良いと思います
企業とのマッチングの場も設けてくれます
ニート上がりの人にはリハビリになると思います
実際に生活リズムが改善されました

ただ、いまたかしは悩んでいます
いろんな事に悩みすぎて何に悩んでるのか分からない悩みです
0905takasi2016/06/01(水) 23:43:47.05
その悩みを話せる人がいないので自問自答の日々です・・・
0906仕様書無しさん2016/06/02(木) 00:30:09.75
>>904
おー、久しぶり。っていっても、自分はずっとROMってただけだけどね。
職業訓練校、まだ通っているんだね。ここに書き込んでた頃は、昼夜逆転した生活だったから、ついていけるか、ちょっと心配してたので、ほっとした。生活ペースが身に付いて、良かったね。

訓練校の同期の人たちと、悩みを話したりしないの? 訓練校をでた後の進路が、最大の悩みなのかな?
0907仕様書無しさん2016/06/13(月) 08:16:44.08
おれ訓練校出てプログラマーになったが、年齢が若い人ほど就職すぐ決まる
能力とかじゃない
0908仕様書無しさん2016/06/16(木) 00:58:20.35
年齢に応じた振る舞いが求められるのに若いのと同じ事してたら
そりゃ不利だわな
0909仕様書無しさん2016/06/22(水) 07:20:57.92
>>904
何にどう悩んでるのか説明してくれんと回答何もできないよ。
日本語が不自由なマはポイー。
0910takasi2016/06/22(水) 23:33:27.72
お返事放置していてごめんなさい
色々な悩みを話そうとした結果特定を恐れてあのような答え方になってしまいました
何分、プログラマ志望の訓練生というとかなり数が絞られてきますので
大多数に共通していて話せる部分としてはやはりスキルが無いのにプログラマになれるのかっていう所ですね
長いことニートをしていたので自信がないっていうのは中々改善が難しいものですね
0911仕様書無しさん2016/06/23(木) 08:01:19.89
大丈夫
最初はずっとテストだから
あと特定は難しいから安心しろ
全国に訓練所あるし、30人規模のクラスだし
0912仕様書無しさん2016/06/23(木) 08:02:59.11
プログラマーは本質的には君と同じで根暗タイプだから
みんな同じような人ばかりだよ
おれも学生時代は隅にいるような人間だったが、プログラマーになって自分みたいな人間しかいなくてほっとした
0913仕様書無しさん2016/06/24(金) 05:20:54.81
そりゃ底辺の零細企業の場合だね。大企業ならそうじゃない
0914仕様書無しさん2016/09/18(日) 00:54:31.17
このスレ、まだパート2に突入してなかったんだな…
0915仕様書無しさん2016/09/25(日) 22:45:24.09
>>910
とにかく実務のソースを全部理解しろ
就職前ならオープンソースでもいい
ニートがひっかかるのはコードリーディングだからな
業界によるけど、例えばひきこもってゲームばかり作ってた子は
データベースの処理でつまずいたりする
そんなときに既存ソースを要領よく読めるかどうかがカギになる

スキルが低くてダメになった子っていうのは基本的にほとんどいないからまぁ安心しろ
逆にプログラミングスキル以外に全く地震がなかったらプログラミングスキルだけ徹底的に伸ばせ
いかに素早く間違いなくやるかが大事
まぁやるかどうかは自由だが声が出ないとかの悩みがあるなら一人でカラオケいってこい
0916仕様書無しさん2016/09/25(日) 22:46:17.89
>>902
20代でちょこちょこっとVBの修正ができる程度のスキルがあって
それなりに会話が成り立つなら引く手数多だよ
0917仕様書無しさん2016/10/13(木) 03:56:14.05
>>7
職業訓練って民間委託で講師はピンキリだよ
職業訓練の生徒集めれば国から補助金もらえる仕組み
昔に異常な数MicrosoftOffice講座とかあったのはその補助金が美味かったから
普通に会員になる客は0だって良かった
職業訓練で回されてくるやつが5人ぐらいいれば儲け出てたからね
0918仕様書無しさん2017/04/02(日) 19:41:26.58
オープンソースの既存バグを直せる様になれば、こいつはそこそこ使えると判断されるかもね。
新着レスの表示
レス数が900を超えています。1000を超えると表示できなくなるよ。
レスを投稿する