◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:ニートです1からプログラミングを教えてくれる [無断転載禁止]©2ch.net ->画像>54枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/prog/1451036635/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
>>2 先生!まず何をすれば良いのですか??
>>3 ネットで職業訓練の事調べたらあんなとこ行くより独学で勉強した方が身につくとか書かれてました!
と、いうかニートなので訓練校に通うお金を捻出できません!職歴なしなので手当も貰えません!!遺影!!!
社会的に終わってるのでたまごっち感覚で育てて下さい(*^_^*)
1.ファイル拡張子について調べよ。 2.拡張子を表示する設定にしろ。 3.テキストエディタをインストールせよ。 4.バイナリエディタをインストールせよ。 5.エディタで適当にファイルを作ったり編集してみよ。
>>4 職業訓練は職歴なくても問題ないよ。
ちゃんと続けることできますかって
最初に聞かれるくらい。
月11万くらいもらえる。
職業訓練の講師ってプロのプログラマに教えてるような人だから
独学よりもよほど良いよ。
先生!できました!
1、拡張子とはファイルの種類を表す名前です!
2、フォルダの設定からできました!
3、4、備え付けのメモ帳とBzEditorをインストールしました!
5、ファイルを作成、編集しました!
>>7 職業訓練自体は職歴無しでも受けることはできるみたいですが(審査が厳しい?)
手当は貰えないような事を聞きました(グーグルで調べました)
手当を貰える対象は失業者、更にその中でも条件があるようですが、、、
僕の認識違いでしたかね?もう一度よく調べてみます。
ありがとうございます先生!!
6.次のような内容のテキストファイルを作成し、「hello.txt」という名前で保存せよ。 「set VAR=hello, world echo %VAR% pause」 ただし、行と行の間には「改行文字」(Enterキー)を入力せよ。 7.「hello.txt」の拡張子を「.bat」にしてダブルクリックせよ。
この先生はだめです。まずはVisual Studio Communityをインストールしなさい
先生できました!BATファイルを実行するとコマンドプロンプト?が立ち上がりました!なんのために使うのかはわかりません
6ー7。
8,全角文字は2バイト文字、半角文字は1バイト文字です!
「set (変数名)=(値)」は、変数に値を代入するコマンドです。 「echo (文字列)」は画面に文字列を表示するコマンドです。 「pause」は何かキーが押されるまで待つコマンドです。 コマンドは普通、上から順番に実行されます。 9.「echo 私は天才プログラマです」という行を「hello.bat」の先頭に追加して保存し、ダブルクリックしなさい。
>>12 いろんな先生が居て楽しいです!ビジュアルスタジオインストール中ですすごい容量でかいです!
>>14 よくわかりました!できました!
>>12 環境が古いので最新のIDE入れたら時間切れになっちゃう。
ビジュアルスタジオインストール完了したので再起動してきます
先生、質問です!
変数をechoで出力する際に変数を%で囲みましたが、文字列では%で囲まなくても
>>15 で出力されていました。
これは変数をechoで出力する際は%が必要、文字列では不要。というルールで良いのでしょうか??
>>20 変数名を% %で囲ったら、そこは変数の値に「展開」される。試しに
set VAR=test
echo VAR 123
echo %VAR% 123
を実行してみればわかる。
%で囲むと変数の中身が飛び出すんですね!分かりましたありがとうございます先生!
10.条件分岐 「set A=123 if "%A%"=="123" echo OK if "%A%"=="124" echo NG pause」 11.無限ループ 「:LOOP set VAR=%VAR%! echo %VAR% goto LOOP」
できました!
10.条件分岐
変数Aに123という数値をセットし、もし変数Aから123が飛び出せば、OKと表示。
もし変数Aから124が飛び出せば、NGと表示する処理ですね!
11.無限ループ
変数VARに!をセットし、LOOPで無限に!を表示しつづける処理ですね!
set VAR=%VAR%! でなぜ一度の処理で!がたくさん表示されたのかがわかりません
結果を見ると決まった数だけ!が表示されているようですが、setでは!の数は指定していないです
僕の予想だと!が1つ表示される処理がループされると思ったのですが、、、
たぶん%VAR%!これがキーポイントなんですね!
ちなみに実行したらPCから変な音が出ました!!
あ!set VAR=%VAR%! は1回の処理ごとに!が1つずつ増えていってるでしょうか でもはじめから大量に!は表示されていたし、見た感じ!の数は一定だった気がしたようなしないような 実行して確認しようにもPCから変な音出るので怖いです
なにも実行してないときはVARの中身は空っぽ。最初に「set VAR=%VAR%!」を実行すると VARは!になる。二回目はVARが%VAR%!、つまり!!になる。三回目は%VAR%!、つまり!!!になる。 代入の左辺の展開では代入する前の変数の値が使われる。
先生!後出しですが僕そんなようなこと言おうとしてたんです! でも毎回setで変数の中身がリセットされるんじゃないかと思って、、、 知識ないのに勝手な想像しないほうがいいですね!
gotoは指定したラベルに移動するコマンドだ。コマンドプロンプトで ラベルを置く場合は、行の先頭にコロン(:)を付ける。
gotoがポイントでLOOPはただの変数なんですね、ためしにNEETでやったらめっちゃ驚かれました もしかしてこのコマンドプロンプトでは変数は半角大文字英数で表記するのでしょうか
12.適当なフォルダーをShiftキーを押しながら右クリックして、「ここでコマンドプロンプトを開く」を選びなさい。 13.開かれたコマンドプロンプトで「dir」「cd ..」「echo TEST」「echo /?」「cd /?」「copy /?」などのコマンドを実行しなさい。
>>30 プロンプトでは大文字小文字の区別はない。
ラベル名と変数名は違う。
できました!dirはフォルダ内の情報を表示、cd..はひとつ前のフォルダに移動、echo TESTはコマンドプロンプトに"TEST"と表示、xx /?はxxコマンドのヘルプを表示です! そうなんですか!ラベル名と変数名の違いがわかりませんが宿題にしときます。おやすみなさいセンセー!
ビジュアルスタジオをインストールしなさいという先生が居ましたがこれで何をすればよいのでしょうか、、、 助けて他の先生!何か課題だされないとやる気もでないし何するかもわからないよ~(TOT) とりあえず時間も時間だし僕は帰宅します さようなら
プログラミング入門サイトでも作ってみるわ。ちょっと待っててな
おはようございます 入門サイトうれしゅうございます 今日は何しましょう
君のOSの種類と、Visual Studioのバージョンを教えて。
先生おはようございあmス OS:Win7 Pro VS:Microsoft Visual Studio Community 2015 14.0.24720.00 Update 1 昨日DLしたての最新版でございます
ハードディスクとSSDのどちらを使ってるか? C++とC#のどちらをインストールした?
アプリケーション用にSSD,データ用にHDD VSはSSDにインストールしました それはVSと別でインストールするのでしょうか?VSをインストールする過程でインストールされるのであればすべて推奨設定でインストールしました!
SSDはハードディスクよりずっと速いが、信頼性が低く、壊れるときは一気に壊れる。必ず別のドライブにバックアップしておけ。 君の環境は恵まれている。デフォルトの設定でインストールしたならVisual C#が入っているはずだ。 スタートメニューからそれを探しだして起動しろ。
コマンドプロンプトでできることは限られている。 C#という言語を使うともっと自由にプログラミングできる。 C#の主な用途はゲーム、業務、ツール作りである。 C#でどんなものを作りたい?
はいい! Visual C#というアプリが無かったのですが、VSを起動すれば良いのでしょうか? そうであればVSを起動しました!
なるほど。作りたいものはありません!最初の方に書いたとおりたまごっち感覚で育てていただけるとありがたいです! でもしいて挙げるなら、時間を指定してPCをシャットダウンするソフトと最前面表示固定するシンプルなメモ帳が作りたいです!愛用のエディタはWIN付属のメモ帳です、これ以外は合いませんでした!
発言が矛盾しておりました 時間を指定してPCをシャットダウンするソフトと最前面表示固定するシンプルなメモ帳が作りたいです!
ネットブラウザで2chは不便なので2ch専用ブラウザをインストールします 少々おまちくだされ
そうだ、VSに統合されてた。VSは日本語になってるか? 「ファイル」メニューから「新規作成」→「プロジェクト」を選べ。 Visual C#とVisual C++の項目はあるか?
C#を起動するんでしたね。しかし色んなテンプレートがあって混乱します
C#を選択するとAndroidやiOSの項目が出てくるのですがC#でこれらのアプリも作れるんですかねえ
C#のコンソールアプリを作ってみろ。名前はMyFirstConsoleAppで。
できました
Mainの内部に 「Console.WriteLine("こんにちは世界"); Console.WriteLine("Enterを押してね"); Console.ReadLine();」 と入力して「ビルド」しろ。 成功したら「デバッグを開始」せよ。
できました!これで大丈夫ですかね?
なんか”とか関数?とか勝手に入力してくれるんですがこれでプログラミング上達するんですかね
Mainの中身を 「String str = "変数の中身"; Console.WriteLine("「" + str + "」"); Console.WriteLine("Enterを押してね"); Console.ReadLine();」 にして「デバッグを開始」せよ。
できました!
>>55 インテリセンスと言う入力支援機能だよ。
文字を少し入力してCtrl+Tabで補完ができる。
Stringとか" "で囲まれたものは文字列だ。 +という演算子で文字列どうしを連結できる。 文字列をConsole.WriteLineという関数に渡すと その文字列を画面に出力する。
「Console.Write("文字列を入力してね: "); String str = Console.ReadLine(); Console.WriteLine("【"+str+"】"); Console.WriteLine("Enterを押してね"); Console.ReadLine();」にして開始しろ。
なるほど!ReadLineは変数を指定せずにWriteLineで書き込んだ文字列をすべて表示してくれるんですね!
次はforループだ。 「for (int i = 0; i < 10; ++i) { Console.WriteLine("【"+(i + 1).ToString()+"】"); } Console.WriteLine("Enterを押してね"); Console.ReadLine();」にして開始しろ。
intとか0とか10というのは整数を意味してる。 「for (int i = 0; i < 10; ++i)」というのは、おおざっぱにいうと 「int i; for (i = 0; i < 10; i = i + 1)」と同じだ。 i.ToString()はiを文字列にした結果を返す。
できました!
>>60 >>62 変数に文字を入れるときはString、数値を入れるときはintを付けるんですね!
整数とか文字列といったデータの種類のことを「型」という。 intとかStringというのは型名だ。 C#で変数を使うには、型名と変数名を指定しないといけない。 関数に渡すパラメーター(引数;ひきすう)には指定できる型が決まっている。 型の不一致はエラーになる。
課題12.BMIを計算するプログラムを作れ。 ヒント: Console.ReadLineで文字列を読み込み、文字列変数に代入。 文字列をSystem.Single.Parseでsingle型に変換。 BMIを計算する公式を使う。 計算結果を文字列にしてConsole.WriteLineで出力。
まだ読んでるので少し時間がかかります 申し訳ありません!!!!!
時間制限はない。かまずに飲み込むよりも、むしろ噛み砕く時間が重要だ。気長にやりたまえ。
行き詰まったら何なりと質問してくれ。 あと、プロジェクトは1つだけでなく何個も作ることができるぞ。 目的に応じてプロジェクトを分けておくと再利用しやすい。 プロジェクトの名前の付け方は十年後のことも考えて命名したまえ。
できました!
数値を入れる型についてなのですが、int使うならlong使えばいいじゃん!byte?いらないよ!と思ったのですが
これは型に入れる数に関わらず型自体にサイズ?があって、たくさんコードを書くプログラムを作るときに動作が重くなるから使う型を分けているのでしょうか?
例えば、
byte a = 1;
と
int a = 1;
は入ってる数は同じですが、型のサイズが違うので数値の範囲が決まっているのならbyteの方が節約できるということですか?
文章へったくそなので僕のイメージを伝えます
おちょこ=Byte
ジョッキ=Int
おちょことジョッキを用意して同じ分量水を入れて人間の手で運びます
おちょこは小さいのでたくさん運べる!(プログラムが軽快)
ジョッキは大きいので少しずつしか運べない!(プログラムが重い)
詰まった部分書きます System.Single.Parse(taiju) System.Single.Parse(shincho) Console.WriteLine( taiju / (shincho*2) ); としようとしたらできませんでした あとReadLineを最後の行に入れないとプログラムが待機状態にならないで終了してしまうんですね
型によってデータサイズや処理速度が異なる。 サイズが大きいとメモリーを圧迫したり、遅くなったりする。またintより小さくても遅くなる。 Parseの結果は値として返される。それをsingle型の変数に代入せよ。
>>75 の続きです。
なら小さいプログラム作るときはlongでもいいね。とはならないのは、大きなプログラム作るときになったらサイズ節約しなきゃならんしやりかた統一しようぜ!ってことですか?
それとよく例文とかの小さい整数を入れる際にint型を使うのは、値は小さいけどbyte以上の値扱うかもしれないしそこまで大きい値扱わないからintでいっかーみたいなノリでしょうか?
すべて僕の見当違いでしたら忘れて下さい!
分かりましたありがとうございます
こうすればよかったんですね
電卓を使って計算結果が正しいかどうか確認しなさい。
>>76 と言ってることが違かった!
Single taiju2 = System.Single.Parse(taiju)
Single sincho2 = System.Single.Parse(sincho)
Console.WriteLine( taiju2 / (shincho2*2) );
よし、これで君も素人C#プログラマだ。 課題13.じゃんけんゲームを作りなさい。 ヒント:利用者の手を整数で入力(1:グー、2:チョキ、3:パー)。コンピューターの手を乱数で生成。ifで条件分岐(3×3通り)。勝ち負けを表示。
>>80 計算式が違ってました!グーグルで調べたのに!!
正しくはこちらです
かなり無理やりやった感あります
んほおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
ちょっと疲れたので休憩後再開 URLは見てないですが、ブログで儲ける方法ってすんごーい数のブログ作りまくればちりつもで儲けられるんじゃないですか
新しく別のプロジェクトを作る場合は、ファイルメニューから 「ソリューションを閉じる」を選んでから、新規作成→プロジェクトを選ぶ。 ソリューションとは、1個以上のプロジェクトをまとめたものだと考えるといい。
知的労働者は頭脳を酷使する。考えることや覚えることは案外エネルギーを消費する。 ハチミツ、チョコレート、コーヒーを適量摂取することをお薦めする。また、タンパク質やカルシウムも大切だ。 子どもの頃を思い出して規則正しい生活を心掛けよ。 睡眠時間と睡眠の質は頭の働きにかかわる。
変数名に型情報を含めれば、変数の命名が楽になり、変数名を見るだけで型がわかる。 (int型なら変数名の頭にiを付けるなど) このような規則をハンガリアン記法という。
//乱数を生成する準備。 Random cRandom = new System.Random(); //1~3の乱数を生成する。 int iResult1 = cRandom.Next(3) + 1;
if (iPlayerTe == 1) { if (iComputerTe == 1) { //あいこ ... } if (iComputerTe == 2) { //あなたの勝ち ... } if (iComputerTe == 3) { //あなたの負け ... } }
BMI計算のプロジェクトをConsoleBmiKeisanという名前で保存してくれ。 じゃんけんゲームのプロジェクト名はConsoleJankenGameでいいだろう。 簡単なテスト用にConsoleTestというプロジェクトも作っておけ。
拡張子が.slnのファイルがソリューションで、拡張子が.csのファイルがC#のソースファイルだ。 中身はテキストファイルだから、どちらもテキストエディタで開けるはずだ。 保存されたソリューション(プロジェクト)をVSで開きたいときは.slnファイルをダブルクリックする。
変数を使うときは型名を指定しないとダメと言ったが、あれはウソだ。 型が明らかなときは型名の代わりにvarと書くことができる。 var eSincho = System.Single.Parse(str);
すみませんサボってました!
なんか長ったらしくもっと簡単にできそうなのでまた書き直します・・・
今まで作ったプログラムは消して上書きしてしまいました
ジャンケン2で新しくプロジェクト作って命名します!
あまりレス読めてませんが起きたら読みます!
ああああああああああああああああああああああああ 前回作ったプログラムを見ながら新たに書き直したいのにウィンドウ増えない・・・明日考えよう
>>97 あ、これループ前に変数に乱数を代入してるので相手がどの手をだすか2回め以降わかっちゃいますね
なるほど頭に型の名前付ければ分かりやすいですね cRamdomのcってなんでしょう rRamdomとはならないのでしょうか じゃんけんゲームで詰まったところはあいこになった際の繰り返しです ifを使うことを指定されていたので悩みましたがifじゃ無理なきがする・・・と思いグーグルで検索してWhileを使ってみました
他のソリューションにある.csファイルもVSで開けるはずだ。Mainの内部をコピペしろ。
先生おはようございます 最初に作ったプロジェクト「MyFirstConsoleApp」ですべてのプログラムを書いていたのですが、色々いじってslnファイルの名前をConsoleJankenにしたのですが、フォルダ名はMyFirst~のママです。 これは直接フォルダ名を手打ちで変更してもいいものでしょうか?他のファイルに影響出ませんか?
あと
>>97 で短く書き直すと言ったのですが、正直言います。面倒くさい!なので
>>100 で言っていた部分を直しcpuHand = rnd.Next(1, 4); をwhileの中に移動しました
>>105 .slnや.csprojの中にもソリューション名やプロジェクト名の情報が入ってるから、
ファイル名を変えただけだと、不具合になるかもしれない。
面倒でもプロジェクトを一から作ることから始めるのがいいと思う。
汚い方法ならフォルダーまるごとコピーってのもあるけどプロジェクト名がかぶることになる。
ソリューションのフォルダーの中に「bin」というフォルダがある。 その中に「Debug」フォルダがある。 中を見ると拡張子が「.exe」のファイルがあるはずだ。 実行可能ファイル、通称「エグゼファイル」。 このファイルは、コマンドプロンプトからコマンドと同じように実行できる。
もちろん、プログラムが使用するバージョンの.NET Frameworkがインストールされていないと、 プログラムが開始しないでエラーになる。ユーザーにframeworkをインストールするように説明しないといけない。
面倒なので新しく作りプログラム内容をコピペしました 他のファイル、フォルダはすべて削除しました exeファイルでコマンドプロンプトからプログラムを実行デキルことを確認しました!
コマンドプロンプトは、昔のMS-DOSを引き継いでいる。 基本的な使い方と見た目はMS-DOSとあまり変わっていない。 キーボードで文字ベースの画面に文字列を入力して操作する操作系をCUIとかコンソールなどという。
BMI計算プログラムの計算結果を小数点以下第二位で四捨五入させて表示させよ。
>>103 クラス(class)のcだ。
クラスとはデータと、そのデータに対する処理を行う関数をまとめたものを扱うための型だ。
クラスの中の関数をメソッドという。
ソースをよく見るとclassが見つかるだろう?
失礼、staticのついた関数はインスタンスとは無関係でメソッドではない。 class Programの中にMainというstaticな関数がある。 Mainの引数はコマンドラインで渡された文字列の配列である。 コマンドラインは空白区切りである。
staticな関数を作ってみよう。 class Programの中に 「static int add(int x, int y) { int z = x + y; return z; }」 と書きましょう。これは足し算する関数addです。returnは値を返します。 Mainでこのadd関数を呼び出すことができます。試してみよう。
できました 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(); }
躓いたところは、変数に入れる値が低いのでfloat型にしようとしたのですが、Math.PowがDouble型の変数にしか対応していなかったのでやむなくDouble型にしました
メソッドを作ってみよう。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型のインスタンスです。
>>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;
}
}
インスタンスは型を指定したnewによって作成され、メモリーにインスタンスのデータが格納されます。 インスタンスはメモリー上に複数存在することができます。
スタティックとかインスタンスとかよく分かってませんができました! 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(); } }
var cMainはインスタンスが入った変数ってことでしょうか
メモリーが何なのかどこに存在するのかどのくらいの容量なのかわかりませんがそこはまだ追求しなくてもいいレベルですかね!頭がツアkれます!
単語の意味は分かっていませんが、なぜこういう動作をするのかは一応分かりました
あと型varについてですが、型が明らかな時varを使うと仰っておりましたが、どこで明らかになっているかわかりません! 代入する値で判断しているのでしょうか? 例えば、 var i = 10 ←これは整数値だからint型だ!とコンピュータが判断 と、なればもう全てvarでもコンピュータの判断に任せることができるのではないでしょうか! 文章ヘッタクソなのでおかしなこと言っていたらごめんなさい!
>>126 ありがとうございます先生!
クラスをNEWすると分身(インスタンス)ができるんですね
代入以外にもvarで型が決まるのはいろいろあるが、 代入の場合は右辺の型で決まる。 規則に従って型を推論する。 型推論というらしい。
なるほど、推論ということは作り手の思ったものと違う型が作られてしまう場合もあるので”明らか”な時に使うのですね! でも僕は確実にこれはこの型!ってはっきりしている方がいいのでvarを使うのは何か不安ですね 考えすぎですかね??
配列を作ってみよう。 「 int[] array = {12,34,56}; foreach(var item in array) { Console.WriteLine(item); }」
コマンドライン引数を表示してみよう。 「for(int i=0;i<args.Length;++i){ Console.WriteLine(i + ": " + args[i]); } 」
>>131 できました
>>132 できました
>>133 何も表示されませんでした・・・
おやすみなさい
今日は余り進まなかった 単純なこと考えるだけなのに勝手にあたまがこんがらがるうううううううううう
>>114 修飾子がstaticのものはメソッドではないだとwww
先生こんばんは staticとは何なのかお教え下さい
他に先生はいらっしゃいませんか!夕方8時に起きたので寝れないのです! 言語は問いません、なんでもやります僕はたまごっちです!
言語は問わないと言いましたが、環境を用意するのが楽な言語が好ましいです・・・ Web開発とかアプリ開発に興味があります 偏差値40前後の高校を卒業後約10年ほぼニートでした 頭のできは良くありません!やる気もあまりありません! 今更自己紹介です!と、いうか違う言語を平行して勉強しないほうがいいですね!黙っときます!
>>141 違う言語を並行して学習するのは全然悪くないよ。
>>142 そうなんですか先生
たしかにこのスレを立てる前にスプリクト言語?のUWSCというのをちょろっといじってましたがC#と似てる部分がありましたね
他の言語も似てるのでしょうかね?今ある言語はC言語の兄弟みたいなことを聞いたことあるのでたぶん似ているのでしょうね・・・
まあ僕に平行して勉強するような器用なことができるかはわかりませんが。。。
何か僕にやらせたい言語有りますか?すっごい他人任せですが
>>143 paizaに登録してスキルテストでまずはDランク問題全てクリアしなさい。C#も使えるよ
おはようございます paiza登録しました今から殺ります
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); } } これでうまく動作しませんでした エラーにもならないのですが、どこか問題あるのでしょうか。。。
ReadLineが作動しないのです forの外にあるReadLineは動作するのですが、for内のReadLineは動かないのでしょうか
正 i < 7 + 1 誤 i > 7 + 1 でした
おはようございます さっさとpaizaの課題を終わらせます
Main関数のargsは、実行時に渡されるコマンド引数を表す。 コマンドプロンプトでスペース区切りで渡すことができる。 プロジェクトのプロパティでもデバッグ時のコマンド引数を指定できるぞ。
コマンド引数によって処理を変えることはコンソール(CUI)ではよくある。 指定したファイルを開いて処理したい場合などに便利だ。
>>10 あたりで勉強したコマンドですね、覚えておきます
paizaの問題D002で1時間以上掛かってしまいました
適性が無いと感じ泣きそうになります
8/32まで終わりました 残りも頑張ります 先生方に質問です。VSで引数"()"の"("を入力するとインテリセンス機能?で")"が入力されますが 文字入力位置は"("と")"の間に有り、引数が要らないReadLine()などですと 末尾に移動するのにアローキーの→を押すか、Endキーを押さなくてはならなくて指の移動が辛いです! 先生方はどのように移動させていますか?我慢して→かEndを押さねばならないのでしょうか? 冬で手がかじかみ誤打を頻発させています・・・
>>157 そのまま)を入力する。
手がかじかむなら暖房を掛ければ?
おはようございます それは)を入力して自動入力された)を削除でしょうか? もしくは()の自動入力をOFFにしているので)をそのまま入力ということでしょうか? 後者であればその()の自動入力をOFFにする方法を教えていただきたいです! 他の自動入力機能は便利なので()だけOFFにするっていうのはできませんかね?
>>160 ありがとうございます
>>161 ありがとうございます
ありがとうございます
ありがとうございます
良いお年を
明けましておめでとうございます。今年もよろしくお願い致します。 課題の続きをします このところ課題しかやってる気がしないのですがこれでいいのでしょうか たぶんいいのでしょうねまずはコード書くことに慣れること 果てしてシンプルなメモ帳と自動シャットダウンタイマーを作れるところまで成長するのでしょうか、続くのでしょうか・・・ スマホアプリなんかも作ってみたいと思うようになってきましたそんな2016年
配列のインデックス番号は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つ入るのでは????????? ????????状態です
ああ、馬鹿だあああああああ そりゃループ回数が5回だから要素が6つも入るわけ無いですよね と、いうことは↑s[5]は何も要素が入ってないことになりますよね わざわざ空の要素を用意しないといけないのでしょうかああわからない
MSのガイドを見たら int[] array = new int[5]; は array[0]~[4]の要素しかないんですね 間違って覚えてた!!!!!!!!!!!!!
int NUM = 5; int[NUM] a; for (int i = 0; i < NUM; ++i) { a[i] = i; }
>>1 ニートには100%無意味だから無駄な時間を使うべきではない。
次はファイル入出力だ。 九九の表をテキストファイルに出力してみよ。
ファイルを入出力する前にオープン(開く)という操作が必要だ。 入出力が終わったらクローズ(閉じる)しないといけない。
コマンドプロンプトで「notepad」と入力するとメモ帳が起動する。 メモ帳のファイル名が「notepad.exe」で、システムに登録されているからだ。 「notepad "(パスファイル名)"」を入力すればメモ帳でファイルが開かれる。試して見なさい。
コマンドを探しだす方法は、「サーチパス」、すなわちPATHという環境変数によって指定する。 詳しくは「Windows サーチパス」で検索。 環境変数にはシステムの環境変数と、プロセスの環境変数の二種類ある。 プロセスはプログラムのインスタンスである。 また、Windowsはサーチパス以外にもAppPathというレジストリーからの情報も使ってコマンドを検索することがある。 AppPathに登録していれば、Win+Rからコマンドを起動できる。
おはようござざいます ファイルの入出力やってみます このスレはマジですけどやる気はマジではないかもしれません
「C:\Program Files」はプログラムと、変更しないデータを格納するためのシステムフォルダである。 このフォルダにプログラムを格納したい場合、「インストーラ」を使う。 このフォルダは管理者権限なく、勝手に変更してはならない。 よってこのフォルダに設定ファイルを書き込んではいけない。 設定を書き込みたい場合は、AppDataかレジストリを使う。
九九の表できた・・・! 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(); } } 嬉しいので報告だけしました
バイナリファイルの読み書きができたら、Windows Forms (WinForms) に進んでもいいぞ。
数値の出力において桁をそろえたい場合はString.Formatメソッドを使う。 Stringクラスはよく使うので、ひまなときはStringのメソッドを眺めておきなさい。
できました!これでよかでしょうか
質問です。今C#を勉強していますが、このままC#を勉強すればCは勉強しなくても良いでしょうか
と、いいますかC#の基本を理解すれば他の言語への学習もすんなり活きますか?
>>184 水平位置がそろっていないように見える。
九九の表ではそろえないといけない。
数値をそろえるためのstatic関数を作ってみろ。
String.Formatが使えるはず。
OSを作りたいならCは必須だが、C#の後でいい。
>>184 ↑のすでに記述されたコードはいじらずに関数の追加だけでyそうか?
>>144 先生!やっと終わりました!
>>184 の訂正は明日やりますおやすみなさい
九九の表の「データの流れ」(data flow)について考えよう。 九九のそれぞれの数はintであった。それが単一行Stringになり、WriteLineに渡される。 実は、改行文字は"\n"で表せる。これをWriteに渡せば勝手に改行してくれる。 改行文字を使うと、九九の表は複数行文字列で表せる。 データの流れは次のようにできる。 int→単一行文字列→複数行文字列⇒Write
プログラムは役に立たせるためにあるの。 ニートは人が困ってるのを理解できてないからやれることなの。 人が困っているのを理解できない奴は役に立つプログラムは組めないの。 よって無駄。
static関数を作って水平位置を揃える方法が分からなかったので
すでに記述されたコードをいじれば簡単にできそうだったのでやりました!
それはプログラムだけではなく全ての事に言えますね!
なら僕は自分がやりたいことだけやります!!
今度は、そのテキストファイルをいっぺんに読み込んで画面に出力してみろ。
できました
質問です。結果を確認するためにはReadLineで画面に出力して確認するしか無いのでしょうか?
>>198 デバッグ機能にステップ実行がある。少しずつ実行しながら、下の「自動変数」などの画面で変数の内容を確認できる。
また、右下の画面で呼び出し履歴が見られるし、指定したブレークポイントでデバッグ実行を止めることができる。
ただし、プログラムがDebug versionじゃないといくつかの機能は使えないかもしれない。
ReadLineで画面出力の方が手っ取り早いから使っているんですねわかりましたありがとうございます
Release versionはデバッグ情報がない分、プログラムサイズが小さく、実行が速くなる。 だから、一般にプログラムを配布する場合はReleaseを使う。
次はバイナリファイルの読み書きだ。 int[] aに適当なデータを入れてその内容をバイナリファイルに書き込め。
改行コードを含むテキスト文字列を一気に読み込む場合はFile.ReadAllTextを使う。 逆に一気に書き込みたい場合はFile.WriteAllTextを使う。
ReadAllTextやWriteAllTextにはオープンが必要ない。
バイナリ形式ファイルは、16進数の00~FFを1バイトとして、n個のバイトが並んだものと考えることができる。 このバイト数がファイルサイズである。ただし、どんなファイルでもバイナリとして読み込める。 通常、慣習としてテキストファイルではないものをバイナリファイルという。
今Fラン文系大卒職歴30歳営業なんですが 昔からプログラマーに憧れていまして 今から未経験でプログラマー関連の仕事に就きたい思っています ですが35歳定年説なんてのも聞きますし 流石にこの歳からプログラマーは厳しいでしょうか?
>>207 未経験はベクターとかストアなどで職歴を作れ。
中途は実力と職歴があれば就職できる。
>>208 ありがとうございます
30歳からでもプログラマーを目指す事は可能なんですね
ただ未経験なので、知識や実力がないので、まずは仕事しながら勉強をして
その後、職業訓練校のC言語やマイコンなど勉強するコースに入りプログラマー系の仕事につけるようにガンバリマス
少し補足しておくと、日本企業は体裁を重んじるから注意が必要だ。 学歴はもちろん、体臭・口臭がひどかったり、受け答えが障害者っぽかったり、 マナーやエチケットを守らなかったりすると、落とされる可能性が高くなる。 就職活動にもマナーというものがあり、事前に本などを読んで把握しておかないといけない。 履歴書が手書きじゃないと受け付けない企業さえある。
ニートになってしまったなら、これまでの親の教育を全部疑わないといけない。 何かが世間体と違うのではないか? なぜいつも軍隊っぽいのかとか。 キャッチボールもサッカーもしたことがないのはなぜなんだ、とか。
洗顔料やインターネットの存在も知らないような毒親の教育を受けたら最悪だぞ。
やつらは体裁やら面子などを重んじて、子どもの生活など、1つも考えてはいない。 そんな奴等は地獄を見て滅んでしまえばいい。
できました
バイナリファイルとはテキストファイル以外を言うんですね、初めて知りました。
質問です。Streamクラス?を使うには一番上にあるusing System.IOを追加しないと使えませんでした
はじめから記述されていないのはファイルサイズやプログラムの実行速度に影響があるからでしょうか?
と、すると綺麗なコードを書くにはすでに記述されているLinqやTextも消したほうが良いですか?
なんかあまり理解できていません インスタンス?の作成のusing使う時と使わない時の違いとか usingだと短く書けるからでしょうか というか基本を全然理解できていない感 本とか読んだほうがいいですかねえ
バイナリ形式のnバイトの整数データを書き込むときに、上位バイトと下位バイトのどちらを 先に書き込むのかは、システムによって異なる。 C#では下位バイトを先に書き込む。このようなデータ形式をリトルエンディアンという。 バイナリデータの読み書きにおいてはデータサイズを常に意識しないといけない。
>>218 usingは記述を少なくして楽をするために使う。
重複した長いコードを何度も記述すると、コードを読むのも書くのも疲れるだろう。
お休み。次はお待ちかねのWinFormsをやるぞ。
下位バイトとか上位バイトとかその他にも専門的な用語が散見されてこれはもう本買って読んだほうが良いかもしれませんね ついて行けてない感 ありがとうございましたおやすみなさい
.exeファイルもテキストファイルではないからバイナリである。 .csファイルはテキストファイルだから、バイナリファイルではない。 バイナリファイルをテキストエディタで開くと文字化けすることがある。
文字もバイナリデータの集まりでは無いのでしょうか?
>>224 人間は動物だが、人間のことを動物呼ばわりすると失礼だろ。慣例だよ、慣例。
そういうものなのですね こういう性格なので飲み込みが遅いです・・・
WinFormsはGUIを持ったプログラムなんですね! アプリ制作に一歩近づきますね
目下の目標はwindowsアプリの自動シャットダウンタイマーと最前面表示できるテキストエディタですね
Windowsフォームアプリを作るよ。ファイルメニューからプロジェクトを新規作成。 Visual C#のWindowsフォームアプリケーションを選択してOK。 フォームのデザインが表示される。
1つ注意点がある。デザインのために自動生成されるコードには直接触らない。 編集する前にコメントを読んで自動生成コードじゃないか確認。 下手に編集するとデザインが変更できなくなる。
Form1のデザインでフォームを右クリックしてプロパティを選べ。 フォームのプロパティが表示される。 Textプロパティを「こんにちはWinForms」に変更してEnterキー。 TopMostというプロパティを探し出してTrueにしろ。
デザインが変わったのを確認してデバッグ開始。これでWinFormsアプリができた。 次にVS画面の右側に縦書きで「ツールボックス」という項目があるだろう。クリックしてみよ。
すべてのWindowsフォームをクリックして展開。ボタンを追加するぞ。 Buttonをクリック。デザインフォーム上をドラッグ。これでボタンができた。 ボタンを右クリックしてプロパティ。Textに「終了」と入力してEnter。 さらにボタンをダブルクリック。
button1_ClickメソッドがForm1クラスに追加される。 そこで「this.Close();」と入力する。デバッグ実行せよ。
課題。デザインフォームにいくつかLabelとTextBoxを追加して BMIを計算するアプリを作れ。 ヒント:Textプロパティに文字列をセット
できました!
すべてのWindowsフォームが見つからずつまづきました
テキストボックスやラベルの縦のサイズは変更できないんですかね?
>>241 複数行(multiline)にするプロパティがあるはずだ。
TopMostプロパティはフォームを最前面に保つ働きをする。
Form1はクラスだから、1プロセスに複数のインスタンスを作ることができる。 ソースコード全体がどうなってるか把握しなさい。
マルチライン見つけました ソースコード把握しあした
「ボタンを押す」という出来事(イベント)に対してメソッドで処理を行う。 典型的なイベント駆動型プログラミングだね。 プロパティとイベントの使い方をマスターすれば、さまざまなアプリを作れるだろう。
新しいアプリを作成しよう。フォームのTopMostをTrueにする。フォームのAutoSizeModeをGrowAndShrinkにする。 TextBoxを配置。TextBoxを複数行に。TextBoxのDockをFillに。デバッグ開始。
できました!
Textに入力する文字は改行できないのでしょうか?
右の↓をクリックしたら入力幅が広がって改行できるようになりました
メモ:プロパティのTextの右側の↓クリック
>>248 AcceptsReturnプロパティ。昔はEnterキーのことをReturnキーと言っていた。
このフォームにメニューを付ければテキストエディタに見えるだろう。
もしかしてwin純正のメモ帳もTextBoxを画面いっぱいに表示して作られてるんですか? C#で作られてるかはワカリマセンが
テキストボックスがフォーム全体に広がっているからフォームを右クリックできない。 こんなときは「プロパティ」ウィンドウの上側のコンボボックスで切り替える。 プロパティウィンドウのカミナリアイコンをクリックするとすべてのイベントが見れるぞ。
>>252 メモ帳はC/C++で作られている。C/C++のテキストボックスはEDITというウィンドウクラスから
作られており、C#のそれとは多少違う。フォームのサイズが
変更されたらWM_SIZEメッセージを受け取り、テキストボックスのサイズを
合わせるといった原始的なことをやっている。
C#でも純正メモ帳と全く同じようなものを作れるのでしょうか? またC/C++でシンプルなメモ帳を作る人がいたらその理由は何でしょうか? C#の方が楽に作れる気がするのですが C/C++にもwinformsみたいなのがあって楽に作れるんですかね
そのサイズを合わせるのもSetWindowPosとかMoveWindowといったAPI関数呼び出しで しなきゃいけない。プロパティは使わない。 なんというか、C/C++は生産性が低く、スマートではない。
C#は.NETという枠組みで動くが、C/C++はそれより外側の、OSに近い低レベルなところで動く。 .NETがなかった頃はVBやC/C++などしかなかった。
実行環境に.NETがないと動かない。これが最大のデメリット。
わかったようなわからないような C/C++は細かいところをいじれる と、いうか細かくしかいじれない感じですね
.NET FREAMWORKSでしたっけ?あれがなきゃC#を動かせないんですか ふむふむ WINマシンでしか動かせないんでしょうか?
汎用的に動かせるのがC/C++という認識で良いでしょうか
C++は基本的に自由だからフレームワークがいくつもある。 GTK+、Qt、Tcl/Tk etc. しかしどれも決定的なものはなく、 インテリセンスが満足に動かない開発環境がほとんどだ。 迷路に迷うのも自由。避難指定地域へ行くのも自由。こめかみを撃ち抜くのも自由。 技術者の迷い道しかない。
LinuxにはMonoというフレームワークがあり、これが.NET Framework互換になっている。 だからC#で作ったゲームをLinuxで動かすということもある程度できる。
このようなゲーム作りに興味があるなら、「Unity C#」を検索したまえ。 Unityは今、もっとも熱いゲームエンジンだ。
おまえら、おれは吊り、自演じゃないと信じて応援すっけど、スカイプとかメールでやりとりしたほうが早くねえか?w
なるほど、とりあえず今は何も考えずにC#やりますね
おやすみなさい
>>266 釣りとか自演の類に見えますかね??
いやあ色んな人から教わりたいですし、こういうところで経過報告した方が続くかなと思いまして
別に片山さんとマンツーマンでやってるわけでもなく
>>144 さんから出された課題もこなしてるので
僕に教えたいことがあればなんでも言って下さい
僕は
>>5 なので
おはようございます 何やればいいかわからないのでpaizaCランク全部やります
1週間の勉強じゃ足りないでしょうか? 何やればいいですかねえ、自分で課題探すのすごく苦手です
模範解答を見てみたんですが、見たことのない関数が使われていたので 全ての関数が列挙された本とか買えばいいですかね
逆引き系ならポケットリファレンスかな?基礎学びたいなら独習C#。 この辺は片山先生の意見を待ってみたらいいかもしれない。
とりあえず検索で出てきた勉強サイトで基礎を復習しつつ演習解きまくってみます
ポケットリファレンスですか、本屋でどんなものか見てきあmスね
本にしろサイトでの勉強にしろ結局は自分でどこまでやるか目標決めなくてはならないので 今の授業スタイルはこれをやれ、と指定された明確な目標があるからやりやすいですね 自分で勉強できない人間は独学というのは難しい・・
おはようございます!!!!!!!センセーーーーーーーーー!!!!!!!
今日はメニューとダイアログをやろう。 ツールボックスのMenuStripをダブルクリックしてフォームに追加。 デザインフォームのメニューを右クリックして標準項目を追加。 ファイルメニューの終了をダブルクリックして終了コードを書き込む。 ツールメニューに「テスト(&T)」を追加。それをダブルクリック。
MessageBox.Show("テストです", "テスト", MessageBoxButtons.OKCancel); というコードを追加。
ユーザーはコンピュータと対話するためにダイアログボックスというものを使う。 メッセージボックスは、ボタンを押すだけのシンプルなダイアログだ。 コモンダイアログは、「ファイルを開く」「印刷」などのよく使う共通のダイアログである。
ダイアログは「OK」「キャンセル」などのボタンが押されるか、Escキーが押されるまで コントロール項目へのデータ入力を待つ。「OK」が押されるとダイアログ上の コントロール項目のデータを読み込んでアプリに反映させて、ダイアログが閉じられる。 「キャンセル」やEscキーだとダイアログが閉じられるだけだ。
メニューはコマンドを選択するだけでなく、コマンドに関する現在の 状態や、ショートカットを表示したりできる。
デザインを間違ったときは、Ctrl+Zで1つ元に戻すことができる。 Ctrl+Yはその逆で1つ進めることができる。
独自のダイアログを作りたいなら、プロジェクトに新しいフォームを追加して
まずはMaximizeBox、MinimizeBox、ShowInTaskbarをFalseにする。
http://www.atmarkit.co.jp/fdotnet/dotnettips/139dialog/dialog.html これを読んでテストがクリックされたら、自作のダイアログを表示するようにしなさい。
フォームの追加は、プロジェクトから追加→新規項目から行う。 モーダルダイアログの表示は次のようなコードになる。 var form2 = new Form2(); form2.ShowDialog(this);
質問です
>>286 ではフォームの最大化、最小化ボタンの無効化をコードで記述していますが
これはフォームデザインのプロパティでFalseを選択してることと同じで記述する必要はありませんよね?
>>289 その通り。それらのプロパティはデザイン時でも実行時でも変更できる。
できました
難しいコードが記述されてましたが
>>288 だけで充分だったのですね
続きやります
コモンダイアログはパラメータがたくさんあって大変難易度が高い。 最適なパラメータを選ぶのはプロでも難しい。
てっきり新しいフォームを作って、それをコモンダイアログにするかと思い躓いていました
実際はメインフォームの開くスイッチにコード記述するだけで単純でした
ああああああああああ新しいフォームからもできますねこれ
ああ、やってみたらコモンダイアログと新しいフォームが2つ立ち上がってしまい失敗ですね
>>294 で正しかったです
おなようございます 独習か猫でもわかるを買ってきます。
課題。最前面表示のテキストエディタを作れ。 【要件】 ・ファイルメニューからテキストファイルが開ける。保存できる。 ・複数行のテキストを編集できる。 ・フォームのサイズを変えると中のテキストボックスもフィットする。 ・常に最前面に表示される。
ReadMe.txtとLicense.txtというファイルを追加すること。 Git for Windowsをインストールせよ。 .gitignoreというファイルを追加して無視すべきファイルを除外するようにしておくこと。 Gitレポジトリとしてコミットせよ。 完成したプログラムはGitHubにアップロードせよ。 ライセンスはNew BSD Licenseとする。
おはようございます 猫でもわかるを買ってきました。 帰宅してから始めます
>>302 ちょwなんかいきなり難易度高くなってません?
質問です、VSでプロジェクトが異なるファイルを別のタブで開くことはできますか? 例えばプロジェクト1のAファイルをプロジェクト2の作業中に開くことです。 コード内容を見比べたり参考にしたいのです 開けないとしたら見比べるのに良い方法は有りますか?別のテキストエディタを起動して読み込ませる方法しかないでしょうか
>>306 ファイルメニューの「開く」→「ファイル」で開けるぞ。
ファイルタブを右クリックして、「タブグループの新規作成」で比較ができる。
訂正。 AutoSizeModeはGrowOnlyのままでいい。
GUI項目の名前は、(Name)プロパティで指定できるが、 デザインした後に編集する裏技を紹介しよう。 編集メニューの「検索と置換」→「フォルダを指定して置換」を選んで 「すべて置換」。 プロジェクト名の場合はさらにプロジェクトの「名前の変更」と「プロパティ」、 ファイルメニューの「名前を付けて保存」を行う。
もう気付いてると思うが、変数や関数の名前に日本語が使える。 日本語のGUIについては、英語にこだわる必要はない。
質問です。この授業ではネット上にあるオープンの既存のコードをコピペで使用して良いのでしょうか? もちろん自分なりに添削し改良をしました。 それともコードを1から書かなければいけませんか?今の僕の知識と技術ではコピペしないとできそうにありません
コード内容もきちんと読みどういう動作をしているかを考えて使っています
>>311 ライセンス上、著作権上の問題なければ使っても構わない。
中には使用条件のあるコードがあるかもしれないので、気を付けて。
ありがとうございます。
>>301 の要件のみを満たしたテキストエディタ完成しました
Git for Windowsをインストール中です
誰が書いても同じようになるコードには著作権はない。 アルゴリズムには著作権はない。 短いコードには著作権はない。
Git for Windowsが何かもコミットと言葉の意味もワカリマセンがとりあえずやってみます
Gitをどのコマンドラインで使うか聞かれたのですが デフォルトで選択されているGit Bashで良いでしょうか
メールアドレスは持っているか? GitHubにアップするためにはGitHubでアカウント作成が必要で、 アカウント作成にはメールアドレスが必要だ。
>>317 Git BashでOK。これはLinux風の端末だ。これを使うとLinuxの勉強にもなる。
GitHubには学習で作った実用性の無いアプリもアップロードして良いのですか? ゴミをアップするなとか怒られないでしょうか
>>321 実用性がなくても教育目的で役に立つかもしれない。
全く役に立たないと思ったら、後でprivateにしたり削除したりできる。
今は気にしないでいい。
GitHubのアカウント取得、Gitのインストール完了しました 使い方が全くわからず困っています
えーまずReadMe.txtとLicense.txtの追加をしたいのですが、これはVSから追加するのでしょうか? 形だけで内容を書かなくても良いでしょうか
まず、プロジェクトフォルダを右クリックしてGit Bashを選ぶ。 次に「git init」を入力する。これでローカルレポジトリができる。
>>324 フォルダのエクスプローラから新規作成で作成する。
ReadMe.txtはプロジェクトの内容を記述する。
License.txtにはNew BSD Licenseを記載する。
ローカルレポジトリが何のことか分かりませんが git init しました masterってのが表示されました フォルダはプロジェクトフォルダの事でしょうか?そのフォルダにReadMe.txtとLicense.txtを作成すれば良いですか?
さらに.gitignoreファイルをテキストエディタなどで作成する。 「C# .gitignore」で検索。
【メモ帳で.gitignoreを作る方法】 メモ帳に「bin obj .vs」と書き込み、 ファイルメニューから名前を付けて保存。 ファイルの種類を「すべてのファイル」に変更。 プロジェクトフォルダに移動して「.gitignore」で保存。
ファイル名は何でも良いですか?空白はできないとの警告があります
内容はこれでよいでしょうか
次はレポジトリにファイルを追加する。 Git Bash上で 「git add *.cs *.sln *.csproj *.resx」 「git add .gitignore App.config」 「git add Properties/*」 と入力。 「git status」で追加したファイルを確認。
>>331 全てのファイルから保存を選んだらファイル名無しでも保存できました
>>331 名前を付けて保存のときに二重引用符をつけた「".gitignore"」で試してみなさい。
>>332 これでよいでしょうか
次はコミットだ。 「git commit -m "first commit"」 その次はGitHubにログインして「New Repository」を作れ。
>>336 untracked filesが追加されてない
>>337 できました
>>338 何をすればよいでしょうか?
>>332 をもう一度入力しますか?
>>339 「git add (追加したいファイル)」で追加して、
「git commit -m "second commit"」でコミットだ。
できたらGitHubで作った場所をブラウズせよ。
addしてstatusで赤字が無いことを確認し、セカンドコミットしました
GitHubで作った場所をブラウズせよで躓いています
>>343 右上のアイコンつついてプロフィールに移動して
移動しました
レポジトリがないようだ。ボタン押してレポジトリを作成。名前は「CSharpTest」でいい。
設定はどういたしましょうか
>>347 optionalだから入力しなくていい。そのまま。
ここからどう進めばよいでしょうか
そこに書いてある git remote add ... git push ... の二行。
空っぽだ。何かBashにエラーメッセージが表示されなかったか? Gitの設定ができていない可能性がある。
>>336 の赤字以外特にエラーはありませんでした
ここでメールアドレス教えろ言われてますけどこれですかね?
>>357 それだ。書かれた通りにgit configしてエラーが出たところからやり直せ。
Gitの鍵の設定は終わってるか?
これのことでしょうか?これはユーザーネームを入力するのですか?それともログインパスでしょうか
もう寝なさい 妖怪「めのしたクマー」にならないように
あと少し付き合って下さいお願いします!!!
>>360 まで終わりましたまたgit remote add origin
https://github.com/takasi-desu/CSharpTest.git git push -u origin masterを入力すれば良いのでしょうか
ここまでやりましたがGitHubが何なのかGitが何なのかコミットの言葉の意味とかよくわからないなまま色々入力しましたがとりあえずは休憩しますありがとうございました
なんか個人情報とか漏れてませんよね色々入力したりアップしたので心配です
案外みんな優しいのな イチが総攻撃されるスレかと思ってきてみたら
おはようございます ありがとうございます 今日は体調が優れない為お休みさせて頂きます おやすみなさい
職業訓練3年前いったけどなかなか良かったよ 仕事やめて2年ニートして行ったんだが、まず生活習慣変えるのがきつかった 毎月10万もらえるんだが、遅刻欠席に異様に厳しくて1回でも理由ない遅刻欠席したら0円 もう必死に通ったよ 授業も二進数とかネットワークの仕組みとか本当基礎から初めてくれてありがったかった 1日が9:30~16:00だったから放課後にちょっと勉強して、卒業するときには応用情報取って、技術的にはJavaでWEBアプリケーション作れるようになってた 就職先も斡旋してくれて、面接の練習もしてくれてなんとか就職できた 最近ようやく設計にも関われるようになった
>>366 全てのファイルを見たけど個人情報はなかったよ
ちょっぴり漏れるのを期待してたんだけどな
差分がデカすぎる 殺人的プルリクが早速合って少しワロタ
片山さんもtakashiさんもすごいな。 片山さんやさしい。 寝なさいとかいってくれる上司がほしい。 働けとはいうけど寝なさいとか言ってくれる上司はいないからなーー
おはようございます 職業訓練は今考えています、給付金は頂けないと思いますが 休み明けにでもハロワに行ってきます 差分がでかすぎるとは何か余計なものまでアップしちゃいましたかね 先生から直しを頂いたのですが後で保存の仕方調べておきます 半分ノリで建てた部分もあるんですが、まさかここまで熱心に教えてもらえるとは思いませんでした なので僕も頑張りたいです 自演にしろ自演でないにしろ僕が勉強してることは事実なので生暖かく見守って下さい ちょいと久しぶりの外出をして帰宅後に猫でも分かる~を読んで勉強したいと思います 先生が来たら授業の続きを受けたいと思いますそれではさようなら
>>377 > 差分がでかすぎるとは何か余計なものまでアップしちゃいましたかね
"katahiromz"って人からのPull Request(通称プルリク)があるでしょう
その"改良してみたよ"のコミットがデカすぎるwと、
>>374 で書いただけ
アナタの"second commit"には何の問題もないよ
おはようございます 僕は26です 問題なかったですか良かったです
GitHubのレポジトリを開いてプルリクの内容を確認してmergeしてみて。
mergeしました自分がなにやってるかわからないんですけど大丈夫ですかね
Gitとは分散型のバージョン管理システムだ。 GitHubはGitリモートレポジトリを管理するウェブサービスだ。 レポジトリとはソフトウェアの格納庫のようなものであり、 主にパッケージやライブラリのソースを保管する。
今度は、ローカルレポジトリにpullしてみなさい。 pushは押す、pullはその反対の引き出す。 タンスの引き出しを連想するといい。
すまない、初心者はpullを使わなくてもいい。代わりにcloneしてみてくれ。
適当なフォルダで
git clone
https://github.com/... (以下略)
を実行してみてくれ。
そのローカルリポジトリでもバージョン管理されているのを 確認するために「git log」を実行してみてくれ。
viというエディタが起動する。矢印キーやPgDnキーでスクロールできる。 viの終了にはqを押す。
そこに出てきたのはコミットした記録だ。 git commit -m "(メッセージ)" で指定したメッセージがタイトルになる。 複雑な文字列はハッシュだ。これがコミットのIDである。 コミットとは確定とか確約などの意味があるが、日本語には適当な訳語はない。 Gitはすべてのコミットを記録する。
ログが短いときはviは起動せずコンソールに出力されるだけだ。
なるほどなんとなくわかってきました さっきのpullはgitでプロジェクトフォルダ上でpullしろって事だったんですね そうすれば新しいバージョンにプログラムが更新されると
課題。編集メニューを追加し、「切り取り」「コピー」「貼り付け」 「削除」「すべて選択」ができるようにしなさい。 さらに変更ファイルをgit statusで確認、git addしてコミットしなさい。
わかったかな? textBox.Cut(); textBox.Copy(); textBox.Paste(); textBox.SelectedText = ""; textBox.SelectAll();
引き出しを押してリモートに保管しなさい。 おまじないは「git push origin master」だ。
同じレポジトリ?にコミットする場合は以前コミットしたフォルダでコミットしなければなりませんか? 先ほどクローンしたプログラムのフォルダの名前が以前のと違っていたので クローンのプログラムに手を加えてaddしてコミットしたんですが、いくつかのファイルが無いってエラーがでました
Gitのその他、役に立つコマンドを紹介する。 「git diff」でコミット後の変更点を見る。 「git diff (ファイル名)」でコミット後のファイルの変更点を見る。 「git checkout (ファイル名)」でファイルをコミット直後の状態に戻す。
最初にレポジトリを作成した時のフォルダはTextEditer301で今回はCSharpTextをコミットしようとしました
>>401 「git status」の結果を見せて
「git mv (旧ファイル名) (新ファイル名)」は名前の変更。 「git rm (ファイル名)」はファイルの削除。
status
error: pathspec 'second commit' did not match any file(s) known to git. です
git commit -m "4th commit"
できました!! -m が無かったのが原因です失礼しました
赤は変更前で緑が変更後だと思うんですが、いじってないところもハイライトされてるので見辛いですね こういう仕様なんですかね
ローカルリポジトリの記録は「.git」という隠しフォルダに記録される。 コミット内容を消したい場合は.gitを削除すればいい。
>>412 無視したいファイルは.gitignoreに相対パスで指定する。
ソースファイル(*.cs)はコンパイルされてオブジェクトファイル(*.obj)が出力される。 オブジェクトファイルとライブラリを組み合わせて.exeファイルにする処理をリンクという。 一連のコンパイルとリンクのことをビルドという。
ファイルというか中身のコードですね
Form1.csは138行以降から新規にコードが記述されましたが1-27は何も変更していないのにハイライトされてるので
どこが違うんだ~と探しちゃいますね
ああそういえば先生のプログラムに手を加えるときに書式がなんたらかんたら言われて適当に押した覚えがあります それですね
そこを見てgit config --global core.autoCRLF falseをしました statusで確認したらcore.autocrlfが2つあって3行目のcore.autocrlfはtrueで 最後の行のcore.autocrlfはfalseでちゃんと設定できたかよく分かりませんね
いじってみたら最後の行だけ変わるみたいですね、この問題は自分で調べておきます
まだ時間あるな。 「編集」→「元に戻す」(undo)と「ヘルプ」→「バージョン情報」を実装せよ。
終わったら試しに「git diff」してみて。 それからadd, commit, pushだ。
「バージョン情報」というフォームを作って バージョン情報をそこに記載する。 それをモーダルダイアログとして表示する。
git diffしました 文字が出続けてるんですが終わるまで待てばいいですか?
なかなか終わらないんでエンター押しっぱなしにしたらENDになったんですが 閉じようと思ったらまだプロセスが動いてると警告出ました 時間かかりますかね?
>>426 矢印キーやPageUp/PageDownキーを押してみて。
終わるにはqを。
core.autoCRLF falseちゃんと機能してました
【今後の予定】 プルリクの方法 GUIデザイン マルチメディア データベース ネットワーク
申し訳ありません!!!!!!!!! なかなか寝付けず今起きました 明日頑張ります おやすみなさい・・・
片山さん共同プロジェクトの授業の予定があったら呼んでください馳せ参じますからね
(T_T) 寝れません 本での学習は進んでいます 猫でもわかるC# 142/404p 授業には間に合いたいです おやすみなさい
C#やるなら、LINQPadがチョー便利 フリー版でも十分使えるぞ これ豆な
https://github.com/katahiromz/JankenGUI これをForkしたものをローカルにcloneしてみたまえ。
Forkとは、方向性の違う分家を作り、自分好みに変えるために、
自分のリポジトリとして複製することだ。
>>440 分かりやすいですけど完全な初学者向けではないかもしれません
2進数やビットが何も解説無く出てくるので
別に知らなくても読み進められますけど、猫でも分かるはいいすぎかもしれませんにゃ
LINQはまだ学習していませんがそこまで行ったら使ってみますね
先生おはようございます 寝起きなので少々お待ち下さい
JankenGUI.slnを開き、デザインフォームで二つのPictureBoxのWidth,Heightを60にしなさい。 ドラッグやShiftキーでフォーム上のコントロールを複数選択し、VSの 「書式」メニューを使ってコントロールの位置を調整しなさい。
同じフォルダにある音声ファイル(*.wav)や画像ファイル(*.png)を確認。 ソリューションエクスプローラの「Properties」をダブルクリック。 リソースを選択。「リソースの追加」の右三角をクリック、 「既存のファイルの追加」を選ぶ。ファイルの種類を「ビットマップ」にし、 Shiftを押しながらpngファイルをすべて選択して開く。 オーディオのwavファイルも同様。
ここで「リソース」というのは、EXEファイルにデータを埋め込む機構のことだ。 データが埋め込まれていないデータファイルなら、容易に第三者に盗用されてしまう。 リソースはある程度これを防ぐ。
button1をダブルクリック、次のコードを追加。 「pictureBox1.Image = Properties.Resources.gu; var player = new System.Media.SoundPlayer(Properties.Resources.gu1); player.PlaySync();」 できたら、デバッグ実行して、button1をクリックしてみよ。
コントロールはFontプロパティで文字を大きくしている。 また、ボタンを大きくした文字列に合わせるためにAutoSizeをTrueにした。
デザインフォームはどうやって表示させるのでしょうか? slnファイルを開きエクスプローラからファイル一つ一つクリックしたのですが コードが表示されるだけです
右クリックからビューデザイナで表示できました失礼しました
課題。ジャンケンゲームを完成させなさい。 ボタンとフォームの背景色を変更しなさい。 フォームはサイズ変更できないようにしなさい。
>>444 あ、勘違いしてる
LINQPadはLINQ専用のツールじゃないよ
ちょっと試したいC#コードの断片がある時に、
わざわざVisual StudioでSolutionやProjectとか作らずに
気楽に試すことができるツール
フォームが読み込まれたときの処理はLoadイベントで行う。 表示されたときの処理はShownイベントで行う。 イベントはプロパティウィンドウのカミナリをクリックすれば見られる。
画像がPictureBoxからはみ出る場合は SizeModeプロパティをいじるとよかろう。 ちなみに、画像はGoogle画像検索で「ジャンケン フリー素材」を検索して拾った。 音声は自分で録音したものだ。
自分で画像を用意したい場合はGIMPやInkscapeといったフリーソフトで 作成・編集したり、カメラやスキャナで取り込んだりするとよい。
>>456 課題終わったら使ってみます!
思ったより頭が働いてないので少し時間かかります
リソースデータは名前で参照する。名前が重要だ。 どのリソースを使うかは、名前で決めないといけない。
最序盤でつまづいています スタートボタンを押して開始→手をクリック→手を受け取り条件分岐 こういう流れで行きたいのですが えーまず、メインのジャンケンの処理をどこに記述すればよいのかで混乱しています
頭のなかではこんな感じなのですが
実装の仕方がわからず・・・
さっさと質問しとけばよかったですすみません
... 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)) { ...勝ち負けを表示... } }
ありがとうございます 分からなかったらまた聞きます 行ってきます
判定して結果を表示させる所まで来ました あとはあいこのループ処理と画像の表示と音声のタイミングが合ってないのでそれを直すことです
・スタートおした時のジャンケンポンの効果音 ・判定後のスタートをリセット ・画像のサイズをあわせる まだまだありました
PlaySyncを使うとそこで処理が動かなくなる。 画像を変えるなら再生の前にするとよい。 一方、Playは非同期で動く。 非同期再生処理のタイミングを調整したいなら、スレッドを使うことになる。
分かりました 頭をすっきりさせるためにお風呂に入ってきます
>>454 なんとか完成しました
今までは一つのメソッドに処理書いていたので楽でしたが
今回はメソッド同士の値の受け渡し?などがよく分かってなくて難しかったです
数こなしてなれるしか無いですね
>>478 add, commit, pushしてから、Githubでプルリクしなさい。
おはようございます プルリクエストしてみました。ちゃんとできていますでしょうか 体調不良のため途中で離脱するかもしれません
先生、たかし君のペースでいいので是非データベースとの連携もご教示ください!
病院行こうと思ったら午前で終わってました おはようございます
ジャンケンゲームの続きだ。
https://github.com/katahiromz/JankenGUI これを適当なフォルダにcloneしてソースを眺めてみよ。
Visibleプロパティをfalseにすると非表示になる。 SoundPlayer.Stopで音を止めることができる。
僕のぐっちゃぐちゃなコードに比べるとすごく綺麗にまとまっていて これはどういう動作をするコードなのかひと目で分かります 条件分岐の負けの判定の仕方でelse if ((3 + player_hand - comp_hand) % 3 == 1) を見てこれはすげえと思いました 全体のコード量は少ないですが、すっきりしていて感動しました そして自分にこんな綺麗に書ける自信が無くて胃が痛くなりました
こういうやり方もあるのかと色々発見がありました 以上、小学生並みの感想文でした
その判定は大学数学の剰余類という概念を使っている。 多分、大学一年生で習うだろう。
初めて聞いた単語で胃が痛くなりました とりあえず頑張ります ちなみに僕は数学は大の苦手です 数学の知識があったほうがどう考えてもいいですね
今日はアプリの設定データについて勉強する。 アプリを終了した後でも、データを保存しておきたい場合、 ファイルやレジストリにデータを記録することになる。 レジストリはWindowsが持っている、階層構造を持ったデータベースで あり、ファイルとは異なる。
二つのTextBoxをフォームに配置し、さらにOKボタンとキャンセルボタンを置く。
OKボタンをダブルクリックして、次のコードを追加。 var key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Takashi\MySoftware"); key.SetValue("Text1", textBox1.Text); key.SetValue("Text2", textBox2.Text); key.Close();
プログラムを実行してOKを押す。これでレジストリに書き込まれた。 Win+Rキーを押してregeditと入力してEnterキーを押す。 これでレジストリエディターが起動する。 HKEY_CURRENT_USER\Software\Takashi\MySoftwareがあることを 確認せよ。
Tkashi\Mysofrwareとレジストリを確認しました
次は読み込みだ。フォームのLoadイベントに次のコードを追加。 var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware"); textBox1.Text = key.GetValue("Text1"); textBox2.Text = key.GetValue("Text2"); key.Close();
文字列リテラルに@が付いているのは\によるエスケープシーケンスを解釈しないためだ。 以前、"\n"は改行を表すと言った。"\t"はタブ文字だ。このように通常、""の中の\は特殊な解釈をする。
オブジェクト型は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(); }
レジストリはシステムの資源を占有するので、サイズの大きなデータを書き込むべきではない。 大きな設定データはファイルに記録する。 ではどこに設定ファイルを書き込めばいいか? 特殊フォルダのAppDataに書き込むのがいいとされる。
>>503 key.GetValue("Text1").ToString();
でOKだ。
特殊フォルダの場所を取得するには次のように書く。 var path = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
読み込みされるか実行して確認せよ。 次にレジストリエディタでMySoftwareキーを削除してプログラムを再起動せよ。 例外が発生するはずだ。実はキーが開けないときkeyはnullになる。 nullというのは無効なデータのことだ。
読み込まれないです!
Form1_Loadは初めから存在してなかったので自分で作ったのですがこれが原因でしょうか
キーが開けないときや作れないときはkey == nullになる。 このまま書き込んだり、読み込もうとすると例外が発生してしまう。 対処法はnullチェックをすることだ。 if (key != null) { ... key.Close(); }
>>508 それはいったん消してプロパティウィンドウ
からイベントを追加せよ。カミナリのアイコンだ。
>>507 例外がスローされるのを確認して
>>509n ullチェックで回避しました
課題。ジャンケンゲームでの勝ち・負け・引き分けの回数を レジストリに記録するようにせよ。
アプリ設定に使ったファイルやレジストリキーを消すのは、 インストーラ側で行うことが多い。
課題が出来たら、プルリクせよ。残り時間は自習とする。
質問はありませんが、値の受け渡しで頭がぐるぐるしてます とりあえずsave_keyメソッドとload_keyメソッドを作りぐっちゃぐちゃやってます頑張ります
えーと、やりたいことは分かっているんですが思考が迷子です 時間がかかりそうなので宿題とさせて下さい えーとプログラミング適正無しでしょうか悲しいです
ヒント: アプリ側で保持するのは、回数が増えた分だ。現在の回数ではない。 レジストリへのアクセスは読み書きを一度に行う。 アプリ側の増分だけレジストリの回数を増やした後でアプリ側の増分をゼロにする。 回数を増やすのは勝敗引き分けが決まったときに行う。 回数の増分はフォーム側ではなくプログラム側で保持する。
正直に言いますとまだ出来ていません あまりの出来の悪さに悲しみに暮れ寝て起きたら今です ○にたい
ヘイ、まずは、三つのint型のメンバー変数を追加するよぉ。 初期値はゼロだぜぃ。 int kachi_count = 0; int make_count = 0; int aiko_count = 0;
お次は、勝敗判定の箇所を探してみよー。 hantei関数の呼び出しをしている場所があるよね。 ここで判定に応じてカウント変数を1つ加算だよお!
その後にレジストリのカウント値を更新だ。 CreateSubKeyはキーがなければキーを作成してそれを開く。 あればそのまま開く。 カウント値はGetValueで取得、SetValueで設定だ。 しかしまだ値を設定していないときにGetValueしたらどうなるか?
>>530 ノーノー、nullが返される。
var value = key.GetValue("KachiCount");
int count = kachi_count;
if (value != null)
{
count += Convert.ToInt32(value);
}
...
そしてcount.ToString()をSetValueしてからkachi_countをゼロにする。 他のカウント変数も同様だ。
どのタイミングでキーを作成しなければいけないのか分からないです
カウントを表示するのは別のフォームで行う。 新しくフォームを追加だ。 その上にラベルをいくつか追加。 フォームのLoadイベントでレジストリを読み込んでラベルテキストをセット。 OKボタンでフォームを閉じるようにする。
>>533 いつカウントを更新するかは、自由に決めることができる。
アプリが終了するときか、フォームが閉じたときか、カウンタが更新したときか。
ここではすぐに更新してほしいので、hantei関数が呼ばれた後に
レジストリを更新する。
>>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();
}
で大丈夫ですよね
>>537 try/catchしないならkeyとvalueのnullチェックが必要だよ。
レジストリの更新はメソッドを新たに作成してそこでやらせたほうがいいですよね
\MySoftware のところは \JankenGUI にしておこう。
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(); こういうことでしょうか
if (value_kachi != null) label4.Text = key.GetValue("KACHI").ToString(); ちょっと無駄があるな。 if (value_kachi != null) label4.Text = value_kachi.ToString(); こっち。
git add -a git commit -m "add counters" git push origin master
ブラインドタッチの特訓と基本情報の取得が必要だな。 1ヶ月以内にブラインドタッチをマスターして、 1年以内に基本情報を取得しなさい。
上手くいきません とりあえず現時点のコードをコミットした方がいいですか
ブラインドタッチ一応できます・・・ 実質的な死刑宣告と捉えたほうが良いですか・・・
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; }
$ 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
ぐぬぬ
んぐぐぐぐぐぐぐ プスプスプスシューーーーーーーーーーー
>>561 自分のリポジトリじゃないからね。
最初にforkすべきだった。
pushしなくていいよ。変更点少ないし。
いくつか注釈しておこう。 引数がゼロ個の関数を作ることができる。 save_keyは引数のない三つの関数に分けた方がいい。 記録がない場合はゼロ回として扱うべきだ。 異常な表示にならないようにすべての場合の「状態」を管理しないといけない。
JankenGUIにリソースのアイコン(*.ico)を追加せよ。フリー素材で構わない。 可能ならばJankenGUIに署名を行え。 JankenGUIをReleaseビルドせよ。 Inno Setupをダウンロード&インストールせよ。
Inno Setupのウィザードに従ってインストーラのスクリプト(*.iss)を試作せよ。
スクリプト中の絶対パスを相対パスにせよ。
JankenGUIが使っている.net frameworkのバージョンを確認せよ。
次のサイトを参考にインストール時に.net frameworkの有無をチェックするようにせよ。
http://qiita.com/bellx2/items/14ac4e02283d5c1ef12b 今日はインストーラ作成を行う。今回の課題は英語ができないと難しいかも知れないな。 質問が有ったらお気軽に。
署名は多少時間がかかると思う。今日は後回しでいい。
ローカルリポジトリ情報の隠しフォルダ「.git」を「rm -rf .git」で消す。 「rm -rf」はファイルやフォルダをまるごと消すLinuxのコマンドだ。 GitHubのTakasi-DesuのJankenGUIをSettingsから消して(delete)作り直す。 それからgit init, add, commit, push -uだ。
教員免許を持っていない私が指導するのだから、不充分な点も あるかもしれないが、御了承頂きたい。 進捗報告を。
Releaseビルドしたなら、bin/Releaseフォルダにexeができているだろう。 これをInno Setupのウィザードでプログラムファイルとして指定する。
使い方がさっぱりわかりません exeファイルはできましたがInno Setupのウィザードでプログラムファイルとして指定するのはどうすればよいのでしょうか
>>575 Inno Setupは日本語になっているか?
参照ボタン(browse)をクリックして、ファイルの場所を指定する。
参照ボタンはどこでしょうか?
開くはスクリプトファイルしか開けないようです
今この画面です
英語が読めないなら、日本語化した方がいいんじゃないか?
日本語化できますか? インストールウィザードを日本語化するのしか見つかりませんでしたが
先生、今回ばかりは無理かもしれません 使い方が全くわからなくて調べながらやらないといけないので時間が凄いかかると思います・・・ 順序立てて教えていただければ分かりやすいですが、それもまた時間かかりそうですし・・・
今日はこの辺でお開きといたしやしょう。 おやすみでござります。
すみませぬ・・・・・・・・・おやすみなさい・・・・・・・・・・・・・・_(:3」∠)_
InnoEditXをDL、展開して適当なフォルダに配置する。 InnoEditXのReadMeを読んだ後で、InnoEditXを起動する。 「ツール」→「設定」で、Inno Setupの場所を指定する。 あらかじめJankenGUIにReadMe.txtとLicense.txtを追加しておく。 [Setup]タブをクリック。「基本情報」タブで、アプリの名前を入力 (「たかしのジャンケン」「たかしのジャンケン ver.1.0」)。 インストール先を入力({pf}\Takashi Janken)。
「アンインストーラー」タブをクリック。 「アンインストーラーを作る」をチェック。 表示するアイコンに「{app}\JankenGUI.exe」を指定する。 {pf}は「C:\Program Files」などを表している。 {app}はインストール先のフォルダを表している。 「情報」タブをクリック。「製作者」「説明」「バージョン」を入力。
「フラグ」タブをクリック。 「中断を許可」「UNCパスを許可」「アプリ用ディレクトリを作る」 「情報をレジストリに保存」をチェック。 「ダイアログ」タブをクリック。 「インストールを行いますダイアログを出さない」をチェック。 ここまで、[Setup]タブ。
[Files]タブをクリック、リストを右クリックして「アイテムの追加」。 ソースファイルに「JankenGUI.exe」を選んで指定、 出力先ディレクトリを「{app}」にして、「OK」。 さらに「アイテムの追加」。「ReadMe.txt」を選んで指定、 出力先ディレクトリを「{app}」にして、「OK」。 さらにさらに「アイテムの追加」。「License.txt」を選んで指定、 出力先ディレクトリを「{app}」にして、「OK」。
[Icons]タブをクリック。 このタブはショートカットアイコンの追加に関する設定だ。 リストを右クリックで「アイテムの追加」。 作成先を「{group}\たかしのジャンケン」に、 リンク先を「{app}\JankenGUI.exe」にして、「OK」。 さらに「アイテムの追加」。 作成先を「{commondesktop}\ReadMe.txt」に、 リンク先を「{app}\ReadMe.txt」にして「OK」。 さらにさらに「アイテムの追加」。 作成先を「{commondesktop}\License.txt」に、 リンク先を「{app}\License.txt」にして「OK」。
さらにさらにさらに「アイテムの追加」。 作成先を「{commondesktop}\たかしのジャンケン」に、 リンク先を「{app}\JankenGUI.exe」にして「OK」。 さらにさらにさらにさらに「アイテムの追加」。 作成先を「{group}\アンインストール」に、 リンク先を「{uninstallexe}」にして、「OK」。 {group}は、スタートメニューの項目を表している。 {commondesktop}は、すべてのユーザのデスクトップを表している。 {uninstallexe}は、アンインストールプログラムを表す。 ここまで[Icons]タブ。 名前「JankenGUI.iss」を付けて保存。ビルドしてエラーがなければ インストーラが作成される。 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
>>593 訂正。
× 作成先を「{commondesktop}\ReadMe.txt」に、
○ 作成先を「{group}\ReadMe.txt」に、
× 作成先を「{commondesktop}\License.txt」に、
○ 作成先を「{group}\License.txt」に、
おはようございます ありがとうございます・・・ 始めます
無事ビルド完了しました
どうでもいいことだろうけど、
>>594 になぜ
Rock54: Cautionがついているのだろう
exeかな?
>>570-571 の手順でGitHubにアップしてくれ。
以前のレポジトリは消えても構わない。
作成したセットアップファイル?もフォルダに加えるんでしょうか
.issもレポジトリのフォルダに入れて。 setup.exeは.gitignoreで除外して。
修正1.JankenGUI.issをテキストエディタで開いて絶対パスの記述を相対パスに直しなさい。 修正2.使用しているレジストリキーをアンインストール時に削除するようにしなさい。
終わったらInnoEditXで開いてビルド。 インストールしてインストールした項目をテスト、アンインストールを何度か繰り返しなさい。
現在のフォルダが「C:\Users」であるとき、「C:\Users\takasi\himitsu」という場 所(パス)は相対パス「takasi\himitsu」で参照できる。 「C:\Users\takasi\himitsu」は絶対パスだ。 パスを相対的に指定するか、絶対的に指定するかの違いだ。
これを直すんですよね? 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}";
{ }がついたものは直す必要ない。 [Files]の記述はどうなってる?
[Files]はありません[Setup]と[Icons]のみです
ファイルがインストールされていない。
>>592 をやり直して。
これで良いでしょうか [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
[Files] Source: "bin\Release\JankenGUI.exe"; DestDir: "{app}"; Source: "ReadMe.txt"; DestDir: "{app}"; Source: "License.txt"; DestDir: "{app}"; こうでした
JankenGUI.issは、フォルダJankenGUIの中にあるんだろ? だったら Source: "License.txt"; DestDir: "{app}"; じゃないかい?
問題なくインストールでき、アンインストール時にレジストリが削除されることを確認しました _(:3」∠)_
pushしました本日もありがとうございましたおやすみなさい_(:3」∠)_
JankenGUIのプロパティの「公開」タブをクリックして、マイナー バージョンを1にし(1.1)、Releaseバージョンをビルドしなさい。 プログラムに変更が有った場合、プログラムをバージョンアップしないと インストーラがファイルを更新しないことがあるので注意。 JankenGUI.issをInnoEditXで開いて[Setup]タブをクリック。 「デフォルトのスタートメニューグループ名」を「たかしのジャンケン」にしなさい。
[Languages]タブをクリック。リストを右クリックして、名前を「Japanese」にし、言語ファイルで「Languages」→「Japanese.isl」を順に選んで「OK」。 [Setup]タブをクリック。「基本情報」と「情報」のバージョンを1.1にしなさい。 「基本情報」の「出力」の「セットアップファイルの出力時の名前」を 「tjanken-1.1-setup.exe」にしなさい。古いsetup.exeは削除。 .gitignoreで「tjanken-*-setup.exe」を無視するように設定しなさい。
JankenGUIを自由に改良しなさい。1つ改良するたびにgit add, git commitしなさい。 改良に失敗したら「git checkout (ファイル名)」で1つ元に戻しなさい。
次はインストーラなしのパッケージを作ってみよう。 プログラムのインストールができない環境の利用者はインストーラが使えない。 だから、インストーラなしのプログラムもそれなりに需要がある。
次のような内容のバッチファイル「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
pack-bin.batをダブルクリックすると、tjanken-binフォルダが作成され、 必要なファイルがコピーされる。 このフォルダを右クリックして「送る」→「圧縮(zip形式)」を選ぶと、 このフォルダが圧縮されたzipファイルtjanken-bin.zipができる。 これの名前を変更し、tjanken-1.1-bin.zipにすると、 インストーラなしパッケージが完成する。 .gitignoreにzipファイルとtjanken-binフォルダを無視するように 「*.zip」「tjanken-bin」を設定しなさい。
>>628 でpack-bin.batを作りダブルクリックしましたがフォルダは作られませんでした
代わりにtjanken-binというファイルが出来ました
フォルダのなりぞこないでしょうかこれは
>>632 delとcopyの間にmkdir %DIR%を忘れてた。
できたファイル消してやり直して。
アプリが使用している.Net Frameworkのバージョンを確認せよ。 ReadMe.txtに作品名、作者名、動作環境を記せ。 配布するファイルのサイズを確認せよ。 ウイルスチェックを行え。
frameworkのバージョンはプロジェクトのプロパティから確認できる。 ファイルサイズはファイル右クリックのプロパティで確認できる。
配布するファイルとはJankenGUI.exeの事でしょうか?
>>637 tjanken-1.1-setup.exe
と
tjanken-1.1-bin.zip
が配布するファイルだ。
前者がインストーラつきのプログラム、後者がインストーラなしのプログラムである。
pushしたら終わりだ。 青少年はもう寝る時間だ。 おやすみ。
たかしのじゃんけんゲームやってみたがよく出来てる 頑張ってな
ありがとうございます ほとんど片山先生の作品なんですけどね・・・ 最近勉強できていません 体の調子が悪くて・・・起きる時間も夜・・・ふぁああああああああ
最近プログラミングの適性がないのではないかと悩んでいるお年ごろです 慣れでしょうか
今度は、○×ゲームだ。
https://github.com/katahiromz/MaruBatsuGame こいつをForkして、適当なフォルダにcloneしてくれ。
dataフォルダに、画像と音声のデータがある。
画像はInkscapeで作成、音声は自分で録音した。
今回は、辞書(dictionary)を使っている。 一般に辞書というのは、単語から意味を調べる書物だね。 C#で辞書というのは、あるデータに他のデータを関連づけるデータ構造だ。 単語に相当するデータをキー(key)といい、 意味に相当するデータを値(value)という。 キーをintとし、値をMasuとする辞書の型は、Dictionary<int, Masu>と書く。
黒い線を表示するのにLabelを使った。 Labelの背景色を黒にし、AutoSizeをFalseにしてある。 それぞれのマスはPictureBoxになっている。 画像と音声のデータはすでにリソースとして追加した。
データとUIの分離のために、盤を表すBoardというクラスを用意した。 Boardに空ではないマスを数えるカウント変数countを追加せよ。 盤の初期化のときにcountをゼロにせよ。 set_masuでcountを加算せよ。
Boardに次のような思考関数kangaeruを追加せよ。 int kangaeru(Masu comp) { Masu anata; compがマルならanataはバツ。 compがバツならanataはマル。 空マスが1つ、compが2つの並びがあれば、その空きマスの番号を返す。 anataがなく、compが1つ以上の並びがあれば、その空きマスの番号を返す。 空きマスをランダムに選び、その空きマスの番号を返す。 }
課題。○×ゲームを完成せよ。 プレイヤーはマル(先攻)、コンピュータはバツ(後攻)とする。 プレイヤーがマルをつけたら、タイマーで2秒待ち、 コンピュータがバツをつける。 待っている間は操作できないようにせよ。
ちょっと今日は夜に出てこれないです! 完成したらプッシュすれば良いでしょうか
おはようございます、課題ですがまだ終わっていません
朝からずっとコードとにらめっこしていたのですが
これらがどういう動きをしていてどう使うのかが理解できませんでした
前回のじゃんけんゲームの時もでしたが、課題の難易度に対して自分の能力が全く追い付いていないと強く感じました
このままでは分からない事がある度に片山先生の言葉ををただコピペするだけで
理解せずに無駄な時間を過ごしてしまうことになってしまいそうです。
僕は
>>141 で言いましたとおり、頭の出来がよくありません。理解するのに普通の人より時間がかかります
分からないことだらけの今、その度に片山先生に聞いていては先生にも僕にも負担になってしまうと思います
僕に今必要なのは基礎で、それを身につけることでやっと先生の授業にちゃんと付いていけるのではないかと思います
僕のためにプログラムを書いて頂いたり、画像や音声ファイル等も用意して頂いたり、色々教えて頂き片山先生には本当に感謝しています
GUIのアプリを作るのは楽しかったです
しかし、今のままでは辛いのでしばらく授業をお休みさせていただきます
初学者向けの本でしっかり勉強してから復帰したいと思います
応援してくださった方、片山先生、その他の先生方、本当にありがとうございました
またいつか戻ってきます、パワーアップしたたかしで・・・
私はPythonを勉強中です チュートリアルを読んで条件分岐くらいまではできるようになりました 機械学習に興味があります 先生ご指導よろしくお願いします
まずは何をすればいいでしょうか paizaでDランクは全部解けたレベルです
こんばんはたかしです、急にやめてすみませんでした 今後の予定ですが、職業訓練校に行くことになりました 入学選考試験が結構難しいので一ヶ月間がんばって勉強しなくてはなりません 頑張ります。たけしさんもがんばってください。
訓練校ならお金もらえながら勉強できてオイシイもんね
では、Javaはどうでしょうか Androidアプリをつくるという目標もあります
∧_∧ ( ゚ω゚ ) JAVAなら任せろー バリバリC□l丶l丶 / ( ) やめて! (ノ ̄と、 i しーJ
>>672 本当ですか?Java教えてくださいませ
しょうがないにゃあ… まずPCの環境教えてね多分windowsかな
>>674 ありがとうございます!
開発環境はeclipseです
把握 大学でもらった教材使えるな ちょい探してくる 今のスキルレベルは?
ちくせうC++とLispのしか見当たんね まあいいや 流れ 今のスキルの確認 ↓ おさらいしながらJavaの基礎一通り ↓ CUI課題 ↓ GUI(androidアプリケーション) ↓ Unity導入 こんな感じでおk?
おkです 今のスキルレベルは条件分岐がなんとか使えるレベルで オブジェクト指向は完全に理解していないくらいです Unityはさわりだけやったことがあります
まず環境整備しよか Github知っとる? Gitやsubversion、CVSとかバージョン管理ソフトでもいいけど。 第一目標:Githubユーザー作ってソース共有できるようにする
んじゃ毎回質問は 質問:~~~ と書くから答えるなり調べるなりしてね 答え大体既存の解説サイトのURL下に貼るから答えがわかったらまずそっち見てね。 したらわかんないとこあるだろうから質問タイム の流れで。 同様に 課題:~~~ とかやるからその辺は臨機応変によろ
バージョン管理とは 複数人で同じものを編集する(wikiなんかをイメージしてね)時に 編集が衝突(同時に同じ個所を編集しようとすること)したときに 整合性を保ったり 昔の履歴を見たいといったときに対応するためだったりのために管理すること バージョン管理ソフトとは そのためのソフトウェア いろいろ実現方法の違いでソフトウェアが違う。 今有名なのはGitやsubversion Gitとは バージョン管理ソフト こまけぇことはいいんだよ Githubとは Gitでファイル保存してくれるファイルサーバーとか思っとけばいいよ
なるほど Gihubは英語ばかりで使うのが難しいです なんせ中学生レベルの英語しかわからないもので
最初のうちしかサイトは見ないからがんがれ
↓にリポジトリ(ファイルのひとまとまりになったディレクトリみたいなもん)作った
https://github.com/tamochu/neet1programming.git まずアクセスしてみて
右側にDownload ZIPってあるはず そこでファイルをダウンロード →解凍してhello.batをダブルクリック(怖かったらしないほうがいいバッチファイルわかんないだろうし) なんにせよこれでファイルを共有できることを感じてもらえればおk
じゃあそれをeclipseでできるようにします。 課題:「eclipse github」などで検索しeclipseでgithubにアクセスする方法を調べよ 調べるまででおk 多分どっかで詰まるからやるのは一緒に
EGitというのが見つからないのですが Eclipse Github 統合(タスク・フォーカス・インターフェース) というのをインストールすればよいのでしょうか? バージョンはMarsでづ
重すぎ… 多分 Eclipse Gitチームプロバイダー 無印のやつ
コミットするというのがよく分かりません ファイルを選択してもコミットボタンが押せません どこかで誤ったのでしょうか
コミットとは 自分が更新・追加したのをGitに伝えること これ更新したからって宣言するようなこと プッシュとは コミットした差分をリモートに送ること ファイルサーバーにアップロードするようなこと チェックアウトとは リモートのファイルを持ってくること ダウンロードと思えばいい 今はチェックアウトしかできないはず
wuzhaiteng3@gmail.com 秘密鍵とは何に使うのですか?
課題にしよか 課題:暗号を送る方法 例えば手紙をある人に送るが途中で覗き見られても 中身がばれないようにする を一つ考えよ
秘密鍵とは 秘密鍵暗号方式の共通キーもしくは 公開鍵暗号方式のペアキーのうち受信側が持つ鍵 公開鍵暗号とは ある文章を二つのペアーの鍵によって安全に送信する方法のひとつ 1.受信者は公開鍵と秘密鍵のペアを作る 2.公開鍵を文字通り公開する 3.文章の送信者は公開鍵を用いて暗号を作る 4.暗号を送信する 5.受信者は秘密鍵を用いて暗号を複合(解読)する このとき公開鍵では暗号を作れるが複合はできない 秘密鍵は複合できる ということが保証されている 細かい原理は省略
秘密鍵の設定 eclipseの ウィンドウ→設定を押す 一般→ネットワーク接続→SSH2を選択する 一般タブの秘密鍵に今送った秘密鍵を設定する Gitリポジトリの設定 ウィンドウ→パースペクティブを開く→その他を選択する Gitリポジトリ・エクスプローラーを選択する Gitリポジトリの「複製」を選ぶ URIを選ぶ(ここら辺違うかも) URIに「git@github.com:tamochu/neet1programming.git」を入力(コピペでおk) プロトコルにsshを選ぶ 次へを選ぶ
途中でよく分からないメッセージが出てきましたが 多分出来たと思います
eclipseのJavaパースペクティブで neet1programmingプロジェクトが表示されていれば成功 プロジェクトを右クリックして チーム→プル Exam1.javaが出てくると思う そこに 課題:1~100を足すプログラムを書きなさい
できたらお待ちかねのコミット→プッシュ といってもプルと同じように チーム→コミット を押して更新のあるファイルを選択したら 「Commit and push」を選ぶだけ
Javaパースペクティブとはどこでしょうか
これは成功しているのでしょうか
スマホからなので直撮りですみません
あ、チェックアウトしてないや Gitリポジトリのneet1programmingを右クリック プルを選択 いろいろ聞かれるけど次へか完了でおk
完了しました 変化はありません どうすればいいのでしょうか
もしくはインポートしてないって可能性もあるか Gitリポジトリのneet1programmingを展開 作業ディレクトリを右クリック プロジェクトのインポート既存のプロジェクトのインポートを選んで次へ neet1programmingをチェックして完了
Exam1,2 を出すまでできました 今から課題に取り掛かります
ガンバ もうすぐ飯落ち 課題作っとくからいない間気が向いたら解いてね
久々にJAVAで書いたので思ったよりてこずりました 今からコミットします
あれ?コミットできません コミットボタンが押せない状態です
戻りました プッシュできてないっぽいかな プロジェクトを右クリック チーム→アップストリームへプッシュ
新しいExamをEclipseに取り入れるにはどうすればいいのでしょうか?
うーん来ない TeamViewerで画面見せてもらていい?
了解しました TeamViewerはちょっと…すみません
じゃあコミットはちゃんとできてるな アップストリームにプッシュはもう一度できる?
こんなのが出てOK押してもなんともなりません
ああ、それ出てんのか 対処法忘れたからちょい待ってね
プロジェクトを右クリック チーム→アップストリームからフェッチしてみて そしたら チーム→ワークスペース同期化 出てきた画面で全部のファイル選んで右クリック マージ済みとしてマーク 終わったらもっかいプッシュ
ワークスペース同期化の前に チーム→マージ 忘れてた
ここからどうすればいいのでしょうか
何もフェッチできないんだったら 今度は チーム→リベース
下の項目2つともにチェックを入れればいいんですか?
チェック?入れると来ないと思うが しいて言うならリモートトラッキングのorigin/master
こんな画面です
リベース結果 HEADはすでに最新の状態のためリベースは何もしませんでした と出ます
よしもっかいチェックアウトからやり直したほうがいいな 問題解いたファイルをどっかにコピーしといて プロジェクトを右クリック→削除 Gitリポジトリ・エクスプローラーで右クリック→リポジトリの削除 終わったらもっかいGitの複製→インポート その後コピーしといたファイルで上書きしてコミット→プッシュ
やってみても以前と同じ状態になってコミットできません
削除の時に出るチェックボックスチェックつけてもっかいお願い
全てにチェック入れても再び行うと元の状態に戻っています
チーム→切断
チーム→プロジェクトの共有
Git
http://imgur.com/TkvgQp2 プロジェクトを右クリック プロパティでプロジェクトの置き場所確認してください
できましたね さっき行った操作のおさらい マージとは 同じファイルを編集してしまった場合あとからプッシュする人が 何が二人の更新を合わせたうえで正しいか判断する必要がある その作業をマージという gitでは衝突(まったく同じ個所を編集)していなければ大体勝手にマージしてくれる
そうです またnon-fast-forwardと出たら 1.プルして再度コミット→プッシュ 2.フェッチしてマージして再度コミット→プッシュ が原則です
分かりました! とりあえずGithubでファイルが共有できるまでになりました 自分で課題を進めていきます 今日はありがとうございました
私は学生で受験生なので低浮上になるかもしれませんがよろしくお願いします 3月中頃から春休みで本格的に勉強ができますが、それまでもできるだけ毎日顔を出したいと思います
乙です 次の課題用意+講義内容まとめときます わかんないとこあったらカキコよろです
わざわざありがとうございます 期待に沿えるよう頑張ります
おはようございます 課題に取り組みます 特に配列の理解が甘いみたいなのでググりながら解いていきます
Exam4,7以外は終了しました コミット完了です
いま確認したらコミットできてませんでした なぜだろう
昨日のことを思い出しながら闇雲にボタン触ってたら出来ました こんなんでいいのやら
Exam4,7は分かりません 他の問題もググりながら解きました 難しいですね
じゃあ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); する関数。
今日はどれやりたい? 関数について オブジェクト指向について パッケージとアクセス修飾子について
把握
関数については知ってるものとしてやるよー
オブジェクト指向とは
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;
…以下略
この一つのオブジェクトに属する情報は一つのオブジェクトに持たせる というのがカプセル化とか呼ばれるオブジェクト指向に必要な要素を実現させる カプセル化とは 学年ではなく中身では生年月日とかで情報を持っているけど その情報は教えずに何学年かという情報だけ教えたいということがある このとき外部から不必要な情報(今の例では生年月日)は直接アクセスできず アクセスが許可されている情報(今の例では学年)にのみアクセスできると 情報の安全性を保つことができる このように情報を内部に持つこと(および外部からアクセスできる情報とできない情報を管理すること) をカプセル化という 今回は学年と年齢という情報がカプセル化されたことになる
関数は概要は理解していますが Pythonで理解したのでコードはかけません そこは自習します
今クラスの中には名前と学年の変数(情報)がある 生徒というオブジェクトには名前を名乗るというメソッド(行動)が可能であるとしよう その場合 class Student { String name; int grade; String getName() { return "My name is " + name; } } などとしてやれば生徒オブジェクトに自己紹介をさせることが可能になる このようにカプセル化では変数だけではなく関数も内部に持たせることができる あ、あとでまとめてStudentクラスコミットするから細かいとこ気にしなくていいよ
以上のように情報を持ち行動が規定されているものをプログラミングでは カプセル化されたオブジェクトという 課題:Studentクラスを参考にしながらTeacherクラスを作成せよ ただしTeacherクラスは名前と担当教科の情報を持ち 授業の最初に挨拶「おはようございます。(教科名)の授業を始めます」する行動 ができるものとする
コミットしました 書経のような感じでしたが 理解できるように考えながらコードを書きました
いい感じ 続いて 課題:Teacherクラスにも自己紹介「My name is ~~~」するメソッドを追加せよ
やってる間に次の話題書いとく ここでTeacherクラスにもStudentクラスにも name変数 が存在し、 getName関数 が全く同じ内容で存在することに気付く これは何度も書くのは無駄無駄無駄ァ これはなぜか考えると 生徒も教師も人である 人だから名前を持っている また自己紹介もする ということは生徒も教師も name変数 を持ち getName関数 を持つHumanクラスという風に考えられる Javaではこれを class Human { String name; String getName() { return "My name is "name; } } class Student extends Human { … } のようにする これを継承という
継承とは 基本となるクラス(基底クラス・親クラス)から それらの要素を引き継いだ新しいクラス(派生クラス・子クラス) を作ること 派生クラスでは基底クラスのメソッド以外に派生クラスで独自に追加した 変数やメソッドを利用できる また基本となるクラスには(基本的に)制限はなく 派生クラスの派生クラスといったものも作れる
>>769 の通りにしているはずがコミットできません
ウボァ プルした? そのあとアップストリームへプッシュした?
アップストリームにプッシュすると non-fast-forward と出てきます
いじってたらしばらくして HEAD はすでに最新の状態のためリベースは何もしませんでした と出ました
いきました! リベースのリセット?のあとプッシュでいけました
あ、きたね じゃあ続き Humanのクラスコミットすんね
pullよろ Humanクラスについてもう一つ考えてみよう 人間には性別というものがある そこで 課題:Humanクラスにgender(性別)メンバー(変数)を追加し それを設定する関数setGenderと取得する関数getGenderを追加せよ その後Studentクラスの自己紹介でgetGenderせよ
うーむ、難しい 時間がかかりそなので宿題ということで考えておきます
>>771 の通り学業が忙しため平日はあまり時間が取れません
受験が終われば時間が取れるようになるのですが…
了解 次はオブジェクト指向の続きからね 流れ 継承 ↓ 多態性(オーバーロードおよびオーバーライド) ↓ 継承その2(仮想関数) ↓ テンプレートクラス ↓ アクセス修飾子 それとは別に演習作っとく
ゆっくりで構わんよ っていうか自分も平日疲れてすぐ寝るからそのほうがありがたい
String[] names = new String[]{"takesi", "John", "Suzuki"}; int[] grades = {1, 2, 3}; のほうがはるかに合理的 データ0番、1番、2番って番号で管理できる Suzukiが5人いたとしても番号が一意で分かれているから混同もしない 人間クラスから派生して生徒、教師ってのも変 役割が根本的に違うのだからそれぞれ別でいい 学校クラスがないのも変だな~ 学校クラスにそれぞれの生徒と教師がメンバとしているはずだ
眠れないので課題やってみました 全く分かりません どこからの知識が抜けてるのやら Teacherクラスをコピペ改変したようなコードしか書けませんでした
どこを勉強すればいいのでしょうか 今日はまとまった時間が取れそうなので勉強します
あれで問題ない 最初はまねて 次は少し変えてみて 最後に自分で書けるようになればいい Exam4穴埋め式にした 何か好きなパズルとかある?それ題材にする
あれでいいんですか?!自身なかった 自分で書けるのか不安だったけど安心しました あんまりパズルはしませんが… クロスワードはやったことあります
クロスワードはちょっと向かないなぁ 数独とかカックロとか数字しか使わない系で
じゃあオーソドックスに数独にしとこうか 平日は演習問題の形でコミットするからそれとくような感じで 休日が昨日みたいな感じで 最初は強く当たって後は流れで
Exam4は分かりません どこか復習が必要でしょうか
じゃあそれは飛ばして答えコミットする 土曜はそれの解説からね
できたとこまででいいからコミットしてくれたらヒント書いて返す
すみません C言語ができれば ずっと食べていけますかね? android からwindows のソフトまで作れますよね???
受験との両立をしようと思っていたのですが 学校も忙しくなり受験も追い込み時期になったことで余裕がなくなってしまいました 3月12日から再開させてもらってもよろしいでしょうか
ありがとうございます 3月12日にもどってきます トリップつけときます
>>208 ベクターとかストアに作品のせれば経験になりますか?
おはようございます 今日から再開お願いします 課題に手を付けます
>>828 まずは空白期間に身に付けたスキルを洗い流したまえ
>>829 Unityの基本操作とC#を少々
受験が忙しくてあまり手を付けてません
はい、お願いします Exam10も分かりそうにないです 11、12は今から取り組みます
ホワイトデーのお返し作ってて遅れた 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; } } これを実装していくことになる
・文字の種類数 まず文字の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になる
Exam10ヒント 数列の状態は int[9][9]の配列で持とうExam8参照 まずは枠線なしで数字のまま出力することを目標にする その後0だったら0でなくスペースを表示するように変更する 最後に枠線を表示する 上と下の枠線は固定で構わない 左右の枠線は数字を表示する前と後に「|」を表示すればよい 表示する関数は System.out.println() と System.out.print() だ 上は出力したら改行も出力され 下は改行は出力されない 使い分けよう
すみません昨日は私用で全く課題ができませんでした 今日も19時まで予定があるのでそれ以降に取り組みます 空いた時間に解説理解しておきます
こっちも今体空いた 次の課題とか用意しとく 終わり次第多態性についてやるよ
課題1個追加した プル忘れないでね 多態性についてやるから適当なところで切り付けて
最近の課題は僕には解けないものが多いのですが、基本がなってないのでしょうか? やり方は分かるのですがコードに置き換えられません 今日は次の説明をお願いします 明日じっくり課題をやります
単純に慣れの問題じゃないかな
写経量が少ない
今は調べてパクるだけでいい
そのうちここ変えたらどうなるかなって思ったら
実際やってみて違いを調べたりしてみるとよさげ
じゃあ多態性について
オブジェクト指向の重要な要素の一つ多態性(ポリモーフィズム)
http://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;
}
}
オーバーロード:二つのオブジェクトがどのような関係であろうとかまわないが、 同じ関数の引数として違うオブジェクトを渡した際に違う挙動を定義すること 例)ClassRoomクラスとStudentクラス String getName(ClassRoom classRoom) { return classRoom.name + " class"; } String getName(Student student) { return "student:" + student; } 以上からわかるように オーバーライドはメンバー関数のみ オーバーロードはどのような関数でもできるといった違いがある 今はそのようなものがあると知っておくだけでおk 気づかないうちに使ってて、あとからこれが多態性だったのかってなると思う
習うより慣れろ 課題: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); としてどのように表示されるか確認しその理由を考えよ
お久しぶりです 職業訓練校のプログラミングコースに合格したので4月から通うことになりました たけしくん、お互いがんばりましょう
今日も忙しくてできませんでした 疲れたので寝ます 明日で卒業なのでこれからはちゃんと時間が取れるようになります 何度もすみません
>>847 職業訓練通ってたが明らかに君はそのレベルを超えてるね
多分javaでweb系のアプリ作ったり、androidアプリ作ったりすると思うけど
プログラムなんか言語が違くてもだいたいやることは一緒だからjavaもずっと出来るのかな
まあお金ももらえるし、プログラムだけじゃなくてインターネットの仕組みやらコンピュータの仕組みやらを勉強できるから頑張りな
だいぶ粘ったのですがExam10,11,12,13は分かりません
スレにも問題公開していただけませんか? 私も挑戦してみたいです
https://github.com/tamochu/neet1programming は公開リポジトリだから勝手に見てね
一応何も書いてない問題のほうをexam/original
に置いたからそっち見るとよいかと思われ
>>852 あいよじゃあ解説してく
あと次から問題レベル下げたほうがいい?
↑の844の課題はやっといてね
Exam10.part1
9×9のintの配列を用意せよ
Exam10.part2
上の配列をすべて0で初期化せよ。
(厳密には既に初期化されているが明示的に初期化せよ)
まずはここまでやってコミットよろ
進学の準備やらで忙しく課題ができませんでした 今日は予定がないので今から取り組みます
赤入れたからプルしてね 今はこんな感じかなでいい 間違えたほうが経験になるしね Exam10.part3 できた配列の数字を表示する →OK Exam10.part4 各行の始めと終わりに「|」を出力する System.out.print("|"); を行えばよい。 Exam10.part5 表示する前と後に「+-----------------+」を表示する System.out.println("+-----------------+"); を行えばよい 次ここまでね
すみません用事が出来てしまいました また夕方頃に再開します
あとはデータを入れる Exam10.part6 穴埋め問題にするのでプルして解くこと Exam10.part7 0はスペースで表示にする System.out.print(sudoku[a][b] + " "); ↓ if (~~~) { System.out.print(sudoku[a][b]); } else { System.out.print(" "); } と変更し~~~を適切な条件句に直しなさい
おk Exam10はそのまま発展問題にしていくからちょい待ってね Exam11.part1~3 Exam12.part1~3 課題:数値のソートとは何か調べなさい 課題:数値の配列「4,3,8,1」を小さい順に並べなさい。ただし過程を細かく記述すること。 課題:プログラムでのソートの実装方法を3つ挙げなさい(中身を理解する必要はない) Exam13.part1 課題:平方根とは何か述べよ
Exam10をもとに数独解くプログラム作ってくよ Sudokuクラス作ったのでそっち見てね 課題:表示する処理を関数化せよ ただし以下の2通りで関数化すること public void print(){} public static void printState(Sudoku x){} 上はメンバー関数としてthis.sudokuを表示させる。 下はスタティック関数としてSudokuクラスを受け取りx.sudokuを表示させる。 ヒント:上の実装にはsudokuをSudokuクラスのメンバーに持てばよい。
>>866 わかりませんでした
関数の知識が乏しいのでしょうか
課題の意味があまり理解できません
プルした まずソートの解説から ソートとは:特に解説無し 小さい順に並べる:これはクイックソートと呼ばれるソートの考え方です。 とても速いといわれるソートの一種で実装は再帰を使った方法などいくつかあります。 実装方法: 1.バブルソートがこれになります。 バブルソートとはソートの様子を可視化した際に 泡(小さい値)が水面(列の最初)に上がっていくようであることから名づけられました。 海底(列の最後)から水面(列の最初)まで隣り合った値を比較し、 大小が逆なら入れ替えを行うと、 水面(列の最初)には泡(最小の値)が来る。 これを水面を下げながら行うことで全ての列がソートできるというもの。 例) 4381 ↑↑ 8>1なので入れ替える 4318 ↑↑ 3>1なので入れ替える 4138 ↑↑ 4>1なので入れ替える 1438←一番小さい「1」が列の最初に来た。水面を下げてまた海底から。
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番目なら…
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]; } }
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); となる。 これではプログラムより電卓を使ったほうがいいかもしれない。
関数を使う場合は 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行目を何でもよいので関数化せよ
コミットしました Exam11はできましたが12と関数についてはわからなかったのでなんとなくでやりました
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(){ … } } }
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で作る。 プルして上から順に解くこと 調べてもわからなくなった時点で一旦手を止めここに書き込むこと
用事が入ってしまい1日まで課題ができません 度々すみません
8日からのスタートでお願いします また用事が入ってしまいました すみません
>>8 >>ファイルを作成、編集しました!
と画像がありますが、
どうすれば、画像のようにメモ帳に文字を出せるのでしょうか?
どうぞよろしくお願いします。
>>881 ご回答ありがとうございます。
できれば、もう少し詳細に教えていただけないでしょうか?
全くの初心者なものですから…。
>>882 プログラミングの前にパソコンの使い方を勉強した方がいい
>>8 バイナリエディタに入力したものを、メモ帳にどうやって反映させるのでしょうか?
>>889 ああ、そういう意味だったんですね。
私は、バイナリエディタに入力したものが、連動してテキストのメモ帳に表記されるものと思っていました。
どうも、失礼致しました。
また、解らないことがあったら、またよろしくお願いします。
遅れて申し訳ありません できるところまでコミットしました 全然できませんでした 出来が悪くてすみません
最初からできる人なんていないから。 また赤付けた というより若干答え書いた 差分のところよく見て理解してね またできるとこまでtry
明日まで出先だから月曜日また赤つけます 次進めそうなら解説とかその時書く
遅くなったけどまた赤つけた Exam12はあと一息がんば Exam14はequalは一致を判定する関数なので比較には使いません 一応比較にはcompareToという関数があるが、この場合は一旦 lineを数値に変換してから<,==,>で比較しましょう こっちはもう一息かな
匿名通信(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』で検索して参考にして下さい
7
個数 名前 96 t.mourning ◆HeJleJP5y2 281 takasi 80 takesi 21 takesi ◆5LQe9dJ7ck 4 たかし 97 仕様書無しさん 318 片山博文MZ ◆T6xkBnTXz7B0 何でt.mourningと片山君は熱心なのか
たかしです この年で就職できるか不安です たかしでした
たかしです・・・・たかしです・・・・たかしです・・・・
たかしです 誰か僕を拾ってくれませんか なんちゃって たかしでした
>>902 スレの前半で片山さんと特訓してた、たかしさん?
職業訓練校は、どうだった?
まだ、通っているのかな?もう修了したのかな?
はい、そのたかしです。まだ通校しております 訓練校はIT関連の知識を幅広く学べて良いと思います 企業とのマッチングの場も設けてくれます ニート上がりの人にはリハビリになると思います 実際に生活リズムが改善されました ただ、いまたかしは悩んでいます いろんな事に悩みすぎて何に悩んでるのか分からない悩みです
その悩みを話せる人がいないので自問自答の日々です・・・
>>904 おー、久しぶり。っていっても、自分はずっとROMってただけだけどね。
職業訓練校、まだ通っているんだね。ここに書き込んでた頃は、昼夜逆転した生活だったから、ついていけるか、ちょっと心配してたので、ほっとした。生活ペースが身に付いて、良かったね。
訓練校の同期の人たちと、悩みを話したりしないの? 訓練校をでた後の進路が、最大の悩みなのかな?
おれ訓練校出てプログラマーになったが、年齢が若い人ほど就職すぐ決まる 能力とかじゃない
年齢に応じた振る舞いが求められるのに若いのと同じ事してたら そりゃ不利だわな
>>904 何にどう悩んでるのか説明してくれんと回答何もできないよ。
日本語が不自由なマはポイー。
お返事放置していてごめんなさい 色々な悩みを話そうとした結果特定を恐れてあのような答え方になってしまいました 何分、プログラマ志望の訓練生というとかなり数が絞られてきますので 大多数に共通していて話せる部分としてはやはりスキルが無いのにプログラマになれるのかっていう所ですね 長いことニートをしていたので自信がないっていうのは中々改善が難しいものですね
大丈夫 最初はずっとテストだから あと特定は難しいから安心しろ 全国に訓練所あるし、30人規模のクラスだし
プログラマーは本質的には君と同じで根暗タイプだから みんな同じような人ばかりだよ おれも学生時代は隅にいるような人間だったが、プログラマーになって自分みたいな人間しかいなくてほっとした
そりゃ底辺の零細企業の場合だね。大企業ならそうじゃない
>>910 とにかく実務のソースを全部理解しろ
就職前ならオープンソースでもいい
ニートがひっかかるのはコードリーディングだからな
業界によるけど、例えばひきこもってゲームばかり作ってた子は
データベースの処理でつまずいたりする
そんなときに既存ソースを要領よく読めるかどうかがカギになる
スキルが低くてダメになった子っていうのは基本的にほとんどいないからまぁ安心しろ
逆にプログラミングスキル以外に全く地震がなかったらプログラミングスキルだけ徹底的に伸ばせ
いかに素早く間違いなくやるかが大事
まぁやるかどうかは自由だが声が出ないとかの悩みがあるなら一人でカラオケいってこい
>>902 20代でちょこちょこっとVBの修正ができる程度のスキルがあって
それなりに会話が成り立つなら引く手数多だよ
>>7 職業訓練って民間委託で講師はピンキリだよ
職業訓練の生徒集めれば国から補助金もらえる仕組み
昔に異常な数MicrosoftOffice講座とかあったのはその補助金が美味かったから
普通に会員になる客は0だって良かった
職業訓練で回されてくるやつが5人ぐらいいれば儲け出てたからね
オープンソースの既存バグを直せる様になれば、こいつはそこそこ使えると判断されるかもね。
誰でも簡単にパソコン1台で稼げる方法など 参考までに、 ⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。 グーグル検索⇒『宮本のゴウリエセレレ』 XXCKUAQT8B
とても簡単な自宅で稼げる方法 参考までに書いておきます グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 KCGPB
read.cgi ver 07.7.23 2024/12/25 Walang Kapalit ★ | Donguri System Team 5ちゃんねる
lud20250711024337このスレへの固定リンク: http://5chb.net/r/prog/1451036635/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。 TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「ニートです1からプログラミングを教えてくれる [無断転載禁止]©2ch.net ->画像>54枚 」 を見た人も見ています:・【悲報】 プログラミングを丁寧に教えてくれる人、存在しない。「自分で調べろ。自分で勉強してナンボ」 こればっか ・お前らプログラミング言語どうやって覚えたんや? ・どのレベルならプログラミング出来ると言っていい? ・C++の後継を目指すプログラミング言語「Carbon Language」がGoogleによって公開される ・「漫画村の技術全て教える」 “漫画村”創設者がプログラミングスクール開設へ ネット上では賛否 [鬼瓦権蔵★] ・【悲報】小学校に配られたタブレット、裏技でゲーム機にされる「プログラミング機能で他の小学生が作った面白いゲームができる」 ・プログラムイング教えてくれ ・プログラミングを今日から学び始めたんですが ・プログラミングやってると出てくるおまじないの魅力 ・28歳新規の俺にも優しくしてくれるメンバー教えてくれ ・プログラミングの仕事斡旋してください(т-т) ・ミルズの構造化プログラミングって正しいんですか? ・俺のプログラミング学習系YouTubeチャンネル評価してくれ ・元NGTヲタですがSTUに推し変することにしました お勧めのメンバーを教えてください ・動画プログラミング ・プログラミング言語 ・今日のプログラミングスレ ・プログラミングのお題スレ Part11 ・プログラミングってバカでもできる? ・職業訓練校プログラミング終了後 3 ・プログラミングに必要な数学力のレベル ・プログラミングの勉強始めようと思うんだけど ・プログラミング言語 Kuin Part 16#01 ・このロリっ子誰ですか?と聞けば教えてくれる。?11 ・このロリっ子誰ですか?と聞けば教えてくれる。№33 ・プログラミング始めるとしても開発環境構築するのが大変だね ・【教育】小学校のプログラミング教育、地域間で格差拡大の懸念 ・嫌儲が強い分野 「プログラミング」 「数学」 あとは? ・【教育】「進研ゼミ」でプログラミングの勉強 ベネッセ導入 ・【IT】プログラミング言語「ルビー」、島根のIT潤す 誕生25年へ ・【衝撃】故ホーキング博士の“最後の論文”が公開される! 「宇宙は2次元ホログラムである」 ・Nintendo Switchにプログラミングツールが登場。Switch上でスイッチ用ゲームを作ることが可能に ・【プログラミング部】 ”難解な動作”をほんの数行で実現させてしまった時の俺ヤバイマジ天才感は異常 ・【AI】テスラのAI部門長が語る「Software 2.0」。ディープラーニングは従来のプログラミング領域を侵食 ・【ホビーロボット】「ザクII」を動かすプログラミング教材、20年3月発売 約10万円【ジオン驚異のメカニズム】 ・北京オリンピック ☆438 フィギュアスケート 女子シングル・ショートプログラム ・チュート徳井、松本人志のテレビ復帰報道に言及 自身の経験踏まえ「すぐに戻れるわけではない。プログラムが決まっているわけですから」 [冬月記者★] ・プログラミングをしたい ・みんなが俺に絵を教えてくれるスレ ・プログラミング賢者たすけて ・プログラミング用フォント ・負けてるブログ教えてくれ 206 ・こんなプログラミング言語は嫌だ! ・メンバーにおちんちん見せる方法を教えてくれ ・Macがプログラミングに向いてる理由 ・オススメの時計を僕に教えてくれるスレ ・動物虐待がなぜ罪に問われるのか教えてくれ ・FC2PPVが撮影された場所を教えてくれるスレ ・このメンバーの名前を教えてください。 ・女性に積極的になれる方法を教えてくれないか? ・就職に強いプログラミング言語ってある? ・誰か日用品で作れるヤツ教えてください。 ・AV女優の他の出演作品を教えてくれるスレその1 ・明日ワイド一点で取れるレースを教えてください ・【画像専用】これ誰と聞けば教えてくれるスレ299 ・初めてのプログラミングでSolidtyってどう? ・作品名を書き込むとファンが魅力を教えてくれるスレ ・【画像専用】これ誰と聞けば教えてくれるスレ422 ・お前らが理事長のエロssを俺に教えてくれるスレ ・【洋物】これ誰と聞けば教えてくれるスレ 39 ・【画像専用】これ誰と聞けば教えてくれるスレ431 ・こんなAVって言ったらおすすめを教えてくれるスレ3 ・結局人気の高いプログラミング言語ってなに? ・衛門がワイに加藤純一の当たり枠を教えてくれるスレ ・【版画専用】これ誰と聞けば教えてくれるスレ476
13:54:07 up 94 days, 14:52, 0 users, load average: 9.79, 10.32, 9.97
in 1.6710200309753 sec
@1.6710200309753@0b7 on 072102