Cześć, uczę się programowania i mam do napisania aplikację konsolową, która pyta się użytkownika o zakres i ilość losowanych liczb, losuje te liczby i na końcu następuje sprawdzenie, czy jedna konkretna liczba została wylosowana.
Chciałbym wiedzieć, dlaczego w moim programie, w metodzie drawNumbers(int qtyToDraw) następuje inicjalizacja tylko pierwszego indeksu tablicy int[] drawedNumbers. Bardzo dziękuję za odpowiedź.
namespace DrawingNumbers
{
class Drawing
{
enum RangeType { Max, Min };
int qtyToDraw;
int MinRange;
int MaxRange;
int[] drawedNumbers;
public Drawing()
{
Console.WriteLine("Proszę podać ilość liczb do wylosowania");
this.qtyToDraw = int.Parse(Console.ReadLine());
Console.WriteLine();
this.MinRange = selectRange(RangeType.Min);
Console.WriteLine();
this.MaxRange = selectRange(RangeType.Max);
drawedNumbers = new int[this.qtyToDraw];
drawNumbers(this.qtyToDraw);
showNumbers();
checkIfNumberExist();
}
private int selectRange(RangeType rangeType)
{
int? range = null;
try
{
switch (rangeType)
{
case RangeType.Min:
{
Console.WriteLine("Proszę podać dolny zakres losowanych liczb: ");
range = int.Parse(Console.ReadLine());
break;
}
case RangeType.Max:
{
Console.WriteLine("Proszę podać górny zakres losowanych liczb: ");
range = int.Parse(Console.ReadLine());
break;
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return (int)range;
}
private void drawNumbers(int qtyToDraw)
{
Random rand = new Random();
foreach(int i in drawedNumbers)
{
int random = rand.Next(this.MinRange, this.MaxRange);
this.drawedNumbers[i] = random;
}
}
private void showNumbers()
{
foreach(int i in drawedNumbers)
{
Console.WriteLine(i + "");
}
Console.WriteLine();
}
private void checkIfNumberExist()
{
int numberToCheck;
Console.WriteLine("Wybierz numer do sprawdzenia:");
numberToCheck = int.Parse(Console.ReadLine());
bool isExist = false;
foreach(int i in drawedNumbers)
{
if(i == numberToCheck)
{
isExist = true;
}
}
if (isExist)
{
Console.WriteLine($"Numer {numberToCheck} istnieje");
}
else
{
Console.WriteLine($"Numer {numberToCheck} nie istnieje");
}
Console.WriteLine();
Console.ReadKey(true);
}
}
class Program
{
static void Main(string[] args)
{
Drawing losowanie = new Drawing();
}
}
}