スレ立てるまでもない質問はここで 135匹目at TECH
スレ立てるまでもない質問はここで 135匹目 - 暇つぶし2ch1:デフォルトの名無しさん
14/04/02 05:58:35.16 rEj4LnC/
質問する前にGoogleで検索しましょう。URLリンク(www.google.co.jp)<)

2:デフォルトの名無しさん
14/04/02 06:23:01.27 IR9ASEpW
        _,rr-―''''¨゙゙゙ ̄ ̄ ̄ ̄ ̄`゙゙゙゙゙゙゙゙''ヘi、、   ,,,,-―---、
      ,r‐'″    ._,,,,             `'lri,!'''″     ゙l
     .,,,″    ,,r'"`  ゙゙l,               ゙ヘ,     |
     !アr,   .l°.ェ'ニ,コ .|                ゚ヘ、    |
       `'i、  .く_,、vr''″ .,                  ゙'i、 .,,/
         ゙X、        ト                   ゙!,゛    .,,r‐--、
   ,、_,、 .,,,,r‐'″        |                    } .,,r‐'^’   .|゜
   め゙゚“゙゙~゛           |                     ̄`     .,l゙
   |                ,i´                       ,l゙
   ゙!、                ,i´                       ,ノ
   .'┐              ,,-°  '=,,                   /`
    .゚!,          ,,,,r'″     ゙┐                 ,l゙
      ゚'r,    .''''"`         │    .,,-''i、          /
       `''x,      .|        |  .,,r'"  .゙┐           ,i´
         ~'ヘi,,,   |           |_,r・″    'ヘ,、         l゙
           `¬--|i,,,,,,,,,,,,,,,,v、r',广        ゙ヘ〟    ,l゙
                `゙'ーぃ--r'″           `'―、,,,,/

3:デフォルトの名無しさん
14/04/02 08:32:30.64 KZ+Yeq8V
>>1

4:デフォルトの名無しさん
14/04/02 11:09:06.92 Sk025Uvy
>>2

5:デフォルトの名無しさん
14/04/02 11:46:37.46 T3/5Epfc
魚が2にいると安心するな

6:デフォルトの名無しさん
14/04/02 18:19:07.01 GAzBy9ej
Windowsのアプリケーション作ろうと思ってアイコンを作ることから始めたんだがbmpからicoに直接拡張子書き換えるやり方だと透明部分作れずに苦戦してる

pngで透明部分作ったやつをicoに直接書き換えても使えないしどうしたらいいんや?

7:デフォルトの名無しさん
14/04/02 18:28:45.87 dFeJg3uF
>>6
アイコン集から探すか、アイコン作成ツールを使え

8:デフォルトの名無しさん
14/04/02 18:39:35.78 GAzBy9ej
>>7
アイコン作成ツール具体的に頼むわ
何か古いのばっかりだし怪しいし

出来れば企業の配布物で

9:デフォルトの名無しさん
14/04/02 18:41:01.33 GOss/mRB
わがままだな君
PNGtoICO使ってるわ

10:デフォルトの名無しさん
14/04/02 18:45:06.64 dFeJg3uF
>>8
イラストレーター
GIMP
Inkscape

11:デフォルトの名無しさん
14/04/02 19:08:46.69 wdgZMuKf
VSの商用版ならイメージエディタついてるんじゃないの

12:デフォルトの名無しさん
14/04/02 19:51:33.93 KV+2KYcT
>>前スレ999

具象クラスを継承できる言語処理系は存在するが、
オブジェクト指向設計をするなら継承すべきではない
という主張だろう。

一理あると思う。

13:デフォルトの名無しさん
14/04/02 19:52:07.00 oWYK+b2/
IcoFX is an award winning professional icon and cursor editor.
Import, export and extract
URLリンク(icofx.ro)

14:デフォルトの名無しさん
14/04/02 20:04:34.25 RiJ6JOya
今の最先端技術って何?

15:デフォルトの名無しさん
14/04/02 20:07:53.28 dFeJg3uF
>>14
LLVMかな?

16:KAC
14/04/02 20:25:56.72 n0Y4xp7b
>>12
そう?
たとえば、具象クラスの中で「ちょっと特別なもの」とか
作るときに派生させたりしない?

17:前スレ991
14/04/02 21:02:05.17 mtW5Dcim
前スレで哺乳類と人間を例にしていた人がいたけど、
分かりやすい説明だったと思う

>>12
まったく、そのとおり

>>16
もちろん、そういった考え方もアリだよ
良く言えば「動くことが最優先」、悪く言えば「動けばそれでいい」という
姿勢は、ソフトウェア設計の初心者ならば、決して責められるものではない

ただし、生産性と高品質の両立を追求するプロフェッショナルであれば、
こういったオブジェクト指向設計に関する些細で深い理解が求められる
その上で、「抽象クラス-具象クラス」という概念を原理/原則として
プロジェクト全体へ強制させるか、あるいは部分的に導入するかを判断する
また、原理/原則として扱うにしても例外を認める柔軟性が必要であり、
その際には「ちょっと特別なもの」と安易に思考停止せず、
その理由をきちんとドキュメント化しておくことで後々の保守に役立てる

18:KAC
14/04/02 21:14:49.21 n0Y4xp7b
>>17
その辺の話はあまり聞いたことが無いのでちょっと詳しく聞きたい。

極端に言えば、「実装のあるメソッドはオーバーライドするな」って事?

19:デフォルトの名無しさん
14/04/02 21:22:39.98 QxJxJeP7
リアルタイム送受信技術について質問です。
SIPのような技術で、ビデオ通話や他のデータの送受信がリアルタイムに出来る、
iOSに組み込める技術や、サービス・ライブラリにはどのようなものがありますか?

20:デフォルトの名無しさん
14/04/02 21:30:08.92 dFeJg3uF
Skype、メッセンジャー、FLASH、HTML5、ストリーミング技術

21:デフォルトの名無しさん
14/04/02 21:43:11.61 GAzBy9ej
>>9 >>10
Thank

22:前スレ991
14/04/02 22:03:33.44 mtW5Dcim
>>18
極端というような単なるコーディング技法/規則というよりも、
クラスと継承(インヘリタンス)とは何か?という形式化(formalizm)の議論における、
以下の集合論を元にしたモデル化の方法論です
・クラスとは(数学における)集合である
・継承とは直和であり、ここで直和とは集合の互いに交わらない
 部分集合への分割を意味する
・ここで集合の要素とは、属性を指す(メソッドではない)
・交わりのある分割とは、いわゆる「多重継承」のことである
出典:
 Dr.Dobb's JOURNAL JAPAN, 1997 October, p69-76
 "is-a"階層のための設計指針 - 論理学の原理を利用してクラスライブラリを改良する
 John A. Grosberg, 訳/岩谷宏

詳しい解説については、「Ruby初心者スレッド Part 51」のレス#981以降にて、
「ブログアンテナのデータ管理」を題材にRubyコードを設計しているので、まずはそちらを参照してください
数百ステップほどの小さなプログラムですが、オブジェクト指向設計を全面的に活用しています

 URLリンク(www.h6.dion.ne.jp) -- UMLクラス図
 URLリンク(www.h6.dion.ne.jp) -- 自動生成ドキュメント
 URLリンク(play.island.ac) -- コード

このクラス図では、斜体(イタリック体)のフォントで書かれたものが抽象クラスであり、
それ以外はすべて具象クラスになります

23:デフォルトの名無しさん
14/04/02 22:19:50.18 MJcrMCO2
>>20
ありがとうございます。

24:KAC
14/04/02 22:20:30.66 n0Y4xp7b
>>22
ごめん。
継承そのものの話は疑問じゃないからいいんだけど、
「具象クラスを継承すべきでない理由」が知りたいここと、
それに付随して、オーバーライドに関してどう考えてるの?ってことが知りたい。

25:デフォルトの名無しさん
14/04/02 22:32:42.99 acz+sXgK
C言語でhello worldって表示させたことがある程度の超初心者なのですが、Androidアプリを作るのにjavaを1日1時間勉強して、どれくらいでアプリ(電卓くらい)を作れるようになるでしょうか。
こんな質問ですみません。

26:デフォルトの名無しさん
14/04/02 22:44:44.63 J8M3uvkQ
hello worldで飽きちゃったならjavaでもhello world作って飽きちゃうかもな。永遠??

27:デフォルトの名無しさん
14/04/02 22:45:54.41 acz+sXgK
>>26
飽きた・・・のと、時間の関係です

28:デフォルトの名無しさん
14/04/02 22:47:47.06 dFeJg3uF
>>25
情報源によるが、1か月くらい

情報源と開発環境選びが重要

29:デフォルトの名無しさん
14/04/02 22:54:01.86 wdgZMuKf
電卓というのがどういうのをイメージしてるかにもよると思うが

そもそも hello world で止まったという前科があるなら
すんなり予定通りいくとも思えん

30:デフォルトの名無しさん
14/04/02 22:54:41.46 acz+sXgK
>>28
なるほど。確かに情報はたくさんありますね。新しいものも古いものも

31:前スレ991
14/04/02 23:29:24.65 mtW5Dcim
>>24
>「具象クラスを継承すべきでない理由」が知りたいここと、

前スレで哺乳類と人間を例にした説明があったけど、
それでは分からなかったのかな?
哺乳類や人間はオブジェクト指向的にはクラスであり、
たとえばKACという人物は人間クラスをインスタンス化したオブジェクトになる
では、哺乳類クラスをインスタンス化したオブジェクトとは具体的には何になるか、
答えられるかな?

>それに付随して、オーバーライドに関してどう考えてるの?ってことが知りたい。

サブクラス(抽象クラスまたは具象クラス)でのオーバーライトは普通にありうる

特徴的なのは、抽象クラスではメソッドのインターフェイス仕様だけを定義し、
その実装(メソッドの本体コード)は具象メソッドで定義するケースがある
たとえば>>22のRubyコードの場合、SubclassResponsibility という例外を発生させる
抽象クラスのメソッドは、その具象クラスでメソッドを実装することを前提にしている

32:KAC
14/04/03 01:50:15.11 fnhS44Zb
>>31
何か話が微妙にずれてるような気もするので確認も兼ねて。

人間クラスが実装可能で、哺乳類が実装不可能なクラスとする。
ここまでは認識はあってると思う。

で、例えば日本人だけ特別な振る舞いを実装しようとすると、
人間クラスから日本人クラスってのを作らないの?
この場合は、哺乳類から派生させろっていってる?
それとも、人間を抽象クラスにして日本人とその他のクラスを作れっていってる?

33:デフォルトの名無しさん
14/04/03 02:42:59.73 33W52+bt
日本人の特徴をクラス側で規定するべきか、インスタンス側で規定すべきか
とか考えると、そもそも人間というものをクラス側で規定しなければいけないのか、とか。
昨今はイベントリスナとかデリゲートとかラムダ式なんかあるから、インスタンスも弄り放題だわw

34:デフォルトの名無しさん
14/04/03 03:30:20.00 kyxapxsT
一人でやるなら、オブジェクト指向ではなく、それをどうやって使うかのRUPやOMTを学んだほうがいいと思う。

35:デフォルトの名無しさん
14/04/03 04:55:22.23 09eRPTHm
javaってC++のmap,vectorみたいなのある?

36:デフォルトの名無しさん
14/04/03 07:54:56.53 DqBt0M+X
JDK 1.5のバージョンからGenericsが導入されました

37:デフォルトの名無しさん
14/04/03 08:25:35.61 9rp45yLz
vectorはArrayList
mapは厳密に言えばTreeMap
でも実際はHashMapで事足りませんか?

38:デフォルトの名無しさん
14/04/03 10:27:52.76 6MrGfLaq
>>32
多分最後の「人間も抽象クラスに」だと思う
この考え方は分かりやすいし、個人的には同意できる
もちろんこれは、違うアプローチのオブジェクト指向言語を否定するものじゃない

39:デフォルトの名無しさん
14/04/03 11:02:30.72 VPHIj1Nc
C#やJavaだと全てのクラスがObjectを継承してるから具象クラスの継承は避けられないんだよ!と強引にちゃぶ台をひっくり返していくスタイルの奴はいないのか

40:デフォルトの名無しさん
14/04/03 11:05:01.12 33W52+bt
メインシステムの作り方とライブラリの作り方には違う面があって、
ライブラリがデフォルト実装を含む基底クラスを提供することで、ユーザの作業を軽減する場合がある。
まさに具象クラスを継承させるパターンな。

41:デフォルトの名無しさん
14/04/03 11:07:53.38 33W52+bt
インターフェースとしてクラスが機能するなら、
その実装が正統なる具象クラスなのか、具象クラスを継承してるのか、
ファクトリ出身か、ラムダ式ガバガバなのかなんてどうでもいい。

42:デフォルトの名無しさん
14/04/03 11:24:26.41 33W52+bt
論理学で機械的に要素を分離した結果が>>22だとしたら問題があると思う。
Abstract, Counterをわざわざ別クラスにする意味がわからない。
形が似ているというだけの理由でPhotoとContainerのURL情報が同一視されているように見える。
~sクラスにCollectionクラスつなげるなら、Storeにも格納方式を明示するクラスつけるべき。

つまり、抽象度の高いクラスと低いクラスとがごちゃまぜになってる。
全体を俯瞰するような抽象度で見る場合、Abstract, Counter, Collectionは場違いだ。詳細設計の方へ書くべきだろう。

43:デフォルトの名無し
14/04/03 11:31:52.05 TSL6Z3ix
プログラミングの勉強をしたいのですが、作りたいものは決まってます。

ある座標に画像Aがあります。
その画像Aはリアルタイムにランダムに色が切り替わってるとします。
その画像に赤色が表示されたときのみ、別の座標にある①ボタンと、また別の座標にある②のボタンを①→②とミリ秒単位で押してくれるプログラムです。

このプログラムを作りたい場合どの言語が向いているのでしょうか教えて頂けたら嬉しいです。

44:デフォルトの名無しさん
14/04/03 11:35:19.65 oR9W3V4C
>>38
> 多分最後の「人間も抽象クラスに」だと思う
> この考え方は分かりやすいし、個人的には同意できる

それって、
class AbstructPerson {}
class Japanese extend AbstructPerson {}
class Person extend AbstructPerson {}
にしろってこと?
「人間クラス」にはwork(), eat(), sleep()メソッドがある場合(日本人だけsleep()の内容がちょっとちがう)、
そのメソッドはどこに実装するの?

45:KAC
14/04/03 12:12:03.45 fnhS44Zb
前スレ991氏の見解も聞きたい所だけど、まずは
>>38

最後の「人間も抽象クラスに」だとすると、
結論としては
 ・派生して振る舞いが変わるメソッドは純粋仮想にする
って事が要求されている事にもなると思う。
将来の派生含めてそんな実装にするのはナンセンスだし、
そもそもそれが正しければメソッドのオーバーライドなんて不要になる。。。

46:片山博文MZジェバンニ ◆T6xkBnTXz7B0
14/04/03 12:18:03.48 lJqirrU9
>>43
VB, C#, C言語, C++あたりだと思います。
Windowsだったら、おそらくSetCursorPos, mouse_event,
SendInput, GetDesktopWindow, GetDC, GetPixel, ReleaseDCなど
を使うことになると思います。

47:デフォルトの名無しさん
14/04/03 12:19:51.23 09eRPTHm
そんなのならuwscで十分

48:デフォルトの名無し
14/04/03 12:41:58.60 TSL6Z3ix
>>46
>>47
御二方ありがとうございます。
ここに書き込む前に調べておそらくこれだろう
と思っていたのがC言語とソフトのuwscでした。
相談する人間が周りにいないので不安でしたが
自信を持てましたのでその二つを中心に勉強します。
ありがとうございました。

49:デフォルトの名無しさん
14/04/03 13:00:42.43 qn3etvPE
>>44
38だけど、その例だと、人間クラスでそれらのメソッドを定義する
けど人間クラスのインスタンスは作らない
って趣旨だと思ってる。当人と合ってるかわからないけどw

>>45
将来の派生は考えず、現在作らなければならないものを
適切に構成することが狙いだと思う。これも合ってるか分からないけど

50:デフォルトの名無しさん
14/04/03 13:31:18.53 /JY/WI1L
動的ライブラリと静的ライブラリについての質問です。
動的ライブラリのソースコードが全部揃っている場合、
そのソースコードを静的ライブラリに変換し、
機能させることは可能ですか?

51:KAC
14/04/03 13:55:16.90 fnhS44Zb
>>49
前スレ991氏の見解は多分そういう事だと思ってる。

で、やっぱりその主張のメリットが全く分らない。
というか、デメリットしか見つからないんだが・・・

52:KAC
14/04/03 13:55:46.91 fnhS44Zb
>>50
基本的には問題なくできると思うけど、なにを懸念してる?

53:デフォルトの名無しさん
14/04/03 13:56:18.13 L82Xfiyw
>>50
そりゃ可能

54:デフォルトの名無しさん
14/04/03 13:58:27.84 9rp45yLz
ソースあるならビルドスクリプトついてんじゃねえの
あるならhow to build a static libとか書いてないかよく確認してみ

なければ自分でgcc -cでコンパイルしてarで結合しろ

55:デフォルトの名無しさん
14/04/03 14:10:43.82 /JY/WI1L
>>52
>>53
レスありがとうございます!
可能なんですね。
懸念していることは、
自分でソースコードを解析して静的ライブラリ.aや.frameworkにまとめて、
仕上げる技術が大変なのと、
さらにAppleの検証にもパスする仕上げにすることです。
つまりiOSアプリにしてApp Storeにも上げたいということです。
Appleは決められた動的ライブラリ以外禁止しているので、
どうしても静的ライブラリにする必要があります。
そこで、ただソースコードを.aファイルにビルドしただけでは、
動的ライブラリのままでした。

つまり、動的ライブラリのソースコードを静的ライブラリにビルドするというとてつもない作業が不安なのです。
一度静的ライブラリにさえしてしまえば、審査にも合格すると思いますが。

56:デフォルトの名無しさん
14/04/03 14:11:40.77 BFyxuILc
ぶっちゃけ簡単だがそういう質問が出てくる背景に不透明さを感じる

57:デフォルトの名無しさん
14/04/03 14:12:39.79 /JY/WI1L
>>54
回答ありがとうございます。
そのgcc -cでコンパイルしてarで結合するという方法は、
iOSにも通用しますか?

58:デフォルトの名無しさん
14/04/03 14:45:20.10 oR9W3V4C
>>49
> 38だけど、その例だと、人間クラスでそれらのメソッドを定義する
> けど人間クラスのインスタンスは作らない
それは、
abstruct class AbstructPerson {
 public work() { // 実装コード }
 public eat() { // 実装コード }
 public sleep() [ // 実装コード }
}

class Japanese extend AbstructPerson {
 override public sleep() [ // 実装コード }
}

class Person extend AbstructPerson {
 // 実装なし
}
ってこと?
>>51同様、俺も意味がわからない。

59:デフォルトの名無しさん
14/04/03 14:48:12.62 oR9W3V4C
もっと言うと、もともと
class Person {
 public work() { // 実装コード }
 public eat() { // 実装コード }
 public sleep() [ // 実装コード }
}
だけだったとしたら、日本人クラスを作る必要がでてきたらどうするんだろう?

60:デフォルトの名無しさん
14/04/03 15:19:44.13 L82Xfiyw
>>57
まあ普通に使えるけど、Xcodeならframework作っちゃうのがあとあと楽かもね
framework作るiOS-Universal-Frameworkとかもあるしね。

元のってどうなってるの?基本的にオプション替えるだけだぜ。

61:デフォルトの名無しさん
14/04/03 15:34:09.08 BFyxuILc
ライセンス?なにそれおいしいの?とか言い出しそう

62:デフォルトの名無しさん
14/04/03 16:04:54.92 L82Xfiyw
iOSのライブラリで面倒なのはシミュレーターと実機の2通りのアーキテクチャ用を
用意しなくちゃならんところだしなあ。
状況とライセンスが許せば、ソースとして組み込んでしまうのが楽ではある。

63:デフォルトの名無しさん
14/04/03 16:20:56.07 lVJS6Hx1
原理的には出来るが、多くのオープンソースなプログラムのビルド
プロセスはGNU autotoolsという黒魔術で保護されている

64:デフォルトの名無しさん
14/04/03 16:44:16.58 /JY/WI1L
Xcodeから.aファイル作ったら、
ファイル容量すくなくなったんですが、
これはおかしくないですか?
元のdylibと同じサイズになるはずですよね?

65:デフォルトの名無しさん
14/04/03 16:54:08.31 Y70G3ZU6
>>43
まさかスロットマシーンとかのゲームの不正が目的じゃないだろうね?

66:デフォルトの名無しさん
14/04/03 16:58:37.35 p51daBHj
むしろゲームの不正以外になんの理由があるのかと

67:デフォルトの名無しさん
14/04/03 17:05:17.16 L82Xfiyw
>>64
同じにはならんだろ
dylib は a と同等のものに動的リンクの情報が追加されてるわけだし

68:デフォルトの名無しさん
14/04/03 17:10:46.63 /JY/WI1L
>>65
違います

>>66
ゲームに関するアプリですが、
不正ではありません。

69:デフォルトの名無しさん
14/04/03 17:11:47.21 /JY/WI1L
>>67
そうなんですね。

70:デフォルトの名無しさん
14/04/03 18:08:37.37 /JY/WI1L
>>60
元のはこうなっています。上の一部の部分です。

#!/bin/bash

set -e

BASE_DIR="$PWD"
RARCH_DIR=$BASE_DIR/dist
RARCH_DIST_DIR=$RARCH_DIR/ios
FORMAT=_ios
FORMAT_COMPILER_TARGET=ios
FORMAT_COMPILER_TARGET_ALT=ios
FORMAT_EXT=dylib
JOBS=7
MAKE=make
CXX11="clang++ -std=c++11 -stdlib=libc++ -miphoneos-version-min=5.0"
IOS=1



export IOSSDK=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/

staticにするにはどの部分をどのように変えればいいのでしょうか?

71:デフォルトの名無しさん
14/04/03 18:10:03.10 /JY/WI1L
ちなみに、「.shファイル」です。

72:デフォルトの名無しさん
14/04/03 18:38:59.56 l4hxvONb
それ環境変数だけじゃんか
リンク時に shared つけてるとこないか?

73:デフォルトの名無しさん
14/04/03 18:50:42.09 /JY/WI1L
>>72
ありました!それらしきコードを見つけました!
ARCH := arm
TARGET := $(TARGET_NAME)_libphotomaker_ios.dylib
fpic := -fPIC
SHARED := -dynamiclib

CC = clang -arch armv7 -isysroot $(IOSSDK) -miphoneos-version-min=5.0
CXX = clang++ -arch armv7 -isysroot $(IOSSDK) -miphoneos-version-min=5.0
CC_AS = perl ./tools/gas-preprocessor.pl $(CC) -miphoneos-version-min=5.0
CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm -miphoneos-version-min=5.0
ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
HAVE_NEON = 1
BUILTIN_GPU = neon
USE_DYNAREC = 1
CFLAGS += -DIOS -miphoneos-version-min=5.0






よろしくお願いします。

74:デフォルトの名無しさん
14/04/03 18:51:17.82 /JY/WI1L
static libraryのお手本、どうかよろしくお願いします。

75:前スレ991
14/04/03 20:30:48.92 qL+1iK2f
>>32
>人間クラスが実装可能で、哺乳類が実装不可能なクラスとする。
>ここまでは認識はあってると思う。

哺乳類は抽象クラスで人間は具象クラスだから、ここまではあっているね

>で、例えば日本人だけ特別な振る舞いを実装しようとすると、
>人間クラスから日本人クラスってのを作らないの?

まず 哺乳類-人間 というクラス構成は、生物学上の分類に従っている
(人間は生物学の学名であるホモ・サピエンスの俗称である)
そして、もし人間クラスを継承するのであれば、同様に人種を切り口にして
白人(コーカソイド)/黄色人種(モンゴロイド)/黒人(ネグロイド)等で分類すべき
それなのに、国籍あるいは民族による分類で日本人という例を
何の迷いもなく提示してしまう点が、素人の発想だと指摘しておく

>この場合は、哺乳類から派生させろっていってる?
>それとも、人間を抽象クラスにして日本人とその他のクラスを作れっていってる?

>>38が推測しているように、後者が望ましいと考える
上記の例であれば、具象クラスである人間を抽象クラスへ変更し、
それを継承した白人/黄色人種/黒人クラスを定義する
そして(人間クラスではなく)おそらく黄色人種クラスをインスタンス化して
KACを生成するよう変更を加える

76:前スレ991
14/04/03 20:52:32.41 qL+1iK2f
>>44
>それって、..... (中略) .....
>にしろってこと?

人間クラスは抽象クラスだから、1行目は、以下のようになる

abstruct class AbstructMammalia {}
abstruct class AbstructPerson extend Abstruct Mammalia {}

>「人間クラス」にはwork(), eat(), sleep()メソッドがある場合(日本人だけsleep()の内容がちょっとちがう)、
>そのメソッドはどこに実装するの?

これも>>49(>>38)氏の推測が当たっている
ただし、食う(eat)/寝る(sleep)/遊ぶ(work)という活動は生物にとって共通の振る舞いだから、
哺乳類クラスで定義して人間クラスで継承し、必要に応じてオーバーライドするのが適切であると考える
たとえば、「食う」という活動は哺乳類だと単にエネルギーを得るのが目的であると定義されるけど、
人間クラスであれば、それに火を使った調理であるとか食事というコミュニケーションの道具としての
意味合いを加えた内容でメソッドをオーバーライドする

77:前スレ991
14/04/03 21:36:39.60 qL+1iK2f
>>45
>最後の「人間も抽象クラスに」だとすると、
>結論としては
> ・派生して振る舞いが変わるメソッドは純粋仮想にする
>って事が要求されている事にもなると思う。

なぜそういった要求が結論として導かれるのだろうか?
>>31の後段で以下のように述べたように、
 >サブクラス(抽象クラスまたは具象クラス)でのオーバーライトは普通にありうる
サブクラスでのオーバーライドに関して何ら制限を加えようとする意図は、どこにも無い

もしも人間を具象クラスから抽象クラスへ変更するコストを欠点(or 問題)と考えているなら、
それは>>49氏が推測されているように、「その変更が必要だから」というのが答えになる
つまり、「与えられた対象領域が変更されたのなら、それに応じてクラス定義も適切に
再設計すべき」という方法論になる
なぜそれが必要なのかは、すでに>>31の問い「哺乳類クラスをインスタンス化した
オブジェクトとは具体的には何になるか?」で答えているはずだよ
それを「ちょっと特別なもの(>>16)」などと、安易に目先のコーディングのコストを優先して、
モデリングという上流の設計工程へ立ち返ろうとしないリーダが存在するから、
プロジェクトが炎上する

>>17で書いたように、この方法論は生産性と高品質との両立を目的としている
最近のスパイラルやアジャイルといった開発手法についても同様であり、その反復の各フェーズで
「モデルの再設計に立ち返る」という姿勢が参加メンバー全員に浸透していることが成功の前提になる
それを目先のコーディングの改善をリファクタリングだと勘違しているから、
せっかく最新の開発手法を導入しても失敗を繰り返すことになる

78:12
14/04/03 21:37:41.89 c2rSstzE
前スレ993です。

>>16
そういう場合もあるでしょう。

博物学とかその辺から来た思想じゃないかな。
大分類は中分類に、中分類は小分類に分割できる。
(プログラミングでいう継承)
分類階層のうち界、門、綱、目、科、属に直接所属する生物は居ない。
(プログラミングでいう抽象クラス)
生物が直接所属するのは「種」階級だけである。
(プログラミングでいう具象クラス)
一つの生物が複数の種や、属や、科に所属することはない。
(プログラミングでいう多重継承はない)

現実はそんなに単純じゃなくて「種とはなんぞや」というのも明確には定義できないのだけど、
どこかでバッサリやって型に押し込めないと人間が理解できないでしょう。
大規模だと特に。
だから、>>17も言ってるように全体へ強制するか部分的に導入するか
場合に応じて検討するわけですよ。

79:12
14/04/03 21:40:11.22 c2rSstzE
>>32
それならアメリカ人クラスやイギリス人クラスも作って、
人間クラスは抽象クラスにしないの?

いや、ほとんどの人間は同じ振る舞いをして、
日本人だけ違うというのが要件なら
人間クラスと日本人クラスがそれぞれインスタンスを持っても良いけど。

工学の世界では金になるのが正しい。

>>44
要件定義を満たしつつ、開発や保守の工数が最小になるよう設計しろ。
3クラス、3メソッドしかないなら、どう設計しても大した違いはない。

80:KAC
14/04/03 21:48:16.31 fnhS44Zb
>>75
> 白人(コーカソイド)/黄色人種(モンゴロイド)/黒人(ネグロイド)等で分類すべき
> それなのに、国籍あるいは民族による分類で日本人という例を
> 何の迷いもなく提示してしまう点が、素人の発想だと指摘しておく

不必要な分類でわざわざ複雑にしていこうとするのは、
「モデル化」の概念に反する愚かな行為にしか見えないんだけど・・・
対象に必要なモデルのみに限定することが駄目な理由とか、
わざわざよく分からないクラスを持ち出すことの利点とか示してほしい。

# つか、真面目に実装するならハーフとかクオーターとかどうするつもりなのか・・・

81:前スレ991
14/04/03 22:09:20.59 qL+1iK2f
>>58,59
そのコードが適切かどうかは、与えられた対象領域しだいだね
たとえば>>76では「食う(eat)」を例にオーバーライドを説明したけど、
「寝る(sleep)」のケースの場合、

  世界的な睡眠時間は平均8時間であるけど、日本人は世界有数の
  睡眠不足国民と言われ、平均6時間と大きな隔たりがある
    URLリンク(www.smartsleeplibrary.jp)

という知識をモデル化するのが対象領域であれば、メソッド sleep の実装は
AbstructPresonクラスだと「睡眠時間の平均は8時間」という実装に、
Japaneaseクラスであれば「睡眠時間の平均は6時間」という実装になるけど、
これが一概に間違っていると断定はできないよね?(他に適切な答えはある?)
そして、Japaneaseは具象化クラスだからそのままインスタンス化できるし、
それ以外の国民をインスタンス化したいのなら(抽象クラスのAbstructPersonではなく、
それを継承した)具象クラスであるPersonをインスタンス化する

何か問題あるかな?
それとも哺乳類クラスをインスタンス化するのが正しく、それと同様に、
このケースでもAbstructPersonをインスタンス化するのが正しいと思うの?

82:前スレ991
14/04/03 22:16:27.95 qL+1iK2f
>>80
さて一般常識の三択クイズです:
「哺乳類」「人間」と来たとき、次に来る言葉として適切なのは、
以下のどれでしょう?

1)日本人
2)黄色人種
3)AB型

83:デフォルトの名無しさん
14/04/03 22:58:52.31 33W52+bt
常識をモデル化しようとしてるのか、
常識がモデル化のルールを支配するのかわけがわからんな。

84:デフォルトの名無しさん
14/04/03 23:21:52.79 Dr19mwRL
生物として定義するのか社会的な個人として定義するのか
ここらへんは完全に分けて考えないとひどいことになる

85:デフォルトの名無しさん
14/04/03 23:22:15.33 p51daBHj
どれでも良い。生物学なので同様にとか言ってるけど、人種は生物学というか、科学で分類不能

日本人:民族、社会的
人種:社会的
血液型:生物学、医学

なので、生物学にこだわるなら血液型になっちゃう

86:KAC
14/04/04 00:03:03.23 zeSqbl0+
>>82
ごめん。人間の分類なんてどうでもいいし興味もない。
あえて言うなら、対象となるシステムに合わせて答えは変わる。とだけ答えておく。

人間がどうのってのは、
具象クラスと抽象クラスの例えにお前さんが使ってたから合わせただけ。

「具象クラスから派生させてはいけないのは何故?」
の問いからどんどん離れて言ってるようにしか思えないので、
この辺で回答してもらうことを諦めることにするよ。

87:12
14/04/04 00:19:57.59 GdCOy0ZE
スーパークラスとサブクラスの関係を、
生物学と一致させたらシンプルでしょ。

グローバル変数禁止やgoto禁止と同じように
メリットもあるけどデメリットもあって
導入しても良いし導入しなくても良いし
プログラマの裁量に任せても良い。

でもこういう基準もあるよ。という話。

88:前スレ991
14/04/04 00:24:55.40 FlB7JCyi
>>42
>>22のクラス継承階層の設計原理については、>>22の冒頭で書いて説明した
・クラスとは(数学における)集合である
・継承とは直和であり、ここで直和とは集合の互いに交わらない
 部分集合への分割を意味する
・ここで集合の要素とは、属性を指す(メソッドではない)
この原理を現実のクラス継承設計へ適用していくかについては、>>22のスレの
続きである「Ruby初心者スレッド Part 52」のレス#43-45で詳しく解説している
そのスレの解説で使った「互いに交わらない集合」を表す図へのリンクを以下に示す
  URLリンク(www.h6.dion.ne.jp)
詳細については、過去ログ保管サイトにあたってもらいたい

なお、今回の議論は「抽象クラス-具象クラス」という概念を対象にしていたけど、
>>22には、それ以外のオブジェクト指向設計に関する方法論も交ざっていたので、
混乱を与えたかもしれない
そこで、より単純に「抽象クラス-具象クラス」を表す実装を紹介する
 URLリンク(www.h6.dion.ne.jp)
これは例外(exception)を対象にして階層的なクラス設計で実装したコードであり、
現行スレ「クラス名・変数名に迷ったら書き込むスレ。Part24」のレス#81で最初に紹介した
このコードで:
・モジュール(=名前空間) Syntax::Exception::Abstraction に所属する例外クラスは、すべて抽象クラス
・それ以外のモジュール Syntax::Exception の直下に所属する例外クラスは、すべて具象クラス
になる

89:デフォルトの名無しさん
14/04/04 01:14:59.17 JzfvGMgJ
話題が長引いてることだし
そろそろスレを移した方がいいかも

90:デフォルトの名無しさん
14/04/04 02:50:22.40 x7pJZHU7
オブジェクト指向は愚かな考え。
スレリンク(tech板)

愚かな考えとは思ってないけどこのスレがちょうど良さそうと誘導

91:デフォルトの名無しさん
14/04/04 04:14:51.81 Y0zkgPF2
哺乳類、人間と来ると、
日本人、黄色人種、AB型、男性、老人などは、
プロパティに思えてくる

それに、日本人、黄色人種、AB型、男性、老人の順でも、
逆順でも、継承チェーンを作れるのもおかしいし、
継承チェーンが長すぎるのもダメ

モンスターからの派生で、ドラゴン、ゾンビのクラスがある時、
ドラゴンゾンビはどちらのクラスに属するのか、
または、どちらのクラスから派生させるか、難しい

ドラゴンゾンビはドラゴンクラスで、
ゾンビのインターフェースを持つのが良いかな?
迷ったら、柔軟なインターフェース(実装)にするのが良いかも

Cの手続き型プログラマーが、老害になっていくのは、
このオブジェクト指向の設計の難しさに、ついていけないから

まだコードが書かれていない段階で、
抽象的なことを考えなければならないため、多くの人が嫌がる

社内でも考えているだけでは、仕事をしているように見えないため、
コードを書いて、すぐに動くほうが印象がよい(agile)
だから老害は、手続き型で書き進めて、
後でスパゲティになるほうを選ぶ

具象クラスから派生させてはいけないのは、
Stringなどの重要かつ、派生させてバグが生じると、
ひどい混乱をまねくもの

92:デフォルトの名無しさん
14/04/04 05:06:40.22 vH1ZiCMN
能力のない人は画面上で動かないと認識できない。なので一通り作らなければいけない。機能別(構造化ではない)で設計するので再利用がされない。
オブジェクト指向でも、クラス単位で開発すれば、すぐに手が動かせるし、結果も早く見れる。が、レビューを行える人がいない。
プログラマのレベル上げるより、要求者のレベル上げた方が生産性がぐっと上がる。

93:デフォルトの名無しさん
14/04/04 11:31:14.22 naBAIfPU
>>81
>>58>>59をごっちゃにしないで欲しい。
>>58は最初から「あるクラスと、それをちょっと特殊化したクラスが最初から必要だとわかっている場合」。
>>59は「あるクラスがすでに存在していて、後からちょっと特殊化したクラスが必要になったとき」。

> 何か問題あるかな?
>>59のケースで>>58のようなコードに変更すると、ポリモーフィズムを期待している箇所の型を書き換える
必要がでてくる。

そもそも知りたいのは、具象クラスを継承してはいけない/しない方が良い理由と、>>58のコードが
class ConcretePerson {}
class ConcreteJapanese {
 override sleep() {}
}
より優れているとしたら、その理由。

> このケースでもAbstructPersonをインスタンス化するのが正しいと思うの?
いや、そもそも俺は>>58のようなコードは書かないんだけど。

94:デフォルトの名無しさん
14/04/04 11:33:16.40 naBAIfPU
>>93
ちなみに、
> そもそも知りたいのは、具象クラスを継承してはいけない/しない方が良い理由と、>>58のコードが
> class ConcretePerson {}
> class ConcreteJapanese {
>  override sleep() {}
> }
> より優れているとしたら、その理由。
が、「現実世界のモデルと似ているから」みたいな理由だとしたら、もうこれ以上聞きたくない。

95:デフォルトの名無しさん
14/04/04 11:51:27.32 JzfvGMgJ
言い方が悪かった

別スレでやれ

96:デフォルトの名無しさん
14/04/04 12:06:02.97 MaEiPkI0
だれか・・・
>>73お分かりになる方いらっしゃいませんか・・・

73 デフォルトの名無しさん Mail:sage 2014/04/03(木) 18:50:42.09
ID:/JY/WI1L
>>72 
ありました!それらしきコードを見つけました!
ARCH := arm
TARGET := $(TARGET_NAME)_libphotomaker_ios.dylib
fpic := -fPIC
SHARED := -dynamiclib

CC = clang -arch armv7 -isysroot $(IOSSDK) -miphoneos-version-min=5.0
CXX = clang++ -arch armv7 -isysroot $(IOSSDK) -miphoneos-version-min=5.0
CC_AS = perl ./tools/gas-preprocessor.pl $(CC) -miphoneos-version-min=5.0
CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm -miphoneos-version-min=5.0
ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
HAVE_NEON = 1
BUILTIN_GPU = neon
USE_DYNAREC = 1
CFLAGS += -DIOS -miphoneos-version-min=5.0






よろしくお願いします。

97:デフォルトの名無しさん
14/04/04 12:33:53.49 naBAIfPU
>>95
ごめんね。
多分俺の発言は上で最後だから。KAC氏もあきらめたみたいだし。

98:KAC
14/04/04 16:22:00.17 zVK7kivG
うん。あきらめた。
>>94と同意見。

99:デフォルトの名無しさん
14/04/04 20:15:47.78 kLF0TVU2
>>96
Makefile読めなきゃ話にならんよ
普通、ダイナミックライブラリはリンカーで作る
スタティックライブラリはライブラリアン(ar)で作る

100:前スレ991
14/04/04 22:00:39.84 FlB7JCyi
>>97
自分のスタンスは方法論に従ってクラス継承を設計すべきという原理主義になる
それに対して、二人はプログラミングに興味はあっても設計には無関心、いいかえると
「動けばそれでいい」「動くのに何が悪いんだ」という実践主義のスタンスに見える
そうであれば、これ以上の議論を重ねても互いが納得した形で合意を得ることは不可能だろう

しかも>>89,95の意見は同感だから、このスレでは議論を終えて、自分は名無しに戻る

ただし、>>90の誘導先スレの提案には誰からも反対意見が無く、
なおかつKAC氏の質問「具象クラスから派生させてはいけないのは何故?」には
答えたいと考えているので、答えは誘導先スレにカキコするつもり
無理に付き合う必要はないが、もし気が変わったならレスすればいいと思う

101:前スレ991
14/04/04 22:13:05.08 FlB7JCyi
>>100を訂正

・アンカを書き漏らしていた
X: >>97
O: >>97,98

・移動先について、>>90のスレを覗いてみたらウンコスレだったので撤回する
X: オブジェクト指向は愚かな考え。
O: オブジェクト指向なんて今すぐやめてください

102:デフォルトの名無しさん
14/04/05 01:09:30.09 LUoCQTng
100個以上のbooleanをサーバーに送ってSQLに保存する場合どうしたらいいでしょうか?
よくある
int bools = 0
for(int i = 0;i<booleanの数;i++) if(boolean[i]) bools += 2 ^ boolean[i];
のようにして取り出すときにbit演算を使う方法だと桁数が多くなりdoubleの精度上うまく動きません
他に取り出しやすく保存しやすい方法はありませんか?

103:デフォルトの名無しさん
14/04/05 05:13:08.87 E+byEqmt
>>102
普通にネットワークのストリームを1bitずつ読み書きすればいいんじゃないの。実装にはバッファ使うだろうけど。
SQLに保存は意味わかんないけど。

104:デフォルトの名無しさん
14/04/05 08:15:13.34 sR5Maw+0
求人でよくlinux経験とかあるけどあれって
コマンドのものなのかデスクトップタイプも含むのかどっちなんですかね?

105:デフォルトの名無しさん
14/04/05 09:13:36.17 E+byEqmt
>>104
コマンドオペレーションでサーバ系か、カーネル周りで組み込み系の募集だろ。

106:デフォルトの名無しさん
14/04/05 10:13:32.33 sR5Maw+0
>>105
ふむ、さんくす

107:デフォルトの名無しさん
14/04/05 15:40:44.80 UcRTpVkm
>>102
たとえばPostgreSQLのように配列型をサポートするDBなら、それを使えばいい
もしSQLiteのように基本的なデータ型しかサポートしていないDBを使っているなら、
文字列型にエンコードしてから保存するのが普通じゃないかと思う

char bools[booleanの数];
for (int i = 0; i < booleanの数; i++)
  bools[i] = boolean[i] ? "1" : "0"; /* 真なら "1"、偽なら "0" とエンコード */
bools[i] = '&yen;0'; /* 文字列の終端(文字化けしてるかも....) */

もちろん取り出しでは、保存した文字列値をbooleanへデコードするコードも、別途、必要になる

108:デフォルトの名無しさん
14/04/05 20:26:22.79 LUoCQTng
>>103,107ありがとうございます
1bitに1or0を入れて数byte作ってそれをbase64で文字列にして保存することにしました

109:デフォルトの名無しさん
14/04/05 21:02:27.28 iBtP3adk
>>108
DBMS なに使ってるの?
binary 型サポートされてない?

110:デフォルトの名無しさん
14/04/05 21:47:29.73 DSd9JQpc
あるクラスが他のクラスのインスタンスを持つのって普通ですよね?

111:デフォルトの名無しさん
14/04/05 21:49:42.79 LUoCQTng
>>109
MYSQLです
ANDROIDとIOSからデータ送りたいのでどちらにしてもbase64した安全かと思いまして

112:デフォルトの名無しさん
14/04/05 21:56:02.40 iBtP3adk
>>111
いや、 Base64 の選択も悪くないと思うよ

113:デフォルトの名無しさん
14/04/05 22:53:44.60 iKzYf4PO
>>90で誘導されたモンスターがいきなり転送されてきたプレーンで暴れ始めて
超迷惑なんですけど…だれだこっちへ飛ばしたの。
思い込みでわけのわかんないコード書いて
わけのわからん理屈こねるから書き込み読解する気も失せて
放置してんのにまだ長文連投しやがる。

114:KAC
14/04/05 23:14:15.07 Dr+e6snh
ごめん。浮いてるスレだと思って相手してた・・・
もう相手するの止めとくよ。

115:デフォルトの名無しさん
14/04/05 23:51:19.42 fZTxo1xf
実装の仕方や処理方法がわからないときにググって調べるんですが他人のソースを読むのがすごい苦手です
100行くらいでもコメントが書いてないと上手く読めないとサジを投げてしまいます。
コメントが書いていないソースでも上手く読むためにはどうすればいいでしょうか?

116:KAC
14/04/06 00:02:21.33 8Gh4K5gj
>>115
慣れるしかないね・・・

慣れてきたらソースなんて読めるようになるから。
コツというか他人のソースを読むときは、

・関数を読むときはまず全体の流れを見てから。
・ソースをそのまま上から理解する。翻訳しない。
・ざっと眺めたら、処理の流れにそってソースの意図を理解していく。
・意図がわからないところは放置してそのまま頭に叩き込んでおく。
・何度か読めばばっちり

って感じが基本だと思う。

117:デフォルトの名無しさん
14/04/06 00:16:42.98 v5F7vKVc
>意図がわからないところは放置
これすっごく重要だから太字で書いてくれ

118:デフォルトの名無しさん
14/04/06 00:19:46.14 0cRTqRo6
>>117
ブラウザのフォントをボールド系に変更すればok

119:デフォルトの名無しさん
14/04/06 01:10:46.80 Bz2fL/Bm
base64の記号を+/などに置換したものはbase64と言いますか?

120:デフォルトの名無しさん
14/04/06 01:13:05.88 AIMuskfP
それbaka64

121:デフォルトの名無しさん
14/04/06 01:13:27.87 v5F7vKVc
>>118
全部をボールドにしろとは一定内が?

122:デフォルトの名無しさん
14/04/06 01:50:26.51 CSk3IxEN
???

123:デフォルトの名無しさん
14/04/06 03:12:11.17 Bz2fL/Bm
>>128=バカ。上級者づらして質問に二度と答えないでください。
Base64Urlという名前だそうです。

124:デフォルトの名無しさん
14/04/06 03:15:42.59 0cRTqRo6
え?バカって誰よw

125:デフォルトの名無しさん
14/04/06 03:55:15.28 5J1lYPyf
引数の数だけオブジェクトを作りたいんだけど
どうすればきれいに書ける?
よろしくお願いします~

126:デフォルトの名無しさん
14/04/06 04:01:10.04 Z2CFn8dC
何の言語の話よ

127:デフォルトの名無しさん
14/04/06 04:42:26.16 5J1lYPyf
レスthx
pythonなんだけど
引数がlist型でその長さlen(list)だけset作りたい
まあ作るオブジェクトの型とかは本質じゃないからどうでもいいんだけど

128:デフォルトの名無しさん
14/04/06 07:05:10.67 BLgQPKdJ
>>123
バカとは失敬だな。

129:デフォルトの名無しさん
14/04/06 07:40:34.57 0cRTqRo6
ワロタ

130:デフォルトの名無しさん
14/04/06 08:21:36.68 7fCDh1Rd
[ set([]) for _ in range(len) ]
とか? Pythonは嫌いだからまったく使ってないので、これが綺麗かは知らないけど

131:デフォルトの名無しさん
14/04/06 08:52:31.88 JCt7qS/f
>>115
コーディングスタイルによっては
「制御変数に着目する」というのがあるけど……

最近はそういう書き方しないよな。

132:デフォルトの名無しさん
14/04/06 09:05:30.36 RBRM8u2B
>>127
setはそういうものじゃないので無理

133:デフォルトの名無しさん
14/04/06 09:34:16.42 5J1lYPyf
>>130
解決したよthx!

>>132
setインスタンスを複数個作りたいってことよ?
まあなんにせよ解決したからおけ
みなさんありがとう

134:デフォルトの名無しさん
14/04/06 10:09:36.87 BLgQPKdJ
>>130
rangeしなくても、for _ in args のがキレイだと思う。

135:デフォルトの名無しさん
14/04/06 10:10:43.93 2lV6IbLl
個人が運営してる動画共有サイトはありますか?

136:デフォルトの名無しさん
14/04/06 10:27:34.06 X8q2hYwd
>>121
ご注文の内容は ボールドにしろ とのことでしたが、なにか問題でも?

137:デフォルトの名無しさん
14/04/06 10:42:42.89 6fUxN2Jx
>>115
処理単位で解読する場合は「プログラムは最後の行から前へ向かって読め」
つまり処理の中でやろうとしていること(アウトプット)をまず把握し、
次にそこまでの流れをつかむ

最後の行に書いてあることがほとんどなのでまずそこを見る
そこで使われている変数などがどこから来るのかをつかむ

138:デフォルトの名無しさん
14/04/06 16:55:34.92 2OfU2xd5
SDKフォルダのadd-onsはどこにあるのか教えて頂けないでしょうか。
ダウンロードしたSDKの中身を探しても、どうしても見つかりません。どうかお願いします。

139:デフォルトの名無しさん
14/04/06 17:16:03.03 6fUxN2Jx
add-ons の中って何か役に立つの入ってたっけ?
イラネって捨てられたんじゃね

140:デフォルトの名無しさん
14/04/06 17:28:04.21 2OfU2xd5
ありがとうございます!
もう提供されてないんですね…今androidの開発の準備をしていまして、
Xperia X10(SO-01B)のスキンアドオンのインストールというのを
やりたかったのですが、add-onsでないのでしたら、「XPERIA-X10_r1」という
フォルダをどこにいれればいいか教えて頂けないでしょうか。

141:デフォルトの名無しさん
14/04/06 17:30:13.72 BB7p7pGa
****************
****************
*****o**********
***oooo*o*******
******oooo******
********o*******
*******oo*******
****************
こういう感じの配列があるとします *は0, oは1とお考えください
oで縦横に繋がっていたら1つの島と考えて、oの位置を全部取得する場合
なんていうアルゴリズムを使えばいいでしょうか?

142:デフォルトの名無しさん
14/04/06 17:31:05.56 yUPfZioC
意味がわかりません

143:デフォルトの名無しさん
14/04/06 17:40:32.28 BB7p7pGa
どの部分がわかりませんか?

144:デフォルトの名無しさん
14/04/06 17:43:31.71 v5F7vKVc
>>141
島がいくつあるか数えればいいのか?
ともあれ「再帰」がうまくはまりそうだ

145:デフォルトの名無しさん
14/04/06 17:46:44.12 BB7p7pGa
島の数は数えません。
その島のoの位置が知りたいんです
{2, 5}
{3, 3}
こんな感じで

146:デフォルトの名無しさん
14/04/06 17:47:55.44 BB7p7pGa
例えばこうだったら島が2つありますので別々にoの位置が知りたいわけです

****************
**********oooo**
*****o******o***
***oooo*o*******
******oooo******
********o*******
*******oo*******
****************

147:デフォルトの名無しさん
14/04/06 18:09:20.79 XoDYwo6S
>>146
ぷよぷよのアルゴリズムの応用でいけると思う

148:デフォルトの名無しさん
14/04/06 18:15:10.71 Z2CFn8dC
てか質問下手ね
アルゴの質問する時は入力例と、「その入力例」から得られる出力例を書かないと
全然関係ない入力例から得られる出力例をサンプルに書いたって混乱させるだけだよ

149:デフォルトの名無しさん
14/04/06 18:20:16.99 7tOrgSR/
>>141
画像処理の基礎「ラベリング」アルゴリズム。
島毎に別のIDを割り当ててくれるよ。

再帰を使うのも一つの手だが、
2パススキャンで済むアルゴリズムが広く知られていて定番になってる。

150:デフォルトの名無しさん
14/04/06 18:22:09.49 7tOrgSR/
ラベリングの出力例はこうなる。

****************
**********1111**
*****2******1***
***2222*2*******
******2222******
********2*******
*******22*******
****************
# たぶんずれるだろうな

で、これを元に1の重心を出したり
1の部分だけを表示したり
面積の小さいやつはノイズだとして削ったりする。

151:デフォルトの名無しさん
14/04/06 18:37:58.13 vFcnRkT9
Union-Find木は、同じグループかどうかを判別できる

例えば、(1, 2, 3) (4, 5) (6, 7)で、
1, 4, 6 が根とすると、与えられた数字を根までたどり、
根が同じかどうかで、同じグループかどうかを判別する

例えば、3の根は1、5の根は4で、違うグループ

152:デフォルトの名無しさん
14/04/06 23:01:48.70 2OfU2xd5
すみません、138ですが、諦めることにしました…

別の問題で、HelloWorldを実行しようとしているのですが、
「選択に、サーバー上で実行できるリソースが含まれていませんでした」
というエラーメッセージが出てきます。
ググっても原因がわからないのですが、
どなたか教えて頂けないでしょうか。

153:デフォルトの名無しさん
14/04/06 23:59:17.58 v5mbLJcc
君はこのレベル

URLリンク(www.geocities.co.jp)

154:デフォルトの名無しさん
14/04/07 06:10:27.78 JEGN0GF9
大変申し訳ありませんでした。

155:デフォルトの名無しさん
14/04/07 07:16:59.64 jiGOBGya
iosアプリにあるmomentoみたいなwindows用日記アプリを作りたいんだけど、
作りたいだけで作業過程とか漠然としてて、何から始めればいいか分かりません。
一応ここを押してこうしたいみたいな感じの考えはまとめた。

156:デフォルトの名無しさん
14/04/07 07:17:52.98 EhB6qaTX
俺に外注

157:デフォルトの名無しさん
14/04/07 07:38:49.62 jiGOBGya
>>156
おいくら万円♪

158:デフォルトの名無しさん
14/04/07 07:58:34.78 EhB6qaTX
まあマジレスすると
VB.NETかC#あたりでデータベース使ってやればいいんじゃない?
1ヶ月も勉強すればある程度作れるだろう

159:デフォルトの名無しさん
14/04/07 08:10:35.61 KFUO0v2u
>>155
ここを押してこうしたい、という作り方だと、スパゲッティになりやすい。
データ構造とかオブジェクトとかちゃんと基礎からやった方が後々のためになると思う。
一度、できるとこまでやってみるのも手だけど、成功と失敗に明確な線があるわけじゃないから、ずるずる行っている人が多い。

160:デフォルトの名無しさん
14/04/07 08:31:19.70 jiGOBGya
>>158,159
何か作ったほうがいいソフトとかあれば教えてください。
僕独学が苦手で調子出るまでは依存しなきゃ進められなくて,,,

161:デフォルトの名無しさん
14/04/07 08:41:23.61 KFUO0v2u
>>160
ライブラリ。

162:KAC
14/04/07 09:04:42.84 p/760H6C
>>160
なにを作ったことあるか書いたほうがいい。

何も作ったことが無いなら、作ることに慣れるところから。
基本は入力と出力。

たとえば、

1) 数字を入力できる領域を作る。
2) 入力した数字を表示する。
3) 入力された数値の大きさを持つ円を表示する
4) マウスを使って円の大きさを変更する

このあたりはどこまで作れる?

163:デフォルトの名無しさん
14/04/07 09:19:53.21 jiGOBGya
>>161
どういうの?
>>162
3からはやったこと無い‥やり方も分からなかったです

164:デフォルトの名無しさん
14/04/07 09:26:25.25 KFUO0v2u
>>163
UIとビジネスロジックを分けてライブラリ化するってこと。プログラマのためのプログラムの作り方が学べる。
って、それ以前のとこ聞きたいのか。人に指示する方法すらわかってなさそう。
オープンソースのプロジェクトに参加して必要なことを学び取ればいいんじゃないか。俺は独学好きだからやってないけど。

165:デフォルトの名無しさん
14/04/07 09:27:49.25 /ZasYlq5
OSSに参加するのも独学では

166:デフォルトの名無しさん
14/04/07 09:31:28.40 jiGOBGya
>>164
うーん...よく分からないですorz

みなさんはどういう感じでプログラミングを習得なさったんですか?

167:デフォルトの名無しさん
14/04/07 09:37:35.66 KFUO0v2u
じゃあ、学校とか通うしかないな。

168:デフォルトの名無しさん
14/04/07 09:38:21.82 KFUO0v2u
>>166
開発手法の本を読んだ。

169:KAC
14/04/07 09:39:02.03 p/760H6C
>>163
作り方などの調べ方がよくわからないって感じなら
まずは入門書を買ってきて、そこに書かれていることを実践するのが近道。

ざっと眺めて、「前の方は理解できるけど後半は知らないことだらけ」ってくらいの
難易度の書籍を本屋さんで選んでくるといい。
後半にやろうとしている内容がおもしろそうだと思えるものがベスト。

170:デフォルトの名無しさん
14/04/07 09:41:13.62 jiGOBGya
>>167
高校に行くので学校に通うのは厳しいです...
>>168,169
早速買ってきます

171:デフォルトの名無しさん
14/04/07 09:45:10.20 3qSKct+o
プログラムとか考えずちゃんと勉強して周りの奴らとコミュニケーションをとれ

172:デフォルトの名無しさん
14/04/07 10:01:08.01 jiGOBGya
>>171
どゆことですか??

173:デフォルトの名無しさん
14/04/07 10:01:29.54 alAzooFJ
>>155
多くのアプリはデータベースとCRUD、それらを人間が操作するためのGUI、の3要素でできている。
その3つさえクリアできれば何でも作れるようになるよ。

174:デフォルトの名無しさん
14/04/07 10:12:13.99 3qSKct+o
高校行くんだろ?
こんなところに入り浸るクズの仲間になるなってことだ

175:デフォルトの名無しさん
14/04/07 10:14:42.12 7LBFjO6B
この時間に書き込みできるという事は現在無職の少年かな・・・

176:デフォルトの名無しさん
14/04/07 10:17:36.28 jiGOBGya
>>174
2chってvip以外も酷いんですか??
専門板は自称ニートのすごい人たちかと思ってるんですが...
>>175
無職ではない…と思います
入学前でも一応高校生なんだよね(*_*;

177:デフォルトの名無しさん
14/04/07 10:33:00.08 /ZasYlq5
人が多いので、頭のおかしい人や能力の低いプログラマがごろごろいるのは仕方ない
他力本願なら他の所行った方がいいよ

178:デフォルトの名無しさん
14/04/07 11:54:14.23 H5+AU72d
高校でそういう部活に入って優秀な先輩に教えてもらうという手もある

だが何にせよ目的がはっきりしないと教えるほうも困る
プログラムはあくまで目的を達するための手段

魔法使いになれる・なりたいと思ってやってくる連中が多くいるが
勘違いを改めなければ挫折する

179:デフォルトの名無しさん
14/04/07 13:15:07.08 YqcRYRHH
まあこの板はプロの集まりだから、高校生の君に理解できなくても仕方ないよ
スーパーサイヤ人の悩みはヤムチャには分からないだろうし
咲さんの打ち筋は池田や末原さんには分からないだろうし

180:デフォルトの名無しさん
14/04/07 15:28:36.76 R6afMXN6
A and B and C みたいな条件分岐は
真真真、偽真真、真偽真、真真偽 のケースをテストすればいいですよ
みたいな方法って何て言いましたっけ?

181:デフォルトの名無しさん
14/04/07 15:39:09.54 cPHU7Y9F
>>180
条件網羅。

ソフト開発技術者の本くらい買えよ

182:デフォルトの名無しさん
14/04/07 15:50:44.72 R6afMXN6
>>181
いや条件網羅から偽偽真、偽真偽、真偽偽、偽偽偽を
除外してテストケース減らそうってやり方の名前の聞きたいんだ
こいつらテストになってないから当たり前なんだけどなんか名前付いてた気がするんだよなあ

183:デフォルトの名無しさん
14/04/07 16:03:39.78 R6afMXN6
申し訳ありません
私の中で条件網羅=複数条件網羅となっていたための誤解でした

184:デフォルトの名無しさん
14/04/07 16:18:46.11 R6afMXN6
度々すみません
MC/DCというのがそれっぽいです
どうもすみませんでした

185:デフォルトの名無しさん
14/04/07 16:53:40.12 cPHU7Y9F
>>183-184
ロボット相手にすみませんなどと言わなくてよい。読むだけで時間の無駄

186:デフォルトの名無しさん
14/04/07 18:37:34.34 vBoMGg1s
ビル・ゲイツやスティーブ・ジョブスみたいになりたいのですが、それは不可能なので、
せめて、マーク・ザッカーバーグみたいになりたいです。
そこで質問なのですが、マーク・ザッカーバーグみたいになるにはどうすれば良いのでしょうか?
あと、マーク・ザッカーバーグは、検索エンジンの開発も考えているようですが、
成功すると思いますか?教えてください。

187:デフォルトの名無しさん
14/04/07 18:39:11.97 EhB6qaTX
ゲイツとジョブズが無理でfbオタクになれると思った理由は

188:デフォルトの名無しさん
14/04/07 18:44:40.10 vBoMGg1s
マーク・ザッカーバーグより、ビル・ゲイツやスティーブ・ジョブスの方が凄いと思ったからです。

189:デフォルトの名無しさん
14/04/07 18:47:24.17 cPHU7Y9F
第二のマーク・ザッカーバーグになりたいなら、PHPを研究して優れたソーシャルメディアを
開発すればいい。だが、FBと似たようなものを作っても第一のマークザッカーにはなれない。

190:デフォルトの名無しさん
14/04/07 18:49:16.00 fuU5V+e7
プレゼン能力を磨いてコネを作れ
プログラミング?そんなのは誰かにやらせろ

191:デフォルトの名無しさん
14/04/07 18:57:15.18 vBoMGg1s
プレゼン能力ですか・・・・・。
自分はかなりボキャブラリーに乏しいので、まずはボキャブラリーを増やすところから始めた方が良さそうですね。
ボキャブラリーを格段に増やす良い方法はありませんか?
やはり、ひたすら読書をするぐらいしかないですかね?

192:KAC
14/04/07 18:59:00.34 p/760H6C
>>191
少なくともそういう質問をしているようじゃ、望み薄だろ。
あと、かなり板違いだから他の所を探したほうがいい。

193:デフォルトの名無しさん
14/04/07 19:06:36.11 cPHU7Y9F
プログラマ板かWebProg板だろうな、WebProgは過疎ってるが

194:デフォルトの名無しさん
14/04/07 19:07:25.65 H5+AU72d
ビルゲイツとかザッカーバーグはチャンスをつかむ才能というか強運の面が大きいからまねるのは難しい
目指すならジョブズにしろ
つまり人並みはずれたわがままをつらぬいてそれを実現してくれる仲間をさがせ

195:デフォルトの名無しさん
14/04/07 19:15:00.42 cPHU7Y9F
1円起業

196:デフォルトの名無しさん
14/04/07 19:16:42.33 zBKH31le
深さ優先探索わかんない
理系の大学卒業しないとわかんないよ
なんでこんなのがCodeIQにでるのよ

197:デフォルトの名無しさん
14/04/07 19:18:24.21 KhripvKN
冗談はやめとけ

198:デフォルトの名無しさん
14/04/07 19:27:41.55 cPHU7Y9F
成長分野はソーシャルメディアだけではない。
エネルギー、教育、農業etc.
問題点やチャンスを見つける力が大事。

199:デフォルトの名無しさん
14/04/07 19:35:06.32 cPHU7Y9F
>>196
古典的なAIの基本でんがな

200:デフォルトの名無しさん
14/04/07 20:24:07.86 cPHU7Y9F
>>196
根を一番上にした木構造において(常識的には逆さまの木)、根から下へ向かうほど「深く」なると考える。
隣の枝ではなく深い方を先に処理するから「深さ優先」。詳しくは「グラフ理論」を勉強しろ。

201:デフォルトの名無しさん
14/04/07 20:40:47.23 jxEWmrUM
迷路を深さ優先探索で説いてる動画を見れば、感覚的に理解できるんじゃない
行き止まりには印を付けて、分岐点まで戻る(バックトラック)

202:デフォルトの名無しさん
14/04/07 22:25:26.74 SglWOR67
XBOX Oneの1337回スペース連打ってのはどうやって混じるバグ?
オーバーフロー系?

203:KAC
14/04/07 22:47:33.31 p/760H6C
>>202
パスワード入力に対して大量のスペース入力ってことだから、
ものすごい初歩的なオーバーフローだと思う。。。

まあ、ログイン画面とかって新入社員が担当だったりするし。
試験してないのはどうかと思うけど。

204:デフォルトの名無しさん
14/04/08 07:25:51.07 irck6iry
In[[1]: bbbbbbbb
Out[1]: aaaaaaa
みたいな表示をみかけるんですけど、この'In[1]:'をつけるのはどうすればいいでしょ?
シェルが違うのかオプションでそんな設定があるのかみつかりません
今はbash使ってるけどInとOutじゃ検索も引っかからなくて見つけられなかった

205:デフォルトの名無しさん
14/04/08 07:29:58.39 UVBt/8Ct
意味が分らん

206:デフォルトの名無しさん
14/04/08 07:37:26.37 irck6iry
In [0] : Out[0] :
って表示するシェルってなに?

207:デフォルトの名無しさん
14/04/08 07:44:51.01 MBPOzWxL
俺は見かけたこと無いな

208:デフォルトの名無しさん
14/04/08 07:45:48.25 zuIQgCzz
その程度の情報だと表示させてる人に直接聞いた方が早いんじゃないですか

209:デフォルトの名無しさん
14/04/08 10:17:52.05 ePcb80cn
>>206
ipython

210:デフォルトの名無しさん
14/04/08 11:28:19.50 5bB7dbd8
>>188
マーク・ザッカーバーグは世界最年少の億万長者だぞ
ビル・ゲイツやスティーブ・ジョブズ並に凄いだろ

211:デフォルトの名無しさん
14/04/08 13:40:40.80 vDS7KuCw
金メダルや銀メダルは、銅メダルよりすごい。
だから、銅メダルなら俺にも採れそうだ。

212:デフォルトの名無しさん
14/04/08 14:30:40.47 5bB7dbd8
>>211
じゃあ取ってみろよw

213:デフォルトの名無しさん
14/04/08 14:33:39.53 G5uD774T
>>212
その台詞は>>188に言ってあげて。

214:デフォルトの名無しさん
14/04/08 15:49:55.24 1uiyPTpc
SQLalchemyに対応した無料のIDEありませんか?
PyCharmって有料で1年毎に払わないといけないので厳しいんです

215:デフォルトの名無しさん
14/04/08 17:06:40.24 ePcb80cn
>>211
銅鉱山の採掘工にでもなるのか。


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