.NET 2.x Random: случайный выбор чисел в диапазоне, и вводом - C#
Формулировка задачи:
RANDOM СЛУЧАЙНЫЙ ВЫБОР ЧИСЕЛ В ДИАПАЗОНЕ, И ВВОДОМ
Вот код
в котором ошибка N[myArray[j]]
где myArray[j] случайно подобранные не повторяющийся числа, что были введены , и хранятся в массиве
Ошибка находиться в static void RANDOM_NUMBER_2 (int[] N)
Кто нибудь знает как поправить N[myArray[j]] ?
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace RANDOM_ASCII
{
class Program
{
static void Main(string[] args)
{
int exit = 1;
string com = "";
while (exit>0)
{
int number_start = 0, number_end = 0;
Title_color("Случайный Выбор ASCII");
Console.WriteLine("\t\t\tСлучайный Выбор\n\n");
Console.WriteLine("Выберете вариант подбора (y/n).....");
com = Console.ReadLine();
if (com=="y" || com=="Y")
{
Console.WriteLine("Выберете начальную нумерацию....");
number_start = Convert_to_int(Console.ReadLine());
Console.WriteLine("Выберете конечную нумерацию....");
number_end = Convert_to_int(Console.ReadLine());
Console.WriteLine("Список номеров Подбора:....\n");
spisok(number_start, number_end);
Console.WriteLine("\n");
Console.WriteLine("Список Случайного Подбора:....\n");
RANDOM_NUMBER(number_start, number_end);
}
if (com=="n" || com=="N")
{
int counts = 0;
Console.WriteLine("Введите количество случайных чисел.....");
counts = Convert_to_int(Console.ReadLine());
int[] mass = new int[counts];
Console.WriteLine("\n");
for (int i=0;i<mass.Length;i++)
{
Console.WriteLine("Введите "+i+ " ...");
mass[i] = Convert_to_int(Console.ReadLine());
Console.WriteLine("Номер: "+mass[i]+"\n");
}
RANDOM_NUMBER_2(mass);
}
else if (com != "y" || com != "Y" && com != "n" || com != "N")
{
Console.WriteLine("ОШИБКА НЕ ВЕРНО ВВЕДЕНА КОМАНДА ВЫБОРА......");
}
Console.ReadKey(true);
}
}
static void spisok (int start,int end)
{
int couts = 0;
couts = (end) - (start);
for (int i= start; i<= end; i++)
{
Console.WriteLine("номера: "+i);
}
}
static int Convert_to_int (string str)
{
int n = 0;
try
{
n = Convert.ToInt32(str);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return n;
}
static void Title_color (string titles)
{
Console.BackgroundColor = ConsoleColor.DarkCyan;
Console.Clear();
Console.ForegroundColor = ConsoleColor.White;
Console.Title = titles;
}
static void RANDOM_NUMBER_2 (int[] N)
{
ArrayList myArray = new ArrayList();
Random ran = new Random();
int k = 0;
// добавление неповторяющихся элементов
for (int i = 0; i < 100; i++)
{
int temp = ran.Next(N.Length);
if (!myArray.Contains(temp))
myArray.Add(temp);
}
for (int j = 0; j < myArray.Count; j++)
{
// Тут ошибка N[myArray[j]]
Console.WriteLine("Символ " + j + " ASCII : " + "{0}", N[myArray[j]]); // Тут ошибка N[myArray[j]]
}
}
static void RANDOM_NUMBER (int start,int end)
{
int couts = 0;
int random0 = 0,random1=0;
ArrayList myArray = new ArrayList();
Random ran = new Random();
if (end>start)
{
couts = (end) - (start);
// добавление неповторяющихся элементов
for (int i = 0; i < 100; i++)
{
int temp = ran.Next(start, end+1);
if (!myArray.Contains(temp))
myArray.Add(temp);
}
//foreach (int i in myArray)
for (int j=0;j < myArray.Count;j++)
{
Console.WriteLine("Символ " + j + " ASCII : " + "{0}", myArray[j] );
}
}
else
{
Console.WriteLine("ОШИБКА: начальную нумерацию > конечную нумерацию");
}
}
}
}Решение задачи: «.NET 2.x Random: случайный выбор чисел в диапазоне, и вводом»
textual
Листинг программы
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace RANDOM_ASCII
{
class Program
{
static void Main(string[] args)
{
int exit = 1;
string com = "";
while (exit>0)
{
int number_start = 0, number_end = 0;
Title_color("Случайный Выбор ASCII");
Console.WriteLine("\t\t\tСлучайный Выбор\n\n");
Console.WriteLine("Выберете вариант подбора (y/n).....");
com = Console.ReadLine();
if (com=="y" || com=="Y")
{
Console.WriteLine("Выберете начальную нумерацию....");
number_start = Convert_to_int(Console.ReadLine());
Console.WriteLine("Выберете конечную нумерацию....");
number_end = Convert_to_int(Console.ReadLine());
Console.WriteLine("Список номеров Подбора:....\n");
spisok(number_start, number_end);
Console.WriteLine("\n");
Console.WriteLine("Список Случайного Подбора:....\n");
RANDOM_NUMBER(number_start, number_end);
}
if (com=="n" || com=="N")
{
int counts = 0;
Console.WriteLine("Введите количество случайных чисел.....");
counts = Convert_to_int(Console.ReadLine());
int[] mass = new int[counts];
Console.WriteLine("\n");
for (int i=0;i<mass.Length;i++)
{
Console.WriteLine("Введите "+i+ " ...");
mass[i] = Convert_to_int(Console.ReadLine());
Console.WriteLine("Номер: "+mass[i]+"\n");
}
Console.WriteLine("Список номеров Подбора:....\n");
spisok2(mass);
Console.WriteLine("\n");
Console.WriteLine("Список Случайного Подбора:....\n");
RANDOM_NUMBER_2(mass);
}
else if (com != "y" && com != "Y" && com != "n" && com != "N")
{
Console.WriteLine("ОШИБКА НЕ ВЕРНО ВВЕДЕНА КОМАНДА ВЫБОРА......");
}
Console.ReadKey(true);
}
}
static int k_tmp { get; set; }
static void spisok2(int[] mass)
{
int k = 0;
for(int i=0;i<mass.Length;i++)
{
k = k + 1;
Console.WriteLine(k + " номера: " + mass[i]);
}
k_tmp = k;
}
static void spisok (int start,int end)
{
int couts = 0;
int k = 0;
couts = (end) - (start);
for (int i= start; i<= end; i++)
{
k = k + 1;
Console.WriteLine(k+" номера: "+i);
}
k_tmp = k;
}
static int Convert_to_int (string str)
{
int n = 0;
try
{
n = Convert.ToInt32(str);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return n;
}
static void Title_color (string titles)
{
Console.BackgroundColor = ConsoleColor.DarkCyan;
Console.Clear();
Console.ForegroundColor = ConsoleColor.White;
Console.Title = titles;
}
static void RANDOM_NUMBER_2 (int[] N)
{
ArrayList myArray = new ArrayList();
Random ran = new Random();
int k = 0;
// добавление неповторяющихся элементов
for (int i = 0; i < 100; i++)
{
int temp = ran.Next(N.Length);
if (!myArray.Contains(temp))
myArray.Add(temp);
}
foreach (int i in myArray) //for (int j = 0; j < myArray.Count; j++)
{
k = k + 1;
Console.WriteLine("Символ " + k + " ASCII : " + "{0}", N[i]);
}
Console.WriteLine("\nНе попали: " + (k_tmp - k));
}
static void RANDOM_NUMBER (int start,int end)
{
int couts = 0;
int random0 = 0,random1=0;
ArrayList myArray = new ArrayList();
int k = 0;
Random ran = new Random();
if (end>start)
{
couts = (end) - (start);
// добавление неповторяющихся элементов
for (int i = 0; i < 100; i++)
{
int temp = ran.Next(start, end+1);
if (!myArray.Contains(temp))
myArray.Add(temp);
}
foreach (int i in myArray)
//for (int j=0;j < myArray.Count;j++)
{
k = k+1;
Console.WriteLine("Символ " + k + " ASCII : " + "{0}", i );
}
Console.WriteLine("\nНе попали: " + (k_tmp - k));
}
else
{
Console.WriteLine("ОШИБКА: начальную нумерацию > конечную нумерацию");
}
}
}
}