Råd för projektidé i Programmering 1

Permalänk
Medlem

Råd för projektidé i Programmering 1

Hejsan på er!
Jag ska nu ha mitt slutprojekt i Programmering 1 och ska göra ett program utifrån en idé som jag har kommit på själv. Jag har en plan om vad jag skulle vilja göra för någonting, och tror att jag klarar av en större del av koden själv, men en del av koden skulle jag gärna vilja ha hjälp med från någon mer kunnig.

Min idé är att skapa ett program som heter "Sommarlägret". På detta sommarläger finns det 20 barn som ska delas upp i 4 olika grupper slumpvis. Jag vet hur användaren matar in 20 namn, och också hur man slumpar fram ett. Men det jag skulle vilja i detta fall, och som jag inte riktigt vet hur, är att slumpa fram alla namn i 4 olika grupper med fem namn i vardera. Har någon tips på vad jag skulle kunna använda för tillvägagångssätt för detta? Jag har försökt söka mig till det utan framgång.

Jag har inte börjat koda ännu utan är fortfarande på första delen där jag ska framföra min projektidé, men för att göra detta så vill jag veta att det är genomförbart (för någon på tidig nybörjarnivå...). Jag vill självklart inte att någon skriver färdig kod åt mig utan som sagt vilket sätt jag kan göra detta på, och möjligtvis del av kod om det blir lättare att beskriva. Jag vore så tacksam för svar, oavsett om det är någon litet som kan få mig att tänka vidare. Tack på förhand, ha det bäst!

Permalänk
Medlem

Tilldela varje barn ett slumptal. Sortera barnen efter slumptalet, första fem i grupp 1 osv.

Permalänk
Medlem

Ett annat alternativ är att implementera Fisher-Yates shuffle, en väldigt välkänd algoritm som ordnar om en array slumpmässigt. Den är enkel att implementera och det finns säkert mängder av färdiga implementationer att hitta på nätet, men att implementera den själv är en väldigt bra nybörjarövning.

Se bara upp med att Random.Next(a, b) i C# returnerar ett värde x i intervallet a <= x < b, d.v.s. b inkluderas inte i intervallet. Detta är viktigt att tänka på när man implementerar en sån algoritm.

Permalänk
Medlem

@perost:

Är jag på rätt spår med denna kod?

using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("Skriv in namnen på de 20 barnen:"); string[] namn = new string[20]; for (int i = 0; i < namn.Length; i++) { namn[i] = Console.ReadLine(); } Console.WriteLine(); Random randomerare = new Random(); int slump_namn = randomerare.Next(1, 21); for (int i = 0; i < namn.Length; i++) { Console.WriteLine("Här är lag 1:"); Console.WriteLine(namn[0], namn[1], namn[2], namn[3], namn[4]); Console.ReadKey(); } } } }

Permalänk
Medlem
Skrivet av jsh97:

Är jag på rätt spår med denna kod?

Det beror väl på vad du menar med rätt spår. Du läser in 20 namn, så långt allt bra. Sen slumpar du fram ett tal som du inte gör något med och till sist skriver du ut de fem första namnen 20 gånger, så där har du en del att arbeta på.

Om du inte redan gjort det så är ett tips att lära dig använda debuggern så att du kan stega igenom koden rad för rad och se vad som händer när den körs. Microsoft har en kort genomgång här som går igenom grunderna. Grundkurser i programmering hoppar allt för ofta över hur man använder debuggern, vilket är lite som att lära sig cykla på asfalt utan stödhjul.