Sieb des Eratosthenes bringt alles durcheinander



  • Ich möchte eine Ulam-Spirale programmieren. Dazu wollte ich ein Sieb des Eratosthenes programmieren.

    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    namespace W0040UlamSpirale
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private const int V = 100000;
            Graphics z;
            Pen stift = new Pen(Color.Black, 1);
    
            //erstellt ein Sieb des Eratosthenes für alle Zahlen unter 1000000
            bool[] nonprime = new bool[V];  // all elements are false (zero) 
            nonprime[0]=true;    //hier meckert der Compiler,dass nonprime im aktuellen Kontext nicht vorhanden ist
             nonprime[1]=true;         // 0 and 1 are no primes
            int pn = 2;
            do
            {
                for (int n = pn* pn; n< 100000; n = n + pn)
                nonprime[n] = true;
                do { pn++; } while (nonprime[pn] == true); //find next prime
            } while (pn <= 1000);
    
               //At the end of the sieve all primes are "false", all nonprimes are "true"
    
    
            private void CmdStart_Click(object sender, EventArgs e)
            {
                z.FillRectangle(Brushes.Black, 50, 50, 1, 1);
                //alternativ: z.FillRectangle(Brushes.Black, new Rectangle(50, 50, 1, 1));
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                z = CreateGraphics();
            }
    
            private void CmdClear_Click(object sender, EventArgs e)
            {
                z.Clear(BackColor);
            }
        }
    }
    ```csharp
    Das Programm ist noch nicht vollständig.
    

    Bei den Methoden Form1_Load und CmdClear_Click meckert der Compiler, dass Member wie z. B. Felder oder Methoden nicht direkt in einem Namespace enthalten sein können.
    Irgendwie bringt das Sieb des Eratosthenes alles durcheinander.
    Kann mir jemand weiterhelfen`? vielen Dank!```



  • @chicken25 sagte in Sieb des Eratosthenes bringt alles durcheinander:

    //hier meckert der Compiler,dass nonprime im aktuellen Kontext nicht vorhanden ist

    befindet sich ja auch außerhalb irgendwelcher methoden, nicht wahr?



  • @chicken25 sagte in Sieb des Eratosthenes bringt alles durcheinander:

    Ich möchte eine Ulam-Spirale programmieren.

    Zu allererst möchtest du dir viel lieber ein Lehrbuch zu C# besorgen oder zumindest (falls nicht im Budget) ein paar Tutorials lesen und verstehen.

    Du machst im Prinzip den selben Fehler wie in deinem anderen Thread.