Programmering 1, sökningsalgoritm
Tja,
hur ska jag gå tillväga att koda en sökalgoritm? Jag tänkte mig binär sökning eftersom listan är sorterad, och helst i en ny metod. Några ledtrådar?
using System;
using System.Collections.Generic;
using System.Threading;
// fick lägga till dessa kataloger för att sortera vektorerna
namespace ConsoleApp3
{
class Program
{
// detta är en statisk metod med en int som ett returvärde
// metoden tar en parameter i form av ett random objekt av
// randomklassen
static int RullaTärning(Random slumpObjekt)
{
// här ska du skapa kod som slumpar fram ett tal
// mellan 1 och 6, så att metoden "rullar" en 6 sidig
// tärning när vi kallar på den
// Metoden ska sedan returnera det rullade värdet
int tal = slumpObjekt.Next(1, 7);
return tal;
}
static void Main(string[] args)
{
Random slump = new Random(); // Skapar en instans av klassen Random för vårt slumptal
List<int> tärningar = new List<int>(); // listan för att spara våra rullade tärningar
Console.WriteLine("\n\tVälkommen till tärningsgeneratorn!");
bool kör = true;
while (kör)
{
Console.WriteLine("\n\t[1] Rulla tärning\n" +
"\t[2] Kolla vad du rullade\n" +
"\t[3] Avsluta");
Console.Write("\tVälj: ");
int val;
int.TryParse(Console.ReadLine(), out val);
switch (val)
{
case 1:
Console.Write("\n\tHur många tärningar vill du rulla?: ");
bool inmatning = int.TryParse(Console.ReadLine(), out int antal);
if (inmatning)
{
for (int i = 0; i < antal; i++)
{
// här kallar vi på metoden RullaTärning
// och sparar det returnerade värdet i
// listan tärningar
tärningar.Add(RullaTärning(slump));
}
tärningar.Sort(); // Jag lade till Sort-metoden som sorterar listan efter nummerordning
}
break;
case 2:
int summa = 0; // Skapar en int som ska innehålla medelvärdet av alla tärningsrullningar.
if (tärningar.Count <= 0)
{
Console.WriteLine("\n\tDet finns inga sparade tärningsrull! ");
}
else
{
Console.WriteLine("\n\tRullade tärningar: ");
foreach (int tärning in tärningar)
{
Console.WriteLine("\t" + tärning);
summa = summa + tärning; // Menar ni så här?
}
// Här ska medelvärdet skrivas ut
Console.WriteLine("\n\tMedelvärdet på dina kast: " + Dividera(summa, tärningar.Count));
Console.ReadLine();
Console.WriteLine("\n\tVill du ta bort de sparade tärningarna? j/n");
Console.Write("\tSvar: ");
string svar = Console.ReadLine();
if (svar == "j" || svar == "J")
{
tärningar.Clear(); //Använder detta för att rensa bort kasten i listan
Console.WriteLine("\n\tDu har nu rensat bort dina sparade tärningar.\n");
}
else
break;
}
break;
case 3:
Console.WriteLine("\n\tTack för att du rullade tärning, vi ses snart igen!");
Console.ReadLine();
kör = false;
break;
default:
Console.WriteLine("\n\tVälj 1-3 från menyn.");
break;
}
}
}
//
static double Dividera(double summa, double antal)
{
double svar = summa / antal;
return svar;
}
}
}