Entwickler-Ecke

C# - Die Sprache - Skalarprodukt


Ogrus - Sa 08.01.11 18:53
Titel: Skalarprodukt
hallo zusammen,

ich habe nochn Problem, wo ich einfach nich erkennen kann, warum mir VS eine Fehlermeldung beim Versuch des Debbugens gibt.

Und zwar erscheint dieser Fehler in den Fehlerleiste:

"Eine lokale Variable mit dem Namen "produkt" kann in diesem Bereich nicht deklariert werden, weil dadurch "produkt" eine andere Bedeutung erhalten würde, was bereits im Bereich "übergeordnet oder aktuell" in anderer Bedeutung verwendet wird"


Hier der Quelltext:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HA_3
{
    class Program
    {

        static double skalar(double[] feld1, double[] feld2)
        {

            double produkt = 0.0;

            for (int no = 0; no < feld1.Length && no < feld2.Length; ++no)
            {
                double produkt = feld1[no] * feld2[no] + feld1[no + 1] * feld2[no + 1];



            }




            return produkt;
        }




        static void Main(string[] args)
        {


            double[] feld1 = new double[]{2.0,3.0,4.0};

            



            double[] feld2 = new double[]{5.0,6.0,7.0};

           


            Console.WriteLine("Das Skalarprodukt beträgt: {0}" ,skalar(feld1, feld2));





            Console.ReadLine();
        }
    }
}




PS: mir geht es nich darum, ob irgendwelche Logikfehler drin sein könnten, sondern nur um diese Fehlermeldung^^. Wäre nett wenn ihr mir beim Finden dieses Fehlers helfen könntet.^^


jaenicke - Sa 08.01.11 18:56

user profile iconOgrus hat folgendes geschrieben Zum zitierten Posting springen:

C#-Quelltext
1:
2:
3:
4:
5:
            double produkt = 0.0;

            for (int no = 0; no < feld1.Length && no < feld2.Length; ++no)
            {
                double produkt = feld1[no] * feld2[no] + feld1[no + 1] * feld2[no + 1];
Du versuchst hier die bereits existierende Variable bei jedem Schleifendurchlauf neu zu deklarieren. Lösche einfach das double und verwende also einfach die existierende Variable.


Ogrus - Sa 08.01.11 19:16

ok danke^^


jaenicke - Sa 08.01.11 19:19

Ich hab grad noch einmal drauf geschaut, ich glaube da fehlt noch ein Pluszeichen. ;-)

C#-Quelltext
1:
produkt += feld1...