TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
無能に進捗を合わせなければならない風潮
teratailもりあがっtail? 43問目
teratailもりあがっtail? 48問目
日本崩壊に備えるプログラマー
ハッカソンマスターに気をつけろ!【NOT 技術者】
競技プログラミングにハマるプログラマのスレ 22
なぜEXCELは嫌われるの?
SEはプログラマ(技術者)を引退した人諦めた人
teratailもりあがっtail? 44問目
世にも悲惨なSIer業界 2社目
ニートです1からプログラミングを教えてくれる
- 1 :2015/12/25 〜 最終レス :2018/05/22
- 先生を募集します
先生!!
- 2 :
- なんですか私を呼びましたか?
- 3 :
- ハロワの職業訓練でもR
- 4 :
- >>2
先生!まず何をすれば良いのですか??
>>3
ネットで職業訓練の事調べたらあんなとこ行くより独学で勉強した方が身につくとか書かれてました!
と、いうかニートなので訓練校に通うお金を捻出できません!職歴なしなので手当も貰えません!!遺影!!!
- 5 :
- 社会的に終わってるのでたまごっち感覚で育てて下さい(*^_^*)
- 6 :
- 1.ファイル拡張子について調べよ。
2.拡張子を表示する設定にしろ。
3.テキストエディタをインストールせよ。
4.バイナリエディタをインストールせよ。
5.エディタで適当にファイルを作ったり編集してみよ。
- 7 :
- >>4
職業訓練は職歴なくても問題ないよ。
ちゃんと続けることできますかって
最初に聞かれるくらい。
月11万くらいもらえる。
職業訓練の講師ってプロのプログラマに教えてるような人だから
独学よりもよほど良いよ。
- 8 :
- 先生!できました!
1、拡張子とはファイルの種類を表す名前です!
2、フォルダの設定からできました!
3、4、備え付けのメモ帳とBzEditorをインストールしました!
5、ファイルを作成、編集しました!
ttps://i.gyazo.com/01f6f2e0fec5f9b1013e261d5b1368a8.gif
- 9 :
- >>7
職業訓練自体は職歴無しでも受けることはできるみたいですが(審査が厳しい?)
手当は貰えないような事を聞きました(グーグルで調べました)
手当を貰える対象は失業者、更にその中でも条件があるようですが、、、
僕の認識違いでしたかね?もう一度よく調べてみます。
ありがとうございます先生!!
- 10 :
- 6.次のような内容のテキストファイルを作成し、「hello.txt」という名前で保存せよ。
「set VAR=hello, world
echo %VAR%
pause」
ただし、行と行の間には「改行文字」(Enterキー)を入力せよ。
7.「hello.txt」の拡張子を「.bat」にしてダブルクリックせよ。
- 11 :
- 8.全角文字と半角文字の違いについて調べよ。
- 12 :
- この先生はだめです。まずはVisual Studio Communityをインストールしなさい
- 13 :
- 先生できました!BATファイルを実行するとコマンドプロンプト?が立ち上がりました!なんのために使うのかはわかりません
6ー7。ttps://i.gyazo.com/f26f498866d66c94d64498af93fba288.png
8,全角文字は2バイト文字、半角文字は1バイト文字です!
sssp://o.8ch.net/3qrw.png
- 14 :
- 「set (変数名)=(値)」は、変数に値を代入するコマンドです。
「echo (文字列)」は画面に文字列を表示するコマンドです。
「pause」は何かキーが押されるまで待つコマンドです。
コマンドは普通、上から順番に実行されます。
9.「echo 私は天才プログラマです」という行を「hello.bat」の先頭に追加して保存し、ダブルクリックしなさい。
- 15 :
- >>12
いろんな先生が居て楽しいです!ビジュアルスタジオインストール中ですすごい容量でかいです!
>>14
よくわかりました!できました!
ttps://i.gyazo.com/e787b1180adb505bb01063724ae2ed93.png
- 16 :
- >>12
環境が古いので最新のIDE入れたら時間切れになっちゃう。
- 17 :
- ビジュアルスタジオインストール完了したので再起動してきます
- 18 :
- ok
- 19 :
- 先生!再起動終わりました!
- 20 :
- 先生、質問です!
変数をechoで出力する際に変数を%で囲みましたが、文字列では%で囲まなくても>>15で出力されていました。
これは変数をechoで出力する際は%が必要、文字列では不要。というルールで良いのでしょうか??
- 21 :
- >>20
変数名を% %で囲ったら、そこは変数の値に「展開」される。試しに
set VAR=test
echo VAR 123
echo %VAR% 123
を実行してみればわかる。
- 22 :
- %で囲むと変数の中身が飛び出すんですね!分かりましたありがとうございます先生!
- 23 :
- 10.条件分岐
「set A=123
if "%A%"=="123" echo OK
if "%A%"=="124" echo NG
pause」
11.無限ループ
「:LOOP
set VAR=%VAR%!
echo %VAR%
goto LOOP」
- 24 :
- できました!
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から変な音が出ました!!
- 25 :
- あ!set VAR=%VAR%! は1回の処理ごとに!が1つずつ増えていってるでしょうか
でもはじめから大量に!は表示されていたし、見た感じ!の数は一定だった気がしたようなしないような
実行して確認しようにもPCから変な音出るので怖いです
- 26 :
- なにも実行してないときはVARの中身は空っぽ。最初に「set VAR=%VAR%!」を実行すると
VARは!になる。二回目はVARが%VAR%!、つまり!!になる。三回目は%VAR%!、つまり!!!になる。
代入の左辺の展開では代入する前の変数の値が使われる。
- 27 :
- ×左辺
D右辺
- 28 :
- 先生!後出しですが僕そんなようなこと言おうとしてたんです!
でも毎回setで変数の中身がリセットされるんじゃないかと思って、、、
知識ないのに勝手な想像しないほうがいいですね!
- 29 :
- gotoは指定したラベルに移動するコマンドだ。コマンドプロンプトで
ラベルを置く場合は、行の先頭にコロン(:)を付ける。
- 30 :
- gotoがポイントでLOOPはただの変数なんですね、ためしにNEETでやったらめっちゃ驚かれました
もしかしてこのコマンドプロンプトでは変数は半角大文字英数で表記するのでしょうか
- 31 :
- 12.適当なフォルダーをShiftキーを押しながら右クリックして、「ここでコマンドプロンプトを開く」を選びなさい。
13.開かれたコマンドプロンプトで「dir」「cd ..」「echo TEST」「echo /?」「cd /?」「copy /?」などのコマンドを実行しなさい。
- 32 :
- >>30
プロンプトでは大文字小文字の区別はない。
ラベル名と変数名は違う。
- 33 :
- お休み。
- 34 :
- できました!dirはフォルダ内の情報を表示、cd..はひとつ前のフォルダに移動、echo TESTはコマンドプロンプトに"TEST"と表示、xx /?はxxコマンドのヘルプを表示です!
そうなんですか!ラベル名と変数名の違いがわかりませんが宿題にしときます。おやすみなさいセンセー!
- 35 :
- ビジュアルスタジオをインストールしなさいという先生が居ましたがこれで何をすればよいのでしょうか、、、
助けて他の先生!何か課題だされないとやる気もでないし何するかもわからないよ〜(TOT)
とりあえず時間も時間だし僕は帰宅します さようなら
- 36 :
- 尊敬する人物はクロエ・オブライエンです
- 37 :
- プログラミング入門サイトでも作ってみるわ。ちょっと待っててな
- 38 :
- おはようございます
入門サイトうれしゅうございます
今日は何しましょう
- 39 :
- 君のOSの種類と、Visual Studioのバージョンを教えて。
- 40 :
- 先生おはようございあmス
OS:Win7 Pro
VS:Microsoft Visual Studio Community 2015 14.0.24720.00 Update 1
昨日DLしたての最新版でございます
- 41 :
- ハードディスクとSSDのどちらを使ってるか?
C++とC#のどちらをインストールした?
- 42 :
- アプリケーション用にSSD,データ用にHDD
VSはSSDにインストールしました
それはVSと別でインストールするのでしょうか?VSをインストールする過程でインストールされるのであればすべて推奨設定でインストールしました!
- 43 :
- SSDはハードディスクよりずっと速いが、信頼性が低く、壊れるときは一気に壊れる。必ず別のドライブにバックアップしておけ。
君の環境は恵まれている。デフォルトの設定でインストールしたならVisual C#が入っているはずだ。
スタートメニューからそれを探しだして起動しろ。
- 44 :
- コマンドプロンプトでできることは限られている。
C#という言語を使うともっと自由にプログラミングできる。
C#の主な用途はゲーム、業務、ツール作りである。
C#でどんなものを作りたい?
- 45 :
- はいい!
Visual C#というアプリが無かったのですが、VSを起動すれば良いのでしょうか?
そうであればVSを起動しました!
- 46 :
- なるほど。作りたいものはありません!最初の方に書いたとおりたまごっち感覚で育てていただけるとありがたいです!
でもしいて挙げるなら、時間を指定してPCをシャットダウンするソフトと最前面表示固定するシンプルなメモ帳が作りたいです!愛用のエディタはWIN付属のメモ帳です、これ以外は合いませんでした!
- 47 :
- 発言が矛盾しておりました
時間を指定してPCをシャットダウンするソフトと最前面表示固定するシンプルなメモ帳が作りたいです!
- 48 :
- ネットブラウザで2chは不便なので2ch専用ブラウザをインストールします
少々おまちくだされ
- 49 :
- そうだ、VSに統合されてた。VSは日本語になってるか?
「ファイル」メニューから「新規作成」→「プロジェクト」を選べ。
Visual C#とVisual C++の項目はあるか?
- 50 :
- VSは日本語です
どちらもあります!
- 51 :
- C#を起動するんでしたね。しかし色んなテンプレートがあって混乱しますhttps://i.gyazo.com/18528f8594fb2c4dbd1856832b830c7b.png
C#を選択するとAndroidやiOSの項目が出てくるのですがC#でこれらのアプリも作れるんですかねえ
- 52 :
- C#のコンソールアプリを作ってみろ。名前はMyFirstConsoleAppで。
- 53 :
- できました
ttps://i.gyazo.com/f6fdcf06327ec2080419b2225df4281a.png
- 54 :
- Mainの内部に
「Console.WriteLine("こんにちは世界");
Console.WriteLine("Enterを押してね");
Console.ReadLine();」
と入力して「ビルド」しろ。
成功したら「デバッグを開始」せよ。
- 55 :
- ttps://i.gyazo.com/bdcd67f152a5aad641feb662f6e6ca36.png
できました!これで大丈夫ですかね?
なんか”とか関数?とか勝手に入力してくれるんですがこれでプログラミング上達するんですかね
- 56 :
- Mainの中身を
「String str = "変数の中身";
Console.WriteLine("「" + str + "」");
Console.WriteLine("Enterを押してね");
Console.ReadLine();」 にして「デバッグを開始」せよ。
- 57 :
- ttps://i.gyazo.com/24f2f50ac2e273253e6fcc89a4f80518.png
できました!
- 58 :
- >>55
インテリセンスと言う入力支援機能だよ。
文字を少し入力してCtrl+Tabで補完ができる。
- 59 :
- Stringとか" "で囲まれたものは文字列だ。
+という演算子で文字列どうしを連結できる。
文字列をConsole.WriteLineという関数に渡すと
その文字列を画面に出力する。
- 60 :
- 「Console.Write("文字列を入力してね: ");
String str = Console.ReadLine();
Console.WriteLine("【"+str+"】");
Console.WriteLine("Enterを押してね");
Console.ReadLine();」にして開始しろ。
- 61 :
- なるほど!ReadLineは変数を指定せずにWriteLineで書き込んだ文字列をすべて表示してくれるんですね!
- 62 :
- 次はforループだ。
「for (int i = 0; i < 10; ++i) {
Console.WriteLine("【"+(i + 1).ToString()+"】");
}
Console.WriteLine("Enterを押してね");
Console.ReadLine();」にして開始しろ。
- 63 :
- intとか0とか10というのは整数を意味してる。
「for (int i = 0; i < 10; ++i)」というのは、おおざっぱにいうと
「int i;
for (i = 0; i < 10; i = i + 1)」と同じだ。
i.ToString()はiを文字列にした結果を返す。
- 64 :
- できました!
>>60 ttps://i.gyazo.com/3ad06236b595803a180acb8b9efab974.png
>>62 ttps://i.gyazo.com/aa8ae7a3dd71f66f205bb3f92fc5cc91.png
- 65 :
- 変数に文字を入れるときはString、数値を入れるときはintを付けるんですね!
- 66 :
- 整数とか文字列といったデータの種類のことを「型」という。
intとかStringというのは型名だ。
C#で変数を使うには、型名と変数名を指定しないといけない。
関数に渡すパラメーター(引数;ひきすう)には指定できる型が決まっている。
型の不一致はエラーになる。
- 67 :
- C#で利用できるすべての型について調べなさい。
- 68 :
- http://ufcpp.net/study/csharp/st_embeddedtype.html
- 69 :
- 演算子について
http://ufcpp.net/study/csharp/st_operator.html
- 70 :
- 制御フローについて
http://ufcpp.net/study/csharp/st_control.html
基本的なことは、このサイトに全部書いてあるな。
- 71 :
- 課題12.BMIを計算するプログラムを作れ。
ヒント: Console.ReadLineで文字列を読み込み、文字列変数に代入。
文字列をSystem.Single.Parseでsingle型に変換。
BMIを計算する公式を使う。
計算結果を文字列にしてConsole.WriteLineで出力。
- 72 :
- まだ読んでるので少し時間がかかります
申し訳ありません!!!!!
- 73 :
- 時間制限はない。かまずに飲み込むよりも、むしろ噛み砕く時間が重要だ。気長にやりたまえ。
- 74 :
- 行き詰まったら何なりと質問してくれ。
あと、プロジェクトは1つだけでなく何個も作ることができるぞ。
目的に応じてプロジェクトを分けておくと再利用しやすい。
プロジェクトの名前の付け方は十年後のことも考えて命名したまえ。
- 75 :
- ttps://i.gyazo.com/db16280fa4efcb134b3cdaeb4e4b7bc8.png
できました!
数値を入れる型についてなのですが、int使うならlong使えばいいじゃん!byte?いらないよ!と思ったのですが
これは型に入れる数に関わらず型自体にサイズ?があって、たくさんコードを書くプログラムを作るときに動作が重くなるから使う型を分けているのでしょうか?
例えば、
byte a = 1;
と
int a = 1;
は入ってる数は同じですが、型のサイズが違うので数値の範囲が決まっているのならbyteの方が節約できるということですか?
文章へったくそなので僕のイメージを伝えます
おちょこ=Byte
ジョッキ=Int
おちょことジョッキを用意して同じ分量水を入れて人間の手で運びます
おちょこは小さいのでたくさん運べる!(プログラムが軽快)
ジョッキは大きいので少しずつしか運べない!(プログラムが重い)
- 76 :
- 詰まった部分書きます
System.Single.Parse(taiju)
System.Single.Parse(shincho)
Console.WriteLine( taiju / (shincho*2) );
としようとしたらできませんでした
あとReadLineを最後の行に入れないとプログラムが待機状態にならないで終了してしまうんですね
- 77 :
- 型によってデータサイズや処理速度が異なる。
サイズが大きいとメモリーを圧迫したり、遅くなったりする。またintより小さくても遅くなる。
Parseの結果は値として返される。それをsingle型の変数に代入せよ。
- 78 :
- >>75の続きです。
なら小さいプログラム作るときはlongでもいいね。とはならないのは、大きなプログラム作るときになったらサイズ節約しなきゃならんしやりかた統一しようぜ!ってことですか?
それとよく例文とかの小さい整数を入れる際にint型を使うのは、値は小さいけどbyte以上の値扱うかもしれないしそこまで大きい値扱わないからintでいっかーみたいなノリでしょうか?
すべて僕の見当違いでしたら忘れて下さい!
- 79 :
- 分かりましたありがとうございます
こうすればよかったんですね
ttps://i.gyazo.com/546dc1eeeebc84d69b0ff8740bc65c7e.png
- 80 :
- 電卓を使って計算結果が正しいかどうか確認しなさい。
- 81 :
- >>76と言ってることが違かった!
Single taiju2 = System.Single.Parse(taiju)
Single sincho2 = System.Single.Parse(sincho)
Console.WriteLine( taiju2 / (shincho2*2) );
- 82 :
- よし、これで君も素人C#プログラマだ。
課題13.じゃんけんゲームを作りなさい。
ヒント:利用者の手を整数で入力(1:グー、2:チョキ、3:パー)。コンピューターの手を乱数で生成。ifで条件分岐(3×3通り)。勝ち負けを表示。
- 83 :
- >>80
計算式が違ってました!グーグルで調べたのに!!
正しくはこちらです
ttps://i.gyazo.com/81228b3c5437c27c277ef843e918f49d.png
かなり無理やりやった感あります
- 84 :
- お休み。
- 85 :
- んほおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
- 86 :
- おやすみなせい
- 87 :
- http://dorakuehoshi.hatenablog.com/entry/2015/12/26/184047
ゲーム攻略ブログで儲ける方法。
- 88 :
- ちょっと疲れたので休憩後再開
URLは見てないですが、ブログで儲ける方法ってすんごーい数のブログ作りまくればちりつもで儲けられるんじゃないですか
- 89 :
- 新しく別のプロジェクトを作る場合は、ファイルメニューから
「ソリューションを閉じる」を選んでから、新規作成→プロジェクトを選ぶ。
ソリューションとは、1個以上のプロジェクトをまとめたものだと考えるといい。
- 90 :
- 知的労働者は頭脳を酷使する。考えることや覚えることは案外エネルギーを消費する。
ハチミツ、チョコレート、コーヒーを適量摂取することをお薦めする。また、タンパク質やカルシウムも大切だ。
子どもの頃を思い出して規則正しい生活を心掛けよ。
睡眠時間と睡眠の質は頭の働きにかかわる。
- 91 :
- 変数名に型情報を含めれば、変数の命名が楽になり、変数名を見るだけで型がわかる。
(int型なら変数名の頭にiを付けるなど)
このような規則をハンガリアン記法という。
- 92 :
- //乱数を生成する準備。
Random cRandom = new System.Random();
//1〜3の乱数を生成する。
int iResult1 = cRandom.Next(3) + 1;
- 93 :
- if (iPlayerTe == 1) {
if (iComputerTe == 1) {
//あいこ
...
}
if (iComputerTe == 2) {
//あなたの勝ち
...
}
if (iComputerTe == 3) {
//あなたの負け
...
}
}
- 94 :
- BMI計算のプロジェクトをConsoleBmiKeisanという名前で保存してくれ。
じゃんけんゲームのプロジェクト名はConsoleJankenGameでいいだろう。
簡単なテスト用にConsoleTestというプロジェクトも作っておけ。
- 95 :
- 拡張子が.slnのファイルがソリューションで、拡張子が.csのファイルがC#のソースファイルだ。
中身はテキストファイルだから、どちらもテキストエディタで開けるはずだ。
保存されたソリューション(プロジェクト)をVSで開きたいときは.slnファイルをダブルクリックする。
- 96 :
- 変数を使うときは型名を指定しないとダメと言ったが、あれはウソだ。
型が明らかなときは型名の代わりにvarと書くことができる。
var eSincho = System.Single.Parse(str);
- 97 :
- すみませんサボってました!
なんか長ったらしくもっと簡単にできそうなのでまた書き直します・・・
https://i.gyazo.com/8a48cd85b871a38532a1cb453f9d6d71.png
https://i.gyazo.com/aa82bd6ae0022fad2bd2bda153f6a543.png
https://i.gyazo.com/0807c570af4dd328f430f5c9ecb7514e.png
今まで作ったプログラムは消して上書きしてしまいました
ジャンケン2で新しくプロジェクト作って命名します!
あまりレス読めてませんが起きたら読みます!
- 98 :
- プロジェクト名が変わらない・・・明日考えよう
- 99 :
- ああああああああああああああああああああああああ
前回作ったプログラムを見ながら新たに書き直したいのにウィンドウ増えない・・・明日考えよう
- 100 :
- >>97
あ、これループ前に変数に乱数を代入してるので相手がどの手をだすか2回め以降わかっちゃいますね
- 101 :
- あ〜〜〜〜〜〜寝る!!
- 102 :
- おはようございます
続きをやります
- 103 :
- なるほど頭に型の名前付ければ分かりやすいですね
cRamdomのcってなんでしょう rRamdomとはならないのでしょうか
じゃんけんゲームで詰まったところはあいこになった際の繰り返しです
ifを使うことを指定されていたので悩みましたがifじゃ無理なきがする・・・と思いグーグルで検索してWhileを使ってみました
- 104 :
- 他のソリューションにある.csファイルもVSで開けるはずだ。Mainの内部をコピペしろ。
- 105 :
- 先生おはようございます
最初に作ったプロジェクト「MyFirstConsoleApp」ですべてのプログラムを書いていたのですが、色々いじってslnファイルの名前をConsoleJankenにしたのですが、フォルダ名はMyFirst~のママです。
これは直接フォルダ名を手打ちで変更してもいいものでしょうか?他のファイルに影響出ませんか?
- 106 :
- あと>>97で短く書き直すと言ったのですが、正直言います。面倒くさい!なので
>>100で言っていた部分を直しcpuHand = rnd.Next(1, 4); をwhileの中に移動しました
- 107 :
- >>105
.slnや.csprojの中にもソリューション名やプロジェクト名の情報が入ってるから、
ファイル名を変えただけだと、不具合になるかもしれない。
面倒でもプロジェクトを一から作ることから始めるのがいいと思う。
汚い方法ならフォルダーまるごとコピーってのもあるけどプロジェクト名がかぶることになる。
- 108 :
- ソリューションのフォルダーの中に「bin」というフォルダがある。
その中に「Debug」フォルダがある。
中を見ると拡張子が「.exe」のファイルがあるはずだ。
実行可能ファイル、通称「エグゼファイル」。
このファイルは、コマンドプロンプトからコマンドと同じように実行できる。
- 109 :
- もちろん、プログラムが使用するバージョンの.NET Frameworkがインストールされていないと、
プログラムが開始しないでエラーになる。ユーザーにframeworkをインストールするように説明しないといけない。
- 110 :
- 面倒なので新しく作りプログラム内容をコピペしました
他のファイル、フォルダはすべて削除しました
exeファイルでコマンドプロンプトからプログラムを実行デキルことを確認しました!
- 111 :
- コマンドプロンプトは、昔のMS-DOSを引き継いでいる。
基本的な使い方と見た目はMS-DOSとあまり変わっていない。
キーボードで文字ベースの画面に文字列を入力して操作する操作系をCUIとかコンソールなどという。
- 112 :
- BMI計算プログラムの計算結果を小数点以下第二位で四捨五入させて表示させよ。
- 113 :
- >>103
クラス(class)のcだ。
クラスとはデータと、そのデータに対する処理を行う関数をまとめたものを扱うための型だ。
クラスの中の関数をメソッドという。
ソースをよく見るとclassが見つかるだろう?
- 114 :
- 失礼、staticのついた関数はインスタンスとは無関係でメソッドではない。
class Programの中にMainというstaticな関数がある。
Mainの引数はコマンドラインで渡された文字列の配列である。
コマンドラインは空白区切りである。
- 115 :
- staticな関数を作ってみよう。
class Programの中に
「static int add(int x, int y) {
int z = x + y;
return z;
}」
と書きましょう。これは足し算する関数addです。returnは値を返します。
Mainでこのadd関数を呼び出すことができます。試してみよう。
- 116 :
- できました
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();
}
- 117 :
- 躓いたところは、変数に入れる値が低いのでfloat型にしようとしたのですが、Math.PowがDouble型の変数にしか対応していなかったのでやむなくDouble型にしました
- 118 :
- メソッドを作ってみよう。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型のインスタンスです。
- 119 :
- >>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;
}
}
- 120 :
- インスタンスは型を指定したnewによって作成され、メモリーにインスタンスのデータが格納されます。
インスタンスはメモリー上に複数存在することができます。
- 121 :
- >>119
ok
- 122 :
- スタティックとかインスタンスとかよく分かってませんができました!
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();
}
}
- 123 :
- var cMainはインスタンスが入った変数ってことでしょうか
- 124 :
- メモリーが何なのかどこに存在するのかどのくらいの容量なのかわかりませんがそこはまだ追求しなくてもいいレベルですかね!頭がツアkれます!
- 125 :
- 単語の意味は分かっていませんが、なぜこういう動作をするのかは一応分かりました
- 126 :
- >>123
はい
- 127 :
- あと型varについてですが、型が明らかな時varを使うと仰っておりましたが、どこで明らかになっているかわかりません!
代入する値で判断しているのでしょうか?
例えば、
var i = 10 ←これは整数値だからint型だ!とコンピュータが判断
と、なればもう全てvarでもコンピュータの判断に任せることができるのではないでしょうか!
文章ヘッタクソなのでおかしなこと言っていたらごめんなさい!
- 128 :
- >>126
ありがとうございます先生!
クラスをNEWすると分身(インスタンス)ができるんですね
- 129 :
- 代入以外にもvarで型が決まるのはいろいろあるが、
代入の場合は右辺の型で決まる。
規則に従って型を推論する。
型推論というらしい。
- 130 :
- なるほど、推論ということは作り手の思ったものと違う型が作られてしまう場合もあるので”明らか”な時に使うのですね!
でも僕は確実にこれはこの型!ってはっきりしている方がいいのでvarを使うのは何か不安ですね
考えすぎですかね??
- 131 :
- インスタンスを2個作って何かを試してみよ。
- 132 :
- 配列を作ってみよう。
「
int[] array = {12,34,56};
foreach(var item in array) {
Console.WriteLine(item);
}」
- 133 :
- コマンドライン引数を表示してみよう。
「for(int i=0;i<args.Length;++i){
Console.WriteLine(i + ": " + args[i]);
}
」
- 134 :
- お休み。
- 135 :
- >>131
できましたhttps://i.gyazo.com/4c11c7ec9b17bf0aba853fa6d0b5ee94.png
- 136 :
- >>132
できました
https://i.gyazo.com/886075721a18e99db212f49242ea5653.png
>>133
何も表示されませんでした・・・
https://i.gyazo.com/e726234b42bdede43ff02d7d50046559.png
おやすみなさい
- 137 :
- 今日は余り進まなかった
単純なこと考えるだけなのに勝手にあたまがこんがらがるうううううううううう
- 138 :
- >>114
修飾子がstaticのものはメソッドではないだとwww
- 139 :
- 先生こんばんは
staticとは何なのかお教え下さい
- 140 :
- 他に先生はいらっしゃいませんか!夕方8時に起きたので寝れないのです!
言語は問いません、なんでもやります僕はたまごっちです!
- 141 :
- 言語は問わないと言いましたが、環境を用意するのが楽な言語が好ましいです・・・
Web開発とかアプリ開発に興味があります
偏差値40前後の高校を卒業後約10年ほぼニートでした
頭のできは良くありません!やる気もあまりありません!
今更自己紹介です!と、いうか違う言語を平行して勉強しないほうがいいですね!黙っときます!
- 142 :
- >>141
違う言語を並行して学習するのは全然悪くないよ。
- 143 :
- >>142
そうなんですか先生
たしかにこのスレを立てる前にスプリクト言語?のUWSCというのをちょろっといじってましたがC#と似てる部分がありましたね
他の言語も似てるのでしょうかね?今ある言語はC言語の兄弟みたいなことを聞いたことあるのでたぶん似ているのでしょうね・・・
まあ僕に平行して勉強するような器用なことができるかはわかりませんが。。。
何か僕にやらせたい言語有りますか?すっごい他人任せですが
- 144 :
- >>143
paizaに登録してスキルテストでまずはDランク問題全てクリアしなさい。C#も使えるよ
- 145 :
- おはようございます
paiza登録しました今から殺ります
- 146 :
- 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);
}
}
これでうまく動作しませんでした
エラーにもならないのですが、どこか問題あるのでしょうか。。。
- 147 :
- ReadLineが作動しないのです
forの外にあるReadLineは動作するのですが、for内のReadLineは動かないのでしょうか
- 148 :
- i > 7 + 1
- 149 :
- アッ・・・
- 150 :
- こうなってるのか?
(i>7)+1
- 151 :
- 正 i < 7 + 1
誤 i > 7 + 1
でした
- 152 :
- 今日はサボってしまいました申し訳ございません
- 153 :
- おはようございます
さっさとpaizaの課題を終わらせます
- 154 :
- Main関数のargsは、実行時に渡されるコマンド引数を表す。
コマンドプロンプトでスペース区切りで渡すことができる。
プロジェクトのプロパティでもデバッグ時のコマンド引数を指定できるぞ。
- 155 :
- コマンド引数によって処理を変えることはコンソール(CUI)ではよくある。
指定したファイルを開いて処理したい場合などに便利だ。
- 156 :
- >>10あたりで勉強したコマンドですね、覚えておきます
paizaの問題D002で1時間以上掛かってしまいました
適性が無いと感じ泣きそうになります
- 157 :
- 8/32まで終わりました 残りも頑張ります
先生方に質問です。VSで引数"()"の"("を入力するとインテリセンス機能?で")"が入力されますが
文字入力位置は"("と")"の間に有り、引数が要らないReadLine()などですと
末尾に移動するのにアローキーの→を押すか、Endキーを押さなくてはならなくて指の移動が辛いです!
先生方はどのように移動させていますか?我慢して→かEndを押さねばならないのでしょうか?
冬で手がかじかみ誤打を頻発させています・・・
- 158 :
- >>157
そのまま)を入力する。
手がかじかむなら暖房を掛ければ?
- 159 :
- おはようございます
それは)を入力して自動入力された)を削除でしょうか?
もしくは()の自動入力をOFFにしているので)をそのまま入力ということでしょうか?
後者であればその()の自動入力をOFFにする方法を教えていただきたいです!
他の自動入力機能は便利なので()だけOFFにするっていうのはできませんかね?
- 160 :
- 「ツール」→「オプション」から自分で探せ
- 161 :
- 応援してるよ!がんばって
- 162 :
- >>160
ありがとうございます
>>161
ありがとうございます
ありがとうございます
ありがとうございます
良いお年を
- 163 :
- 明けましてすみません。
- 164 :
- 明けましておめでとうございます。今年もよろしくお願い致します。
課題の続きをします
このところ課題しかやってる気がしないのですがこれでいいのでしょうか
たぶんいいのでしょうねまずはコード書くことに慣れること
果てしてシンプルなメモ帳と自動シャットダウンタイマーを作れるところまで成長するのでしょうか、続くのでしょうか・・・
スマホアプリなんかも作ってみたいと思うようになってきましたそんな2016年
- 165 :
- 配列のインデックス番号は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つ入るのでは?????????
????????状態です
- 166 :
- ああ、馬鹿だあああああああ
そりゃループ回数が5回だから要素が6つも入るわけ無いですよね
と、いうことは↑s[5]は何も要素が入ってないことになりますよね
わざわざ空の要素を用意しないといけないのでしょうかああわからない
- 167 :
- MSのガイドを見たら
int[] array = new int[5];
は
array[0]~[4]の要素しかないんですね
間違って覚えてた!!!!!!!!!!!!!
- 168 :
- ややこしい!!!!コンニャロう!!
- 169 :
- int NUM = 5;
int[NUM] a;
for (int i = 0; i < NUM; ++i) {
a[i] = i;
}
- 170 :
- >>1
ニートには100%無意味だから無駄な時間を使うべきではない。
- 171 :
- バッチファイル厨嫌いじゃない
- 172 :
- 次はファイル入出力だ。
九九の表をテキストファイルに出力してみよ。
- 173 :
- ファイルを入出力する前にオープン(開く)という操作が必要だ。
入出力が終わったらクローズ(閉じる)しないといけない。
- 174 :
- あけおめ
なにこれ、マジスレ?
- 175 :
- >>174
マジスレだよ。たかしは本気だ。
- 176 :
- コマンドプロンプトで「notepad」と入力するとメモ帳が起動する。
メモ帳のファイル名が「notepad.exe」で、システムに登録されているからだ。
「notepad "(パスファイル名)"」を入力すればメモ帳でファイルが開かれる。試して見なさい。
- 177 :
- コマンドを探しだす方法は、「サーチパス」、すなわちPATHという環境変数によって指定する。
詳しくは「Windows サーチパス」で検索。
環境変数にはシステムの環境変数と、プロセスの環境変数の二種類ある。
プロセスはプログラムのインスタンスである。
また、Windowsはサーチパス以外にもAppPathというレジストリーからの情報も使ってコマンドを検索することがある。
AppPathに登録していれば、Win+Rからコマンドを起動できる。
- 178 :
- おはようござざいます
ファイルの入出力やってみます
このスレはマジですけどやる気はマジではないかもしれません
- 179 :
- 「C:\Program Files」はプログラムと、変更しないデータを格納するためのシステムフォルダである。
このフォルダにプログラムを格納したい場合、「インストーラ」を使う。
このフォルダは管理者権限なく、勝手に変更してはならない。
よってこのフォルダに設定ファイルを書き込んではいけない。
設定を書き込みたい場合は、AppDataかレジストリを使う。
- 180 :
- 九九の表できた・・・!
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();
}
}
嬉しいので報告だけしました
- 181 :
- バイナリファイルの読み書きができたら、Windows Forms (WinForms) に進んでもいいぞ。
- 182 :
- >>180
それをテキストファイルに書き込めばいい。
http://ufcpp.net/study/csharp/lib_file.html
- 183 :
- 数値の出力において桁をそろえたい場合はString.Formatメソッドを使う。
Stringクラスはよく使うので、ひまなときはStringのメソッドを眺めておきなさい。
- 184 :
- できました!これでよかでしょうか
https://i.gyazo.com/dc888ad7d26be90b98ab70f4c5700482.png
- 185 :
- 質問です。今C#を勉強していますが、このままC#を勉強すればCは勉強しなくても良いでしょうか
- 186 :
- と、いいますかC#の基本を理解すれば他の言語への学習もすんなり活きますか?
- 187 :
- >>184
水平位置がそろっていないように見える。
九九の表ではそろえないといけない。
数値をそろえるためのstatic関数を作ってみろ。
String.Formatが使えるはず。
OSを作りたいならCは必須だが、C#の後でいい。
- 188 :
- お休みなさい
- 189 :
- >>184
↑のすでに記述されたコードはいじらずに関数の追加だけでyそうか?
- 190 :
- おやすみなさい!!
- 191 :
- >>144先生!やっと終わりました!https://i.gyazo.com/41c13dc803015cb945175b67089c10d3.png
>>184の訂正は明日やりますおやすみなさい
- 192 :
- >>191
なかなか飲み込み早いな!
- 193 :
- 九九の表の「データの流れ」(data flow)について考えよう。
九九のそれぞれの数はintであった。それが単一行Stringになり、WriteLineに渡される。
実は、改行文字は"\n"で表せる。これをWriteに渡せば勝手に改行してくれる。
改行文字を使うと、九九の表は複数行文字列で表せる。
データの流れは次のようにできる。
int→単一行文字列→複数行文字列⇒Write
- 194 :
- おはようございます続きやります
- 195 :
- プログラムは役に立たせるためにあるの。
ニートは人が困ってるのを理解できてないからやれることなの。
人が困っているのを理解できない奴は役に立つプログラムは組めないの。
よって無駄。
- 196 :
- static関数を作って水平位置を揃える方法が分からなかったので
すでに記述されたコードをいじれば簡単にできそうだったのでやりました!
https://i.gyazo.com/e5b8f5933aeab6d63ce186064a51c487.png
それはプログラムだけではなく全ての事に言えますね!
なら僕は自分がやりたいことだけやります!!
- 197 :
- 今度は、そのテキストファイルをいっぺんに読み込んで画面に出力してみろ。
- 198 :
- できました
https://i.gyazo.com/2bc9319292001ca6ea87abefd2ac14ba.png
質問です。結果を確認するためにはReadLineで画面に出力して確認するしか無いのでしょうか?
- 199 :
- >>198
デバッグ機能にステップ実行がある。少しずつ実行しながら、下の「自動変数」などの画面で変数の内容を確認できる。
また、右下の画面で呼び出し履歴が見られるし、指定したブレークポイントでデバッグ実行を止めることができる。
ただし、プログラムがDebug versionじゃないといくつかの機能は使えないかもしれない。
- 200 :
- ReadLineで画面出力の方が手っ取り早いから使っているんですねわかりましたありがとうございます
- 201 :
- Release versionはデバッグ情報がない分、プログラムサイズが小さく、実行が速くなる。
だから、一般にプログラムを配布する場合はReleaseを使う。
- 202 :
- ReadLineは入力だぞ。出力ではない。
- 203 :
- 次はバイナリファイルの読み書きだ。
int[] aに適当なデータを入れてその内容をバイナリファイルに書き込め。
- 204 :
- 改行コードを含むテキスト文字列を一気に読み込む場合はFile.ReadAllTextを使う。
逆に一気に書き込みたい場合はFile.WriteAllTextを使う。
- 205 :
- ReadAllTextやWriteAllTextにはオープンが必要ない。
- 206 :
- バイナリ形式ファイルは、16進数の00〜FFを1バイトとして、n個のバイトが並んだものと考えることができる。
このバイト数がファイルサイズである。ただし、どんなファイルでもバイナリとして読み込める。
通常、慣習としてテキストファイルではないものをバイナリファイルという。
- 207 :
- 今Fラン文系大卒職歴30歳営業なんですが
昔からプログラマーに憧れていまして
今から未経験でプログラマー関連の仕事に就きたい思っています
ですが35歳定年説なんてのも聞きますし
流石にこの歳からプログラマーは厳しいでしょうか?
- 208 :
- >>207
未経験はベクターとかストアなどで職歴を作れ。
中途は実力と職歴があれば就職できる。
- 209 :
- >>208
ありがとうございます
30歳からでもプログラマーを目指す事は可能なんですね
ただ未経験なので、知識や実力がないので、まずは仕事しながら勉強をして
その後、職業訓練校のC言語やマイコンなど勉強するコースに入りプログラマー系の仕事につけるようにガンバリマス
- 210 :
- 少し補足しておくと、日本企業は体裁を重んじるから注意が必要だ。
学歴はもちろん、体臭・口臭がひどかったり、受け答えが障害者っぽかったり、
マナーやエチケットを守らなかったりすると、落とされる可能性が高くなる。
就職活動にもマナーというものがあり、事前に本などを読んで把握しておかないといけない。
履歴書が手書きじゃないと受け付けない企業さえある。
- 211 :
- ニートになってしまったなら、これまでの親の教育を全部疑わないといけない。
何かが世間体と違うのではないか?
なぜいつも軍隊っぽいのかとか。
キャッチボールもサッカーもしたことがないのはなぜなんだ、とか。
- 212 :
- お前は旧日本軍なのか?
- 213 :
- 洗顔料やインターネットの存在も知らないような毒親の教育を受けたら最悪だぞ。
- 214 :
- で、毎晩酒を飲んで悪酔いして、からんでくるんだぞ
- 215 :
- やつらは体裁やら面子などを重んじて、子どもの生活など、1つも考えてはいない。
そんな奴等は地獄を見て滅んでしまえばいい。
- 216 :
- おはようございます
今から始めます
- 217 :
- できました
https://i.gyazo.com/488e837c6c5091f3d0f53b89e399dbb3.png
バイナリファイルとはテキストファイル以外を言うんですね、初めて知りました。
質問です。Streamクラス?を使うには一番上にあるusing System.IOを追加しないと使えませんでした
はじめから記述されていないのはファイルサイズやプログラムの実行速度に影響があるからでしょうか?
と、すると綺麗なコードを書くにはすでに記述されているLinqやTextも消したほうが良いですか?
- 218 :
- なんかあまり理解できていません
インスタンス?の作成のusing使う時と使わない時の違いとか
usingだと短く書けるからでしょうか
というか基本を全然理解できていない感
本とか読んだほうがいいですかねえ
- 219 :
- バイナリ形式のnバイトの整数データを書き込むときに、上位バイトと下位バイトのどちらを
先に書き込むのかは、システムによって異なる。
C#では下位バイトを先に書き込む。このようなデータ形式をリトルエンディアンという。
バイナリデータの読み書きにおいてはデータサイズを常に意識しないといけない。
- 220 :
- >>218
usingは記述を少なくして楽をするために使う。
重複した長いコードを何度も記述すると、コードを読むのも書くのも疲れるだろう。
- 221 :
- お休み。次はお待ちかねのWinFormsをやるぞ。
- 222 :
- 下位バイトとか上位バイトとかその他にも専門的な用語が散見されてこれはもう本買って読んだほうが良いかもしれませんね ついて行けてない感
ありがとうございましたおやすみなさい
- 223 :
- .exeファイルもテキストファイルではないからバイナリである。
.csファイルはテキストファイルだから、バイナリファイルではない。
バイナリファイルをテキストエディタで開くと文字化けすることがある。
- 224 :
- 文字もバイナリデータの集まりでは無いのでしょうか?
- 225 :
- >>224
人間は動物だが、人間のことを動物呼ばわりすると失礼だろ。慣例だよ、慣例。
- 226 :
- そういうものなのですね
こういう性格なので飲み込みが遅いです・・・
- 227 :
- WinFormsはGUIを持ったプログラムなんですね!
アプリ制作に一歩近づきますね
- 228 :
- どんなアプリ作りたいの?
- 229 :
- 目下の目標はwindowsアプリの自動シャットダウンタイマーと最前面表示できるテキストエディタですね
- 230 :
- おはようございます
- 231 :
- Windowsフォームアプリを作るよ。ファイルメニューからプロジェクトを新規作成。
Visual C#のWindowsフォームアプリケーションを選択してOK。
フォームのデザインが表示される。
- 232 :
- 1つ注意点がある。デザインのために自動生成されるコードには直接触らない。
編集する前にコメントを読んで自動生成コードじゃないか確認。
下手に編集するとデザインが変更できなくなる。
- 233 :
- Form1のデザインでフォームを右クリックしてプロパティを選べ。
フォームのプロパティが表示される。
Textプロパティを「こんにちはWinForms」に変更してEnterキー。
TopMostというプロパティを探し出してTrueにしろ。
- 234 :
- デザインが変わったのを確認してデバッグ開始。これでWinFormsアプリができた。
次にVS画面の右側に縦書きで「ツールボックス」という項目があるだろう。クリックしてみよ。
- 235 :
- すべてのWindowsフォームをクリックして展開。ボタンを追加するぞ。
Buttonをクリック。デザインフォーム上をドラッグ。これでボタンができた。
ボタンを右クリックしてプロパティ。Textに「終了」と入力してEnter。
さらにボタンをダブルクリック。
- 236 :
- button1_ClickメソッドがForm1クラスに追加される。
そこで「this.Close();」と入力する。デバッグ実行せよ。
- 237 :
- 課題。デザインフォームにいくつかLabelとTextBoxを追加して
BMIを計算するアプリを作れ。
ヒント:Textプロパティに文字列をセット
- 238 :
- おはおうございます
今から始めます
- 239 :
- つまずいたら質問したまえ
- 240 :
- どうした?
- 241 :
- できました!https://i.gyazo.com/e13d55b77a9005e84156751faeb1aa83.png
すべてのWindowsフォームが見つからずつまづきました
テキストボックスやラベルの縦のサイズは変更できないんですかね?
- 242 :
- >>241
複数行(multiline)にするプロパティがあるはずだ。
TopMostプロパティはフォームを最前面に保つ働きをする。
- 243 :
- Form1はクラスだから、1プロセスに複数のインスタンスを作ることができる。
ソースコード全体がどうなってるか把握しなさい。
- 244 :
- マルチライン見つけました
ソースコード把握しあした
- 245 :
- 「ボタンを押す」という出来事(イベント)に対してメソッドで処理を行う。
典型的なイベント駆動型プログラミングだね。
プロパティとイベントの使い方をマスターすれば、さまざまなアプリを作れるだろう。
- 246 :
- はいい!
- 247 :
- 新しいアプリを作成しよう。フォームのTopMostをTrueにする。フォームのAutoSizeModeをGrowAndShrinkにする。
TextBoxを配置。TextBoxを複数行に。TextBoxのDockをFillに。デバッグ開始。
- 248 :
- できました!https://i.gyazo.com/5c6e00277ece5f85d540dfafee9965de.png
Textに入力する文字は改行できないのでしょうか?
- 249 :
- 右の↓をクリックしたら入力幅が広がって改行できるようになりました
- 250 :
- メモ:プロパティのTextの右側の↓クリック
https://i.gyazo.com/edfc66c55f84d20ab93181c0f392156a.png
- 251 :
- >>248
AcceptsReturnプロパティ。昔はEnterキーのことをReturnキーと言っていた。
このフォームにメニューを付ければテキストエディタに見えるだろう。
- 252 :
- もしかしてwin純正のメモ帳もTextBoxを画面いっぱいに表示して作られてるんですか?
C#で作られてるかはワカリマセンが
- 253 :
- テキストボックスがフォーム全体に広がっているからフォームを右クリックできない。
こんなときは「プロパティ」ウィンドウの上側のコンボボックスで切り替える。
プロパティウィンドウのカミナリアイコンをクリックするとすべてのイベントが見れるぞ。
- 254 :
- >>252
メモ帳はC/C++で作られている。C/C++のテキストボックスはEDITというウィンドウクラスから
作られており、C#のそれとは多少違う。フォームのサイズが
変更されたらWM_SIZEメッセージを受け取り、テキストボックスのサイズを
合わせるといった原始的なことをやっている。
- 255 :
- C#でも純正メモ帳と全く同じようなものを作れるのでしょうか?
またC/C++でシンプルなメモ帳を作る人がいたらその理由は何でしょうか?
C#の方が楽に作れる気がするのですが
C/C++にもwinformsみたいなのがあって楽に作れるんですかね
- 256 :
- そのサイズを合わせるのもSetWindowPosとかMoveWindowといったAPI関数呼び出しで
しなきゃいけない。プロパティは使わない。
なんというか、C/C++は生産性が低く、スマートではない。
- 257 :
- C#は.NETという枠組みで動くが、C/C++はそれより外側の、OSに近い低レベルなところで動く。
.NETがなかった頃はVBやC/C++などしかなかった。
- 258 :
- 実行環境に.NETがないと動かない。これが最大のデメリット。
- 259 :
- わかったようなわからないような
C/C++は細かいところをいじれる と、いうか細かくしかいじれない感じですね
- 260 :
- .NET FREAMWORKSでしたっけ?あれがなきゃC#を動かせないんですか ふむふむ
WINマシンでしか動かせないんでしょうか?
- 261 :
- 汎用的に動かせるのがC/C++という認識で良いでしょうか
- 262 :
- お風呂へ入ってきます
- 263 :
- C++は基本的に自由だからフレームワークがいくつもある。
GTK+、Qt、Tcl/Tk etc.
しかしどれも決定的なものはなく、
インテリセンスが満足に動かない開発環境がほとんどだ。
迷路に迷うのも自由。避難指定地域へ行くのも自由。こめかみを撃ち抜くのも自由。
技術者の迷い道しかない。
- 264 :
- LinuxにはMonoというフレームワークがあり、これが.NET Framework互換になっている。
だからC#で作ったゲームをLinuxで動かすということもある程度できる。
- 265 :
- このようなゲーム作りに興味があるなら、「Unity C#」を検索したまえ。
Unityは今、もっとも熱いゲームエンジンだ。
- 266 :
- おまえら、おれは吊り、自演じゃないと信じて応援すっけど、スカイプとかメールでやりとりしたほうが早くねえか?w
- 267 :
- おやすみ
- 268 :
- なるほど、とりあえず今は何も考えずにC#やりますね
おやすみなさい
>>266
釣りとか自演の類に見えますかね??
いやあ色んな人から教わりたいですし、こういうところで経過報告した方が続くかなと思いまして
別に片山さんとマンツーマンでやってるわけでもなく>>144さんから出された課題もこなしてるので
僕に教えたいことがあればなんでも言って下さい
僕は>>5なので
- 269 :
- おはようございます
何やればいいかわからないのでpaizaCランク全部やります
- 270 :
- 難易度がぐっとあがった・・・
本借りてきます
- 271 :
- >>270
Cランカーなめんなw
- 272 :
- 1週間の勉強じゃ足りないでしょうか?
何やればいいですかねえ、自分で課題探すのすごく苦手です
- 273 :
- 模範解答を見てみたんですが、見たことのない関数が使われていたので
全ての関数が列挙された本とか買えばいいですかね
- 274 :
- 逆引き系ならポケットリファレンスかな?基礎学びたいなら独習C#。
この辺は片山先生の意見を待ってみたらいいかもしれない。
- 275 :
- とりあえず検索で出てきた勉強サイトで基礎を復習しつつ演習解きまくってみます
- 276 :
- ポケットリファレンスですか、本屋でどんなものか見てきあmスね
- 277 :
- 本にしろサイトでの勉強にしろ結局は自分でどこまでやるか目標決めなくてはならないので
今の授業スタイルはこれをやれ、と指定された明確な目標があるからやりやすいですね
自分で勉強できない人間は独学というのは難しい・・
- 278 :
- おはようございます!!!!!!!センセーーーーーーーーー!!!!!!!
- 279 :
- 今日はメニューとダイアログをやろう。
ツールボックスのMenuStripをダブルクリックしてフォームに追加。
デザインフォームのメニューを右クリックして標準項目を追加。
ファイルメニューの終了をダブルクリックして終了コードを書き込む。
ツールメニューに「テスト(&T)」を追加。それをダブルクリック。
- 280 :
- MessageBox.Show("テストです", "テスト", MessageBoxButtons.OKCancel);
というコードを追加。
- 281 :
- ユーザーはコンピュータと対話するためにダイアログボックスというものを使う。
メッセージボックスは、ボタンを押すだけのシンプルなダイアログだ。
コモンダイアログは、「ファイルを開く」「印刷」などのよく使う共通のダイアログである。
- 282 :
- ダイアログは「OK」「キャンセル」などのボタンが押されるか、Escキーが押されるまで
コントロール項目へのデータ入力を待つ。「OK」が押されるとダイアログ上の
コントロール項目のデータを読み込んでアプリに反映させて、ダイアログが閉じられる。
「キャンセル」やEscキーだとダイアログが閉じられるだけだ。
- 283 :
- メニューはコマンドを選択するだけでなく、コマンドに関する現在の
状態や、ショートカットを表示したりできる。
- 284 :
- デザインを間違ったときは、Ctrl+Zで1つ元に戻すことができる。
Ctrl+Yはその逆で1つ進めることができる。
- 285 :
- おはようございます今から始めます
- 286 :
- 独自のダイアログを作りたいなら、プロジェクトに新しいフォームを追加して
まずはMaximizeBox、MinimizeBox、ShowInTaskbarをFalseにする。
http://www.atmarkit.co.jp/fdotnet/dotnettips/139dialog/dialog.html
これを読んでテストがクリックされたら、自作のダイアログを表示するようにしなさい。
- 287 :
- >>284まで終わりました続けます
- 288 :
- フォームの追加は、プロジェクトから追加→新規項目から行う。
モーダルダイアログの表示は次のようなコードになる。
var form2 = new Form2();
form2.ShowDialog(this);
- 289 :
- 質問です>>286ではフォームの最大化、最小化ボタンの無効化をコードで記述していますが
これはフォームデザインのプロパティでFalseを選択してることと同じで記述する必要はありませんよね?
- 290 :
- >>289
その通り。それらのプロパティはデザイン時でも実行時でも変更できる。
- 291 :
- これを参考に、「ファイルを開く」コモンダイアログを使ってみなさい。
http://www.atmarkit.co.jp/fdotnet/csharptips/007dialog/007dialog.html
- 292 :
- できましたhttps://i.gyazo.com/93c2d336e20c2cd87d0b537c88108f93.png
難しいコードが記述されてましたが>>288だけで充分だったのですね
続きやります
- 293 :
- コモンダイアログはパラメータがたくさんあって大変難易度が高い。
最適なパラメータを選ぶのはプロでも難しい。
- 294 :
- てっきり新しいフォームを作って、それをコモンダイアログにするかと思い躓いていました
実際はメインフォームの開くスイッチにコード記述するだけで単純でした
https://i.gyazo.com/c245f9138c647884bb84f1c38f2af97f.png
- 295 :
- お風呂入ってきます
- 296 :
- ああああああああああ新しいフォームからもできますねこれ
- 297 :
- ああ、やってみたらコモンダイアログと新しいフォームが2つ立ち上がってしまい失敗ですね
>>294で正しかったです
- 298 :
- おやすみなさい
- 299 :
- ありがとうございましたおやすみなさい
- 300 :
- おなようございます
独習か猫でもわかるを買ってきます。
- 301 :
- 課題。最前面表示のテキストエディタを作れ。
【要件】
・ファイルメニューからテキストファイルが開ける。保存できる。
・複数行のテキストを編集できる。
・フォームのサイズを変えると中のテキストボックスもフィットする。
・常に最前面に表示される。
- 302 :
- ReadMe.txtとLicense.txtというファイルを追加すること。
Git for Windowsをインストールせよ。
.gitignoreというファイルを追加して無視すべきファイルを除外するようにしておくこと。
Gitレポジトリとしてコミットせよ。
完成したプログラムはGitHubにアップロードせよ。
ライセンスはNew BSD Licenseとする。
- 303 :
- おはようございます
猫でもわかるを買ってきました。
帰宅してから始めます
- 304 :
- >>302
ちょwなんかいきなり難易度高くなってません?
- 305 :
- おはようございます今から初めます
- 306 :
- 質問です、VSでプロジェクトが異なるファイルを別のタブで開くことはできますか?
例えばプロジェクト1のAファイルをプロジェクト2の作業中に開くことです。
コード内容を見比べたり参考にしたいのです
開けないとしたら見比べるのに良い方法は有りますか?別のテキストエディタを起動して読み込ませる方法しかないでしょうか
- 307 :
- >>306
ファイルメニューの「開く」→「ファイル」で開けるぞ。
ファイルタブを右クリックして、「タブグループの新規作成」で比較ができる。
- 308 :
- 訂正。
AutoSizeModeはGrowOnlyのままでいい。
- 309 :
- GUI項目の名前は、(Name)プロパティで指定できるが、
デザインした後に編集する裏技を紹介しよう。
編集メニューの「検索と置換」→「フォルダを指定して置換」を選んで
「すべて置換」。
プロジェクト名の場合はさらにプロジェクトの「名前の変更」と「プロパティ」、
ファイルメニューの「名前を付けて保存」を行う。
- 310 :
- もう気付いてると思うが、変数や関数の名前に日本語が使える。
日本語のGUIについては、英語にこだわる必要はない。
- 311 :
- 質問です。この授業ではネット上にあるオープンの既存のコードをコピペで使用して良いのでしょうか?
もちろん自分なりに添削し改良をしました。
それともコードを1から書かなければいけませんか?今の僕の知識と技術ではコピペしないとできそうにありません
- 312 :
- コード内容もきちんと読みどういう動作をしているかを考えて使っています
- 313 :
- >>311
ライセンス上、著作権上の問題なければ使っても構わない。
中には使用条件のあるコードがあるかもしれないので、気を付けて。
- 314 :
- ありがとうございます。
>>301の要件のみを満たしたテキストエディタ完成しました
Git for Windowsをインストール中です
- 315 :
- 誰が書いても同じようになるコードには著作権はない。
アルゴリズムには著作権はない。
短いコードには著作権はない。
- 316 :
- Git for Windowsが何かもコミットと言葉の意味もワカリマセンがとりあえずやってみます
- 317 :
- Gitをどのコマンドラインで使うか聞かれたのですが
デフォルトで選択されているGit Bashで良いでしょうか
- 318 :
- メールアドレスは持っているか?
GitHubにアップするためにはGitHubでアカウント作成が必要で、
アカウント作成にはメールアドレスが必要だ。
- 319 :
- GitHubのアカウント作成してきます
- 320 :
- >>317
Git BashでOK。これはLinux風の端末だ。これを使うとLinuxの勉強にもなる。
- 321 :
- GitHubには学習で作った実用性の無いアプリもアップロードして良いのですか?
ゴミをアップするなとか怒られないでしょうか
- 322 :
- >>321
実用性がなくても教育目的で役に立つかもしれない。
全く役に立たないと思ったら、後でprivateにしたり削除したりできる。
今は気にしないでいい。
- 323 :
- GitHubのアカウント取得、Gitのインストール完了しました
使い方が全くわからず困っています
- 324 :
- えーまずReadMe.txtとLicense.txtの追加をしたいのですが、これはVSから追加するのでしょうか?
形だけで内容を書かなくても良いでしょうか
- 325 :
- まず、プロジェクトフォルダを右クリックしてGit Bashを選ぶ。
次に「git init」を入力する。これでローカルレポジトリができる。
- 326 :
- >>324
フォルダのエクスプローラから新規作成で作成する。
ReadMe.txtはプロジェクトの内容を記述する。
License.txtにはNew BSD Licenseを記載する。
- 327 :
- ローカルレポジトリが何のことか分かりませんが git init しました masterってのが表示されました
フォルダはプロジェクトフォルダの事でしょうか?そのフォルダにReadMe.txtとLicense.txtを作成すれば良いですか?
- 328 :
- さらに.gitignoreファイルをテキストエディタなどで作成する。
「C# .gitignore」で検索。
- 329 :
- >>327
はい
- 330 :
- 【メモ帳で.gitignoreを作る方法】
メモ帳に「bin
obj
.vs」と書き込み、
ファイルメニューから名前を付けて保存。
ファイルの種類を「すべてのファイル」に変更。
プロジェクトフォルダに移動して「.gitignore」で保存。
- 331 :
- ファイル名は何でも良いですか?空白はできないとの警告があります
内容はこれでよいでしょうかhttps://i.gyazo.com/6f9577c12fb35ead09fe5b35865e0850.png
- 332 :
- 次はレポジトリにファイルを追加する。
Git Bash上で
「git add *.cs *.sln *.csproj *.resx」
「git add .gitignore App.config」
「git add Properties/*」
と入力。
「git status」で追加したファイルを確認。
- 333 :
- >>330で作り直します
- 334 :
- >>331全てのファイルから保存を選んだらファイル名無しでも保存できました
- 335 :
- >>331
名前を付けて保存のときに二重引用符をつけた「".gitignore"」で試してみなさい。
- 336 :
- >>332
これでよいでしょうかhttps://i.gyazo.com/de47e6a7b7a2d41b95faaaf86d48118b.png
- 337 :
- 次はコミットだ。
「git commit -m "first commit"」
その次はGitHubにログインして「New Repository」を作れ。
- 338 :
- >>336
untracked filesが追加されてない
- 339 :
- >>337
できました
>>338
何をすればよいでしょうか?
>>332をもう一度入力しますか?
- 340 :
- ああ、赤字のファイルが存在しないってことですかね
- 341 :
- >>339
「git add (追加したいファイル)」で追加して、
「git commit -m "second commit"」でコミットだ。
できたらGitHubで作った場所をブラウズせよ。
- 342 :
- その場所には何が書かれている?
- 343 :
- addしてstatusで赤字が無いことを確認し、セカンドコミットしました
GitHubで作った場所をブラウズせよで躓いていますhttps://i.gyazo.com/f523c28f90a4e7a0761e03cdd44612e1.png
- 344 :
- >>343
右上のアイコンつついてプロフィールに移動して
- 345 :
- 移動しました
https://i.gyazo.com/1c069585b04694604dddc72d4d9d5caa.png
- 346 :
- レポジトリがないようだ。ボタン押してレポジトリを作成。名前は「CSharpTest」でいい。
- 347 :
- 設定はどういたしましょうかhttps://i.gyazo.com/22f84a3fbbeab2e475166af903debfb5.png
- 348 :
- >>347
optionalだから入力しなくていい。そのまま。
- 349 :
- ここからどう進めばよいでしょうかhttps://i.gyazo.com/2795a649cfc0a83431bd544afcceafd5.png
- 350 :
- おやすみ
- 351 :
- ありがとうございましたおやすみなさい
- 352 :
- そこに書いてある
git remote add ...
git push ...
の二行。
- 353 :
- できました
- 354 :
- リモートレポジトリのURLをここに貼れ。
- 355 :
- これでしょうか?https://github.com/takasi-desu/CSharpTest.git
- 356 :
- 空っぽだ。何かBashにエラーメッセージが表示されなかったか?
Gitの設定ができていない可能性がある。
- 357 :
- >>336の赤字以外特にエラーはありませんでした
https://i.gyazo.com/931d10ca0210c42451a813dd94a2ab2b.png
ここでメールアドレス教えろ言われてますけどこれですかね?
- 358 :
- >>357
それだ。書かれた通りにgit configしてエラーが出たところからやり直せ。
Gitの鍵の設定は終わってるか?
- 359 :
- できました
鍵の設定は何のことやら分かりません
- 360 :
- https://i.gyazo.com/9cedaac0e767f618ebd6149e48b63412.png
これのことでしょうか?これはユーザーネームを入力するのですか?それともログインパスでしょうか
- 361 :
- http://monsat.hatenablog.com/entry/generating-ssh-keys-for-github
- 362 :
- もう寝なさい
妖怪「めのしたクマー」にならないように
- 363 :
- あと少し付き合って下さいお願いします!!!
>>360まで終わりましたまたgit remote add origin https://github.com/takasi-desu/CSharpTest.git
git push -u origin masterを入力すれば良いのでしょうか
- 364 :
- 適当にいじってたらできました!!!!!!!
https://github.com/takasi-desu/CSharpTest.git
- 365 :
- ここまでやりましたがGitHubが何なのかGitが何なのかコミットの言葉の意味とかよくわからないなまま色々入力しましたがとりあえずは休憩しますありがとうございました
- 366 :
- なんか個人情報とか漏れてませんよね色々入力したりアップしたので心配です
- 367 :
- たかしってもしかして飲み込み速いんじゃね!!
- 368 :
- すげえ!!
- 369 :
- 案外みんな優しいのな
イチが総攻撃されるスレかと思ってきてみたら
- 370 :
- あげ
- 371 :
- おはようございます
ありがとうございます
今日は体調が優れない為お休みさせて頂きます
おやすみなさい
- 372 :
- 職業訓練3年前いったけどなかなか良かったよ
仕事やめて2年ニートして行ったんだが、まず生活習慣変えるのがきつかった
毎月10万もらえるんだが、遅刻欠席に異様に厳しくて1回でも理由ない遅刻欠席したら0円
もう必死に通ったよ
授業も二進数とかネットワークの仕組みとか本当基礎から初めてくれてありがったかった
1日が9:30〜16:00だったから放課後にちょっと勉強して、卒業するときには応用情報取って、技術的にはJavaでWEBアプリケーション作れるようになってた
就職先も斡旋してくれて、面接の練習もしてくれてなんとか就職できた
最近ようやく設計にも関われるようになった
- 373 :
- >>366
全てのファイルを見たけど個人情報はなかったよ
ちょっぴり漏れるのを期待してたんだけどな
- 374 :
- 差分がデカすぎる
殺人的プルリクが早速合って少しワロタ
- 375 :
- 片山さんもtakashiさんもすごいな。
片山さんやさしい。
寝なさいとかいってくれる上司がほしい。
働けとはいうけど寝なさいとか言ってくれる上司はいないからなーー
- 376 :
- 自演だろ
- 377 :
- おはようございます
職業訓練は今考えています、給付金は頂けないと思いますが
休み明けにでもハロワに行ってきます
差分がでかすぎるとは何か余計なものまでアップしちゃいましたかね
先生から直しを頂いたのですが後で保存の仕方調べておきます
半分ノリで建てた部分もあるんですが、まさかここまで熱心に教えてもらえるとは思いませんでした
なので僕も頑張りたいです
自演にしろ自演でないにしろ僕が勉強してることは事実なので生暖かく見守って下さい
ちょいと久しぶりの外出をして帰宅後に猫でも分かる〜を読んで勉強したいと思います
先生が来たら授業の続きを受けたいと思いますそれではさようなら
- 378 :
- たかしは何歳なの?
- 379 :
- http://internet2020.s3-website-ap-northeast-1.amazonaws.com/
- 380 :
- >>377
> 差分がでかすぎるとは何か余計なものまでアップしちゃいましたかね
"katahiromz"って人からのPull Request(通称プルリク)があるでしょう
その"改良してみたよ"のコミットがデカすぎるwと、>>374で書いただけ
アナタの"second commit"には何の問題もないよ
- 381 :
- おはようございます
僕は26です
問題なかったですか良かったです
- 382 :
- GitHubのレポジトリを開いてプルリクの内容を確認してmergeしてみて。
- 383 :
- おはようございます
今からやります
- 384 :
- mergeしました自分がなにやってるかわからないんですけど大丈夫ですかね
- 385 :
- Gitとは分散型のバージョン管理システムだ。
GitHubはGitリモートレポジトリを管理するウェブサービスだ。
レポジトリとはソフトウェアの格納庫のようなものであり、
主にパッケージやライブラリのソースを保管する。
- 386 :
- 今度は、ローカルレポジトリにpullしてみなさい。
pushは押す、pullはその反対の引き出す。
タンスの引き出しを連想するといい。
- 387 :
- すまない、初心者はpullを使わなくてもいい。代わりにcloneしてみてくれ。
適当なフォルダで
git clone https://github.com/...(以下略)
を実行してみてくれ。
- 388 :
- できました フォルダにファイルがDLされました
- 389 :
- そのローカルリポジトリでもバージョン管理されているのを
確認するために「git log」を実行してみてくれ。
- 390 :
- プログラムの変更履歴みたいなのが出てきました
- 391 :
- viというエディタが起動する。矢印キーやPgDnキーでスクロールできる。
viの終了にはqを押す。
- 392 :
- ログは出てきましたけどエディタは起動していません
- 393 :
- そこに出てきたのはコミットした記録だ。
git commit -m "(メッセージ)"
で指定したメッセージがタイトルになる。
複雑な文字列はハッシュだ。これがコミットのIDである。
コミットとは確定とか確約などの意味があるが、日本語には適当な訳語はない。
Gitはすべてのコミットを記録する。
- 394 :
- ログが短いときはviは起動せずコンソールに出力されるだけだ。
- 395 :
- なるほどなんとなくわかってきました
さっきのpullはgitでプロジェクトフォルダ上でpullしろって事だったんですね
そうすれば新しいバージョンにプログラムが更新されると
- 396 :
- 課題。編集メニューを追加し、「切り取り」「コピー」「貼り付け」
「削除」「すべて選択」ができるようにしなさい。
さらに変更ファイルをgit statusで確認、git addしてコミットしなさい。
- 397 :
- 始めます
- 398 :
- わかったかな?
textBox.Cut();
textBox.Copy();
textBox.Paste();
textBox.SelectedText = "";
textBox.SelectAll();
- 399 :
- 今からコミットします
- 400 :
- 引き出しを押してリモートに保管しなさい。
おまじないは「git push origin master」だ。
- 401 :
- 同じレポジトリ?にコミットする場合は以前コミットしたフォルダでコミットしなければなりませんか?
先ほどクローンしたプログラムのフォルダの名前が以前のと違っていたので
クローンのプログラムに手を加えてaddしてコミットしたんですが、いくつかのファイルが無いってエラーがでました
- 402 :
- Gitのその他、役に立つコマンドを紹介する。
「git diff」でコミット後の変更点を見る。
「git diff (ファイル名)」でコミット後のファイルの変更点を見る。
「git checkout (ファイル名)」でファイルをコミット直後の状態に戻す。
- 403 :
- 最初にレポジトリを作成した時のフォルダはTextEditer301で今回はCSharpTextをコミットしようとしました
- 404 :
- >>401
「git status」の結果を見せて
- 405 :
- 「git mv (旧ファイル名) (新ファイル名)」は名前の変更。
「git rm (ファイル名)」はファイルの削除。
- 406 :
- status https://i.gyazo.com/520e8e745c82c9104dbcafa3709bb699.png
- 407 :
- >>406
エラーメッセージは?
- 408 :
- error: pathspec 'second commit' did not match any file(s) known to git.
です
- 409 :
- git commit -m "4th commit"
- 410 :
- できました!!
-m が無かったのが原因です失礼しました
- 411 :
- GitHubに無事反映されました
- 412 :
- 赤は変更前で緑が変更後だと思うんですが、いじってないところもハイライトされてるので見辛いですね
こういう仕様なんですかね
- 413 :
- ローカルリポジトリの記録は「.git」という隠しフォルダに記録される。
コミット内容を消したい場合は.gitを削除すればいい。
- 414 :
- >>412
無視したいファイルは.gitignoreに相対パスで指定する。
- 415 :
- ソースファイル(*.cs)はコンパイルされてオブジェクトファイル(*.obj)が出力される。
オブジェクトファイルとライブラリを組み合わせて.exeファイルにする処理をリンクという。
一連のコンパイルとリンクのことをビルドという。
- 416 :
- ファイルというか中身のコードですねhttps://i.gyazo.com/1688c0e20b691be3f118b3e6129e56a3.png
Form1.csは138行以降から新規にコードが記述されましたが1-27は何も変更していないのにハイライトされてるので
どこが違うんだ〜と探しちゃいますね
- 417 :
- >>416
おそらく改行コードの違いだろう。
- 418 :
- ああそういえば先生のプログラムに手を加えるときに書式がなんたらかんたら言われて適当に押した覚えがあります
それですね
- 419 :
- ここまで把握しました
- 420 :
- http://qiita.com/yokoh9/items/1ec8099696ade0c1f36e
- 421 :
- そこを見てgit config --global core.autoCRLF falseをしました
statusで確認したらcore.autocrlfが2つあって3行目のcore.autocrlfはtrueで
最後の行のcore.autocrlfはfalseでちゃんと設定できたかよく分かりませんね
- 422 :
- いじってみたら最後の行だけ変わるみたいですね、この問題は自分で調べておきます
- 423 :
- まだ時間あるな。
「編集」→「元に戻す」(undo)と「ヘルプ」→「バージョン情報」を実装せよ。
- 424 :
- 終わったら試しに「git diff」してみて。
それからadd, commit, pushだ。
- 425 :
- 「バージョン情報」というフォームを作って
バージョン情報をそこに記載する。
それをモーダルダイアログとして表示する。
- 426 :
- git diffしました
文字が出続けてるんですが終わるまで待てばいいですか?
- 427 :
- なかなか終わらないんでエンター押しっぱなしにしたらENDになったんですが
閉じようと思ったらまだプロセスが動いてると警告出ました
時間かかりますかね?
- 428 :
- >>426
矢印キーやPageUp/PageDownキーを押してみて。
終わるにはqを。
- 429 :
- お困りですか?
- 430 :
- 5thコミット完了しましたhttps://github.com/takasi-desu/CSharpTest
- 431 :
- core.autoCRLF falseちゃんと機能してました
- 432 :
- おやすみなさい
- 433 :
- 本日もありがとうございましたおやすみなさい
- 434 :
- 【今後の予定】
プルリクの方法
GUIデザイン
マルチメディア
データベース
ネットワーク
- 435 :
- 勇者はおらんのか?
- 436 :
- 申し訳ありません!!!!!!!!!
なかなか寝付けず今起きました
明日頑張ります
おやすみなさい・・・
- 437 :
- 片山さん共同プロジェクトの授業の予定があったら呼んでください馳せ参じますからね
- 438 :
- はい、無断欠勤ひとーつ。減給ね。
- 439 :
- (T_T)
寝れません
本での学習は進んでいます 猫でもわかるC# 142/404p
授業には間に合いたいです
おやすみなさい
- 440 :
- >>439
猫はわかりやすい?
- 441 :
- C#やるなら、LINQPadがチョー便利
フリー版でも十分使えるぞ
これ豆な
- 442 :
- おはようございます
- 443 :
- https://github.com/katahiromz/JankenGUI
これをForkしたものをローカルにcloneしてみたまえ。
Forkとは、方向性の違う分家を作り、自分好みに変えるために、
自分のリポジトリとして複製することだ。
- 444 :
- >>440
分かりやすいですけど完全な初学者向けではないかもしれません
2進数やビットが何も解説無く出てくるので
別に知らなくても読み進められますけど、猫でも分かるはいいすぎかもしれませんにゃ
LINQはまだ学習していませんがそこまで行ったら使ってみますね
- 445 :
- 先生おはようございます
寝起きなので少々お待ち下さい
- 446 :
- JankenGUI.slnを開き、デザインフォームで二つのPictureBoxのWidth,Heightを60にしなさい。
ドラッグやShiftキーでフォーム上のコントロールを複数選択し、VSの
「書式」メニューを使ってコントロールの位置を調整しなさい。
- 447 :
- 同じフォルダにある音声ファイル(*.wav)や画像ファイル(*.png)を確認。
ソリューションエクスプローラの「Properties」をダブルクリック。
リソースを選択。「リソースの追加」の右三角をクリック、
「既存のファイルの追加」を選ぶ。ファイルの種類を「ビットマップ」にし、
Shiftを押しながらpngファイルをすべて選択して開く。
オーディオのwavファイルも同様。
- 448 :
- ここで「リソース」というのは、EXEファイルにデータを埋め込む機構のことだ。
データが埋め込まれていないデータファイルなら、容易に第三者に盗用されてしまう。
リソースはある程度これを防ぐ。
- 449 :
- 今から始めます
スタート
- 450 :
- button1をダブルクリック、次のコードを追加。
「pictureBox1.Image = Properties.Resources.gu;
var player = new System.Media.SoundPlayer(Properties.Resources.gu1);
player.PlaySync();」
できたら、デバッグ実行して、button1をクリックしてみよ。
- 451 :
- コントロールはFontプロパティで文字を大きくしている。
また、ボタンを大きくした文字列に合わせるためにAutoSizeをTrueにした。
- 452 :
- デザインフォームはどうやって表示させるのでしょうか?
slnファイルを開きエクスプローラからファイル一つ一つクリックしたのですが
コードが表示されるだけです
- 453 :
- 右クリックからビューデザイナで表示できました失礼しました
- 454 :
- 課題。ジャンケンゲームを完成させなさい。
ボタンとフォームの背景色を変更しなさい。
フォームはサイズ変更できないようにしなさい。
- 455 :
- 課題始めます
- 456 :
- >>444
あ、勘違いしてる
LINQPadはLINQ専用のツールじゃないよ
ちょっと試したいC#コードの断片がある時に、
わざわざVisual StudioでSolutionやProjectとか作らずに
気楽に試すことができるツール
- 457 :
- フォームが読み込まれたときの処理はLoadイベントで行う。
表示されたときの処理はShownイベントで行う。
イベントはプロパティウィンドウのカミナリをクリックすれば見られる。
- 458 :
- 画像がPictureBoxからはみ出る場合は
SizeModeプロパティをいじるとよかろう。
ちなみに、画像はGoogle画像検索で「ジャンケン フリー素材」を検索して拾った。
音声は自分で録音したものだ。
- 459 :
- 自分で画像を用意したい場合はGIMPやInkscapeといったフリーソフトで
作成・編集したり、カメラやスキャナで取り込んだりするとよい。
- 460 :
- >>456
課題終わったら使ってみます!
思ったより頭が働いてないので少し時間かかります
- 461 :
- リソースデータは名前で参照する。名前が重要だ。
どのリソースを使うかは、名前で決めないといけない。
- 462 :
- >>460
気が向いたらでおkっす
- 463 :
- ヒント:ボタンのクリック処理を関数で共通化
- 464 :
- ヒント:勝ち負け判定関数
- 465 :
- 最序盤でつまづいています
スタートボタンを押して開始→手をクリック→手を受け取り条件分岐
こういう流れで行きたいのですが
えーまず、メインのジャンケンの処理をどこに記述すればよいのかで混乱しています
- 466 :
- 頭のなかではこんな感じなのですがhttps://i.gyazo.com/18d3d208948dbd5047961437a72d9359.png
実装の仕方がわからず・・・
さっさと質問しとけばよかったですすみません
- 467 :
- ... 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)) {
...勝ち負けを表示...
}
}
- 468 :
- ありがとうございます
分からなかったらまた聞きます
行ってきます
- 469 :
- 今日中に終わらなそうです
- 470 :
- 残りは明日にするか。
どこまでできた?
- 471 :
- 判定して結果を表示させる所まで来ました
あとはあいこのループ処理と画像の表示と音声のタイミングが合ってないのでそれを直すことです
- 472 :
- ・スタートおした時のジャンケンポンの効果音
・判定後のスタートをリセット
・画像のサイズをあわせる
まだまだありました
- 473 :
- 明日の授業までに終わらせておきます
- 474 :
- PlaySyncを使うとそこで処理が動かなくなる。
画像を変えるなら再生の前にするとよい。
一方、Playは非同期で動く。
非同期再生処理のタイミングを調整したいなら、スレッドを使うことになる。
- 475 :
- 分かりました
頭をすっきりさせるためにお風呂に入ってきます
- 476 :
- 今日もよくがんばった。おやすみ。
- 477 :
- 本日もありがとうございました!!おやすみなさい
- 478 :
- >>454
なんとか完成しました
今までは一つのメソッドに処理書いていたので楽でしたが
今回はメソッド同士の値の受け渡し?などがよく分かってなくて難しかったです
数こなしてなれるしか無いですね
- 479 :
- >>478
add, commit, pushしてから、Githubでプルリクしなさい。
- 480 :
- おはようございます
プルリクエストしてみました。ちゃんとできていますでしょうか
体調不良のため途中で離脱するかもしれません
- 481 :
- 今日の勉強会は休みにします。
- 482 :
- 分かりました、自習します
- 483 :
- 先生、たかし君のペースでいいので是非データベースとの連携もご教示ください!
- 484 :
- 病院行こうと思ったら午前で終わってました
おはようございます
- 485 :
- ジャンケンゲームの続きだ。
https://github.com/katahiromz/JankenGUI
これを適当なフォルダにcloneしてソースを眺めてみよ。
- 486 :
- おはようございます
始めます
- 487 :
- Visibleプロパティをfalseにすると非表示になる。
SoundPlayer.Stopで音を止めることができる。
- 488 :
- コードを読んだ感想を述べよ。
- 489 :
- 僕のぐっちゃぐちゃなコードに比べるとすごく綺麗にまとまっていて
これはどういう動作をするコードなのかひと目で分かります
条件分岐の負けの判定の仕方でelse if ((3 + player_hand - comp_hand) % 3 == 1)
を見てこれはすげえと思いました
全体のコード量は少ないですが、すっきりしていて感動しました
そして自分にこんな綺麗に書ける自信が無くて胃が痛くなりました
- 490 :
- こういうやり方もあるのかと色々発見がありました
以上、小学生並みの感想文でした
- 491 :
- あとじゃんけんゲームがなかなかおもしろいです
- 492 :
- その判定は大学数学の剰余類という概念を使っている。
多分、大学一年生で習うだろう。
- 493 :
- 初めて聞いた単語で胃が痛くなりました
とりあえず頑張ります
ちなみに僕は数学は大の苦手です
数学の知識があったほうがどう考えてもいいですね
- 494 :
- 今日はアプリの設定データについて勉強する。
アプリを終了した後でも、データを保存しておきたい場合、
ファイルやレジストリにデータを記録することになる。
レジストリはWindowsが持っている、階層構造を持ったデータベースで
あり、ファイルとは異なる。
- 495 :
- 二つのTextBoxをフォームに配置し、さらにOKボタンとキャンセルボタンを置く。
- 496 :
- 置きました
- 497 :
- OKボタンをダブルクリックして、次のコードを追加。
var key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Takashi\MySoftware");
key.SetValue("Text1", textBox1.Text);
key.SetValue("Text2", textBox2.Text);
key.Close();
- 498 :
- 追加しました
- 499 :
- プログラムを実行してOKを押す。これでレジストリに書き込まれた。
Win+Rキーを押してregeditと入力してEnterキーを押す。
これでレジストリエディターが起動する。
HKEY_CURRENT_USER\Software\Takashi\MySoftwareがあることを
確認せよ。
- 500 :
- Tkashi\Mysofrwareとレジストリを確認しました
- 501 :
- 次は読み込みだ。フォームのLoadイベントに次のコードを追加。
var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware");
textBox1.Text = key.GetValue("Text1");
textBox2.Text = key.GetValue("Text2");
key.Close();
- 502 :
- 文字列リテラルに@が付いているのは\によるエスケープシーケンスを解釈しないためだ。
以前、"\n"は改行を表すと言った。"\t"はタブ文字だ。このように通常、""の中の\は特殊な解釈をする。
- 503 :
- オブジェクト型は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();
}
- 504 :
- レジストリはシステムの資源を占有するので、サイズの大きなデータを書き込むべきではない。
大きな設定データはファイルに記録する。
ではどこに設定ファイルを書き込めばいいか?
特殊フォルダのAppDataに書き込むのがいいとされる。
- 505 :
- >>503
key.GetValue("Text1").ToString();
でOKだ。
- 506 :
- 特殊フォルダの場所を取得するには次のように書く。
var path = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
- 507 :
- 読み込みされるか実行して確認せよ。
次にレジストリエディタでMySoftwareキーを削除してプログラムを再起動せよ。
例外が発生するはずだ。実はキーが開けないときkeyはnullになる。
nullというのは無効なデータのことだ。
- 508 :
- 読み込まれないです!
https://i.gyazo.com/f2e5ff48bd5fa2390e783ff8d86d6c9e.png
Form1_Loadは初めから存在してなかったので自分で作ったのですがこれが原因でしょうか
- 509 :
- キーが開けないときや作れないときはkey == nullになる。
このまま書き込んだり、読み込もうとすると例外が発生してしまう。
対処法はnullチェックをすることだ。
if (key != null) {
...
key.Close();
}
- 510 :
- >>508
それはいったん消してプロパティウィンドウ
からイベントを追加せよ。カミナリのアイコンだ。
- 511 :
- >>507例外がスローされるのを確認して
>>509nullチェックで回避しました
- 512 :
- あ、読み込みも問題なくできました
- 513 :
- 課題。ジャンケンゲームでの勝ち・負け・引き分けの回数を
レジストリに記録するようにせよ。
- 514 :
- アプリ設定に使ったファイルやレジストリキーを消すのは、
インストーラ側で行うことが多い。
- 515 :
- 課題が出来たら、プルリクせよ。残り時間は自習とする。
- 516 :
- 質問はありませんか?
- 517 :
- 質問はありませんが、値の受け渡しで頭がぐるぐるしてます
とりあえずsave_keyメソッドとload_keyメソッドを作りぐっちゃぐちゃやってます頑張ります
- 518 :
- えーと、やりたいことは分かっているんですが思考が迷子です
時間がかかりそうなので宿題とさせて下さい
えーとプログラミング適正無しでしょうか悲しいです
- 519 :
- ヒント:
アプリ側で保持するのは、回数が増えた分だ。現在の回数ではない。
レジストリへのアクセスは読み書きを一度に行う。
アプリ側の増分だけレジストリの回数を増やした後でアプリ側の増分をゼロにする。
回数を増やすのは勝敗引き分けが決まったときに行う。
回数の増分はフォーム側ではなくプログラム側で保持する。
- 520 :
- おやすみ。身体を冷やすなよ。
- 521 :
- ヘイ、ヨー!
始めっぞ
- 522 :
- おはようごじます・・・
- 523 :
- さあーて、どこまでできたかなっ♪
- 524 :
- 正直に言いますとまだ出来ていません
あまりの出来の悪さに悲しみに暮れ寝て起きたら今です
○にたい
- 525 :
- ヘイ、まずは、三つのint型のメンバー変数を追加するよぉ。
初期値はゼロだぜぃ。
int kachi_count = 0;
int make_count = 0;
int aiko_count = 0;
- 526 :
- 追加しました
- 527 :
- お次は、勝敗判定の箇所を探してみよー。
hantei関数の呼び出しをしている場所があるよね。
ここで判定に応じてカウント変数を1つ加算だよお!
- 528 :
- 加算できました
- 529 :
- その後にレジストリのカウント値を更新だ。
CreateSubKeyはキーがなければキーを作成してそれを開く。
あればそのまま開く。
カウント値はGetValueで取得、SetValueで設定だ。
しかしまだ値を設定していないときにGetValueしたらどうなるか?
- 530 :
- 例外がスローされます
- 531 :
- >>530
ノーノー、nullが返される。
var value = key.GetValue("KachiCount");
int count = kachi_count;
if (value != null)
{
count += Convert.ToInt32(value);
}
...
- 532 :
- そしてcount.ToString()をSetValueしてからkachi_countをゼロにする。
他のカウント変数も同様だ。
- 533 :
- どのタイミングでキーを作成しなければいけないのか分からないです
- 534 :
- カウントを表示するのは別のフォームで行う。
新しくフォームを追加だ。
その上にラベルをいくつか追加。
フォームのLoadイベントでレジストリを読み込んでラベルテキストをセット。
OKボタンでフォームを閉じるようにする。
- 535 :
- >>533
いつカウントを更新するかは、自由に決めることができる。
アプリが終了するときか、フォームが閉じたときか、カウンタが更新したときか。
ここではすぐに更新してほしいので、hantei関数が呼ばれた後に
レジストリを更新する。
- 536 :
- どうだね? 作れそうかな?
- 537 :
- >>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();
}
で大丈夫ですよね
- 538 :
- >>537
try/catchしないならkeyとvalueのnullチェックが必要だよ。
- 539 :
- レジストリの更新はメソッドを新たに作成してそこでやらせたほうがいいですよね
- 540 :
- >>539
そうだね。
- 541 :
- \MySoftware
のところは
\JankenGUI
にしておこう。
- 542 :
- 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();
こういうことでしょうか
- 543 :
- if (value_kachi != null) label4.Text = key.GetValue("KACHI").ToString();
ちょっと無駄があるな。
if (value_kachi != null) label4.Text = value_kachi.ToString();
こっち。
- 544 :
- git add -a
git commit -m "add counters"
git push origin master
- 545 :
- どうだね?
何があっても、とにかく陽気に行こうぜ
- 546 :
- もう少しで動かします
- 547 :
- どうした? ん?
- 548 :
- ブラインドタッチの特訓と基本情報の取得が必要だな。
1ヶ月以内にブラインドタッチをマスターして、
1年以内に基本情報を取得しなさい。
- 549 :
- 上手くいきません
とりあえず現時点のコードをコミットした方がいいですか
- 550 :
- レジストリの更新はカウント加算の後だ。
- 551 :
- ブラインドタッチ一応できます・・・
実質的な死刑宣告と捉えたほうが良いですか・・・
- 552 :
- 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;
}
- 553 :
- じゃあ、pushしといて。
明日見るから。
- 554 :
- わかりましたpushしておきます
- 555 :
- 今日はおやすみ。
- 556 :
- すみませんでした
おやすみなさい
- 557 :
- $ 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
ぐぬぬ
- 558 :
- http://transitive.info/article/git/command/remote/
- 559 :
- あ、フォーク忘れてた? ごめんね。
- 560 :
- んぐぐぐぐぐぐぐ
プスプスプスシューーーーーーーーーーー
- 561 :
- なぜでしょうpushができません
- 562 :
- >>561
自分のリポジトリじゃないからね。
最初にforkすべきだった。
pushしなくていいよ。変更点少ないし。
- 563 :
- 分かりました
動かして見た感じでは問題はなかったです
https://gyazo.com/3d005abe029830ef80e9f69be763228f
https://gyazo.com/567c6437b66c8bd4b84a6a6c8f59096c
https://i.gyazo.com/dfea862fc1e257c9e54c9e28edeb757f.png
- 564 :
- いくつか注釈しておこう。
引数がゼロ個の関数を作ることができる。
save_keyは引数のない三つの関数に分けた方がいい。
記録がない場合はゼロ回として扱うべきだ。
異常な表示にならないようにすべての場合の「状態」を管理しないといけない。
- 565 :
- JankenGUIにリソースのアイコン(*.ico)を追加せよ。フリー素材で構わない。
可能ならばJankenGUIに署名を行え。
JankenGUIをReleaseビルドせよ。
Inno Setupをダウンロード&インストールせよ。
- 566 :
- Inno Setupのウィザードに従ってインストーラのスクリプト(*.iss)を試作せよ。
スクリプト中の絶対パスを相対パスにせよ。
JankenGUIが使っている.net frameworkのバージョンを確認せよ。
次のサイトを参考にインストール時に.net frameworkの有無をチェックするようにせよ。
http://qiita.com/bellx2/items/14ac4e02283d5c1ef12b
- 567 :
- 今日はインストーラ作成を行う。今回の課題は英語ができないと難しいかも知れないな。
質問が有ったらお気軽に。
- 568 :
- おはようございます
準備ご始めます
- 569 :
- 署名は多少時間がかかると思う。今日は後回しでいい。
- 570 :
- ローカルリポジトリ情報の隠しフォルダ「.git」を「rm -rf .git」で消す。
「rm -rf」はファイルやフォルダをまるごと消すLinuxのコマンドだ。
GitHubのTakasi-DesuのJankenGUIをSettingsから消して(delete)作り直す。
それからgit init, add, commit, push -uだ。
- 571 :
- git remote addも忘れずに。
- 572 :
- 教員免許を持っていない私が指導するのだから、不充分な点も
あるかもしれないが、御了承頂きたい。
進捗報告を。
- 573 :
- Inno Setupの使い方を調べている途中です
- 574 :
- Releaseビルドしたなら、bin/Releaseフォルダにexeができているだろう。
これをInno Setupのウィザードでプログラムファイルとして指定する。
- 575 :
- 使い方がさっぱりわかりません
exeファイルはできましたがInno Setupのウィザードでプログラムファイルとして指定するのはどうすればよいのでしょうか
- 576 :
- わからない点はある?
- 577 :
- >>575
Inno Setupは日本語になっているか?
参照ボタン(browse)をクリックして、ファイルの場所を指定する。
- 578 :
- 参照ボタンはどこでしょうか?
開くはスクリプトファイルしか開けないようです
今この画面ですhttps://i.gyazo.com/3a0dffc78162915778d17ec7ea5504a3.png
- 579 :
- File→New
- 580 :
- 英語が読めないなら、日本語化した方がいいんじゃないか?
- 581 :
- 日本語化できますか?
インストールウィザードを日本語化するのしか見つかりませんでしたが
- 582 :
- 先生、今回ばかりは無理かもしれません
使い方が全くわからなくて調べながらやらないといけないので時間が凄いかかると思います・・・
順序立てて教えていただければ分かりやすいですが、それもまた時間かかりそうですし・・・
- 583 :
- InnoEditXにしようか?
- 584 :
- 簡単なのであればそちらでお願いします
DLします
- 585 :
- 今日はこの辺でお開きといたしやしょう。
おやすみでござります。
- 586 :
- すみませぬ・・・・・・・・・おやすみなさい・・・・・・・・・・・・・・_(:3」∠)_
- 587 :
- じゃんけんは意外と作るの面白いよね
がんば
- 588 :
- InnoEditX
http://textexpage.s154.xrea.com/software/
- 589 :
- InnoEditXをDL、展開して適当なフォルダに配置する。
InnoEditXのReadMeを読んだ後で、InnoEditXを起動する。
「ツール」→「設定」で、Inno Setupの場所を指定する。
あらかじめJankenGUIにReadMe.txtとLicense.txtを追加しておく。
[Setup]タブをクリック。「基本情報」タブで、アプリの名前を入力
(「たかしのジャンケン」「たかしのジャンケン ver.1.0」)。
インストール先を入力({pf}\Takashi Janken)。
- 590 :
- 「アンインストーラー」タブをクリック。
「アンインストーラーを作る」をチェック。
表示するアイコンに「{app}\JankenGUI.exe」を指定する。
{pf}は「C:\Program Files」などを表している。
{app}はインストール先のフォルダを表している。
「情報」タブをクリック。「製作者」「説明」「バージョン」を入力。
- 591 :
- 「フラグ」タブをクリック。
「中断を許可」「UNCパスを許可」「アプリ用ディレクトリを作る」
「情報をレジストリに保存」をチェック。
「ダイアログ」タブをクリック。
「インストールを行いますダイアログを出さない」をチェック。
ここまで、[Setup]タブ。
- 592 :
- [Files]タブをクリック、リストを右クリックして「アイテムの追加」。
ソースファイルに「JankenGUI.exe」を選んで指定、
出力先ディレクトリを「{app}」にして、「OK」。
さらに「アイテムの追加」。「ReadMe.txt」を選んで指定、
出力先ディレクトリを「{app}」にして、「OK」。
さらにさらに「アイテムの追加」。「License.txt」を選んで指定、
出力先ディレクトリを「{app}」にして、「OK」。
- 593 :
- [Icons]タブをクリック。
このタブはショートカットアイコンの追加に関する設定だ。
リストを右クリックで「アイテムの追加」。
作成先を「{group}\たかしのジャンケン」に、
リンク先を「{app}\JankenGUI.exe」にして、「OK」。
さらに「アイテムの追加」。
作成先を「{commondesktop}\ReadMe.txt」に、
リンク先を「{app}\ReadMe.txt」にして「OK」。
さらにさらに「アイテムの追加」。
作成先を「{commondesktop}\License.txt」に、
リンク先を「{app}\License.txt」にして「OK」。
- 594 :
- さらにさらにさらに「アイテムの追加」。
作成先を「{commondesktop}\たかしのジャンケン」に、
リンク先を「{app}\JankenGUI.exe」にして「OK」。
さらにさらにさらにさらに「アイテムの追加」。
作成先を「{group}\アンインストール」に、
リンク先を「{uninstallexe}」にして、「OK」。
{group}は、スタートメニューの項目を表している。
{commondesktop}は、すべてのユーザのデスクトップを表している。
{uninstallexe}は、アンインストールプログラムを表す。
ここまで[Icons]タブ。
名前「JankenGUI.iss」を付けて保存。ビルドしてエラーがなければ
インストーラが作成される。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
- 595 :
- >>593 訂正。
× 作成先を「{commondesktop}\ReadMe.txt」に、
○ 作成先を「{group}\ReadMe.txt」に、
× 作成先を「{commondesktop}\License.txt」に、
○ 作成先を「{group}\License.txt」に、
- 596 :
- たかし書籍化パターンだろこれw
- 597 :
- 謝辞に片山先生へのお礼が書かれてるend
- 598 :
- おはようございます
ありがとうございます・・・
始めます
- 599 :
- 無事ビルド完了しました
https://i.gyazo.com/6762f0ece561ac26d495a98a46d14fc7.png
- 600 :
- どうでもいいことだろうけど、
>>594になぜ
Rock54: Cautionがついているのだろう
exeかな?
- 601 :
- 剛田たけしのジャイアンじゃんけん
- 602 :
- >>570-571の手順でGitHubにアップしてくれ。
以前のレポジトリは消えても構わない。
- 603 :
- 作成したセットアップファイル?もフォルダに加えるんでしょうか
- 604 :
- .issもレポジトリのフォルダに入れて。
setup.exeは.gitignoreで除外して。
- 605 :
- 修正1.JankenGUI.issをテキストエディタで開いて絶対パスの記述を相対パスに直しなさい。
修正2.使用しているレジストリキーをアンインストール時に削除するようにしなさい。
- 606 :
- 終わったらInnoEditXで開いてビルド。
インストールしてインストールした項目をテスト、アンインストールを何度か繰り返しなさい。
- 607 :
- 進捗報告を。
- 608 :
- 今>>605です
- 609 :
- 絶対パスと相対パスについてはご存じかな?
- 610 :
- いいえ
- 611 :
- 現在のフォルダが「C:\Users」であるとき、「C:\Users\takasi\himitsu」という場
所(パス)は相対パス「takasi\himitsu」で参照できる。
「C:\Users\takasi\himitsu」は絶対パスだ。
パスを相対的に指定するか、絶対的に指定するかの違いだ。
- 612 :
- これを直すんですよね?
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}";
- 613 :
- { }がついたものは直す必要ない。
[Files]の記述はどうなってる?
- 614 :
- [Files]はありません[Setup]と[Icons]のみです
- 615 :
- ファイルがインストールされていない。>>592をやり直して。
- 616 :
- これで良いでしょうか
[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
- 617 :
- [Files]
Source: "bin\Release\JankenGUI.exe"; DestDir: "{app}";
Source: "ReadMe.txt"; DestDir: "{app}";
Source: "License.txt"; DestDir: "{app}";
こうでした
- 618 :
- JankenGUI.issは、フォルダJankenGUIの中にあるんだろ? だったら
Source: "License.txt"; DestDir: "{app}";
じゃないかい?
- 619 :
- >>617
それでOK。テストに入りなさい。
- 620 :
- 問題なくインストールでき、アンインストール時にレジストリが削除されることを確認しました
_(:3」∠)_
- 621 :
- pushしたら今日はここまで。おやすみ。
- 622 :
- pushしました本日もありがとうございましたおやすみなさい_(:3」∠)_
- 623 :
- ツールの使い方が全くわからない辛い・・・
- 624 :
- JankenGUIのプロパティの「公開」タブをクリックして、マイナー
バージョンを1にし(1.1)、Releaseバージョンをビルドしなさい。
プログラムに変更が有った場合、プログラムをバージョンアップしないと
インストーラがファイルを更新しないことがあるので注意。
JankenGUI.issをInnoEditXで開いて[Setup]タブをクリック。
「デフォルトのスタートメニューグループ名」を「たかしのジャンケン」にしなさい。
- 625 :
- [Languages]タブをクリック。リストを右クリックして、名前を「Japanese」にし、言語ファイルで「Languages」→「Japanese.isl」を順に選んで「OK」。
[Setup]タブをクリック。「基本情報」と「情報」のバージョンを1.1にしなさい。
「基本情報」の「出力」の「セットアップファイルの出力時の名前」を
「tjanken-1.1-setup.exe」にしなさい。古いsetup.exeは削除。
.gitignoreで「tjanken-*-setup.exe」を無視するように設定しなさい。
- 626 :
- JankenGUIを自由に改良しなさい。1つ改良するたびにgit add, git commitしなさい。
改良に失敗したら「git checkout (ファイル名)」で1つ元に戻しなさい。
- 627 :
- 次はインストーラなしのパッケージを作ってみよう。
プログラムのインストールができない環境の利用者はインストーラが使えない。
だから、インストーラなしのプログラムもそれなりに需要がある。
- 628 :
- 次のような内容のバッチファイル「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
- 629 :
- pack-bin.batをダブルクリックすると、tjanken-binフォルダが作成され、
必要なファイルがコピーされる。
このフォルダを右クリックして「送る」→「圧縮(zip形式)」を選ぶと、
このフォルダが圧縮されたzipファイルtjanken-bin.zipができる。
これの名前を変更し、tjanken-1.1-bin.zipにすると、
インストーラなしパッケージが完成する。
.gitignoreにzipファイルとtjanken-binフォルダを無視するように
「*.zip」「tjanken-bin」を設定しなさい。
- 630 :
- たかし半角になっててワロタw
- 631 :
- おはようございます
21時から始めます
- 632 :
- >>628でpack-bin.batを作りダブルクリックしましたがフォルダは作られませんでした
代わりにtjanken-binというファイルが出来ました
フォルダのなりぞこないでしょうかこれは
- 633 :
- >>632
delとcopyの間にmkdir %DIR%を忘れてた。
できたファイル消してやり直して。
- 634 :
- >>629まで完了しました
- 635 :
- アプリが使用している.Net Frameworkのバージョンを確認せよ。
ReadMe.txtに作品名、作者名、動作環境を記せ。
配布するファイルのサイズを確認せよ。
ウイルスチェックを行え。
- 636 :
- frameworkのバージョンはプロジェクトのプロパティから確認できる。
ファイルサイズはファイル右クリックのプロパティで確認できる。
- 637 :
- 配布するファイルとはJankenGUI.exeの事でしょうか?
- 638 :
- >>637
tjanken-1.1-setup.exe
と
tjanken-1.1-bin.zip
が配布するファイルだ。
前者がインストーラつきのプログラム、後者がインストーラなしのプログラムである。
- 639 :
- どうした
- 640 :
- >>635
完了しました
- 641 :
- pushしたら終わりだ。
青少年はもう寝る時間だ。
おやすみ。
- 642 :
- ?
- 643 :
- 遅くてすみません
pushしましたhttps://github.com/takasi-desu/JankenGUI
- 644 :
- たかしのじゃんけんゲームやってみたがよく出来てる
頑張ってな
- 645 :
- ありがとうございます
ほとんど片山先生の作品なんですけどね・・・
最近勉強できていません
体の調子が悪くて・・・起きる時間も夜・・・ふぁああああああああ
- 646 :
- 最近プログラミングの適性がないのではないかと悩んでいるお年ごろです
慣れでしょうか
- 647 :
- 無料ホームページ作成
http://freehp.ojaru.jp/
- 648 :
- 今度は、○×ゲームだ。
https://github.com/katahiromz/MaruBatsuGame
こいつをForkして、適当なフォルダにcloneしてくれ。
dataフォルダに、画像と音声のデータがある。
画像はInkscapeで作成、音声は自分で録音した。
- 649 :
- 今回は、辞書(dictionary)を使っている。
一般に辞書というのは、単語から意味を調べる書物だね。
C#で辞書というのは、あるデータに他のデータを関連づけるデータ構造だ。
単語に相当するデータをキー(key)といい、
意味に相当するデータを値(value)という。
キーをintとし、値をMasuとする辞書の型は、Dictionary<int, Masu>と書く。
- 650 :
- 黒い線を表示するのにLabelを使った。
Labelの背景色を黒にし、AutoSizeをFalseにしてある。
それぞれのマスはPictureBoxになっている。
画像と音声のデータはすでにリソースとして追加した。
- 651 :
- おはようございます
今日も夜から始めると思います
- 652 :
- データとUIの分離のために、盤を表すBoardというクラスを用意した。
Boardに空ではないマスを数えるカウント変数countを追加せよ。
盤の初期化のときにcountをゼロにせよ。
set_masuでcountを加算せよ。
- 653 :
- Boardに次のような思考関数kangaeruを追加せよ。
int kangaeru(Masu comp) {
Masu anata;
compがマルならanataはバツ。
compがバツならanataはマル。
空マスが1つ、compが2つの並びがあれば、その空きマスの番号を返す。
anataがなく、compが1つ以上の並びがあれば、その空きマスの番号を返す。
空きマスをランダムに選び、その空きマスの番号を返す。
}
- 654 :
- 課題。○×ゲームを完成せよ。
プレイヤーはマル(先攻)、コンピュータはバツ(後攻)とする。
プレイヤーがマルをつけたら、タイマーで2秒待ち、
コンピュータがバツをつける。
待っている間は操作できないようにせよ。
- 655 :
- ちょっと今日は夜に出てこれないです!
完成したらプッシュすれば良いでしょうか
- 656 :
- 好きにしたまえ。
- 657 :
- 今日の勉強会は休みにします。
- 658 :
- おはようございます、課題ですがまだ終わっていません
朝からずっとコードとにらめっこしていたのですが
これらがどういう動きをしていてどう使うのかが理解できませんでした
前回のじゃんけんゲームの時もでしたが、課題の難易度に対して自分の能力が全く追い付いていないと強く感じました
このままでは分からない事がある度に片山先生の言葉ををただコピペするだけで
理解せずに無駄な時間を過ごしてしまうことになってしまいそうです。
僕は>>141で言いましたとおり、頭の出来がよくありません。理解するのに普通の人より時間がかかります
分からないことだらけの今、その度に片山先生に聞いていては先生にも僕にも負担になってしまうと思います
僕に今必要なのは基礎で、それを身につけることでやっと先生の授業にちゃんと付いていけるのではないかと思います
僕のためにプログラムを書いて頂いたり、画像や音声ファイル等も用意して頂いたり、色々教えて頂き片山先生には本当に感謝しています
GUIのアプリを作るのは楽しかったです
しかし、今のままでは辛いのでしばらく授業をお休みさせていただきます
初学者向けの本でしっかり勉強してから復帰したいと思います
応援してくださった方、片山先生、その他の先生方、本当にありがとうございました
またいつか戻ってきます、パワーアップしたたかしで・・・
- 659 :
- ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]・2ch.sc
http://peace.2ch.sc/test/read.cgi/tech/1448207673/
- 660 :
- 〜 完 〜
- 661 :
- では私のスレにしてよろしいでしょうか
- 662 :
- OK
- 663 :
- たかしニートプログラミング本出版までいけよw
- 664 :
- 私はPythonを勉強中です
チュートリアルを読んで条件分岐くらいまではできるようになりました
機械学習に興味があります
先生ご指導よろしくお願いします
- 665 :
- まずは何をすればいいでしょうか
paizaでDランクは全部解けたレベルです
- 666 :
- こんばんはたかしです、急にやめてすみませんでした
今後の予定ですが、職業訓練校に行くことになりました
入学選考試験が結構難しいので一ヶ月間がんばって勉強しなくてはなりません
頑張ります。たけしさんもがんばってください。
- 667 :
- >>662
先生!!!
- 668 :
- 訓練校ならお金もらえながら勉強できてオイシイもんね
- 669 :
- 私はPythonのことはあまり知りません
- 670 :
- では、Javaはどうでしょうか
Androidアプリをつくるという目標もあります
- 671 :
- >>669
先生の得意な言語はなんでしょうか
- 672 :
- ∧_∧
( ゚ω゚ ) JAVAなら任せろー
バリバリC□l丶l丶
/ ( ) やめて!
(ノ ̄と、 i
しーJ
- 673 :
- >>672
本当ですか?Java教えてくださいませ
- 674 :
- しょうがないにゃあ…
まずPCの環境教えてね多分windowsかな
- 675 :
- >>674
ありがとうございます!
開発環境はeclipseです
- 676 :
- >>674
windowsPCです
- 677 :
- 把握
大学でもらった教材使えるな
ちょい探してくる
今のスキルレベルは?
- 678 :
- ちくせうC++とLispのしか見当たんね
まあいいや
流れ
今のスキルの確認
↓
おさらいしながらJavaの基礎一通り
↓
CUI課題
↓
GUI(androidアプリケーション)
↓
Unity導入
こんな感じでおk?
- 679 :
- おkです
今のスキルレベルは条件分岐がなんとか使えるレベルで
オブジェクト指向は完全に理解していないくらいです
Unityはさわりだけやったことがあります
- 680 :
- まず環境整備しよか
Github知っとる?
Gitやsubversion、CVSとかバージョン管理ソフトでもいいけど。
第一目標:Githubユーザー作ってソース共有できるようにする
- 681 :
- Github聞いたことがあります
ググってみます
- 682 :
- んじゃ毎回質問は
質問:〜〜〜
と書くから答えるなり調べるなりしてね
答え大体既存の解説サイトのURL下に貼るから答えがわかったらまずそっち見てね。
したらわかんないとこあるだろうから質問タイム
の流れで。
同様に
課題:〜〜〜
とかやるからその辺は臨機応変によろ
- 683 :
- 分かりました!
- 684 :
- Githubのアカウント作りました
- 685 :
- バージョン管理とは
複数人で同じものを編集する(wikiなんかをイメージしてね)時に
編集が衝突(同時に同じ個所を編集しようとすること)したときに
整合性を保ったり
昔の履歴を見たいといったときに対応するためだったりのために管理すること
バージョン管理ソフトとは
そのためのソフトウェア
いろいろ実現方法の違いでソフトウェアが違う。
今有名なのはGitやsubversion
Gitとは
バージョン管理ソフト
こまけぇことはいいんだよ
Githubとは
Gitでファイル保存してくれるファイルサーバーとか思っとけばいいよ
- 686 :
- なるほど
Gihubは英語ばかりで使うのが難しいです
なんせ中学生レベルの英語しかわからないもので
- 687 :
- 最初のうちしかサイトは見ないからがんがれ
↓にリポジトリ(ファイルのひとまとまりになったディレクトリみたいなもん)作った
https://github.com/tamochu/neet1programming.git
まずアクセスしてみて
- 688 :
- アクセスしました
…どうすればいいのでしょうか?
- 689 :
- 右側にDownload ZIPってあるはず
そこでファイルをダウンロード
→解凍してhello.batをダブルクリック(怖かったらしないほうがいいバッチファイルわかんないだろうし)
なんにせよこれでファイルを共有できることを感じてもらえればおk
- 690 :
- できました
少し感動
- 691 :
- じゃあそれをeclipseでできるようにします。
課題:「eclipse github」などで検索しeclipseでgithubにアクセスする方法を調べよ
調べるまででおk
多分どっかで詰まるからやるのは一緒に
- 692 :
- 調べて概要は理解しました
- 693 :
- eclipseを開きます
バージョンを確認してね
起動画面にheliosとかjunoとか書いてあるから
したら↓参照
http://rough-and-ready-co-jp.blogspot.jp/2012/02/giteclipsegithub.html
- 694 :
- EGitというのが見つからないのですが
Eclipse Github 統合(タスク・フォーカス・インターフェース)
というのをインストールすればよいのでしょうか?
バージョンはMarsでづ
- 695 :
- 作業対象に入れたURL教えて
- 696 :
- Mars - http://download.eclipse.org/releases/mars
- 697 :
- 重すぎ…
多分
Eclipse Gitチームプロバイダー
無印のやつ
- 698 :
- 分かりました
インストールします
- 699 :
- コミットするというのがよく分かりません
ファイルを選択してもコミットボタンが押せません
どこかで誤ったのでしょうか
- 700 :
- コミットはちょい待って今環境整備中
- 701 :
- 今から秘密鍵送る
捨てアド作ってさらして
- 702 :
- コミットとは
自分が更新・追加したのをGitに伝えること
これ更新したからって宣言するようなこと
プッシュとは
コミットした差分をリモートに送ること
ファイルサーバーにアップロードするようなこと
チェックアウトとは
リモートのファイルを持ってくること
ダウンロードと思えばいい
今はチェックアウトしかできないはず
- 703 :
- wuzhaiteng3@gmail.com
秘密鍵とは何に使うのですか?
- 704 :
- つまり今はコミットしなくていいってことですね
- 705 :
- 課題にしよか
課題:暗号を送る方法
例えば手紙をある人に送るが途中で覗き見られても
中身がばれないようにする
を一つ考えよ
- 706 :
- 共通の決まりを作っておいて暗号化してそれを送る
- 707 :
- 秘密鍵とは
秘密鍵暗号方式の共通キーもしくは
公開鍵暗号方式のペアキーのうち受信側が持つ鍵
公開鍵暗号とは
ある文章を二つのペアーの鍵によって安全に送信する方法のひとつ
1.受信者は公開鍵と秘密鍵のペアを作る
2.公開鍵を文字通り公開する
3.文章の送信者は公開鍵を用いて暗号を作る
4.暗号を送信する
5.受信者は秘密鍵を用いて暗号を複合(解読)する
このとき公開鍵では暗号を作れるが複合はできない
秘密鍵は複合できる
ということが保証されている
細かい原理は省略
- 708 :
- その答えは秘密鍵(共通鍵)暗号方式やね
今回使うのは↑の公開鍵暗号
http://qiita.com/t-kashima/items/251acd9ce70ce8929836
参照
- 709 :
- なるほど
どうやって使うのですか?
- 710 :
- 理解しました
- 711 :
- 秘密鍵の設定
eclipseの
ウィンドウ→設定を押す
一般→ネットワーク接続→SSH2を選択する
一般タブの秘密鍵に今送った秘密鍵を設定する
Gitリポジトリの設定
ウィンドウ→パースペクティブを開く→その他を選択する
Gitリポジトリ・エクスプローラーを選択する
Gitリポジトリの「複製」を選ぶ
URIを選ぶ(ここら辺違うかも)
URIに「git@github.com:tamochu/neet1programming.git」を入力(コピペでおk)
プロトコルにsshを選ぶ
次へを選ぶ
- 712 :
- 途中でよく分からないメッセージが出てきましたが
多分出来たと思います
- 713 :
- eclipseのJavaパースペクティブで
neet1programmingプロジェクトが表示されていれば成功
プロジェクトを右クリックして
チーム→プル
Exam1.javaが出てくると思う
そこに
課題:1〜100を足すプログラムを書きなさい
- 714 :
- できたらお待ちかねのコミット→プッシュ
といってもプルと同じように
チーム→コミット
を押して更新のあるファイルを選択したら
「Commit and push」を選ぶだけ
- 715 :
- Javaパースペクティブとはどこでしょうか
これは成功しているのでしょうか
スマホからなので直撮りですみません
http://i.imgur.com/ZAUTelg.jpg
- 716 :
- あ、チェックアウトしてないや
Gitリポジトリのneet1programmingを右クリック
プルを選択
いろいろ聞かれるけど次へか完了でおk
- 717 :
- 完了しました
変化はありません
どうすればいいのでしょうか
- 718 :
- もしくはインポートしてないって可能性もあるか
Gitリポジトリのneet1programmingを展開
作業ディレクトリを右クリック
プロジェクトのインポート既存のプロジェクトのインポートを選んで次へ
neet1programmingをチェックして完了
- 719 :
- できました
- 720 :
- どこまでー?
- 721 :
- Exam1,2 を出すまでできました
今から課題に取り掛かります
- 722 :
- ガンバ
もうすぐ飯落ち
課題作っとくからいない間気が向いたら解いてね
- 723 :
- 久々にJAVAで書いたので思ったよりてこずりました
今からコミットします
- 724 :
- あれ?コミットできません
コミットボタンが押せない状態です
- 725 :
- コミットメッセージを入力する
- 726 :
- できました
- 727 :
- Exam2も完了しました
- 728 :
- 戻りました
プッシュできてないっぽいかな
プロジェクトを右クリック
チーム→アップストリームへプッシュ
- 729 :
- やってみました
どうでしょうか
- 730 :
- 新しいExamをEclipseに取り入れるにはどうすればいいのでしょうか?
- 731 :
- うーん来ない
TeamViewerで画面見せてもらていい?
- 732 :
- 取り込みはプル
- 733 :
- 了解しました
TeamViewerはちょっと…すみません
- 734 :
- よく分からなくて怖いんで
- 735 :
- じゃあ問診で行こう
コミットもう一度できる?
- 736 :
- できません
- 737 :
- じゃあコミットはちゃんとできてるな
アップストリームにプッシュはもう一度できる?
- 738 :
- やってみました
- 739 :
- エラーメッセージとか出た?
- 740 :
- こんなのが出てOK押してもなんともなりません
http://i.imgur.com/zl03IUa.jpg
- 741 :
- ああ、それ出てんのか
対処法忘れたからちょい待ってね
- 742 :
- プロジェクトを右クリック
チーム→アップストリームからフェッチしてみて
そしたら
チーム→ワークスペース同期化
出てきた画面で全部のファイル選んで右クリック
マージ済みとしてマーク
終わったらもっかいプッシュ
- 743 :
- ワークスペース同期化の前に
チーム→マージ
忘れてた
- 744 :
- ここからどうすればいいのでしょうか
http://i.imgur.com/mGhQBeG.jpg
- 745 :
- 何もフェッチできないんだったら
今度は
チーム→リベース
- 746 :
- 下の項目2つともにチェックを入れればいいんですか?
- 747 :
- うーん…よく分かりません
- 748 :
- チェック?入れると来ないと思うが
しいて言うならリモートトラッキングのorigin/master
- 749 :
- ×と来ない
○所ない
- 750 :
- こんな画面です
http://i.imgur.com/nYnWMt8.jpg
- 751 :
- http://imgur.com/a/4AcVm
- 752 :
- その通りになりません
- 753 :
- リベース結果
HEADはすでに最新の状態のためリベースは何もしませんでした
と出ます
- 754 :
- どっちもチェック入れないでやってみて
- 755 :
- そうすると>>753になります
- 756 :
- よしもっかいチェックアウトからやり直したほうがいいな
問題解いたファイルをどっかにコピーしといて
プロジェクトを右クリック→削除
Gitリポジトリ・エクスプローラーで右クリック→リポジトリの削除
終わったらもっかいGitの複製→インポート
その後コピーしといたファイルで上書きしてコミット→プッシュ
- 757 :
- やってみても以前と同じ状態になってコミットできません
- 758 :
- 削除の時に出るチェックボックスチェックつけてもっかいお願い
- 759 :
- 全てにチェック入れても再び行うと元の状態に戻っています
- 760 :
- チーム→切断
チーム→プロジェクトの共有
Git
http://imgur.com/TkvgQp2
- 761 :
- やりました
次にどうすればいいのでしょうか
- 762 :
- またコミット→プッシュしてみて
- 763 :
- …(;´Д`)ウウッ…
できません
- 764 :
- teamviewer使ってみます
ID送ります
- 765 :
- プロジェクトを右クリック
プロパティでプロジェクトの置き場所確認してください
- 766 :
- 送りました
操作できますか?
- 767 :
- これからの変更はコミットすれば届くのでしょうか
- 768 :
- できましたね
さっき行った操作のおさらい
マージとは
同じファイルを編集してしまった場合あとからプッシュする人が
何が二人の更新を合わせたうえで正しいか判断する必要がある
その作業をマージという
gitでは衝突(まったく同じ個所を編集)していなければ大体勝手にマージしてくれる
- 769 :
- そうです
またnon-fast-forwardと出たら
1.プルして再度コミット→プッシュ
2.フェッチしてマージして再度コミット→プッシュ
が原則です
- 770 :
- 分かりました!
とりあえずGithubでファイルが共有できるまでになりました
自分で課題を進めていきます
今日はありがとうございました
- 771 :
- 私は学生で受験生なので低浮上になるかもしれませんがよろしくお願いします
3月中頃から春休みで本格的に勉強ができますが、それまでもできるだけ毎日顔を出したいと思います
- 772 :
- 乙です
次の課題用意+講義内容まとめときます
わかんないとこあったらカキコよろです
- 773 :
- わざわざありがとうございます
期待に沿えるよう頑張ります
- 774 :
- おはようございます
課題に取り組みます
特に配列の理解が甘いみたいなのでググりながら解いていきます
- 775 :
- Exam4,7以外は終了しました
コミット完了です
- 776 :
- いま確認したらコミットできてませんでした
なぜだろう
- 777 :
- 昨日のことを思い出しながら闇雲にボタン触ってたら出来ました
こんなんでいいのやら
- 778 :
- うごきゃあいいんだよ
- 779 :
- Exam4,7は分かりません
他の問題もググりながら解きました
難しいですね
- 780 :
- じゃあ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);
する関数。
- 781 :
- 今日はどれやりたい?
関数について
オブジェクト指向について
パッケージとアクセス修飾子について
- 782 :
- オブジェクト指向についてお願いします
- 783 :
- 把握
関数については知ってるものとしてやるよー
オブジェクト指向とは
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;
…以下略
- 784 :
- この一つのオブジェクトに属する情報は一つのオブジェクトに持たせる
というのがカプセル化とか呼ばれるオブジェクト指向に必要な要素を実現させる
カプセル化とは
学年ではなく中身では生年月日とかで情報を持っているけど
その情報は教えずに何学年かという情報だけ教えたいということがある
このとき外部から不必要な情報(今の例では生年月日)は直接アクセスできず
アクセスが許可されている情報(今の例では学年)にのみアクセスできると
情報の安全性を保つことができる
このように情報を内部に持つこと(および外部からアクセスできる情報とできない情報を管理すること)
をカプセル化という
今回は学年と年齢という情報がカプセル化されたことになる
- 785 :
- 関数は概要は理解していますが
Pythonで理解したのでコードはかけません
そこは自習します
- 786 :
- 今クラスの中には名前と学年の変数(情報)がある
生徒というオブジェクトには名前を名乗るというメソッド(行動)が可能であるとしよう
その場合
class Student {
String name;
int grade;
String getName() {
return "My name is " + name;
}
}
などとしてやれば生徒オブジェクトに自己紹介をさせることが可能になる
このようにカプセル化では変数だけではなく関数も内部に持たせることができる
あ、あとでまとめてStudentクラスコミットするから細かいとこ気にしなくていいよ
- 787 :
- 以上のように情報を持ち行動が規定されているものをプログラミングでは
カプセル化されたオブジェクトという
課題:Studentクラスを参考にしながらTeacherクラスを作成せよ
ただしTeacherクラスは名前と担当教科の情報を持ち
授業の最初に挨拶「おはようございます。(教科名)の授業を始めます」する行動
ができるものとする
- 788 :
- コミットした
プルしてね
- 789 :
- コミットしました
書経のような感じでしたが
理解できるように考えながらコードを書きました
- 790 :
- いい感じ
続いて
課題:Teacherクラスにも自己紹介「My name is 〜〜〜」するメソッドを追加せよ
- 791 :
- やってる間に次の話題書いとく
ここでTeacherクラスにもStudentクラスにも
name変数
が存在し、
getName関数
が全く同じ内容で存在することに気付く
これは何度も書くのは無駄無駄無駄ァ
これはなぜか考えると
生徒も教師も人である
人だから名前を持っている
また自己紹介もする
ということは生徒も教師も
name変数
を持ち
getName関数
を持つHumanクラスという風に考えられる
Javaではこれを
class Human {
String name;
String getName() {
return "My name is "name;
}
}
class Student extends Human {
…
}
のようにする
これを継承という
- 792 :
- 継承とは
基本となるクラス(基底クラス・親クラス)から
それらの要素を引き継いだ新しいクラス(派生クラス・子クラス)
を作ること
派生クラスでは基底クラスのメソッド以外に派生クラスで独自に追加した
変数やメソッドを利用できる
また基本となるクラスには(基本的に)制限はなく
派生クラスの派生クラスといったものも作れる
- 793 :
- >>769の通りにしているはずがコミットできません
- 794 :
- ウボァ
プルした?
そのあとアップストリームへプッシュした?
- 795 :
- アップストリームにプッシュすると
non-fast-forward
と出てきます
- 796 :
- うーん
マージは?
- 797 :
- マージすると
結果 失敗
とでます
- 798 :
- じゃあリベースは?
- 799 :
- いじってたらしばらくして
HEAD はすでに最新の状態のためリベースは何もしませんでした
と出ました
- 800 :
- いきました!
リベースのリセット?のあとプッシュでいけました
- 801 :
- あ、きたね
じゃあ続き
Humanのクラスコミットすんね
- 802 :
- pullよろ
Humanクラスについてもう一つ考えてみよう
人間には性別というものがある
そこで
課題:Humanクラスにgender(性別)メンバー(変数)を追加し
それを設定する関数setGenderと取得する関数getGenderを追加せよ
その後Studentクラスの自己紹介でgetGenderせよ
- 803 :
- うーむ、難しい
時間がかかりそなので宿題ということで考えておきます
- 804 :
- >>771の通り学業が忙しため平日はあまり時間が取れません
受験が終われば時間が取れるようになるのですが…
- 805 :
- 了解
次はオブジェクト指向の続きからね
流れ
継承
↓
多態性(オーバーロードおよびオーバーライド)
↓
継承その2(仮想関数)
↓
テンプレートクラス
↓
アクセス修飾子
それとは別に演習作っとく
- 806 :
- ゆっくりで構わんよ
っていうか自分も平日疲れてすぐ寝るからそのほうがありがたい
- 807 :
- なにこのスレすごい
あとで読み返してみる
- 808 :
- String[] names = new String[]{"takesi", "John", "Suzuki"};
int[] grades = {1, 2, 3};
のほうがはるかに合理的 データ0番、1番、2番って番号で管理できる
Suzukiが5人いたとしても番号が一意で分かれているから混同もしない
人間クラスから派生して生徒、教師ってのも変 役割が根本的に違うのだからそれぞれ別でいい
学校クラスがないのも変だな〜 学校クラスにそれぞれの生徒と教師がメンバとしているはずだ
- 809 :
- 眠れないので課題やってみました
全く分かりません
どこからの知識が抜けてるのやら
Teacherクラスをコピペ改変したようなコードしか書けませんでした
- 810 :
- どこを勉強すればいいのでしょうか
今日はまとまった時間が取れそうなので勉強します
- 811 :
- あれで問題ない
最初はまねて
次は少し変えてみて
最後に自分で書けるようになればいい
Exam4穴埋め式にした
何か好きなパズルとかある?それ題材にする
- 812 :
- あれでいいんですか?!自身なかった
自分で書けるのか不安だったけど安心しました
あんまりパズルはしませんが…
クロスワードはやったことあります
- 813 :
- クロスワードはちょっと向かないなぁ
数独とかカックロとか数字しか使わない系で
- 814 :
- 数独はやったことあります
- 815 :
- Exam4難しい‥
ちんぷんかんぷんです
- 816 :
- じゃあオーソドックスに数独にしとこうか
平日は演習問題の形でコミットするからそれとくような感じで
休日が昨日みたいな感じで
最初は強く当たって後は流れで
- 817 :
- 了解しました
- 818 :
- Exam4は分かりません
どこか復習が必要でしょうか
- 819 :
- じゃあそれは飛ばして答えコミットする
土曜はそれの解説からね
- 820 :
- できたとこまででいいからコミットしてくれたらヒント書いて返す
- 821 :
- 全く手を付けられませんでした
- 822 :
- すみません
C言語ができれば
ずっと食べていけますかね?
android からwindows のソフトまで作れますよね???
- 823 :
- なにこれ、本気で教育が始まってるの?
- 824 :
- 受験との両立をしようと思っていたのですが
学校も忙しくなり受験も追い込み時期になったことで余裕がなくなってしまいました
3月12日から再開させてもらってもよろしいでしょうか
- 825 :
- ええよ
スレなくなってたら建ててな
- 826 :
- ありがとうございます
3月12日にもどってきます
トリップつけときます
- 827 :
- >>208
ベクターとかストアに作品のせれば経験になりますか?
- 828 :
- おはようございます
今日から再開お願いします
課題に手を付けます
- 829 :
- >>828
まずは空白期間に身に付けたスキルを洗い流したまえ
- 830 :
- >>829
Unityの基本操作とC#を少々
受験が忙しくてあまり手を付けてません
- 831 :
- 再開すんよ
まずExam4の解説からでおk?
- 832 :
- はい、お願いします
Exam10も分かりそうにないです
11、12は今から取り組みます
- 833 :
- ホワイトデーのお返し作ってて遅れた
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;
}
}
これを実装していくことになる
- 834 :
- ・文字の種類数
まず文字の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になる
- 835 :
- Exam10ヒント
数列の状態は
int[9][9]の配列で持とうExam8参照
まずは枠線なしで数字のまま出力することを目標にする
その後0だったら0でなくスペースを表示するように変更する
最後に枠線を表示する
上と下の枠線は固定で構わない
左右の枠線は数字を表示する前と後に「|」を表示すればよい
表示する関数は
System.out.println()
と
System.out.print()
だ
上は出力したら改行も出力され
下は改行は出力されない
使い分けよう
- 836 :
- すみません昨日は私用で全く課題ができませんでした
今日も19時まで予定があるのでそれ以降に取り組みます
空いた時間に解説理解しておきます
- 837 :
- こっちも今体空いた
次の課題とか用意しとく
終わり次第多態性についてやるよ
- 838 :
- 課題1個追加した
プル忘れないでね
多態性についてやるから適当なところで切り付けて
- 839 :
- 今やっと私用が終わりました
今から取り組みます
- 840 :
- 同じような境遇のものとして応援してます
頑張って
- 841 :
- 最近の課題は僕には解けないものが多いのですが、基本がなってないのでしょうか?
やり方は分かるのですがコードに置き換えられません
今日は次の説明をお願いします
明日じっくり課題をやります
- 842 :
- 単純に慣れの問題じゃないかな
写経量が少ない
今は調べてパクるだけでいい
そのうちここ変えたらどうなるかなって思ったら
実際やってみて違いを調べたりしてみるとよさげ
じゃあ多態性について
オブジェクト指向の重要な要素の一つ多態性(ポリモーフィズム)
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;
}
}
- 843 :
- オーバーロード:二つのオブジェクトがどのような関係であろうとかまわないが、
同じ関数の引数として違うオブジェクトを渡した際に違う挙動を定義すること
例)ClassRoomクラスとStudentクラス
String getName(ClassRoom classRoom) {
return classRoom.name + " class";
}
String getName(Student student) {
return "student:" + student;
}
以上からわかるように
オーバーライドはメンバー関数のみ
オーバーロードはどのような関数でもできるといった違いがある
今はそのようなものがあると知っておくだけでおk
気づかないうちに使ってて、あとからこれが多態性だったのかってなると思う
- 844 :
- 習うより慣れろ
課題: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);
としてどのように表示されるか確認しその理由を考えよ
- 845 :
- 良スレage
- 846 :
- FJネクスト エフ・ジェー・ネクスト 迷惑勧誘電話7 [無断転載禁止]・2ch.sc
http://hayabusa6.2ch.sc/test/read.cgi/estate/1457609776/
- 847 :
- お久しぶりです
職業訓練校のプログラミングコースに合格したので4月から通うことになりました
たけしくん、お互いがんばりましょう
- 848 :
- あげ
- 849 :
- 今日も忙しくてできませんでした
疲れたので寝ます
明日で卒業なのでこれからはちゃんと時間が取れるようになります
何度もすみません
- 850 :
- >>847
職業訓練通ってたが明らかに君はそのレベルを超えてるね
多分javaでweb系のアプリ作ったり、androidアプリ作ったりすると思うけど
プログラムなんか言語が違くてもだいたいやることは一緒だからjavaもずっと出来るのかな
まあお金ももらえるし、プログラムだけじゃなくてインターネットの仕組みやらコンピュータの仕組みやらを勉強できるから頑張りな
- 851 :
- javaもずっと→すっと
- 852 :
- だいぶ粘ったのですがExam10,11,12,13は分かりません
- 853 :
- スレにも問題公開していただけませんか?
私も挑戦してみたいです
- 854 :
- https://github.com/tamochu/neet1programming
は公開リポジトリだから勝手に見てね
一応何も書いてない問題のほうをexam/original
に置いたからそっち見るとよいかと思われ
- 855 :
- >>852
あいよじゃあ解説してく
あと次から問題レベル下げたほうがいい?
↑の844の課題はやっといてね
Exam10.part1
9×9のintの配列を用意せよ
Exam10.part2
上の配列をすべて0で初期化せよ。
(厳密には既に初期化されているが明示的に初期化せよ)
まずはここまでやってコミットよろ
- 856 :
- >>854
ありがとさんです
- 857 :
- 進学の準備やらで忙しく課題ができませんでした
今日は予定がないので今から取り組みます
- 858 :
- わかる範囲でやってみました
完全に感覚です
- 859 :
- 赤入れたからプルしてね
今はこんな感じかなでいい
間違えたほうが経験になるしね
Exam10.part3
できた配列の数字を表示する
→OK
Exam10.part4
各行の始めと終わりに「|」を出力する
System.out.print("|");
を行えばよい。
Exam10.part5
表示する前と後に「+-----------------+」を表示する
System.out.println("+-----------------+");
を行えばよい
次ここまでね
- 860 :
- すみません用事が出来てしまいました
また夕方頃に再開します
- 861 :
- コミットしました
- 862 :
- あとはデータを入れる
Exam10.part6
穴埋め問題にするのでプルして解くこと
Exam10.part7
0はスペースで表示にする
System.out.print(sudoku[a][b] + " ");
↓
if (〜〜〜) {
System.out.print(sudoku[a][b]);
} else {
System.out.print(" ");
}
と変更し〜〜〜を適切な条件句に直しなさい
- 863 :
- 懐かしいな
コンソールでオセロとかやったな
- 864 :
- コミットしました
- 865 :
- おk
Exam10はそのまま発展問題にしていくからちょい待ってね
Exam11.part1〜3
Exam12.part1〜3
課題:数値のソートとは何か調べなさい
課題:数値の配列「4,3,8,1」を小さい順に並べなさい。ただし過程を細かく記述すること。
課題:プログラムでのソートの実装方法を3つ挙げなさい(中身を理解する必要はない)
Exam13.part1
課題:平方根とは何か述べよ
- 866 :
- Exam10をもとに数独解くプログラム作ってくよ
Sudokuクラス作ったのでそっち見てね
課題:表示する処理を関数化せよ
ただし以下の2通りで関数化すること
public void print(){}
public static void printState(Sudoku x){}
上はメンバー関数としてthis.sudokuを表示させる。
下はスタティック関数としてSudokuクラスを受け取りx.sudokuを表示させる。
ヒント:上の実装にはsudokuをSudokuクラスのメンバーに持てばよい。
- 867 :
- >>865
コミットしました
- 868 :
- >>866
わかりませんでした
関数の知識が乏しいのでしょうか
課題の意味があまり理解できません
- 869 :
- プルした
まずソートの解説から
ソートとは:特に解説無し
小さい順に並べる:これはクイックソートと呼ばれるソートの考え方です。
とても速いといわれるソートの一種で実装は再帰を使った方法などいくつかあります。
実装方法:
1.バブルソートがこれになります。
バブルソートとはソートの様子を可視化した際に
泡(小さい値)が水面(列の最初)に上がっていくようであることから名づけられました。
海底(列の最後)から水面(列の最初)まで隣り合った値を比較し、
大小が逆なら入れ替えを行うと、
水面(列の最初)には泡(最小の値)が来る。
これを水面を下げながら行うことで全ての列がソートできるというもの。
例)
4381
↑↑
8>1なので入れ替える
4318
↑↑
3>1なので入れ替える
4138
↑↑
4>1なので入れ替える
1438←一番小さい「1」が列の最初に来た。水面を下げてまた海底から。
- 870 :
- 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番目なら…
- 871 :
- 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];
}
}
- 872 :
- 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);
となる。
これではプログラムより電卓を使ったほうがいいかもしれない。
- 873 :
- 関数を使う場合は
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行目を何でもよいので関数化せよ
- 874 :
- コミットしました
Exam11はできましたが12と関数についてはわからなかったのでなんとなくでやりました
- 875 :
- >>1
はしめてのC!!
- 876 :
- 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(){
…
}
}
}
- 877 :
- 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で作る。
プルして上から順に解くこと
調べてもわからなくなった時点で一旦手を止めここに書き込むこと
- 878 :
- 用事が入ってしまい1日まで課題ができません
度々すみません
- 879 :
- 8日からのスタートでお願いします
また用事が入ってしまいました
すみません
- 880 :
- >>8
>>ファイルを作成、編集しました!
と画像がありますが、
どうすれば、画像のようにメモ帳に文字を出せるのでしょうか?
どうぞよろしくお願いします。
- 881 :
- >>880
全角キーを押してローマ字入力、変換
- 882 :
- >>881
ご回答ありがとうございます。
できれば、もう少し詳細に教えていただけないでしょうか?
全くの初心者なものですから…。
- 883 :
- >>882
プログラミングの前にパソコンの使い方を勉強した方がいい
- 884 :
- ここにもスマホバカが
- 885 :
- >>8
バイナリエディタに入力したものを、メモ帳にどうやって反映させるのでしょうか?
- 886 :
- >>885
保存して開き直す
- 887 :
- https://gyazo.com/830212aa2b0f04618cf808d9e279eb0a
「俺の名前はタカシだ」と入力したつもりが、上記のように記号がいくつかでてくるだけです。
- 888 :
- https://gyazo.com/830212aa2b0f04618cf808d9e279eb0a
「俺の名前はタカシだ」と入力したつもりが、上記のように記号がいくつかでてくるだけです。
- 889 :
- >>888
メモ帳に入力する
- 890 :
- >>889
ああ、そういう意味だったんですね。
私は、バイナリエディタに入力したものが、連動してテキストのメモ帳に表記されるものと思っていました。
どうも、失礼致しました。
また、解らないことがあったら、またよろしくお願いします。
- 891 :
- 遅れて申し訳ありません
できるところまでコミットしました
全然できませんでした
出来が悪くてすみません
- 892 :
- 最初からできる人なんていないから。
また赤付けた
というより若干答え書いた
差分のところよく見て理解してね
またできるとこまでtry
- 893 :
- 遅くなってすみません
コミットしました
- 894 :
- 明日まで出先だから月曜日また赤つけます
次進めそうなら解説とかその時書く
- 895 :
- NHK教育を見て49941倍賢く昼 [無断転載禁止](c)2ch.sc
http://nhk.2ch.sc/test/read.cgi/liveetv/1461474473/
- 896 :
- 遅くなったけどまた赤つけた
Exam12はあと一息がんば
Exam14はequalは一致を判定する関数なので比較には使いません
一応比較にはcompareToという関数があるが、この場合は一旦
lineを数値に変換してから<,==,>で比較しましょう
こっちはもう一息かな
- 897 :
- 匿名通信(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
7
- 898 :
- 個数 名前
96 t.mourning ◆HeJleJP5y2
281 takasi
80 takesi
21 takesi ◆5LQe9dJ7ck
4 たかし
97 仕様書無しさん
318 片山博文MZ ◆T6xkBnTXz7B0
何でt.mourningと片山君は熱心なのか
- 899 :
- たかしです
この年で就職できるか不安です
たかしでした
- 900 :
- たかしです・・・・たかしです・・・・たかしです・・・・
- 901 :
- たかしかし
- 902 :
- たかしです
誰か僕を拾ってくれませんか
なんちゃって
たかしでした
- 903 :
- >>902
スレの前半で片山さんと特訓してた、たかしさん?
職業訓練校は、どうだった?
まだ、通っているのかな?もう修了したのかな?
- 904 :
- はい、そのたかしです。まだ通校しております
訓練校はIT関連の知識を幅広く学べて良いと思います
企業とのマッチングの場も設けてくれます
ニート上がりの人にはリハビリになると思います
実際に生活リズムが改善されました
ただ、いまたかしは悩んでいます
いろんな事に悩みすぎて何に悩んでるのか分からない悩みです
- 905 :
- その悩みを話せる人がいないので自問自答の日々です・・・
- 906 :
- >>904
おー、久しぶり。っていっても、自分はずっとROMってただけだけどね。
職業訓練校、まだ通っているんだね。ここに書き込んでた頃は、昼夜逆転した生活だったから、ついていけるか、ちょっと心配してたので、ほっとした。生活ペースが身に付いて、良かったね。
訓練校の同期の人たちと、悩みを話したりしないの? 訓練校をでた後の進路が、最大の悩みなのかな?
- 907 :
- おれ訓練校出てプログラマーになったが、年齢が若い人ほど就職すぐ決まる
能力とかじゃない
- 908 :
- 年齢に応じた振る舞いが求められるのに若いのと同じ事してたら
そりゃ不利だわな
- 909 :
- >>904
何にどう悩んでるのか説明してくれんと回答何もできないよ。
日本語が不自由なマはポイー。
- 910 :
- お返事放置していてごめんなさい
色々な悩みを話そうとした結果特定を恐れてあのような答え方になってしまいました
何分、プログラマ志望の訓練生というとかなり数が絞られてきますので
大多数に共通していて話せる部分としてはやはりスキルが無いのにプログラマになれるのかっていう所ですね
長いことニートをしていたので自信がないっていうのは中々改善が難しいものですね
- 911 :
- 大丈夫
最初はずっとテストだから
あと特定は難しいから安心しろ
全国に訓練所あるし、30人規模のクラスだし
- 912 :
- プログラマーは本質的には君と同じで根暗タイプだから
みんな同じような人ばかりだよ
おれも学生時代は隅にいるような人間だったが、プログラマーになって自分みたいな人間しかいなくてほっとした
- 913 :
- そりゃ底辺の零細企業の場合だね。大企業ならそうじゃない
- 914 :
- このスレ、まだパート2に突入してなかったんだな…
- 915 :
- >>910
とにかく実務のソースを全部理解しろ
就職前ならオープンソースでもいい
ニートがひっかかるのはコードリーディングだからな
業界によるけど、例えばひきこもってゲームばかり作ってた子は
データベースの処理でつまずいたりする
そんなときに既存ソースを要領よく読めるかどうかがカギになる
スキルが低くてダメになった子っていうのは基本的にほとんどいないからまぁ安心しろ
逆にプログラミングスキル以外に全く地震がなかったらプログラミングスキルだけ徹底的に伸ばせ
いかに素早く間違いなくやるかが大事
まぁやるかどうかは自由だが声が出ないとかの悩みがあるなら一人でカラオケいってこい
- 916 :
- >>902
20代でちょこちょこっとVBの修正ができる程度のスキルがあって
それなりに会話が成り立つなら引く手数多だよ
- 917 :
- >>7
職業訓練って民間委託で講師はピンキリだよ
職業訓練の生徒集めれば国から補助金もらえる仕組み
昔に異常な数MicrosoftOffice講座とかあったのはその補助金が美味かったから
普通に会員になる客は0だって良かった
職業訓練で回されてくるやつが5人ぐらいいれば儲け出てたからね
- 918 :
- オープンソースの既存バグを直せる様になれば、こいつはそこそこ使えると判断されるかもね。
- 919 :
- いいえ
- 920 :
- 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
XXCKUAQT8B
- 921 :2018/05/22
- とても簡単な自宅で稼げる方法
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
KCGPB
【その2】Excelで仕様書を作る会社の奴の数→
【相談】プログラミングを独学でやろうと思うんだが
30代女子PM兼任プログラマだけど、質問ある?
HTS ハイテクシステム 002
「夜の」を付けて卑猥な感じにするスレinマ板
日本ユニシス
コボラーのびっくりすること
レガシー技術でメシ食ってるプログラマのスレ
職業訓練校プログラミング終了後 2
SEってIT土方だとか言われてよくバカにされてるけど
--------------------
日本を東西二州からなる連邦国家にしよう!
DAOKO Part13
【復活】境外滅伝本朝鏡 キョウガイメツデンホンチョウカガミ☆6
【立憲民主党】#枝野幸男代表、「本当の詐欺師、うそつきは、自分でうそを言ったり、詐欺をしたりしている自覚がない」
珍しい記録 Part40
/cV^_V^Vトッリ冷えてますか〜!!????(・8・)?こたつ出したちゅんよ?
【TBS火22】G線上のあなたと私 part11【波瑠・中川大志・松下由樹】
アカツキ電光戦記 part.9
【テロ】完全菜食主義が肉屋・魚屋・チーズ屋を襲撃 英国・スイス・フランスで多発
すごいこと発見した!
加藤和樹の噂話11
RQとかHWとかグローランサ 第12期
年収200万以下の納税及び保険加入を免除すべき
【KOF13】THE KING OF FIGHTERS XIII part160【KOFXIII】
【ティップラン】ボートエギング【ティップエギング】
【予備校】早稲田学院を語ろう【高田馬場】
鉄道ゲーム18シリーズ 4列車を$4で売却
New スーパーマリオブラザーズ Wii Part3
【Rank101↑】グランブルーファンタジー初級者スレ2875
【雑談】双眼鏡談話室【どんとこい】
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼