質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

1回答

688閲覧

オブジェクトクラスを作成して綺麗なコードで乱数の取得を行いたい

3123

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2021/11/12 12:45

前提・実現したいこと

オブジェクトクラスを作成して綺麗なコードで乱数の取得を行いたい

ここに質問の内容を詳しく書いてください。
現在、c#を学校で勉強中で、課題に取り組んでいるところです。課題の内容は
① 配列を2つ用意し、決められた範囲の乱数を格納する A列とB列がありA列は重複禁止
② A列とB列の中身をすべて表示する
③ A列を表示すると同時に、同じ列に同じ数字が入っていた場合は、A列の数字を0に変更する

これの、Aリストに数字をいれる作業と、Bリストに数字をいれる作業のオブジェクトクラスを作成して同じように実行するという追加課題が出たのですが、調べても分からないので、実際のコード付きで教えてほしいです。

よろしくお願いいたします。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

c#

1internal class Program 2{ 3static void Main(string[] args) 4{ 5Random Random = new Random(); 6int[] AList = new int[9]; 7int[] BList = new int[9]; 8var list = new List<int>(); 9//Aリストに重複のない数字を格納 10for (int i = 0; i < 8; i++) 11{ 12AList[i] = Random.Next(1, 9); 13if (!list.Contains(AList[i])) 14{ 15list.Add(AList[i]); 16} 17else 18{ 19i--; 20} 21} 22//Bリストに重複のない数字を格納 23for (int i = 0; i < 8; i++) 24{ 25BList[i] = Random.Next(1, 9); 26} 27for (int i = 0; i < 8; i++) { 28Console.Write("B配列の" + i + "列目の中身は" + BList[i]); 29Console.WriteLine(); 30} 31Console.WriteLine(); 32for (int i = 0; i < 8; i++) 33{ 34Console.Write("A配列の" + i + "列目の中身は" + AList[i]); 35Console.WriteLine(); 36} 37Console.WriteLine(); 38Console.WriteLine("結果は"); 39for (int i = 0; i < 8; i++) 40{ 41if (AList[i] == BList[i]) 42{ 43AList[i] = 0; 44} 45Console.Out.Write(AList[i] + " "); 46} 47} 48} 49}

試したこと

グーグルやyoutubeで情報を集めましたがよくわかりませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2021/11/12 12:51

> 実際のコード付きで教えてほしいです。 全力でガイドライン違反していくスタイルか。 https://teratail.com/help/avoid-asking こんな簡単なルールすらわからない理解力じゃ誰が教えてもたぶん無駄じゃね?
1T2R3M4

2021/11/12 12:55

赤の他人に聞くくらいなら先生に教えてもらえばいいのでは。
m.ts10806

2021/11/12 12:57

>調べても分からない >グーグルやyoutubeで情報を集めました 調べた感が皆無ですよ。
退会済みユーザー

退会済みユーザー

2021/11/12 14:40

本当に調べたなら一分掛からないのでは。
fana

2021/11/13 02:05

> オブジェクトクラス という単語が意味不明なために話の内容も意味不明になっているので,妥当な語に修正してください.
guest

回答1

0

Aリストに数字をいれる作業と、Bリストに数字をいれる作業のオブジェクトクラスを作成して同じように実行する

上記の文脈で使えるオブジェクトクラスという単語は存在しません。
無理やり意図を解釈するなら「Aリストに数字をいれる作業と、Bリストに数字をいれる作業を行うクラスを作成し、そのクラスを利用して元のプログラムと同じ動作を実現する」というところでしょうか。
出題者の意図がわからないのでこれが正解かどうか知りませんが、とりあえずクラスを使ったコードは以下になります。

調べても分からないので、実際のコード付きで教えてほしいです。

何が分からないかを書かないと教えることはできません。
何が分からないか分からない(つまり全てが分からない)なら入門書を最初から読んでくださいとしか答えられません。

C#

1internal class Program 2{ 3 static void Main(string[] args) 4 { 5 var g = new ListGenerator(); 6 int[] AList = g.GenerateA(); 7 int[] BList = g.GenerateB(); 8 9 for (int i = 0; i < 8; i++) 10 { 11 Console.Write("B配列の" + i + "列目の中身は" + BList[i]); 12 Console.WriteLine(); 13 } 14 Console.WriteLine(); 15 16 for (int i = 0; i < 8; i++) 17 { 18 Console.Write("A配列の" + i + "列目の中身は" + AList[i]); 19 Console.WriteLine(); 20 } 21 Console.WriteLine(); 22 23 Console.WriteLine("結果は"); 24 for (int i = 0; i < 8; i++) 25 { 26 if (AList[i] == BList[i]) 27 { 28 AList[i] = 0; 29 } 30 Console.Out.Write(AList[i] + " "); 31 } 32 } 33} 34 35class ListGenerator 36{ 37 public int[] GenerateA() 38 { 39 Random Random = new Random(); 40 int[] AList = new int[9]; 41 var list = new List<int>(); 42 //Aリストに重複のない数字を格納 43 for (int i = 0; i < 8; i++) 44 { 45 AList[i] = Random.Next(1, 9); 46 if (!list.Contains(AList[i])) 47 { 48 list.Add(AList[i]); 49 } 50 else 51 { 52 i--; 53 } 54 } 55 return AList; 56 } 57 58 public int[] GenerateB() 59 { 60 Random Random = new Random(); 61 int[] BList = new int[9]; 62 //Bリストに重複のない数字を格納 63 for (int i = 0; i < 8; i++) 64 { 65 BList[i] = Random.Next(1, 9); 66 } 67 return BList; 68 } 69}

投稿2021/11/12 15:24

編集2021/11/12 15:30
ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問