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

■ このスレッドは過去ログ倉庫に格納されています
1たかし
垢版 |
2015/12/25(金) 18:43:55.48
先生を募集します

先生!!
2016/01/23(土) 21:44:39.16
何もフェッチできないんだったら
今度は
チーム→リベース
746takesi
垢版 |
2016/01/23(土) 21:50:13.14
下の項目2つともにチェックを入れればいいんですか?
747takesi
垢版 |
2016/01/23(土) 21:51:43.52
うーん…よく分かりません
2016/01/23(土) 21:52:34.16
チェック?入れると来ないと思うが
しいて言うならリモートトラッキングのorigin/master
2016/01/23(土) 21:53:11.24
×と来ない
○所ない
750takesi
垢版 |
2016/01/23(土) 21:57:56.98
こんな画面です
http://i.imgur.com/nYnWMt8.jpg
2016/01/23(土) 22:04:43.11
http://imgur.com/a/4AcVm
752takesi
垢版 |
2016/01/23(土) 22:06:10.16
その通りになりません
753takesi
垢版 |
2016/01/23(土) 22:07:21.59
リベース結果
HEADはすでに最新の状態のためリベースは何もしませんでした
と出ます
2016/01/23(土) 22:08:41.92
どっちもチェック入れないでやってみて
755takesi
垢版 |
2016/01/23(土) 22:10:23.36
そうすると>>753になります
2016/01/23(土) 22:11:31.49
よしもっかいチェックアウトからやり直したほうがいいな

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

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

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

またnon-fast-forwardと出たら
1.プルして再度コミット→プッシュ
2.フェッチしてマージして再度コミット→プッシュ
が原則です
770takesi
垢版 |
2016/01/23(土) 23:05:45.39
分かりました!
とりあえずGithubでファイルが共有できるまでになりました
自分で課題を進めていきます
今日はありがとうございました
771takesi
垢版 |
2016/01/23(土) 23:07:06.59
私は学生で受験生なので低浮上になるかもしれませんがよろしくお願いします
3月中頃から春休みで本格的に勉強ができますが、それまでもできるだけ毎日顔を出したいと思います
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
昨日のことを思い出しながら闇雲にボタン触ってたら出来ました
こんなんでいいのやら
2016/01/24(日) 17:45:37.57
うごきゃあいいんだよ
779takesi
垢版 |
2016/01/24(日) 18:15:09.77
Exam4,7は分かりません
他の問題もググりながら解きました
難しいですね
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);
する関数。
2016/01/24(日) 19:56:30.87
今日はどれやりたい?
関数について
オブジェクト指向について
パッケージとアクセス修飾子について
782takesi
垢版 |
2016/01/24(日) 20:17:01.44
オブジェクト指向についてお願いします
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;
…以下略
2016/01/24(日) 20:39:19.09
この一つのオブジェクトに属する情報は一つのオブジェクトに持たせる
というのがカプセル化とか呼ばれるオブジェクト指向に必要な要素を実現させる

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

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

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

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


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

課題:Studentクラスを参考にしながらTeacherクラスを作成せよ
ただしTeacherクラスは名前と担当教科の情報を持ち
授業の最初に挨拶「おはようございます。(教科名)の授業を始めます」する行動
ができるものとする
2016/01/24(日) 21:01:51.47
コミットした
プルしてね
789takesi
垢版 |
2016/01/24(日) 21:22:43.18
コミットしました
書経のような感じでしたが
理解できるように考えながらコードを書きました
2016/01/24(日) 21:25:44.45
いい感じ
続いて
課題:Teacherクラスにも自己紹介「My name is 〜〜〜」するメソッドを追加せよ
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 {

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

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

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

流れ
継承

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

継承その2(仮想関数)

テンプレートクラス

アクセス修飾子

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

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

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

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


C言語ができれば


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

android からwindows のソフトまで作れますよね???
2016/01/28(木) 20:55:55.34
なにこれ、本気で教育が始まってるの?
824takesi
垢版 |
2016/01/30(土) 19:17:22.28
受験との両立をしようと思っていたのですが
学校も忙しくなり受験も追い込み時期になったことで余裕がなくなってしまいました
3月12日から再開させてもらってもよろしいでしょうか
2016/01/30(土) 21:08:54.99
ええよ
スレなくなってたら建ててな
2016/01/30(土) 21:24:27.65
ありがとうございます
3月12日にもどってきます
トリップつけときます
2016/01/31(日) 08:57:35.56
>>208
ベクターとかストアに作品のせれば経験になりますか?
2016/03/12(土) 07:28:09.90
おはようございます
今日から再開お願いします
課題に手を付けます
2016/03/12(土) 11:53:24.79
>>828
まずは空白期間に身に付けたスキルを洗い流したまえ
2016/03/12(土) 14:32:39.08
>>829
Unityの基本操作とC#を少々
受験が忙しくてあまり手を付けてません
2016/03/12(土) 15:38:19.90
再開すんよ
まずExam4の解説からでおk?
2016/03/12(土) 16:32:09.63
はい、お願いします
Exam10も分かりそうにないです
11、12は今から取り組みます
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;
}
}

これを実装していくことになる
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になる
2016/03/13(日) 00:39:43.32
Exam10ヒント
数列の状態は
int[9][9]の配列で持とうExam8参照

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

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

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

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

System.out.print()

上は出力したら改行も出力され
下は改行は出力されない
使い分けよう
2016/03/13(日) 06:51:26.23
すみません昨日は私用で全く課題ができませんでした
今日も19時まで予定があるのでそれ以降に取り組みます
空いた時間に解説理解しておきます
2016/03/13(日) 20:01:30.22
こっちも今体空いた
次の課題とか用意しとく
終わり次第多態性についてやるよ
2016/03/13(日) 20:40:52.29
課題1個追加した
プル忘れないでね
多態性についてやるから適当なところで切り付けて
2016/03/13(日) 20:47:28.57
今やっと私用が終わりました
今から取り組みます
2016/03/13(日) 20:59:23.27
同じような境遇のものとして応援してます
頑張って
2016/03/13(日) 21:28:43.66
最近の課題は僕には解けないものが多いのですが、基本がなってないのでしょうか?
やり方は分かるのですがコードに置き換えられません
今日は次の説明をお願いします
明日じっくり課題をやります
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;
}
}
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
気づかないうちに使ってて、あとからこれが多態性だったのかってなると思う
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);
としてどのように表示されるか確認しその理由を考えよ
845仕様書無しさん
垢版 |
2016/03/14(月) 08:39:59.84
良スレage
■ このスレッドは過去ログ倉庫に格納されています