16/03/21 18:11:42.38 .net
Exam10をもとに数独解くプログラム作ってくよ
Sudokuクラス作ったのでそっち見てね
課題:表示する処理を関数化せよ
ただし以下の2通りで関数化すること
public void print(){}
public static void printState(Sudoku x){}
上はメンバー関数としてthis.sudokuを表示させる。
下はスタティック関数としてSudokuクラスを受け取りx.sudokuを表示させる。
ヒント:上の実装にはsudokuをSudokuクラスのメンバーに持てばよい。
867:takesi ◆5LQe9dJ7ck
16/03/21 19:12:06.12 .net
>>865
コミットしました
868:takesi ◆5LQe9dJ7ck
16/03/21 19:19:41.00 .net
>>866
わかりませんでした
関数の知識が乏しいのでしょうか
課題の意味があまり理解できません
869:t.mourning ◆HeJleJP5y2
16/03/22 21:20:23.44 .net
プルした
まずソートの解説から
ソートとは:特に解説無し
小さい順に並べる:これはクイックソートと呼ばれるソートの考え方です。
とても速いといわれるソートの一種で実装は再帰を使った方法などいくつかあります。
実装方法:
1.バブルソートがこれになります。
バブルソートとはソートの様子を可視化した際に
泡(小さい値)が水面(列の最初)に上がっていくようであることから名づけられました。
海底(列の最後)から水面(列の最初)まで隣り合った値を比較し、
大小が逆なら入れ替えを行うと、
水面(列の最初)には泡(最小の値)が来る。
これを水面を下げながら行うことで全ての列がソートできるというもの。
例)
4381
↑↑
8>1なので入れ替える
4318
↑↑
3>1なので入れ替える
4138
↑↑
4>1なので入れ替える
1438←一番小さい「1」が列の最初に来た。水面を下げてまた海底から。
870:t.mourning ◆HeJleJP5y2
16/03/22 21:27:04.37 .net
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:t.mourning ◆HeJleJP5y2
16/03/22 21:38:07.95 .net
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:t.mourning ◆HeJleJP5y2
16/03/22 21:53:01.98 .net
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:t.mourning ◆HeJleJP5y2
16/03/22 22:12:29.04 .net
関数を使う場合は
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:takesi ◆5LQe9dJ7ck
16/03/23 11:57:39.19 .net
コミットしました
Exam11はできましたが12と関数についてはわからなかったのでなんとなくでやりました
875:仕様書無しさん
16/03/25 00:11:55.28 .net
>>1
はしめてのC!!
876:t.mourning ◆HeJleJP5y2
16/03/26 10:17:44.28 .net
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:t.mourning ◆HeJleJP5y2
16/03/26 10:50:47.42 .net
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:takesi ◆5LQe9dJ7ck
16/03/28 19:38:29.48 .net
用事が入ってしまい1日まで課題ができません
度々すみません
879:takesi ◆5LQe9dJ7ck
16/04/02 12:56:42.03 .net
8日からのスタートでお願いします
また用事が入ってしまいました
すみません
880:仕様書無しさん
16/04/09 16:12:40.41 .net
>>8
>>ファイルを作成、編集しました!
と画像がありますが、
どうすれば、画像のようにメモ帳に文字を出せるのでしょうか?
どうぞよろしくお願いします。
881:仕様書無しさん
16/04/09 20:56:22.07 .net
>>880
全角キーを押してローマ字入力、変換
882:仕様書無しさん
16/04/09 21:13:04.13 .net
>>881
ご回答ありがとうございます。
できれば、もう少し詳細に教えていただけないでしょうか?
全くの初心者なものですから…。
883:仕様書無しさん
16/04/09 21:24:41.83 .net
>>882
プログラミングの前にパソコンの使い方を勉強した方がいい
884:仕様書無しさん
16/04/09 21:49:19.68 .net
ここにもスマホバカが
885:仕様書無しさん
16/04/10 08:31:07.34 .net
>>8
バイナリエディタに入力したものを、メモ帳にどうやって反映させるのでしょうか?
886:仕様書無しさん
16/04/10 09:08:12.73 .net
>>885
保存して開き直す
887:仕様書無しさん
16/04/10 10:21:03.79 .net
URLリンク(gyazo.com)
「俺の名前はタカシだ」と入力したつもりが、上記のように記号がいくつかでてくるだけです。
888:仕様書無しさん
16/04/10 10:22:53.68 .net
URLリンク(gyazo.com)
「俺の名前はタカシだ」と入力したつもりが、上記のように記号がいくつかでてくるだけです。
889:仕様書無しさん
16/04/10 11:22:40.57 .net
>>888
メモ帳に入力する
890:仕様書無しさん
16/04/10 11:40:39.83 .net
>>889
ああ、そういう意味だったんですね。
私は、バイナリエディタに入力したものが、連動してテキストのメモ帳に表記されるものと思っていました。
どうも、失礼致しました。
また、解らないことがあったら、またよろしくお願いします。
891:takesi ◆5LQe9dJ7ck
16/04/11 20:58:15.27 .net
遅れて申し訳ありません
できるところまでコミットしました
全然できませんでした
出来が悪くてすみません
892:t.mourning ◆HeJleJP5y2
16/04/13 18:35:25.04 .net
最初からできる人なんていないから。
また赤付けた
というより若干答え書いた
差分のところよく見て理解してね
またできるとこまでtry
893:takesi ◆5LQe9dJ7ck
16/04/16 19:22:15.22 .net
遅くなってすみません
コミットしました
894:仕様書無しさん
16/04/16 21:04:50.77 .net
明日まで出先だから月曜日また赤つけます
次進めそうなら解説とかその時書く
895:仕様書無しさん
16/04/24 15:02:23.98 .net
NHK教育を見て49941倍賢く昼 [無断転載禁止](c)2ch.net
スレリンク(liveetv板)
896:t.mourning ◆HeJleJP5y2
16/04/24 23:28:48.01 .net
遅くなったけどまた赤つけた
Exam12はあと一息がんば
Exam14はequalは一致を判定する関数なので比較には使いません
一応比較にはcompareToという関数があるが、この場合は一旦
lineを数値に変換してから<,==,>で比較しましょう
こっちはもう一息かな
897:仕様書無しさん
16/05/02 16:19:36.60 .net
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrent(Covenant)がオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします
URLリンク(twitter.com)
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
通話料が激安になるブラステル(050 Free)で、かなり遅延や音声途切れが発生する方は、以下の設定を試してください
○ Wifiと3Gのコーデックは2つ(GSM、G.711u-Law)とも有効にしておく
○ エコーキャンセルをOFF(チェックを外す)にする
○ あとの設定はデフォルトのまま
URLリンク(blog.livedoor.jp)
上記の設定でも音質が良くならない人は、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分(月額無料でこの価格はすごい!)
URLリンク(blog.jikoman.jp)
あと、050Freeの起動もしくは発着信が2週間以上ないとプッシュサーバー期限切れでプッシュ着信が出来なくなるので、Llama Location Profilesで1週間に一度050Freeを自動起動するように設定すると、2週間以上経過してもプッシュ着信できます
最後にロケットストーブの焚き口へ超省電力なDC扇風機で風を送ると、横引き煙突が12m以上あっても煙が逆流してきません。
よって、横引き煙突で超高効率な熱回収ができるので薪が少量で済みます
あと、燃焼室の大きさは『無煙竹ボイラMBG150』で検索して参考にして下さい
URLリンク(i.imgur.com)
URLリンク(jp.misumi-ec.com)
URLリンク(livedoor.blogimg.jp)
7
898:仕様書無しさん
16/05/05 08:53:33.67 .net
個数 名前
96 t.mourning ◆HeJleJP5y2
281 takasi
80 takesi
21 takesi ◆5LQe9dJ7ck
4 たかし
97 仕様書無しさん
318 片山博文MZ ◆T6xkBnTXz7B0
何でt.mourningと片山君は熱心なのか
899:takasi
16/05/22 00:31:52.76 .net
たかしです
この年で就職できるか不安です
たかしでした
900:仕様書無しさん
16/05/30 05:44:44.02 .net
たかしです・・・・たかしです・・・・たかしです・・・・
901:仕様書無しさん
16/05/30 21:28:33.80 .net
たかしかし
902:takasi
16/06/01 22:14:23.52 .net
たかしです
誰か僕を拾ってくれませんか
なんちゃって
たかしでした
903:仕様書無しさん
16/06/01 22:28:51.79 .net
>>902
スレの前半で片山さんと特訓してた、たかしさん?
職業訓練校は、どうだった?
まだ、通っているのかな?もう修了したのかな?
904:takasi
16/06/01 23:26:23.70 .net
はい、そのたかしです。まだ通校しております
訓練校はIT関連の知識を幅広く学べて良いと思います
企業とのマッチングの場も設けてくれます
ニート上がりの人にはリハビリになると思います
実際に生活リズムが改善されました
ただ、いまたかしは悩んでいます
いろんな事に悩みすぎて何に悩んでるのか分からない悩みです
905:takasi
16/06/01 23:43:47.05 .net
その悩みを話せる人がいないので自問自答の日々です・・・
906:仕様書無しさん
16/06/02 00:30:09.75 .net
>>904
おー、久しぶり。っていっても、自分はずっとROMってただけだけどね。
職業訓練校、まだ通っているんだね。ここに書き込んでた頃は、昼夜逆転した生活だったから、ついていけるか、ちょっと心配してたので、ほっとした。生活ペースが身に付いて、良かったね。
訓練校の同期の人たちと、悩みを話したりしないの? 訓練校をでた後の進路が、最大の悩みなのかな?
907:仕様書無しさん
16/06/13 08:16:44.08 .net
おれ訓練校出てプログラマーになったが、年齢が若い人ほど就職すぐ決まる
能力とかじゃない
908:仕様書無しさん
16/06/16 00:58:20.35 .net
年齢に応じた振る舞いが求められるのに若いのと同じ事してたら
そりゃ不利だわな
909:仕様書無しさん
16/06/22 07:20:57.92 .net
>>904
何にどう悩んでるのか説明してくれんと回答何もできないよ。
日本語が不自由なマはポイー。
910:takasi
16/06/22 23:33:27.72 .net
お返事放置していてごめんなさい
色々な悩みを話そうとした結果特定を恐れてあのような答え方になってしまいました
何分、プログラマ志望の訓練生というとかなり数が絞られてきますので
大多数に共通していて話せる部分としてはやはりスキルが無いのにプログラマになれるのかっていう所ですね
長いことニートをしていたので自信がないっていうのは中々改善が難しいものですね
911:仕様書無しさん
16/06/23 08:01:19.89 .net
大丈夫
最初はずっとテストだから
あと特定は難しいから安心しろ
全国に訓練所あるし、30人規模のクラスだし
912:仕様書無しさん
16/06/23 08:02:59.11 .net
プログラマーは本質的には君と同じで根暗タイプだから
みんな同じような人ばかりだよ
おれも学生時代は隅にいるような人間だったが、プログラマーになって自分みたいな人間しかいなくてほっとした
913:仕様書無しさん
16/06/24 05:20:54.81 .net
そりゃ底辺の零細企業の場合だね。大企業ならそうじゃない
914:仕様書無しさん
16/09/18 00:54:31.17 .net
このスレ、まだパート2に突入してなかったんだな…
915:仕様書無しさん
16/09/25 22:45:24.09 .net
>>910
とにかく実務のソースを全部理解しろ
就職前ならオープンソースでもいい
ニートがひっかかるのはコードリーディングだからな
業界によるけど、例えばひきこもってゲームばかり作ってた子は
データベースの処理でつまずいたりする
そんなときに既存ソースを要領よく読めるかどうかがカギになる
スキルが低くてダメになった子っていうのは基本的にほとんどいないからまぁ安心しろ
逆にプログラミングスキル以外に全く地震がなかったらプログラミングスキルだけ徹底的に伸ばせ
いかに素早く間違いなくやるかが大事
まぁやるかどうかは自由だが声が出ないとかの悩みがあるなら一人でカラオケいってこい
916:仕様書無しさん
16/09/25 22:46:17.89 .net
>>902
20代でちょこちょこっとVBの修正ができる程度のスキルがあって
それなりに会話が成り立つなら引く手数多だよ
917:仕様書無しさん
16/10/13 03:56:14.05 .net
>>7
職業訓練って民間委託で講師はピンキリだよ
職業訓練の生徒集めれば国から補助金もらえる仕組み
昔に異常な数MicrosoftOffice講座とかあったのはその補助金が美味かったから
普通に会員になる客は0だって良かった
職業訓練で回されてくるやつが5人ぐらいいれば儲け出てたからね
918:仕様書無しさん
17/04/02 19:41:26.58 .net
オープンソースの既存バグを直せる様になれば、こいつはそこそこ使えると判断されるかもね。
919:仕様書無しさん
17/06/13 06:20:28.53 .net
いいえ
920:仕様書無しさん
17/12/29 20:51:14.77 .net
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
XXCKUAQT8B
921:仕様書無しさん
18/05/22 14:13:06.60 .net
とても簡単な自宅で稼げる方法
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
KCGPB