先生を募集します
先生!!
探検
ニートです1からプログラミングを教えてくれる [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1たかし
2015/12/25(金) 18:43:55.48770takesi
2016/01/23(土) 23:05:45.39 分かりました!
とりあえずGithubでファイルが共有できるまでになりました
自分で課題を進めていきます
今日はありがとうございました
とりあえずGithubでファイルが共有できるまでになりました
自分で課題を進めていきます
今日はありがとうございました
771takesi
2016/01/23(土) 23:07:06.59 私は学生で受験生なので低浮上になるかもしれませんがよろしくお願いします
3月中頃から春休みで本格的に勉強ができますが、それまでもできるだけ毎日顔を出したいと思います
3月中頃から春休みで本格的に勉強ができますが、それまでもできるだけ毎日顔を出したいと思います
772t.mourning ◆HeJleJP5y2
2016/01/23(土) 23:07:49.55 乙です
次の課題用意+講義内容まとめときます
わかんないとこあったらカキコよろです
次の課題用意+講義内容まとめときます
わかんないとこあったらカキコよろです
773takesi
2016/01/23(土) 23:13:32.30 わざわざありがとうございます
期待に沿えるよう頑張ります
期待に沿えるよう頑張ります
774takesi
2016/01/24(日) 13:30:33.40 おはようございます
課題に取り組みます
特に配列の理解が甘いみたいなのでググりながら解いていきます
課題に取り組みます
特に配列の理解が甘いみたいなのでググりながら解いていきます
775takesi
2016/01/24(日) 14:34:23.47 Exam4,7以外は終了しました
コミット完了です
コミット完了です
776takesi
2016/01/24(日) 17:10:58.24 いま確認したらコミットできてませんでした
なぜだろう
なぜだろう
777takesi
2016/01/24(日) 17:16:19.68 昨日のことを思い出しながら闇雲にボタン触ってたら出来ました
こんなんでいいのやら
こんなんでいいのやら
778t.mourning ◆HeJleJP5y2
2016/01/24(日) 17:45:37.57 うごきゃあいいんだよ
779takesi
2016/01/24(日) 18:15:09.77 Exam4,7は分かりません
他の問題もググりながら解きました
難しいですね
他の問題もググりながら解きました
難しいですね
780t.mourning ◆HeJleJP5y2
2016/01/24(日) 19:48:15.04 じゃあ4,7のヒント出す
4
「abcdefghijklmnopqrstuvwxyz .,-」
をcharの配列で持つ
charを渡してその配列の何番目の文字(int)か調べる(関数化するとよい)
暗号の文字列を上の処理を使ってintの配列に直す
その配列すべてに同じ数xを足す
30(文字の種類数)を超えたものは30を引く
intの配列をまたcharの配列に戻す
charの配列中に「person」の並びがあるか調べる
並びがあればその並びが正解
このような数xを探す
7
たらいまわし関数とは
まずxとyを比較し
yのほうが大きければ
return y;
そうでなければ
int newX = tarai(x-1, y, z);
int newY = tarai(y-1, z, x);
int newZ = tarai(z-1, x, y);
return tarai(newX, newY, newZ);
する関数。
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);
する関数。
781t.mourning ◆HeJleJP5y2
2016/01/24(日) 19:56:30.87 今日はどれやりたい?
関数について
オブジェクト指向について
パッケージとアクセス修飾子について
関数について
オブジェクト指向について
パッケージとアクセス修飾子について
782takesi
2016/01/24(日) 20:17:01.44 オブジェクト指向についてお願いします
783t.mourning ◆HeJleJP5y2
2016/01/24(日) 20:32:16.57 把握
関数については知ってるものとしてやるよー
オブジェクト指向とは
http://nobuo-create.net/java-beginner-17/
よく言われるのはものを基準にプログラミングを考えるということ
生徒というオブジェクトを考える
生徒には名前と学年という情報(もっとあるがここでは省略)がある
3人の生徒
takesi:1年生
John:2年生
Suzuki:3年生
がいた場合
オブジェクト指向を使わないでこの情報を持つとしたら
String[] names = new String[]{"takesi", "John", "Suzuki"};
int[] grades = {1, 2, 3};
とかやるわけだが、一人の情報は一人の情報でまとめて持っておきたい
そのためJavaではクラスというものを使ってオブジェクトを作る
その場合以下のようになる
class Student {
String name;
int grade;
};
Student students = new Student[3];
Student takesi = new Student;
takesi.name = "takesi";
takesi.grade = 1;
students[0] = takesi;
…以下略
関数については知ってるものとしてやるよー
オブジェクト指向とは
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;
…以下略
784t.mourning ◆HeJleJP5y2
2016/01/24(日) 20:39:19.09 この一つのオブジェクトに属する情報は一つのオブジェクトに持たせる
というのがカプセル化とか呼ばれるオブジェクト指向に必要な要素を実現させる
カプセル化とは
学年ではなく中身では生年月日とかで情報を持っているけど
その情報は教えずに何学年かという情報だけ教えたいということがある
このとき外部から不必要な情報(今の例では生年月日)は直接アクセスできず
アクセスが許可されている情報(今の例では学年)にのみアクセスできると
情報の安全性を保つことができる
このように情報を内部に持つこと(および外部からアクセスできる情報とできない情報を管理すること)
をカプセル化という
今回は学年と年齢という情報がカプセル化されたことになる
というのがカプセル化とか呼ばれるオブジェクト指向に必要な要素を実現させる
カプセル化とは
学年ではなく中身では生年月日とかで情報を持っているけど
その情報は教えずに何学年かという情報だけ教えたいということがある
このとき外部から不必要な情報(今の例では生年月日)は直接アクセスできず
アクセスが許可されている情報(今の例では学年)にのみアクセスできると
情報の安全性を保つことができる
このように情報を内部に持つこと(および外部からアクセスできる情報とできない情報を管理すること)
をカプセル化という
今回は学年と年齢という情報がカプセル化されたことになる
785takesi
2016/01/24(日) 20:43:43.29 関数は概要は理解していますが
Pythonで理解したのでコードはかけません
そこは自習します
Pythonで理解したのでコードはかけません
そこは自習します
786t.mourning ◆HeJleJP5y2
2016/01/24(日) 20:46:55.26 今クラスの中には名前と学年の変数(情報)がある
生徒というオブジェクトには名前を名乗るというメソッド(行動)が可能であるとしよう
その場合
class Student {
String name;
int grade;
String getName() {
return "My name is " + name;
}
}
などとしてやれば生徒オブジェクトに自己紹介をさせることが可能になる
このようにカプセル化では変数だけではなく関数も内部に持たせることができる
あ、あとでまとめてStudentクラスコミットするから細かいとこ気にしなくていいよ
生徒というオブジェクトには名前を名乗るというメソッド(行動)が可能であるとしよう
その場合
class Student {
String name;
int grade;
String getName() {
return "My name is " + name;
}
}
などとしてやれば生徒オブジェクトに自己紹介をさせることが可能になる
このようにカプセル化では変数だけではなく関数も内部に持たせることができる
あ、あとでまとめてStudentクラスコミットするから細かいとこ気にしなくていいよ
787t.mourning ◆HeJleJP5y2
2016/01/24(日) 20:53:04.61 以上のように情報を持ち行動が規定されているものをプログラミングでは
カプセル化されたオブジェクトという
課題:Studentクラスを参考にしながらTeacherクラスを作成せよ
ただしTeacherクラスは名前と担当教科の情報を持ち
授業の最初に挨拶「おはようございます。(教科名)の授業を始めます」する行動
ができるものとする
カプセル化されたオブジェクトという
課題:Studentクラスを参考にしながらTeacherクラスを作成せよ
ただしTeacherクラスは名前と担当教科の情報を持ち
授業の最初に挨拶「おはようございます。(教科名)の授業を始めます」する行動
ができるものとする
788t.mourning ◆HeJleJP5y2
2016/01/24(日) 21:01:51.47 コミットした
プルしてね
プルしてね
789takesi
2016/01/24(日) 21:22:43.18 コミットしました
書経のような感じでしたが
理解できるように考えながらコードを書きました
書経のような感じでしたが
理解できるように考えながらコードを書きました
790t.mourning ◆HeJleJP5y2
2016/01/24(日) 21:25:44.45 いい感じ
続いて
課題:Teacherクラスにも自己紹介「My name is 〜〜〜」するメソッドを追加せよ
続いて
課題:Teacherクラスにも自己紹介「My name is 〜〜〜」するメソッドを追加せよ
791t.mourning ◆HeJleJP5y2
2016/01/24(日) 21:32:11.02 やってる間に次の話題書いとく
ここでTeacherクラスにもStudentクラスにも
name変数
が存在し、
getName関数
が全く同じ内容で存在することに気付く
これは何度も書くのは無駄無駄無駄ァ
これはなぜか考えると
生徒も教師も人である
人だから名前を持っている
また自己紹介もする
ということは生徒も教師も
name変数
を持ち
getName関数
を持つHumanクラスという風に考えられる
Javaではこれを
class Human {
String name;
String getName() {
return "My name is "name;
}
}
class Student extends Human {
…
}
のようにする
これを継承という
ここでTeacherクラスにもStudentクラスにも
name変数
が存在し、
getName関数
が全く同じ内容で存在することに気付く
これは何度も書くのは無駄無駄無駄ァ
これはなぜか考えると
生徒も教師も人である
人だから名前を持っている
また自己紹介もする
ということは生徒も教師も
name変数
を持ち
getName関数
を持つHumanクラスという風に考えられる
Javaではこれを
class Human {
String name;
String getName() {
return "My name is "name;
}
}
class Student extends Human {
…
}
のようにする
これを継承という
792t.mourning ◆HeJleJP5y2
2016/01/24(日) 21:37:04.19 継承とは
基本となるクラス(基底クラス・親クラス)から
それらの要素を引き継いだ新しいクラス(派生クラス・子クラス)
を作ること
派生クラスでは基底クラスのメソッド以外に派生クラスで独自に追加した
変数やメソッドを利用できる
また基本となるクラスには(基本的に)制限はなく
派生クラスの派生クラスといったものも作れる
基本となるクラス(基底クラス・親クラス)から
それらの要素を引き継いだ新しいクラス(派生クラス・子クラス)
を作ること
派生クラスでは基底クラスのメソッド以外に派生クラスで独自に追加した
変数やメソッドを利用できる
また基本となるクラスには(基本的に)制限はなく
派生クラスの派生クラスといったものも作れる
794t.mourning ◆HeJleJP5y2
2016/01/24(日) 21:43:37.56 ウボァ
プルした?
そのあとアップストリームへプッシュした?
プルした?
そのあとアップストリームへプッシュした?
795takesi
2016/01/24(日) 21:45:55.85 アップストリームにプッシュすると
non-fast-forward
と出てきます
non-fast-forward
と出てきます
796t.mourning ◆HeJleJP5y2
2016/01/24(日) 21:48:17.04 うーん
マージは?
マージは?
797takesi
2016/01/24(日) 21:49:39.92 マージすると
結果 失敗
とでます
結果 失敗
とでます
798t.mourning ◆HeJleJP5y2
2016/01/24(日) 21:51:26.62 じゃあリベースは?
799takesi
2016/01/24(日) 21:56:40.77 いじってたらしばらくして
HEAD はすでに最新の状態のためリベースは何もしませんでした
と出ました
HEAD はすでに最新の状態のためリベースは何もしませんでした
と出ました
800takesi
2016/01/24(日) 21:57:58.93 いきました!
リベースのリセット?のあとプッシュでいけました
リベースのリセット?のあとプッシュでいけました
801t.mourning ◆HeJleJP5y2
2016/01/24(日) 21:59:14.89 あ、きたね
じゃあ続き
Humanのクラスコミットすんね
じゃあ続き
Humanのクラスコミットすんね
802t.mourning ◆HeJleJP5y2
2016/01/24(日) 22:06:13.73 pullよろ
Humanクラスについてもう一つ考えてみよう
人間には性別というものがある
そこで
課題:Humanクラスにgender(性別)メンバー(変数)を追加し
それを設定する関数setGenderと取得する関数getGenderを追加せよ
その後Studentクラスの自己紹介でgetGenderせよ
Humanクラスについてもう一つ考えてみよう
人間には性別というものがある
そこで
課題:Humanクラスにgender(性別)メンバー(変数)を追加し
それを設定する関数setGenderと取得する関数getGenderを追加せよ
その後Studentクラスの自己紹介でgetGenderせよ
803takesi
2016/01/24(日) 22:09:37.55 うーむ、難しい
時間がかかりそなので宿題ということで考えておきます
時間がかかりそなので宿題ということで考えておきます
805t.mourning ◆HeJleJP5y2
2016/01/24(日) 22:14:06.78 了解
次はオブジェクト指向の続きからね
流れ
継承
↓
多態性(オーバーロードおよびオーバーライド)
↓
継承その2(仮想関数)
↓
テンプレートクラス
↓
アクセス修飾子
それとは別に演習作っとく
次はオブジェクト指向の続きからね
流れ
継承
↓
多態性(オーバーロードおよびオーバーライド)
↓
継承その2(仮想関数)
↓
テンプレートクラス
↓
アクセス修飾子
それとは別に演習作っとく
806t.mourning ◆HeJleJP5y2
2016/01/24(日) 22:14:55.55 ゆっくりで構わんよ
っていうか自分も平日疲れてすぐ寝るからそのほうがありがたい
っていうか自分も平日疲れてすぐ寝るからそのほうがありがたい
807仕様書無しさん
2016/01/24(日) 22:55:35.64 なにこのスレすごい
あとで読み返してみる
あとで読み返してみる
808仕様書無しさん
2016/01/25(月) 01:05:24.47 String[] names = new String[]{"takesi", "John", "Suzuki"};
int[] grades = {1, 2, 3};
のほうがはるかに合理的 データ0番、1番、2番って番号で管理できる
Suzukiが5人いたとしても番号が一意で分かれているから混同もしない
人間クラスから派生して生徒、教師ってのも変 役割が根本的に違うのだからそれぞれ別でいい
学校クラスがないのも変だな〜 学校クラスにそれぞれの生徒と教師がメンバとしているはずだ
int[] grades = {1, 2, 3};
のほうがはるかに合理的 データ0番、1番、2番って番号で管理できる
Suzukiが5人いたとしても番号が一意で分かれているから混同もしない
人間クラスから派生して生徒、教師ってのも変 役割が根本的に違うのだからそれぞれ別でいい
学校クラスがないのも変だな〜 学校クラスにそれぞれの生徒と教師がメンバとしているはずだ
809takesi
2016/01/25(月) 02:04:03.82 眠れないので課題やってみました
全く分かりません
どこからの知識が抜けてるのやら
Teacherクラスをコピペ改変したようなコードしか書けませんでした
全く分かりません
どこからの知識が抜けてるのやら
Teacherクラスをコピペ改変したようなコードしか書けませんでした
810takesi
2016/01/25(月) 02:09:44.46 どこを勉強すればいいのでしょうか
今日はまとまった時間が取れそうなので勉強します
今日はまとまった時間が取れそうなので勉強します
811t.mourning ◆HeJleJP5y2
2016/01/25(月) 22:04:30.90 あれで問題ない
最初はまねて
次は少し変えてみて
最後に自分で書けるようになればいい
Exam4穴埋め式にした
何か好きなパズルとかある?それ題材にする
最初はまねて
次は少し変えてみて
最後に自分で書けるようになればいい
Exam4穴埋め式にした
何か好きなパズルとかある?それ題材にする
812takesi
2016/01/25(月) 22:08:34.00 あれでいいんですか?!自身なかった
自分で書けるのか不安だったけど安心しました
あんまりパズルはしませんが…
クロスワードはやったことあります
自分で書けるのか不安だったけど安心しました
あんまりパズルはしませんが…
クロスワードはやったことあります
813t.mourning ◆HeJleJP5y2
2016/01/25(月) 22:09:29.88 クロスワードはちょっと向かないなぁ
数独とかカックロとか数字しか使わない系で
数独とかカックロとか数字しか使わない系で
814takesi
2016/01/25(月) 22:14:32.67 数独はやったことあります
815takesi
2016/01/25(月) 22:28:17.49 Exam4難しい‥
ちんぷんかんぷんです
ちんぷんかんぷんです
816t.mourning ◆HeJleJP5y2
2016/01/25(月) 22:31:44.49 じゃあオーソドックスに数独にしとこうか
平日は演習問題の形でコミットするからそれとくような感じで
休日が昨日みたいな感じで
最初は強く当たって後は流れで
平日は演習問題の形でコミットするからそれとくような感じで
休日が昨日みたいな感じで
最初は強く当たって後は流れで
817takesi
2016/01/25(月) 22:37:43.22 了解しました
818takesi
2016/01/25(月) 22:47:49.69 Exam4は分かりません
どこか復習が必要でしょうか
どこか復習が必要でしょうか
819t.mourning ◆HeJleJP5y2
2016/01/25(月) 23:00:28.78 じゃあそれは飛ばして答えコミットする
土曜はそれの解説からね
土曜はそれの解説からね
820t.mourning ◆HeJleJP5y2
2016/01/25(月) 23:01:26.95 できたとこまででいいからコミットしてくれたらヒント書いて返す
821takesi
2016/01/25(月) 23:09:04.26 全く手を付けられませんでした
822仕様書無しさん
2016/01/26(火) 09:52:55.08 すみません
C言語ができれば
ずっと食べていけますかね?
android からwindows のソフトまで作れますよね???
C言語ができれば
ずっと食べていけますかね?
android からwindows のソフトまで作れますよね???
823仕様書無しさん
2016/01/28(木) 20:55:55.34 なにこれ、本気で教育が始まってるの?
824takesi
2016/01/30(土) 19:17:22.28 受験との両立をしようと思っていたのですが
学校も忙しくなり受験も追い込み時期になったことで余裕がなくなってしまいました
3月12日から再開させてもらってもよろしいでしょうか
学校も忙しくなり受験も追い込み時期になったことで余裕がなくなってしまいました
3月12日から再開させてもらってもよろしいでしょうか
825t.mourning ◆HeJleJP5y2
2016/01/30(土) 21:08:54.99 ええよ
スレなくなってたら建ててな
スレなくなってたら建ててな
826takesi ◆5LQe9dJ7ck
2016/01/30(土) 21:24:27.65 ありがとうございます
3月12日にもどってきます
トリップつけときます
3月12日にもどってきます
トリップつけときます
828takesi ◆5LQe9dJ7ck
2016/03/12(土) 07:28:09.90 おはようございます
今日から再開お願いします
課題に手を付けます
今日から再開お願いします
課題に手を付けます
831t.mourning ◆HeJleJP5y2
2016/03/12(土) 15:38:19.90 再開すんよ
まずExam4の解説からでおk?
まずExam4の解説からでおk?
832takesi ◆5LQe9dJ7ck
2016/03/12(土) 16:32:09.63 はい、お願いします
Exam10も分かりそうにないです
11、12は今から取り組みます
Exam10も分かりそうにないです
11、12は今から取り組みます
833t.mourning ◆HeJleJP5y2
2016/03/13(日) 00:22:17.64 ホワイトデーのお返し作ってて遅れた
exam4から
問
シーザー暗号を解きなさい
まず手で解いてみる
一文字ずつずらしていき中に「person」があれば答え
プログラムで解釈する
1.文字列をn文字ずらす
2.中にpersonが含まれるか調べる
3.含まれていればそれを表示して終了、含まれていなければnに1足して1からやり直し
もう少しプログラムっぽく
for (int n = 0; n < 文字の種類数; n++) {
String text = n文字ずらした暗号;
if (textに「person」が含まれていたら) {
system.out.println(text);
break;
}
}
これを実装していくことになる
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;
}
}
これを実装していくことになる
834t.mourning ◆HeJleJP5y2
2016/03/13(日) 00:32:35.66 ・文字の種類数
まず文字のchar配列を作っておく
そうすることでずらす処理や文字種数を取得するのに便利になる
static final char[] chars = {
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','.',',','-'
};
そうしたうえで配列の要素数はlengthで取得する
つまり
chars.length
・n文字ずらした暗号
文字列を文字ごとに分解して分解した文字をn文字をずらす
もともと暗号文はcharの配列であるので暗号文に対してforで一つずつアクセスし
n文字ずらした文字を取得すればよい
この最中するのが文字種数30より大きくなったaに戻ることを考慮すること
これは30で割ったあまりとすれば解決できる
・textに「person」が含まれていたら
StringにはindexOfというメソッドがありそれによって文字列が含まれているかどうかを調べることができる
indexOfで文字列が含まれていない場合は返り値は-1になる
まず文字の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になる
835t.mourning ◆HeJleJP5y2
2016/03/13(日) 00:39:43.32 Exam10ヒント
数列の状態は
int[9][9]の配列で持とうExam8参照
まずは枠線なしで数字のまま出力することを目標にする
その後0だったら0でなくスペースを表示するように変更する
最後に枠線を表示する
上と下の枠線は固定で構わない
左右の枠線は数字を表示する前と後に「|」を表示すればよい
表示する関数は
System.out.println()
と
System.out.print()
だ
上は出力したら改行も出力され
下は改行は出力されない
使い分けよう
数列の状態は
int[9][9]の配列で持とうExam8参照
まずは枠線なしで数字のまま出力することを目標にする
その後0だったら0でなくスペースを表示するように変更する
最後に枠線を表示する
上と下の枠線は固定で構わない
左右の枠線は数字を表示する前と後に「|」を表示すればよい
表示する関数は
System.out.println()
と
System.out.print()
だ
上は出力したら改行も出力され
下は改行は出力されない
使い分けよう
836takesi ◆5LQe9dJ7ck
2016/03/13(日) 06:51:26.23 すみません昨日は私用で全く課題ができませんでした
今日も19時まで予定があるのでそれ以降に取り組みます
空いた時間に解説理解しておきます
今日も19時まで予定があるのでそれ以降に取り組みます
空いた時間に解説理解しておきます
837t.mourning ◆HeJleJP5y2
2016/03/13(日) 20:01:30.22 こっちも今体空いた
次の課題とか用意しとく
終わり次第多態性についてやるよ
次の課題とか用意しとく
終わり次第多態性についてやるよ
838t.mourning ◆HeJleJP5y2
2016/03/13(日) 20:40:52.29 課題1個追加した
プル忘れないでね
多態性についてやるから適当なところで切り付けて
プル忘れないでね
多態性についてやるから適当なところで切り付けて
839takesi ◆5LQe9dJ7ck
2016/03/13(日) 20:47:28.57 今やっと私用が終わりました
今から取り組みます
今から取り組みます
840仕様書無しさん
2016/03/13(日) 20:59:23.27 同じような境遇のものとして応援してます
頑張って
頑張って
841takesi ◆5LQe9dJ7ck
2016/03/13(日) 21:28:43.66 最近の課題は僕には解けないものが多いのですが、基本がなってないのでしょうか?
やり方は分かるのですがコードに置き換えられません
今日は次の説明をお願いします
明日じっくり課題をやります
やり方は分かるのですがコードに置き換えられません
今日は次の説明をお願いします
明日じっくり課題をやります
842t.mourning ◆HeJleJP5y2
2016/03/13(日) 21:55:33.42 単純に慣れの問題じゃないかな
写経量が少ない
今は調べてパクるだけでいい
そのうちここ変えたらどうなるかなって思ったら
実際やってみて違いを調べたりしてみるとよさげ
じゃあ多態性について
オブジェクト指向の重要な要素の一つ多態性(ポリモーフィズム)
ttp://www.nulab.co.jp/designPatterns/designPatterns1/designPatterns1-4.html#%E3%83%9D%E3%83%AA%E3%83%A2%E3%83%95%E3%82%A3%E3%82%BA%E3%83%A0
多態性とは
別のオブジェクトに対し同じ関数を定義したいことがある
例えば生徒と教室の二つのオブジェクトがあるとする
この二つは共通の親クラスを持っているわけではない
しかし、両方とも名前(String name)を持っており
名前を取得する共通の関数(getName)を作りたいと思っているとする
この際引数として渡されるオブジェクトによって挙動を変える関数が作ることができる
これを多態性という。
Javaにはオーバーライドとオーバーロードという二つの多態性の実現方法がある。
オーバーライド:二つのオブジェクトが親子(継承の親子)関係にある時親クラスで定義されたものを子クラスで再定義すること
例)HumanクラスとProfessorクラス
class Human {
String name;
String getName() {
return name;
}
}
class Professor extends Human {
String getName() {
return "Prof."+name;
}
}
写経量が少ない
今は調べてパクるだけでいい
そのうちここ変えたらどうなるかなって思ったら
実際やってみて違いを調べたりしてみるとよさげ
じゃあ多態性について
オブジェクト指向の重要な要素の一つ多態性(ポリモーフィズム)
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;
}
}
843t.mourning ◆HeJleJP5y2
2016/03/13(日) 22:04:25.17 オーバーロード:二つのオブジェクトがどのような関係であろうとかまわないが、
同じ関数の引数として違うオブジェクトを渡した際に違う挙動を定義すること
例)ClassRoomクラスとStudentクラス
String getName(ClassRoom classRoom) {
return classRoom.name + " class";
}
String getName(Student student) {
return "student:" + student;
}
以上からわかるように
オーバーライドはメンバー関数のみ
オーバーロードはどのような関数でもできるといった違いがある
今はそのようなものがあると知っておくだけでおk
気づかないうちに使ってて、あとからこれが多態性だったのかってなると思う
同じ関数の引数として違うオブジェクトを渡した際に違う挙動を定義すること
例)ClassRoomクラスとStudentクラス
String getName(ClassRoom classRoom) {
return classRoom.name + " class";
}
String getName(Student student) {
return "student:" + student;
}
以上からわかるように
オーバーライドはメンバー関数のみ
オーバーロードはどのような関数でもできるといった違いがある
今はそのようなものがあると知っておくだけでおk
気づかないうちに使ってて、あとからこれが多態性だったのかってなると思う
844t.mourning ◆HeJleJP5y2
2016/03/13(日) 22:17:48.08 習うより慣れろ
課題:Humanクラスで実装されているメンバー関数getNameをStudentクラスでオーバーライドせよ
その再表示する内容は
My name is 〜〜〜
↓
I'm 〜〜〜
にせよ
課題:PrintUtilクラスを作成せよ
PrintUtilクラスには以下の二つのオーバーロードした関数を作成せよ
public static void printName(Human x) {
//ここに表示処理を書く
}
public static void printName(Teacher x) {
//ここに表示処理を書く
}
Humanを渡した関数はnameを表示(System.out.printlnするだけ)
Teacherを渡した関数はnameの前に「Mr.」をつけて表示せよ
その後
Student student = new Student();
student.name = "takesi";
PrintUtil.printName(student);
としてどのように表示されるか確認しその理由を考えよ
課題: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仕様書無しさん
2016/03/14(月) 08:39:59.84 良スレage
846仕様書無しさん
2016/03/14(月) 11:07:56.73 FJネクスト エフ・ジェー・ネクスト 迷惑勧誘電話7 [無断転載禁止]・2ch.net
http://hayabusa6.2ch.net/test/read.cgi/estate/1457609776/
http://hayabusa6.2ch.net/test/read.cgi/estate/1457609776/
847takasi
2016/03/14(月) 20:24:33.70 お久しぶりです
職業訓練校のプログラミングコースに合格したので4月から通うことになりました
たけしくん、お互いがんばりましょう
職業訓練校のプログラミングコースに合格したので4月から通うことになりました
たけしくん、お互いがんばりましょう
848仕様書無しさん
2016/03/14(月) 20:50:44.53 あげ
849takesi ◆5LQe9dJ7ck
2016/03/14(月) 21:21:45.84 今日も忙しくてできませんでした
疲れたので寝ます
明日で卒業なのでこれからはちゃんと時間が取れるようになります
何度もすみません
疲れたので寝ます
明日で卒業なのでこれからはちゃんと時間が取れるようになります
何度もすみません
850仕様書無しさん
2016/03/15(火) 18:05:56.72 >>847
職業訓練通ってたが明らかに君はそのレベルを超えてるね
多分javaでweb系のアプリ作ったり、androidアプリ作ったりすると思うけど
プログラムなんか言語が違くてもだいたいやることは一緒だからjavaもずっと出来るのかな
まあお金ももらえるし、プログラムだけじゃなくてインターネットの仕組みやらコンピュータの仕組みやらを勉強できるから頑張りな
職業訓練通ってたが明らかに君はそのレベルを超えてるね
多分javaでweb系のアプリ作ったり、androidアプリ作ったりすると思うけど
プログラムなんか言語が違くてもだいたいやることは一緒だからjavaもずっと出来るのかな
まあお金ももらえるし、プログラムだけじゃなくてインターネットの仕組みやらコンピュータの仕組みやらを勉強できるから頑張りな
851仕様書無しさん
2016/03/15(火) 18:06:37.05 javaもずっと→すっと
852takesi ◆5LQe9dJ7ck
2016/03/16(水) 22:28:22.36 だいぶ粘ったのですがExam10,11,12,13は分かりません
853仕様書無しさん
2016/03/16(水) 22:51:23.20 スレにも問題公開していただけませんか?
私も挑戦してみたいです
私も挑戦してみたいです
854t.mourning ◆HeJleJP5y2
2016/03/17(木) 21:08:43.46 https://github.com/tamochu/neet1programming
は公開リポジトリだから勝手に見てね
一応何も書いてない問題のほうをexam/original
に置いたからそっち見るとよいかと思われ
は公開リポジトリだから勝手に見てね
一応何も書いてない問題のほうをexam/original
に置いたからそっち見るとよいかと思われ
855t.mourning ◆HeJleJP5y2
2016/03/17(木) 21:13:29.04 >>852
あいよじゃあ解説してく
あと次から問題レベル下げたほうがいい?
↑の844の課題はやっといてね
Exam10.part1
9×9のintの配列を用意せよ
Exam10.part2
上の配列をすべて0で初期化せよ。
(厳密には既に初期化されているが明示的に初期化せよ)
まずはここまでやってコミットよろ
あいよじゃあ解説してく
あと次から問題レベル下げたほうがいい?
↑の844の課題はやっといてね
Exam10.part1
9×9のintの配列を用意せよ
Exam10.part2
上の配列をすべて0で初期化せよ。
(厳密には既に初期化されているが明示的に初期化せよ)
まずはここまでやってコミットよろ
857takesi ◆5LQe9dJ7ck
2016/03/20(日) 10:20:50.34 進学の準備やらで忙しく課題ができませんでした
今日は予定がないので今から取り組みます
今日は予定がないので今から取り組みます
858takesi ◆5LQe9dJ7ck
2016/03/20(日) 11:44:15.30 わかる範囲でやってみました
完全に感覚です
完全に感覚です
859t.mourning ◆HeJleJP5y2
2016/03/20(日) 12:13:26.19 赤入れたからプルしてね
今はこんな感じかなでいい
間違えたほうが経験になるしね
Exam10.part3
できた配列の数字を表示する
→OK
Exam10.part4
各行の始めと終わりに「|」を出力する
System.out.print("|");
を行えばよい。
Exam10.part5
表示する前と後に「+-----------------+」を表示する
System.out.println("+-----------------+");
を行えばよい
次ここまでね
今はこんな感じかなでいい
間違えたほうが経験になるしね
Exam10.part3
できた配列の数字を表示する
→OK
Exam10.part4
各行の始めと終わりに「|」を出力する
System.out.print("|");
を行えばよい。
Exam10.part5
表示する前と後に「+-----------------+」を表示する
System.out.println("+-----------------+");
を行えばよい
次ここまでね
860takesi ◆5LQe9dJ7ck
2016/03/20(日) 13:21:11.96 すみません用事が出来てしまいました
また夕方頃に再開します
また夕方頃に再開します
861takesi ◆5LQe9dJ7ck
2016/03/20(日) 19:59:56.41 コミットしました
862t.mourning ◆HeJleJP5y2
2016/03/21(月) 11:14:11.62 あとはデータを入れる
Exam10.part6
穴埋め問題にするのでプルして解くこと
Exam10.part7
0はスペースで表示にする
System.out.print(sudoku[a][b] + " ");
↓
if (〜〜〜) {
System.out.print(sudoku[a][b]);
} else {
System.out.print(" ");
}
と変更し〜〜〜を適切な条件句に直しなさい
Exam10.part6
穴埋め問題にするのでプルして解くこと
Exam10.part7
0はスペースで表示にする
System.out.print(sudoku[a][b] + " ");
↓
if (〜〜〜) {
System.out.print(sudoku[a][b]);
} else {
System.out.print(" ");
}
と変更し〜〜〜を適切な条件句に直しなさい
863仕様書無しさん
2016/03/21(月) 15:48:55.73 懐かしいな
コンソールでオセロとかやったな
コンソールでオセロとかやったな
864takesi ◆5LQe9dJ7ck
2016/03/21(月) 16:37:59.02 コミットしました
865t.mourning ◆HeJleJP5y2
2016/03/21(月) 18:03:51.60 おk
Exam10はそのまま発展問題にしていくからちょい待ってね
Exam11.part1〜3
Exam12.part1〜3
課題:数値のソートとは何か調べなさい
課題:数値の配列「4,3,8,1」を小さい順に並べなさい。ただし過程を細かく記述すること。
課題:プログラムでのソートの実装方法を3つ挙げなさい(中身を理解する必要はない)
Exam13.part1
課題:平方根とは何か述べよ
Exam10はそのまま発展問題にしていくからちょい待ってね
Exam11.part1〜3
Exam12.part1〜3
課題:数値のソートとは何か調べなさい
課題:数値の配列「4,3,8,1」を小さい順に並べなさい。ただし過程を細かく記述すること。
課題:プログラムでのソートの実装方法を3つ挙げなさい(中身を理解する必要はない)
Exam13.part1
課題:平方根とは何か述べよ
866t.mourning ◆HeJleJP5y2
2016/03/21(月) 18:11:42.38 Exam10をもとに数独解くプログラム作ってくよ
Sudokuクラス作ったのでそっち見てね
課題:表示する処理を関数化せよ
ただし以下の2通りで関数化すること
public void print(){}
public static void printState(Sudoku x){}
上はメンバー関数としてthis.sudokuを表示させる。
下はスタティック関数としてSudokuクラスを受け取りx.sudokuを表示させる。
ヒント:上の実装にはsudokuをSudokuクラスのメンバーに持てばよい。
Sudokuクラス作ったのでそっち見てね
課題:表示する処理を関数化せよ
ただし以下の2通りで関数化すること
public void print(){}
public static void printState(Sudoku x){}
上はメンバー関数としてthis.sudokuを表示させる。
下はスタティック関数としてSudokuクラスを受け取りx.sudokuを表示させる。
ヒント:上の実装にはsudokuをSudokuクラスのメンバーに持てばよい。
869t.mourning ◆HeJleJP5y2
2016/03/22(火) 21:20:23.44 プルした
まずソートの解説から
ソートとは:特に解説無し
小さい順に並べる:これはクイックソートと呼ばれるソートの考え方です。
とても速いといわれるソートの一種で実装は再帰を使った方法などいくつかあります。
実装方法:
1.バブルソートがこれになります。
バブルソートとはソートの様子を可視化した際に
泡(小さい値)が水面(列の最初)に上がっていくようであることから名づけられました。
海底(列の最後)から水面(列の最初)まで隣り合った値を比較し、
大小が逆なら入れ替えを行うと、
水面(列の最初)には泡(最小の値)が来る。
これを水面を下げながら行うことで全ての列がソートできるというもの。
例)
4381
↑↑
8>1なので入れ替える
4318
↑↑
3>1なので入れ替える
4138
↑↑
4>1なので入れ替える
1438←一番小さい「1」が列の最初に来た。水面を下げてまた海底から。
まずソートの解説から
ソートとは:特に解説無し
小さい順に並べる:これはクイックソートと呼ばれるソートの考え方です。
とても速いといわれるソートの一種で実装は再帰を使った方法などいくつかあります。
実装方法:
1.バブルソートがこれになります。
バブルソートとはソートの様子を可視化した際に
泡(小さい値)が水面(列の最初)に上がっていくようであることから名づけられました。
海底(列の最後)から水面(列の最初)まで隣り合った値を比較し、
大小が逆なら入れ替えを行うと、
水面(列の最初)には泡(最小の値)が来る。
これを水面を下げながら行うことで全ての列がソートできるというもの。
例)
4381
↑↑
8>1なので入れ替える
4318
↑↑
3>1なので入れ替える
4138
↑↑
4>1なので入れ替える
1438←一番小さい「1」が列の最初に来た。水面を下げてまた海底から。
870t.mourning ◆HeJleJP5y2
2016/03/22(火) 21:27:04.37 1 438
↑↑
3<8なので入れ替え無し
1 438
↑↑
4>3なので入れ替え
1 348←2番目に小さい「3」が2番目に来た。同様に3番目。
13 48
↑↑
4<8なので入れ替え無し
1348
ソート完了
これをふまえてExam11に再チャレンジ
ヒント
int a[2] = {1, 3};
の入れ替えは以下のように行う
int x = a[0];
a[0] = a[1];
a[1] = x;
n番目とm番目なら
int x = a[n];
a[n] = a[m];
a[m] = x;
n-1番目とn番目なら…
↑↑
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番目なら…
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】山上徹也被告に無期懲役を求刑 ★6 [Hitzeschleier★]
- 年収の壁で総理と玉木代表が合意 178万円まで引き上げ 年収665万円以下が対象 ★2 [どどん★]
- 中国外務省「日本への渡航を控えて」→高市内閣の支持率はとくに下がらず…なぜ日本国民がこれほど「高市内閣」を応援するのか★4 [♪♪♪★]
- 官邸幹部「日本は核兵器保有すべき」 政権内の議論は「ない」と説明 [どどん★]
- 【芸能】笑い飯・哲夫 『THE W』の審査員「次からもう断ろうかな…」 粗品とのコメント回数の差にあ然 カンペで指示が出ている [冬月記者★]
- 胸を強調した女性アニメキャラをファミレスがコラボ企画で起用。「この表現はどうなのか」SNSで疑問の声 ★2 [少考さん★]
- 国民「防衛費上げてほしい」高市早苗「増税します」 [834922174]
- 【超特大悲報】中国さん完全孤立決定…米両院が日本支持を明言🏡
- 【速報】高市官邸幹部「日本は核兵器保有すべき」 [115996789]
- 【山上裁判】結果的に反社的な教団を解散に追い込み、多くの国民を救った山上。本当に無期懲役が相応しいのか?山上より悪があるのでは [219241683]
- 抹茶が値上げ。海外の抹茶ブームで品薄。宇治茶など従来の2倍の価格に・・・。菓子メーカーなどが確保に苦慮 [737440712]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ185
