ニートです1からプログラミングを教えてくれるat PROG
ニートです1からプログラミングを教えてくれる - 暇つぶし2ch650:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 12:58:34.33 .net
黒い線を表示するのにLabelを使った。
Labelの背景色を黒にし、AutoSizeをFalseにしてある。
それぞれのマスはPictureBoxになっている。
画像と音声のデータはすでにリソースとして追加した。

651:takasi
16/01/18 13:15:29.04 .net
おはようございます
今日も夜から始めると思います

652:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 13:28:05.84 .net
データとUIの分離のために、盤を表すBoardというクラスを用意した。
Boardに空ではないマスを数えるカウント変数countを追加せよ。
盤の初期化のときにcountをゼロにせよ。
set_masuでcountを加算せよ。

653:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 13:39:44.00 .net
Boardに次のような思考関数kangaeruを追加せよ。
int kangaeru(Masu comp) {
Masu anata;
compがマルならanataはバツ。
compがバツならanataはマル。
空マスが1つ、compが2つの並びがあれば、その空きマスの番号を返す。
anataがなく、compが1つ以上の並びがあれば、その空きマスの番号を返す。
空きマスをランダムに選び、その空きマスの番号を返す。
}

654:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 13:44:57.25 .net
課題。○×ゲームを完成せよ。
プレイヤーはマル(先攻)、コンピュータはバツ(後攻)とする。
プレイヤーがマルをつけたら、タイマーで2秒待ち、
コンピュータがバツをつける。
待っている間は操作できないようにせよ。

655:takasi
16/01/18 18:00:48.51 .net
ちょっと今日は夜に出てこれないです!
完成したらプッシュすれば良いでしょうか

656:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 18:16:25.10 .net
好きにしたまえ。

657:片山博文MZ ◆T6xkBnTXz7B0
16/01/18 18:20:32.09 .net
今日の勉強会は休みにします。

658:takasi
16/01/19 12:56:45.26 .net
おはようございます、課題ですがまだ終わっていません
朝からずっとコードとにらめっこしていたのですが
これらがどういう動きをしていてどう使うのかが理解できませんでした
前回のじゃんけんゲームの時もでしたが、課題の難易度に対して自分の能力が全く追い付いていないと強く感じました
このままでは分からない事がある度に片山先生の言葉ををただコピペするだけで
理解せずに無駄な時間を過ごしてしまうことになってしまいそうです。
僕は>>141で言いましたとおり、頭の出来がよくありません。理解するのに普通の人より時間がかかります
分からないことだらけの今、その度に片山先生に聞いていては先生にも僕にも負担になってしまうと思います
僕に今必要なのは基礎で、それを身につけることでやっと先生の授業にちゃんと付いていけるのではないかと思います
僕のためにプログラムを書いて頂いたり、画像や音声ファイル等も用意して頂いたり、色々教えて頂き片山先生には本当に感謝しています
GUIのアプリを作るのは楽しかったです
しかし、今のままでは辛いのでしばらく授業をお休みさせていただきます
初学者向けの本でしっかり勉強してから復帰したいと思います
応援してくださった方、片山先生、その他の先生方、本当にありがとうございました
またいつか戻ってきます、パワーアップしたたかしで・・・

659:片山博文MZ ◆T6xkBnTXz7B0
16/01/19 16:58:30.49 .net
ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]・2ch.net
スレリンク(tech板)

660:仕様書無しさん
16/01/19 21:48:06.50 .net
~ 完 ~

661:takesi
16/01/20 00:10:51.81 .net
では私のスレにしてよろしいでしょうか

662:片山博文MZ ◆T6xkBnTXz7B0
16/01/20 08:51:17.77 .net
OK

663:仕様書無しさん
16/01/20 09:11:11.90 .net
たかしニートプログラミング本出版までいけよw

664:takesi
16/01/20 13:31:22.23 .net
私はPythonを勉強中です
チュートリアルを読んで条件分岐くらいまではできるようになりました
機械学習に興味があります
先生ご指導よろしくお願いします

665:takesi
16/01/20 13:32:45.56 .net
まずは何をすればいいでしょうか
paizaでDランクは全部解けたレベルです

666:仕様書無しさん
16/01/21 00:04:58.89 .net
こんばんはたかしです、急にやめてすみませんでした
今後の予定ですが、職業訓練校に行くことになりました
入学選考試験が結構難しいので一ヶ月間がんばって勉強しなくてはなりません
頑張ります。たけしさんもがんばってください。

667:仕様書無しさん
16/01/22 00:38:53.36 .net
>>662
先生!!!

668:仕様書無しさん
16/01/22 01:20:09.58 .net
訓練校ならお金もらえながら勉強できてオイシイもんね

669:片山博文MZ ◆T6xkBnTXz7B0
16/01/22 04:46:25.53 .net
私はPythonのことはあまり知りません

670:takesi
16/01/22 13:41:45.47 .net
では、Javaはどうでしょうか
Androidアプリをつくるという目標もあります

671:takesi
16/01/23 00:23:40.54 .net
>>669
先生の得意な言語はなんでしょうか

672:仕様書無しさん
16/01/23 16:15:03.02 .net
     ∧_∧
     ( ゚ω゚ ) JAVAなら任せろー
 バリバリC□l丶l丶
     /  (   ) やめて!
     (ノ ̄と、 i
        しーJ

673:takesi
16/01/23 16:20:00.27 .net
>>672
本当ですか?Java教えてくださいませ

674:t.mourning ◆HeJleJP5y2
16/01/23 16:29:08.94 .net
しょうがないにゃあ…
まずPCの環境教えてね多分windowsかな

675:takesi
16/01/23 16:32:19.93 .net
>>674
ありがとうございます!
開発環境はeclipseです

676:takesi
16/01/23 16:32:40.38 .net
>>674
windowsPCです

677:t.mourning ◆HeJleJP5y2
16/01/23 16:35:56.08 .net
把握
大学でもらった教材使えるな
ちょい探してくる
今のスキルレベルは?

678:t.mourning ◆HeJleJP5y2
16/01/23 16:42:21.05 .net
ちくせうC++とLispのしか見当たんね
まあいいや
流れ
今のスキルの確認

おさらいしながらJavaの基礎一通り

CUI課題

GUI(androidアプリケーション)

Unity導入
こんな感じでおk?

679:takesi
16/01/23 16:47:06.78 .net
おkです
今のスキルレベルは条件分岐がなんとか使えるレベルで
オブジェクト指向は完全に理解していないくらいです
Unityはさわりだけやったことがあります

680:t.mourning ◆HeJleJP5y2
16/01/23 16:50:33.63 .net
まず環境整備しよか
Github知っとる?
Gitやsubversion、CVSとかバージョン管理ソフトでもいいけど。
第一目標:Githubユーザー作ってソース共有できるようにする

681:takesi
16/01/23 16:52:13.27 .net
Github聞いたことがあります
ググってみます

682:t.mourning ◆HeJleJP5y2
16/01/23 16:55:44.75 .net
んじゃ毎回質問は
質問:~~~
と書くから答えるなり調べるなりしてね
答え大体既存の解説サイトのURL下に貼るから答えがわかったらまずそっち見てね。
したらわかんないとこあるだろうから質問タイム
の流れで。
同様に
課題:~~~
とかやるからその辺は臨機応変によろ

683:takesi
16/01/23 16:56:40.06 .net
分かりました!

684:takesi
16/01/23 16:57:21.48 .net
Githubのアカウント作りました

685:t.mourning ◆HeJleJP5y2
16/01/23 17:03:43.38 .net
バージョン管理とは
複数人で同じものを編集する(wikiなんかをイメージしてね)時に
編集が衝突(同時に同じ個所を編集しようとすること)したときに
整合性を保ったり
昔の履歴を見たいといったときに対応するためだったりのために管理すること
バージョン管理ソフトとは
そのためのソフトウェア
いろいろ実現方法の違いでソフトウェアが違う。
今有名なのはGitやsubversion
Gitとは
バージョン管理ソフト
こまけぇことはいいんだよ
Githubとは
Gitでファイル保存してくれるファイルサーバーとか思っとけばいいよ

686:takesi
16/01/23 17:10:03.93 .net
なるほど
Gihubは英語ばかりで使うのが難しいです
なんせ中学生レベルの英語しかわからないもので

687:t.mourning ◆HeJleJP5y2
16/01/23 17:13:15.24 .net
最初のうちしかサイトは見ないからがんがれ
↓にリポジトリ(ファイルのひとまとまりになったディレクトリみたいなもん)作った
URLリンク(github.com)
まずアクセスしてみて

688:takesi
16/01/23 17:15:07.04 .net
アクセスしました
…どうすればいいのでしょうか?

689:t.mourning ◆HeJleJP5y2
16/01/23 17:17:53.97 .net
右側にDownload ZIPってあるはず
そこでファイルをダウンロード
→解凍してhello.batをダブルクリック(怖かったらしないほうがいいバッチファイルわかんないだろうし)
なんにせよこれでファイルを共有できることを感じてもらえればおk

690:takesi
16/01/23 17:20:28.26 .net
できました
少し感動

691:t.mourning ◆HeJleJP5y2
16/01/23 17:23:11.40 .net
じゃあそれをeclipseでできるようにします。
課題:「eclipse github」などで検索しeclipseでgithubにアクセスする方法を調べよ
調べるまででおk
多分どっかで詰まるからやるのは一緒に

692:takesi
16/01/23 17:25:29.62 .net
調べて概要は理解しました

693:t.mourning ◆HeJleJP5y2
16/01/23 17:28:24.11 .net
eclipseを開きます
バージョンを確認してね
起動画面にheliosとかjunoとか書いてあるから
したら↓参照
URLリンク(rough-and-ready-co-jp.blogspot.jp)

694:takesi
16/01/23 17:35:17.34 .net
EGitというのが見つからないのですが
Eclipse Github 統合(タスク・フォーカス・インターフェース)
というのをインストールすればよいのでしょうか?
バージョンはMarsでづ

695:t.mourning ◆HeJleJP5y2
16/01/23 17:47:45.25 .net
作業対象に入れたURL教えて

696:takesi
16/01/23 17:51:24.67 .net
Mars - URLリンク(download.eclipse.org)

697:t.mourning ◆HeJleJP5y2
16/01/23 17:56:06.84 .net
重すぎ…
多分
Eclipse Gitチームプロバイダー
無印のやつ

698:takesi
16/01/23 18:00:40.17 .net
分かりました
インストールします

699:takesi
16/01/23 18:06:29.46 .net
コミットするというのがよく分かりません
ファイルを選択してもコミットボタンが押せません
どこかで誤ったのでしょうか

700:t.mourning ◆HeJleJP5y2
16/01/23 18:13:08.10 .net
コミットはちょい待って今環境整備中

701:t.mourning ◆HeJleJP5y2
16/01/23 18:17:01.55 .net
今から秘密鍵送る
捨てアド作ってさらして

702:t.mourning ◆HeJleJP5y2
16/01/23 18:20:15.57 .net
コミットとは
自分が更新・追加したのをGitに伝えること
これ更新したからって宣言するようなこと
プッシュとは
コミットした差分をリモートに送ること
ファイルサーバーにアップロードするようなこと
チェックアウトとは
リモートのファイルを持ってくること
ダウンロードと思えばいい

今はチェックアウトしかできないはず

703:仕様書無しさん
16/01/23 18:26:23.42 .net
wuzhaiteng3@gmail.com
秘密鍵とは何に使うのですか?

704:takesi
16/01/23 18:27:19.46 .net
つまり今はコミットしなくていいってことですね

705:t.mourning ◆HeJleJP5y2
16/01/23 18:32:22.39 .net
課題にしよか
課題:暗号を送る方法
例えば手紙をある人に送るが途中で覗き見られても
中身がばれないようにする
を一つ考えよ

706:takesi
16/01/23 18:36:58.49 .net
共通の決まりを作っておいて暗号化してそれを送る

707:t.mourning ◆HeJleJP5y2
16/01/23 18:37:12.31 .net
秘密鍵とは
秘密鍵暗号方式の共通キーもしくは
公開鍵暗号方式のペアキーのうち受信側が持つ鍵
公開鍵暗号とは
ある文章を二つのペアーの鍵によって安全に送信する方法のひとつ
1.受信者は公開鍵と秘密鍵のペアを作る
2.公開鍵を文字通り公開する
3.文章の送信者は公開鍵を用いて暗号を作る
4.暗号を送信する
5.受信者は秘密鍵を用いて暗号を複合(解読)する
このとき公開鍵では暗号を作れるが複合はできない
秘密鍵は複合できる
ということが保証されている
細かい原理は省略

708:t.mourning ◆HeJleJP5y2
16/01/23 18:40:01.85 .net
その答えは秘密鍵(共通鍵)暗号方式やね
今回使うのは↑の公開鍵暗号
URLリンク(qiita.com)
参照

709:takesi
16/01/23 18:40:04.52 .net
なるほど
どうやって使うのですか?

710:takesi
16/01/23 18:40:37.00 .net
理解しました

711:t.mourning ◆HeJleJP5y2
16/01/23 18:47:04.95 .net
秘密鍵の設定
eclipseの
ウィンドウ→設定を押す
一般→ネットワーク接続→SSH2を選択する
一般タブの秘密鍵に今送った秘密鍵を設定する
Gitリポジトリの設定
ウィンドウ→パースペクティブを開く→その他を選択する
Gitリポジトリ・エクスプローラーを選択する
Gitリポジトリの「複製」を選ぶ
URIを選ぶ(ここら辺違うかも)
URIに「git@github.com:tamochu/neet1programming.git」を入力(コピペでおk)
プロトコルにsshを選ぶ
次へを選ぶ

712:takesi
16/01/23 19:00:42.05 .net
途中でよく分からないメッセージが出てきましたが
多分出来たと思います

713:t.mourning ◆HeJleJP5y2
16/01/23 19:08:25.61 .net
eclipseのJavaパースペクティブで
neet1programmingプロジェクトが表示されていれば成功
プロジェクトを右クリックして
チーム→プル
Exam1.javaが出てくると思う
そこに
課題:1~100を足すプログラムを書きなさい

714:t.mourning ◆HeJleJP5y2
16/01/23 19:16:03.07 .net
できたらお待ちかねのコミット→プッシュ
といってもプルと同じように
チーム→コミット
を押して更新のあるファイルを選択したら
「Commit and push」を選ぶだけ

715:takesi
16/01/23 19:19:42.71 .net
Javaパースペクティブとはどこでしょうか
これは成功しているのでしょうか
スマホからなので直撮りですみません
URLリンク(i.imgur.com)

716:t.mourning ◆HeJleJP5y2
16/01/23 19:23:13.47 .net
あ、チェックアウトしてないや
Gitリポジトリのneet1programmingを右クリック
プルを選択
いろいろ聞かれるけど次へか完了でおk

717:仕様書無しさん
16/01/23 19:29:07.16 .net
完了しました
変化はありません
どうすればいいのでしょうか

718:t.mourning ◆HeJleJP5y2
16/01/23 19:29:20.48 .net
もしくはインポートしてないって可能性もあるか
Gitリポジトリのneet1programmingを展開
作業ディレクトリを右クリック
プロジェクトのインポート既存のプロジェクトのインポートを選んで次へ
neet1programmingをチェックして完了

719:仕様書無しさん
16/01/23 19:36:31.53 .net
できました

720:t.mourning ◆HeJleJP5y2
16/01/23 19:37:04.63 .net
どこまでー?

721:takesi
16/01/23 19:42:07.60 .net
Exam1,2 を出すまでできました
今から課題に取り掛かります

722:t.mourning ◆HeJleJP5y2
16/01/23 19:44:45.11 .net
ガンバ
もうすぐ飯落ち
課題作っとくからいない間気が向いたら解いてね

723:takesi
16/01/23 19:47:44.85 .net
久々にJAVAで書いたので思ったよりてこずりました
今からコミットします

724:takesi
16/01/23 19:49:38.41 .net
あれ?コミットできません
コミットボタンが押せない状態です

725:t.mourning ◆HeJleJP5y2
16/01/23 20:05:54.65 .net
コミットメッセージを入力する

726:takesi
16/01/23 20:18:14.88 .net
できました

727:takesi
16/01/23 20:33:02.01 .net
Exam2も完了しました

728:t.mourning ◆HeJleJP5y2
16/01/23 20:53:35.93 .net
戻りました
プッシュできてないっぽいかな
プロジェクトを右クリック
チーム→アップストリームへプッシュ

729:takesi
16/01/23 20:56:31.15 .net
やってみました
どうでしょうか

730:takesi
16/01/23 21:02:43.99 .net
新しいExamをEclipseに取り入れるにはどうすればいいのでしょうか?

731:t.mourning ◆HeJleJP5y2
16/01/23 21:03:57.35 .net
うーん来ない
TeamViewerで画面見せてもらていい?

732:t.mourning ◆HeJleJP5y2
16/01/23 21:05:35.97 .net
取り込みはプル

733:takesi
16/01/23 21:11:45.17 .net
了解しました
TeamViewerはちょっと…すみません

734:takesi
16/01/23 21:12:31.88 .net
よく分からなくて怖いんで

735:t.mourning ◆HeJleJP5y2
16/01/23 21:16:17.58 .net
じゃあ問診で行こう
コミットもう一度できる?

736:takesi
16/01/23 21:17:08.04 .net
できません

737:t.mourning ◆HeJleJP5y2
16/01/23 21:21:13.76 .net
じゃあコミットはちゃんとできてるな
アップストリームにプッシュはもう一度できる?

738:takesi
16/01/23 21:22:44.05 .net
やってみました

739:t.mourning ◆HeJleJP5y2
16/01/23 21:25:43.12 .net
エラーメッセージとか出た?

740:takesi
16/01/23 21:33:30.13 .net
こんなのが出てOK押してもなんともなりません
URLリンク(i.imgur.com)

741:t.mourning ◆HeJleJP5y2
16/01/23 21:35:22.82 .net
ああ、それ出てんのか
対処法忘れたからちょい待ってね

742:t.mourning ◆HeJleJP5y2
16/01/23 21:38:31.49 .net
プロジェクトを右クリック
チーム→アップストリームからフェッチしてみて
そしたら
チーム→ワークスペース同期化
出てきた画面で全部のファイル選んで右クリック
マージ済みとしてマーク
終わったらもっかいプッシュ

743:t.mourning ◆HeJleJP5y2
16/01/23 21:39:38.58 .net
ワークスペース同期化の前に
チーム→マージ
忘れてた

744:takesi
16/01/23 21:42:28.46 .net
ここからどうすればいいのでしょうか
URLリンク(i.imgur.com)

745:t.mourning ◆HeJleJP5y2
16/01/23 21:44:39.16 .net
何もフェッチできないんだったら
今度は
チーム→リベース

746:takesi
16/01/23 21:50:13.14 .net
下の項目2つともにチェックを入れればいいんですか?

747:takesi
16/01/23 21:51:43.52 .net
うーん…よく分かりません

748:t.mourning ◆HeJleJP5y2
16/01/23 21:52:34.16 .net
チェック?入れると来ないと思うが
しいて言うならリモートトラッキングのorigin/master

749:t.mourning ◆HeJleJP5y2
16/01/23 21:53:11.24 .net
×と来ない
○所ない

750:takesi
16/01/23 21:57:56.98 .net
こんな画面です
URLリンク(i.imgur.com)

751:t.mourning ◆HeJleJP5y2
16/01/23 22:04:43.11 .net
URLリンク(imgur.com)

752:takesi
16/01/23 22:06:10.16 .net
その通りになりません

753:takesi
16/01/23 22:07:21.59 .net
リベース結果
HEADはすでに最新の状態のためリベースは何もしませんでした
と出ます

754:t.mourning ◆HeJleJP5y2
16/01/23 22:08:41.92 .net
どっちもチェック入れないでやってみて

755:takesi
16/01/23 22:10:23.36 .net
そうすると>>753になります

756:t.mourning ◆HeJleJP5y2
16/01/23 22:11:31.49 .net
よしもっかいチェックアウトからやり直したほうがいいな
問題解いたファイルをどっかにコピーしといて
プロジェクトを右クリック→削除
Gitリポジトリ・エクスプローラーで右クリック→リポジトリの削除
終わったらもっかいGitの複製→インポート
その後コピーしといたファイルで上書きしてコミット→プッシュ

757:takesi
16/01/23 22:16:28.78 .net
やってみても以前と同じ状態になってコミットできません

758:t.mourning ◆HeJleJP5y2
16/01/23 22:23:26.30 .net
削除の時に出るチェックボックスチェックつけてもっかいお願い

759:takesi
16/01/23 22:26:55.43 .net
全てにチェック入れても再び行うと元の状態に戻っています

760:t.mourning ◆HeJleJP5y2
16/01/23 22:36:25.51 .net
チーム→切断
チーム→プロジェクトの共有
Git
URLリンク(imgur.com)

761:takesi
16/01/23 22:39:26.70 .net
やりました
次にどうすればいいのでしょうか

762:t.mourning ◆HeJleJP5y2
16/01/23 22:40:17.85 .net
またコミット→プッシュしてみて

763:takesi
16/01/23 22:41:20.53 .net
…(;´Д`)ウウッ…
できません

764:takesi
16/01/23 22:46:42.65 .net
teamviewer使ってみます
ID送ります

765:t.mourning ◆HeJleJP5y2
16/01/23 22:49:23.02 .net
プロジェクトを右クリック
プロパティでプロジェクトの置き場所確認してください

766:takesi
16/01/23 22:52:52.47 .net
送りました
操作できますか?

767:takesi
16/01/23 23:01:01.71 .net
これからの変更はコミットすれば届くのでしょうか

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

769:t.mourning ◆HeJleJP5y2
16/01/23 23:03:21.86 .net
そうです
またnon-fast-forwardと出たら
1.プルして再度コミット→プッシュ
2.フェッチしてマージして再度コミット→プッシュ
が原則です

770:takesi
16/01/23 23:05:45.39 .net
分かりました!
とりあえずGithubでファイルが共有できるまでになりました
自分で課題を進めていきます
今日はありがとうございました

771:takesi
16/01/23 23:07:06.59 .net
私は学生で受験生なので低浮上になるかもしれませんがよろしくお願いします
3月中頃から春休みで本格的に勉強ができますが、それまでもできるだけ毎日顔を出したいと思います

772:t.mourning ◆HeJleJP5y2
16/01/23 23:07:49.55 .net
乙です
次の課題用意+講義内容まとめときます
わかんないとこあったらカキコよろです

773:takesi
16/01/23 23:13:32.30 .net
わざわざありがとうございます
期待に沿えるよう頑張ります

774:takesi
16/01/24 13:30:33.40 .net
おはようございます
課題に取り組みます
特に配列の理解が甘いみたいなのでググりながら解いていきます

775:takesi
16/01/24 14:34:23.47 .net
Exam4,7以外は終了しました
コミット完了です

776:takesi
16/01/24 17:10:58.24 .net
いま確認したらコミットできてませんでした
なぜだろう

777:takesi
16/01/24 17:16:19.68 .net
昨日のことを思い出しながら闇雲にボタン触ってたら出来ました
こんなんでいいのやら

778:t.mourning ◆HeJleJP5y2
16/01/24 17:45:37.57 .net
うごきゃあいいんだよ

779:takesi
16/01/24 18:15:09.77 .net
Exam4,7は分かりません
他の問題もググりながら解きました
難しいですね

780:t.mourning ◆HeJleJP5y2
16/01/24 19:48:15.04 .net
じゃあ4,7のヒント出す
4
「abcdefghijklmnopqrstuvwxyz .,-」
をcharの配列で持つ
charを渡してその配列の何番目の文字(int)か調べる(関数化するとよい)
暗号の文字列を上の処理を使ってintの配列に直す
その配列すべてに同じ数xを足す
30(文字の種類数)を超えたものは30を引く
intの配列をまたcharの配列に戻す
charの配列中に「person」の並びがあるか調べる
並びがあればその並びが正解
このような数xを探す
7
たらいまわし関数とは
まずxとyを比較し
yのほうが大きければ
return y;
そうでなければ
int newX = tarai(x-1, y, z);
int newY = tarai(y-1, z, x);
int newZ = tarai(z-1, x, y);
return tarai(newX, newY, newZ);
する関数。

781:t.mourning ◆HeJleJP5y2
16/01/24 19:56:30.87 .net
今日はどれやりたい?
関数について
オブジェクト指向について
パッケージとアクセス修飾子について

782:takesi
16/01/24 20:17:01.44 .net
オブジェクト指向についてお願いします

783:t.mourning ◆HeJleJP5y2
16/01/24 20:32:16.57 .net
把握
関数については知ってるものとしてやるよー
オブジェクト指向とは
URLリンク(nobuo-create.net)
よく言われるのはものを基準にプログラミングを考えるということ
生徒というオブジェクトを考える
生徒には名前と学年という情報(もっとあるがここでは省略)がある
3人の生徒
takesi:1年生
John:2年生
Suzuki:3年生
がいた場合
オブジェクト指向を使わないでこの情報を持つとしたら
String[] names = new String[]{"takesi", "John", "Suzuki"};
int[] grades = {1, 2, 3};
とかやるわけだが、一人の情報は一人の情報でまとめて持っておきたい
そのためJavaではクラスというものを使ってオブジェクトを作る
その場合以下のようになる
class Student {
String name;
int grade;
};
Student students = new Student[3];
Student takesi = new Student;
takesi.name = "takesi";
takesi.grade = 1;
students[0] = takesi;
…以下略

784:t.mourning ◆HeJleJP5y2
16/01/24 20:39:19.09 .net
この一つのオブジェクトに属する情報は一つのオブジェクトに持たせる
というのがカプセル化とか呼ばれるオブジェクト指向に必要な要素を実現させる
カプセル化とは
学年ではなく中身では生年月日とかで情報を持っているけど
その情報は教えずに何学年かという情報だけ教えたいということがある
このとき外部から不必要な情報(今の例では生年月日)は直接アクセスできず
アクセスが許可されている情報(今の例では学年)にのみアクセスできると
情報の安全性を保つことができる
このように情報を内部に持つこと(および外部からアクセスできる情報とできない情報を管理すること)
をカプセル化という
今回は学年と年齢という情報がカプセル化されたことになる

785:takesi
16/01/24 20:43:43.29 .net
関数は概要は理解していますが
Pythonで理解したのでコードはかけません
そこは自習します

786:t.mourning ◆HeJleJP5y2
16/01/24 20:46:55.26 .net
今クラスの中には名前と学年の変数(情報)がある
生徒というオブジェクトには名前を名乗るというメソッド(行動)が可能であるとしよう
その場合
class Student {
String name;
int grade;
String getName() {
return "My name is " + name;
}
}
などとしてやれば生徒オブジェクトに自己紹介をさせることが可能になる
このようにカプセル化では変数だけではなく関数も内部に持たせることができる

あ、あとでまとめてStudentクラスコミットするから細かいとこ気にしなくていいよ

787:t.mourning ◆HeJleJP5y2
16/01/24 20:53:04.61 .net
以上のように情報を持ち行動が規定されているものをプログラミングでは
カプセル化されたオブジェクトという
課題:Studentクラスを参考にしながらTeacherクラスを作成せよ
ただしTeacherクラスは名前と担当教科の情報を持ち
授業の最初に挨拶「おはようございます。(教科名)の授業を始めます」する行動
ができるものとする

788:t.mourning ◆HeJleJP5y2
16/01/24 21:01:51.47 .net
コミットした
プルしてね

789:takesi
16/01/24 21:22:43.18 .net
コミットしました
書経のような感じでしたが
理解できるように考えながらコードを書きました

790:t.mourning ◆HeJleJP5y2
16/01/24 21:25:44.45 .net
いい感じ
続いて
課題:Teacherクラスにも自己紹介「My name is ~~~」するメソッドを追加せよ

791:t.mourning ◆HeJleJP5y2
16/01/24 21:32:11.02 .net
やってる間に次の話題書いとく
ここでTeacherクラスにもStudentクラスにも
name変数
が存在し、
getName関数
が全く同じ内容で存在することに気付く
これは何度も書くのは無駄無駄無駄ァ
これはなぜか考えると
生徒も教師も人である
人だから名前を持っている
また自己紹介もする
ということは生徒も教師も
name変数
を持ち
getName関数
を持つHumanクラスという風に考えられる
Javaではこれを
class Human {
String name;
String getName() {
return "My name is "name;
}
}
class Student extends Human {

}
のようにする
これを継承という

792:t.mourning ◆HeJleJP5y2
16/01/24 21:37:04.19 .net
継承とは
基本となるクラス(基底クラス・親クラス)から
それらの要素を引き継いだ新しいクラス(派生クラス・子クラス)
を作ること
派生クラスでは基底クラスのメソッド以外に派生クラスで独自に追加した
変数やメソッドを利用できる
また基本となるクラスには(基本的に)制限はなく
派生クラスの派生クラスといったものも作れる

793:takesi
16/01/24 21:39:40.63 .net
>>769の通りにしているはずがコミットできません

794:t.mourning ◆HeJleJP5y2
16/01/24 21:43:37.56 .net
ウボァ
プルした?
そのあとアップストリームへプッシュした?

795:takesi
16/01/24 21:45:55.85 .net
アップストリームにプッシュすると
non-fast-forward
と出てきます

796:t.mourning ◆HeJleJP5y2
16/01/24 21:48:17.04 .net
うーん
マージは?

797:takesi
16/01/24 21:49:39.92 .net
マージすると
結果 失敗
とでます

798:t.mourning ◆HeJleJP5y2
16/01/24 21:51:26.62 .net
じゃあリベースは?

799:takesi
16/01/24 21:56:40.77 .net
いじってたらしばらくして
HEAD はすでに最新の状態のためリベースは何もしませんでした
と出ました

800:takesi
16/01/24 21:57:58.93 .net
いきました!
リベースのリセット?のあとプッシュでいけました

801:t.mourning ◆HeJleJP5y2
16/01/24 21:59:14.89 .net
あ、きたね
じゃあ続き
Humanのクラスコミットすんね

802:t.mourning ◆HeJleJP5y2
16/01/24 22:06:13.73 .net
pullよろ
Humanクラスについてもう一つ考えてみよう
人間には性別というものがある
そこで
課題:Humanクラスにgender(性別)メンバー(変数)を追加し
それを設定する関数setGenderと取得する関数getGenderを追加せよ
その後Studentクラスの自己紹介でgetGenderせよ

803:takesi
16/01/24 22:09:37.55 .net
うーむ、難しい
時間がかかりそなので宿題ということで考えておきます

804:takesi
16/01/24 22:12:00.79 .net
>>771の通り学業が忙しため平日はあまり時間が取れません
受験が終われば時間が取れるようになるのですが…

805:t.mourning ◆HeJleJP5y2
16/01/24 22:14:06.78 .net
了解
次はオブジェクト指向の続きからね
流れ
継承

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

継承その2(仮想関数)

テンプレートクラス

アクセス修飾子
それとは別に演習作っとく

806:t.mourning ◆HeJleJP5y2
16/01/24 22:14:55.55 .net
ゆっくりで構わんよ
っていうか自分も平日疲れてすぐ寝るからそのほうがありがたい

807:仕様書無しさん
16/01/24 22:55:35.64 .net
なにこのスレすごい
あとで読み返してみる

808:仕様書無しさん
16/01/25 01:05:24.47 .net
String[] names = new String[]{"takesi", "John", "Suzuki"};
int[] grades = {1, 2, 3};
のほうがはるかに合理的 データ0番、1番、2番って番号で管理できる
Suzukiが5人いたとしても番号が一意で分かれているから混同もしない
人間クラスから派生して生徒、教師ってのも変 役割が根本的に違うのだからそれぞれ別でいい
学校クラスがないのも変だな~ 学校クラスにそれぞれの生徒と教師がメンバとしているはずだ

809:takesi
16/01/25 02:04:03.82 .net
眠れないので課題やってみました
全く分かりません
どこからの知識が抜けてるのやら
Teacherクラスをコピペ改変したようなコードしか書けませんでした

810:takesi
16/01/25 02:09:44.46 .net
どこを勉強すればいいのでしょうか
今日はまとまった時間が取れそうなので勉強します

811:t.mourning ◆HeJleJP5y2
16/01/25 22:04:30.90 .net
あれで問題ない
最初はまねて
次は少し変えてみて
最後に自分で書けるようになればいい
Exam4穴埋め式にした
何か好きなパズルとかある?それ題材にする

812:takesi
16/01/25 22:08:34.00 .net
あれでいいんですか?!自身なかった
自分で書けるのか不安だったけど安心しました
あんまりパズルはしませんが…
クロスワードはやったことあります

813:t.mourning ◆HeJleJP5y2
16/01/25 22:09:29.88 .net
クロスワードはちょっと向かないなぁ
数独とかカックロとか数字しか使わない系で

814:takesi
16/01/25 22:14:32.67 .net
数独はやったことあります

815:takesi
16/01/25 22:28:17.49 .net
Exam4難しい‥
ちんぷんかんぷんです

816:t.mourning ◆HeJleJP5y2
16/01/25 22:31:44.49 .net
じゃあオーソドックスに数独にしとこうか
平日は演習問題の形でコミットするからそれとくような感じで
休日が昨日みたいな感じで
最初は強く当たって後は流れで

817:takesi
16/01/25 22:37:43.22 .net
了解しました

818:takesi
16/01/25 22:47:49.69 .net
Exam4は分かりません
どこか復習が必要でしょうか

819:t.mourning ◆HeJleJP5y2
16/01/25 23:00:28.78 .net
じゃあそれは飛ばして答えコミットする
土曜はそれの解説からね

820:t.mourning ◆HeJleJP5y2
16/01/25 23:01:26.95 .net
できたとこまででいいからコミットしてくれたらヒント書いて返す

821:takesi
16/01/25 23:09:04.26 .net
全く手を付けられませんでした

822:仕様書無しさん
16/01/26 09:52:55.08 .net
すみません

C言語ができれば

ずっと食べていけますかね?
android からwindows のソフトまで作れますよね???

823:仕様書無しさん
16/01/28 20:55:55.34 .net
なにこれ、本気で教育が始まってるの?

824:takesi
16/01/30 19:17:22.28 .net
受験との両立をしようと思っていたのですが
学校も忙しくなり受験も追い込み時期になったことで余裕がなくなってしまいました
3月12日から再開させてもらってもよろしいでしょうか

825:t.mourning ◆HeJleJP5y2
16/01/30 21:08:54.99 .net
ええよ
スレなくなってたら建ててな

826:takesi ◆5LQe9dJ7ck
16/01/30 21:24:27.65 .net
ありがとうございます
3月12日にもどってきます
トリップつけときます

827:仕様書無しさん
16/01/31 08:57:35.56 .net
>>208
ベクターとかストアに作品のせれば経験になりますか?

828:takesi ◆5LQe9dJ7ck
16/03/12 07:28:09.90 .net
おはようございます
今日から再開お願いします
課題に手を付けます

829:仕様書無しさん
16/03/12 11:53:24.79 .net
>>828
まずは空白期間に身に付けたスキルを洗い流したまえ

830:takesi ◆5LQe9dJ7ck
16/03/12 14:32:39.08 .net
>>829
Unityの基本操作とC#を少々
受験が忙しくてあまり手を付けてません

831:t.mourning ◆HeJleJP5y2
16/03/12 15:38:19.90 .net
再開すんよ
まずExam4の解説からでおk?

832:takesi ◆5LQe9dJ7ck
16/03/12 16:32:09.63 .net
はい、お願いします
Exam10も分かりそうにないです
11、12は今から取り組みます

833:t.mourning ◆HeJleJP5y2
16/03/13 00:22:17.64 .net
ホワイトデーのお返し作ってて遅れた
exam4から

シーザー暗号を解きなさい
まず手で解いてみる
一文字ずつずらしていき中に「person」があれば答え
プログラムで解釈する
1.文字列をn文字ずらす
2.中にpersonが含まれるか調べる
3.含まれていればそれを表示して終了、含まれていなければnに1足して1からやり直し
もう少しプログラムっぽく
for (int n = 0; n < 文字の種類数; n++) {
String text = n文字ずらした暗号;
if (textに「person」が含まれていたら) {
system.out.println(text);
break;
}
}
これを実装していくことになる

834:t.mourning ◆HeJleJP5y2
16/03/13 00:32:35.66 .net
・文字の種類数
まず文字のchar配列を作っておく
そうすることでずらす処理や文字種数を取得するのに便利になる
static final char[] chars = {
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','.',',','-'
};
そうしたうえで配列の要素数はlengthで取得する
つまり
chars.length
・n文字ずらした暗号
文字列を文字ごとに分解して分解した文字をn文字をずらす
もともと暗号文はcharの配列であるので暗号文に対してforで一つずつアクセスし
n文字ずらした文字を取得すればよい
この最中するのが文字種数30より大きくなったaに戻ることを考慮すること
これは30で割ったあまりとすれば解決できる
・textに「person」が含まれていたら
StringにはindexOfというメソッドがありそれによって文字列が含まれているかどうかを調べることができる
indexOfで文字列が含まれていない場合は返り値は-1になる

835:t.mourning ◆HeJleJP5y2
16/03/13 00:39:43.32 .net
Exam10ヒント
数列の状態は
int[9][9]の配列で持とうExam8参照

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

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

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

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

System.out.print()

上は出力したら改行も出力され
下は改行は出力されない
使い分けよう

836:takesi ◆5LQe9dJ7ck
16/03/13 06:51:26.23 .net
すみません昨日は私用で全く課題ができませんでした
今日も19時まで予定があるのでそれ以降に取り組みます
空いた時間に解説理解しておきます

837:t.mourning ◆HeJleJP5y2
16/03/13 20:01:30.22 .net
こっちも今体空いた
次の課題とか用意しとく
終わり次第多態性についてやるよ

838:t.mourning ◆HeJleJP5y2
16/03/13 20:40:52.29 .net
課題1個追加した
プル忘れないでね
多態性についてやるから適当なところで切り付けて

839:takesi ◆5LQe9dJ7ck
16/03/13 20:47:28.57 .net
今やっと私用が終わりました
今から取り組みます

840:仕様書無しさん
16/03/13 20:59:23.27 .net
同じような境遇のものとして応援してます
頑張って

841:takesi ◆5LQe9dJ7ck
16/03/13 21:28:43.66 .net
最近の課題は僕には解けないものが多いのですが、基本がなってないのでしょうか?
やり方は分かるのですがコードに置き換えられません
今日は次の説明をお願いします
明日じっくり課題をやります

842:t.mourning ◆HeJleJP5y2
16/03/13 21:55:33.42 .net
単純に慣れの問題じゃないかな
写経量が少ない
今は調べてパクるだけでいい
そのうちここ変えたらどうなるかなって思ったら
実際やってみて違いを調べたりしてみるとよさげ
じゃあ多態性について
オブジェクト指向の重要な要素の一つ多態性(ポリモーフィズム)
URLリンク(www.nulab.co.jp)
多態性とは
別のオブジェクトに対し同じ関数を定義したいことがある
例えば生徒と教室の二つのオブジェクトがあるとする
この二つは共通の親クラスを持っているわけではない
しかし、両方とも名前(String name)を持っており
名前を取得する共通の関数(getName)を作りたいと思っているとする
この際引数として渡されるオブジェクトによって挙動を変える関数が作ることができる
これを多態性という。
Javaにはオーバーライドとオーバーロードという二つの多態性の実現方法がある。
オーバーライド:二つのオブジェクトが親子(継承の親子)関係にある時親クラスで定義されたものを子クラスで再定義すること
例)HumanクラスとProfessorクラス
class Human {
String name;
String getName() {
return name;
}
}
class Professor extends Human {
String getName() {
return "Prof."+name;
}
}

843:t.mourning ◆HeJleJP5y2
16/03/13 22:04:25.17 .net
オーバーロード:二つのオブジェクトがどのような関係であろうとかまわないが、
同じ関数の引数として違うオブジェクトを渡した際に違う挙動を定義すること
例)ClassRoomクラスとStudentクラス
String getName(ClassRoom classRoom) {
return classRoom.name + " class";
}
String getName(Student student) {
return "student:" + student;
}

以上からわかるように
オーバーライドはメンバー関数のみ
オーバーロードはどのような関数でもできるといった違いがある
今はそのようなものがあると知っておくだけでおk
気づかないうちに使ってて、あとからこれが多態性だったのかってなると思う

844:t.mourning ◆HeJleJP5y2
16/03/13 22:17:48.08 .net
習うより慣れろ
課題: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:仕様書無しさん
16/03/14 08:39:59.84 .net
良スレage

846:仕様書無しさん
16/03/14 11:07:56.73 .net
FJネクスト エフ・ジェー・ネクスト 迷惑勧誘電話7 [無断転載禁止]・2ch.net

スレリンク(estate板)

847:takasi
16/03/14 20:24:33.70 .net
お久しぶりです
職業訓練校のプログラミングコースに合格したので4月から通うことになりました
たけしくん、お互いがんばりましょう

848:仕様書無しさん
16/03/14 20:50:44.53 .net
あげ

849:takesi ◆5LQe9dJ7ck
16/03/14 21:21:45.84 .net
今日も忙しくてできませんでした
疲れたので寝ます
明日で卒業なのでこれからはちゃんと時間が取れるようになります
何度もすみません

850:仕様書無しさん
16/03/15 18:05:56.72 .net
>>847
職業訓練通ってたが明らかに君はそのレベルを超えてるね
多分javaでweb系のアプリ作ったり、androidアプリ作ったりすると思うけど
プログラムなんか言語が違くてもだいたいやることは一緒だからjavaもずっと出来るのかな
まあお金ももらえるし、プログラムだけじゃなくてインターネットの仕組みやらコンピュータの仕組みやらを勉強できるから頑張りな

851:仕様書無しさん
16/03/15 18:06:37.05 .net
javaもずっと→すっと

852:takesi ◆5LQe9dJ7ck
16/03/16 22:28:22.36 .net
だいぶ粘ったのですがExam10,11,12,13は分かりません

853:仕様書無しさん
16/03/16 22:51:23.20 .net
スレにも問題公開していただけませんか?
私も挑戦してみたいです

854:t.mourning ◆HeJleJP5y2
16/03/17 21:08:43.46 .net
URLリンク(github.com)
は公開リポジトリだから勝手に見てね
一応何も書いてない問題のほうをexam/original
に置いたからそっち見るとよいかと思われ

855:t.mourning ◆HeJleJP5y2
16/03/17 21:13:29.04 .net
>>852
あいよじゃあ解説してく
あと次から問題レベル下げたほうがいい?
↑の844の課題はやっといてね
Exam10.part1
9×9のintの配列を用意せよ
Exam10.part2
上の配列をすべて0で初期化せよ。
(厳密には既に初期化されているが明示的に初期化せよ)
まずはここまでやってコミットよろ

856:仕様書無しさん
16/03/18 23:52:52.65 .net
>>854
ありがとさんです

857:takesi ◆5LQe9dJ7ck
16/03/20 10:20:50.34 .net
進学の準備やらで忙しく課題ができませんでした
今日は予定がないので今から取り組みます

858:takesi ◆5LQe9dJ7ck
16/03/20 11:44:15.30 .net
わかる範囲でやってみました
完全に感覚です

859:t.mourning ◆HeJleJP5y2
16/03/20 12:13:26.19 .net
赤入れたからプルしてね
今はこんな感じかなでいい
間違えたほうが経験になるしね

Exam10.part3
できた配列の数字を表示する
→OK

Exam10.part4
各行の始めと終わりに「|」を出力する
System.out.print("|");
を行えばよい。

Exam10.part5
表示する前と後に「+-----------------+」を表示する
System.out.println("+-----------------+");
を行えばよい

次ここまでね

860:takesi ◆5LQe9dJ7ck
16/03/20 13:21:11.96 .net
すみません用事が出来てしまいました
また夕方頃に再開します

861:takesi ◆5LQe9dJ7ck
16/03/20 19:59:56.41 .net
コミットしました

862:t.mourning ◆HeJleJP5y2
16/03/21 11:14:11.62 .net
あとはデータを入れる
Exam10.part6
穴埋め問題にするのでプルして解くこと

Exam10.part7
0はスペースで表示にする
System.out.print(sudoku[a][b] + " ");

if (~~~) {
System.out.print(sudoku[a][b]);
} else {
System.out.print(" ");
}

と変更し~~~を適切な条件句に直しなさい

863:仕様書無しさん
16/03/21 15:48:55.73 .net
懐かしいな
コンソールでオセロとかやったな

864:takesi ◆5LQe9dJ7ck
16/03/21 16:37:59.02 .net
コミットしました

865:t.mourning ◆HeJleJP5y2
16/03/21 18:03:51.60 .net
おk
Exam10はそのまま発展問題にしていくからちょい待ってね

Exam11.part1~3
Exam12.part1~3
課題:数値のソートとは何か調べなさい
課題:数値の配列「4,3,8,1」を小さい順に並べなさい。ただし過程を細かく記述すること。
課題:プログラムでのソートの実装方法を3つ挙げなさい(中身を理解する必要はない)

Exam13.part1
課題:平方根とは何か述べよ

866:t.mourning ◆HeJleJP5y2
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)


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


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch