none
Eine kleine Frage :) RRS feed

  • Frage

  • Hey Leute,

    Ich habe versucht eine Zufallsgenerator für Lottozahlen  zur Programmieren. Danach wolte ich eine Sortierverfahren mit den Zahlen durchführen 1.selectinsort 2. bubblesort. Dort habe ich Probleme vllt. könnt ihr mir dabei helfen.

    Bei Case 0 wird gesagt:  Der Name oder Bezeichner ist im Aktuellen Kontext nicht vorhanden !

    dem entsprechend habe ich meine Variablen deklariert doch dann kommt eine andere fehlermeldung raus :   Indizierung mit [] kann nicht auf einen Ausdruck vom Typ "double" angewendet werden.   ???

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace Lottozahlen
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void button1_Click(object sender, EventArgs e)
            {
              int[] box = new int[49];
              for (int i = 0; i < 49; ++i)
                  box[i] = i + 1;
    
              Random index1 = new Random(); int index = 0;
              for (int i = 0; i < 49; ++i)
            {
                  index = index1.Next(1, 49);
                  box[i] = index;
            }
              for (int i = 0; i < 6; ++i)
                {
                     //Ausgabe unsortierten bereich
                    if (i == 0) label9.Text = box[i].ToString();
                    if (i == 1) label10.Text = box[i].ToString();
                    if (i == 2) label11.Text = box[i].ToString();
                    if (i == 3) label12.Text = box[i].ToString();
                    if (i == 4) label13.Text = box[i].ToString();
                    if (i == 5) label14.Text = box[i].ToString();
                 }
            }
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
               switch (comboBox1.SelectedIndex)
                    {
                    case 0:
                           for (int i = 0; i < 6; i++) 
                        {                                           //Selectionsort
                            for (int j = i + 1; j < 6; j++)
                            {
                                if (Lotto[i] > Lotto[j]) 
                                {
                                    zwischenspeicher = Lotto[i]; 
                                    Lotto[i] = Lotto[j];
                                    Lotto[j] = zwischenspeicher; 
                                }
                            }
                        }
    
                }
            }
        }
    }



                }
            }
        }
    }

    Sonntag, 8. Dezember 2013 18:06

Antworten

  • Hallo,
    der erste Fehler bei case entsteht, wie du richtig erkannt hast, durch eine fehlende Deklaration. Der 2. Fehler sagt nun aus, dass das Lotto-Objekt vom Typ double ist, du aber ein Array brauchst. Soweit ich sehen kann, benutzt du weiter oben immer das Objekt box. Darum würde ich das auch unten wieder verwenden. Zumindest die ersten 6 Elemente davon.

    Dabei fällt mir auf, das dein Code nicht der aller beste zu sein scheint, weil du das ganze Array mit 49 Elementen mit zufälligen Zahlen "fütterst". Nachfolgend mal ein kleines Beispiel zum erzeugen von solchen Zahlen-Arrays:

                int[] box = new int[6];
                int i = 0;
                Random rnd = new Random();
                while (i < 6)//Solange laufen lassen, bis 6 Zahlen generiert wurden
                {
                    int wert = rnd.Next(1, 49);//Zahl generieren
                    if(!box.Contains (wert))//Zahl noch nicht enthalten
                    {
                        box[i] = wert;//Wert in Array aufnehmen
                        ++i;//Zählervariable erhöhen
                    }
                }
    Nun zum sortieren. Du brauchst da nicht selbst schreiben. .NET liefert da alles mit:
    Array.Sort(box);
    Durch die Sort-Methode wird das übergebene Array sortiert.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Sonntag, 8. Dezember 2013 18:26
    Moderator

Alle Antworten