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

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

C# と VB.NET の入門サイト

Re[3]: 配列の抜き出し


(過去ログ 62 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■36014 / inTopicNo.1)  配列の抜き出し
  
□投稿者/ にく (1回)-(2009/05/18(Mon) 15:08:51)

分類:[VB.NET/VB2005 以降] 

はじめまして、VB1ヶ月の初心者です
環境:VB2005
データ:txtdata

複数の数値データを扱う配列操作で行き詰っております。

1,2,3〜10000のデータを5個を抜かして、100個単位で改行して
表示させるまたは、変数に格納できればよいのですが。

理想:
6〜100(改行)
106〜200(改行)
・・・
9906〜10000

と抜き出して
Textboxに表示させたいのですが、
Array.CopyとかJoinとかを使って試行錯誤して
いますが、うまくいかないのです。
別の方法でもよいのでどなたか
ご教授の程、宜しくお願い致します。


引用返信 編集キー/
■36015 / inTopicNo.2)  Re[1]: 配列の抜き出し
□投稿者/ επιστημη (1939回)-(2009/05/18(Mon) 15:52:12)
επιστημη さんの Web サイト
2009/05/18(Mon) 15:52:50 編集(投稿者)
こんなんでええのかの。
めんどっちーのでConsoleに出力してますが、
本番ではStringBuilderにでも食わせりゃえぇでしょう。
C#だけどキモは通じますよね ^^;

using System;

class Program {
  public static void Main() {
    int N = 10000;
    int[] input = new int[N];
    // テケトーな初期化
    for ( int i = 0; i < N; ++i ) {
      input[i] = i+1;
    }

    int items_per_line = 100; // 100個で改行
    int step = 6; // 6個毎
    int count = 0; // 出力した個数

    for ( int i = 0; i+step < N; i += step ) {
      Console.Write("{0} ", input[i+step-1]); // 出力して
      if ( ++count == items_per_line ) { // たまに
        Console.WriteLine(); // 改行
        count = 0;
      }
    }
  }
}

引用返信 編集キー/
■36016 / inTopicNo.3)  Re[1]: 配列の抜き出し
□投稿者/ やじゅ (1007回)-(2009/05/18(Mon) 16:04:11)
やじゅ さんの Web サイト
2009/05/18(Mon) 16:09:08 編集(投稿者)

No36014 (にく さん) に返信
> 1,2,3〜10000のデータを5個を抜かして、100個単位で改行して
> 表示させるまたは、変数に格納できればよいのですが。
>
> 理想:
> 6〜100(改行)
> 106〜200(改行)
> ・・・
> 9906〜10000

剰余演算子(余り)のMod演算子を使って
計算結果が1〜5になるのは除去する。

  値 Mod単位
1〜100 100 例 101 Mod 100 = 1  
101〜200 200 例 202 Mod 200 = 2

*→kに変換 同じ学校の課題でしょうか?
http://hanatyan.sa*ura.ne.jp/vbnetbbs/wforum.cgi?mode=allread&no=8936&page=0
引用返信 編集キー/
■36017 / inTopicNo.4)  Re[2]: 配列の抜き出し
□投稿者/ ふるふる (26回)-(2009/05/18(Mon) 16:06:43)
ロジックはこんなの?
VBAだけどいいのかな・・・
Sub p()
Dim i As Long, j As Long
For i = 6 To 9906 Step 100
For j = i To i + 94
Debug.Print j;
Next
Debug.Print
Next
End Sub


引用返信 編集キー/
■36018 / inTopicNo.5)  Re[3]: 配列の抜き出し
□投稿者/ みきぬ (431回)-(2009/05/18(Mon) 16:28:43)
問題を分解してみたよ!

Public MustInherit Class Class1

    Private 元データ(9999) As Integer

    Public Function 配列の抜き出し() As String
        元データに値を入れる()

        Dim 結果の文字列 As New System.Text.StringBuilder()

        For i As Integer = 1 To 100
            Dim 加工前の配列 As Integer() = 元データのn番目のブロックを取得する(元データ, i)
            Dim 加工後の配列 As Integer() = 配列を加工する(加工前の配列)

            結果の文字列.AppendLine(配列から文字列を生成する(加工後の配列))
        Next

        Return 結果の文字列.ToString()
    End Function

    Protected Sub 元データに値を入れる()
        For i As Integer = 0 To 元データ.Length - 1
            元データ(i) = i + 1
        Next
    End Sub

    Protected MustOverride Function 元データのn番目のブロックを取得する(ByVal 元の配列 As Integer(), ByVal n As Integer) As Integer()
    Protected MustOverride Function 配列を加工する(ByVal 加工前の配列 As Integer()) As Integer()
    Protected MustOverride Function 配列から文字列を生成する(ByVal 配列 As Integer()) As String

End Class

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -