C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■83634  Re[3]: 再帰処理を使ったマージソートについて
□投稿者/ 魔界の仮面弁士 -(2017/03/31(Fri) 12:52:44)
    2017/03/31(Fri) 13:01:17 編集(投稿者)

    No83625 (souya さん) に返信
    > 実引数で値型の値渡しをしているので
    > returnされたときは実引数の値は変わらない
    > という風に学んだのですが

    引数 int row や 引数 int high は 値型の値渡し、
    引数 int[] a は、参照型の値渡しですね。

    そもそも今回、mergeSortArray の中では
    引数 low や high の値を参照することはあっても、書き換えることは無いので
    すべてが参照渡しであったとしても、実引数 low や high の値は変わりません。

    影響があるのは、参照型である引数 a だけです。



    > なぜ、4回目のmergeSortArrayでreturnされた時に
    > highの値が1になるのか分かりません

    実引数と仮引数をどこかで混同していないでしょうか。
    http://www.cc.kyoto-su.ac.jp/~yamada/ap/parameter_argument.html

    「1 回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 0, high = 7 のまま
    「2 回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 0, high = 3 のまま
    「3 回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 0, high = 1 のまま
    「4 回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 0, high = 0 のまま (なにもせずreturn)
    「5 回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 1, high = 1 のまま (なにもせずreturn)
    「6 回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 2, high = 3 のまま
    「7 回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 2, high = 2 のまま (なにもせずreturn)
    「8 回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 3, high = 3 のまま (なにもせずreturn)
    「9 回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 4, high = 7 のまま
    「10回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 4, high = 5 のまま
    「11回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 4, high = 4 のまま (なにもせずreturn)
    「12回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 5, high = 5 のまま (なにもせずreturn)
    「13回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 6, high = 7 のまま
    「14回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 6, high = 6 のまま (なにもせずreturn)
    「15回目の mergeSortArray 呼び出し」の中の仮引数は、最初から最後まで low = 7, high = 7 のまま (なにもせずreturn)


    void sort からの最初の呼び出しは、実引数 第2引数:0、第3引数:a.Length - 1(=7)

      「1 回目の mergeSortArray 呼び出し」を開始
      仮引数 low:0、high:7 を受けて、mid = 3 が算出される

      「1 回目」における再帰01での呼び出し 第2引数:low(=0)、第3引数:mid(=3)

        「2 回目の mergeSortArray 呼び出し」を開始
        仮引数 low:0、high:3 を受けて、mid = 1 が算出される

        「2 回目」における再帰01での呼び出し 第2引数:low(=0)、第3引数:mid(=1)

          「3 回目の mergeSortArray 呼び出し」を開始
          仮引数 low:0、high:1 を受けて、mid = 0 が算出される

          「3 回目」における再帰01での呼び出し 第2引数:low(=0)、第3引数:mid(=0)

            「4 回目の mergeSortArray 呼び出し」を開始
            仮引数 low:0、high:0 を受けて、何もせずに return;
            「4 回目」が途中で中断されて再帰完了。

          「3 回目」における再帰02での呼び出し 第2引数:mid + 1(=1)、第3引数:high(=1)

            「5 回目の mergeSortArray 呼び出し」を開始
            仮引数 low:1、high:1 を受けて、何もせずに return;
            「5 回目」が途中で中断されて再帰完了。

          「3 回目」が最後まで実行されて完了。

        「2 回目」における再帰02での呼び出し 第2引数:mid + 1(=2)、第3引数:high(=3)

          「6 回目の mergeSortArray 呼び出し」を開始
          仮引数 low:2、high:3 を受けて、mid = 2 が算出される

          「6 回目」における再帰01での呼び出し 第2引数:low(=2)、第3引数:mid(=2)

            「7 回目の mergeSortArray 呼び出し」を開始
            仮引数 low:2、high:2 を受けて、何もせずに return;
            「7 回目」が途中で中断されて再帰完了。

          「6 回目」における再帰02での呼び出し 第2引数:mid + 1(=3)、第3引数:high(=3)

            「8 回目の mergeSortArray 呼び出し」を開始
            仮引数 low:3、high:3 を受けて、何もせずに return;
            「8 回目」が途中で中断されて再帰完了。

          「6 回目」が最後まで実行されて完了。

        「2 回目」が最後まで実行されて完了。

      「1 回目」における再帰02での呼び出し 第2引数:mid + 1(=4)、第3引数:high(=7)

        「9 回目の mergeSortArray 呼び出し」を開始
        仮引数 low:4、high:7 を受けて、mid = 5 が算出される

        「9 回目」における再帰01での呼び出し 第2引数:low(=4)、第3引数:mid(=5)

          「10 回目の mergeSortArray 呼び出し」を開始
          仮引数 low:4、high:5 を受けて、mid = 4 が算出される

          「10 回目」における再帰01での呼び出し 第2引数:low(=4)、第3引数:mid(=4)

            「11 回目の mergeSortArray 呼び出し」を開始
            仮引数 low:4、high:4 を受けて、何もせずに return;
            「11 回目」が途中で中断されて再帰完了。

          「10 回目」における再帰02での呼び出し 第2引数:mid + 1(=5)、第3引数:high(=5)

            「12 回目の mergeSortArray 呼び出し」を開始
            仮引数 low:5、high:5 を受けて、何もせずに return;
            「12 回目」が途中で中断されて再帰完了。

        「9 回目」における再帰02での呼び出し 第2引数:mid + 1(=6)、第3引数:high(=7)

          「13 回目の mergeSortArray 呼び出し」を開始
          仮引数 low:6、high:7 を受けて、mid = 6 が算出される

          「13 回目」における再帰01での呼び出し 第2引数:low(=6)、第3引数:mid(=6)

            「14 回目の mergeSortArray 呼び出し」を開始
            仮引数 low:6、high:6 を受けて、何もせずに return;
            「14 回目」が途中で中断されて再帰完了。

          「13 回目」における再帰02での呼び出し 第2引数:mid + 1(=7)、第3引数:high(=7)

            「15 回目の mergeSortArray 呼び出し」を開始
            仮引数 low:7、high:7 を受けて、何もせずに return;
            「15 回目」が途中で中断されて再帰完了。

        「9 回目」が最後まで実行されて完了。

      「1 回目」が最後まで実行されて完了。

    void sort からの最初の呼び出しが完了。
記事No.83620 のレス /過去ログ143より / 関連記事表示
削除チェック/

■90932  Re[2]: 異なるシステム間のWebサービスの呼び出し
□投稿者/ passop -(2019/05/14(Tue) 13:03:23)
    No90930 (WebSurfer さん) に返信
    >
    > システム A, B の違いが分からないのですが・・・
    >
    > 基本的に Ajax ではクロスドメインでの要求には制約があることはご存知ですか?
    > その制約に引っかかっているということはありませんか?

    システムA・・・動画から静止画をつくるシステム
    システムB・・・その静止画を取り込んで紹介するシステム

    こちらのスレでWebサービスを利用したらということでしたので、
    そのサンプルを作成しております。

    http://bbs.wankuma.com/index.cgi?mode=al2&namber=90870

    おっしゃる通り、クロスドメイン制約にひっかかっているようです。
    このようなシステムAとシステムBが別サーバーの場合に
    Webサービスを利用するのは難しいのでしょうか?
記事No.90929 のレス /過去ログ157より / 関連記事表示
削除チェック/

■90934  Re[3]: 異なるシステム間のWebサービスの呼び出し
□投稿者/ WebSurfer -(2019/05/14(Tue) 13:29:27)
    No90932 (passop さん) に返信

    > このようなシステムAとシステムBが別サーバーの場合に
    > Webサービスを利用するのは難しいのでしょうか?

    いろいろ手はあると思います。例えば、

    (1) ブラウザ ⇔ システム B の Web サーバー ⇔ システム A の Web サービスという
      構成にしてシステム B にシステム A の Web サービスへのサービス参照を追加し、
      普通に SOAP で通信する。

    (2) システム B は Windows Forms などでも良いのであれば、(1) と同様にサービス参
      照を追加して普通に SOAP で通信する。JSON 文字列をやり取りしたいのであれば、
    HttpClient とか HttpWebRequest を利用して Web サービスに要求をかけるする。

    (3) どうしてもブラウザから異なるドメインのシステム A の Web サービスと Ajax で
      通信したいということであれば、JSONP とか CORS で対応する。
記事No.90929 のレス /過去ログ157より / 関連記事表示
削除チェック/

■90937  Re[3]: 異なるシステム間のWebサービスの呼び出し
□投稿者/ WebSurfer -(2019/05/14(Tue) 14:01:01)
    No90932 (passop さん) に返信

    > システムA・・・動画から静止画をつくるシステム
    > システムB・・・その静止画を取り込んで紹介するシステム

    以前のスレッドを拝見しました。

    システム A というのは ASP.NET Web アプリで、動画(.mp4 ファイル)が Web サーバーに保存されていて、
    ユーザーがブラウザでシステム A にアクセスして動画をダウンロードして再生し、任意の場所で静止させて
    そのスナップショットを撮るということですか?

    コードを見ると、その時点ではスナップショット画像はブラウザにしかないように見えます。

    そうだとすると、システム B をいかように作ろうと何ともならないように思いますけど。そのあたりどうす
    るのですか?
記事No.90929 のレス /過去ログ157より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -