Autor Beitrag
Ritzeratze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101



BeitragVerfasst: So 20.10.13 22:27 
Hallo,

in meinem Programm bekomme ich immer den Fehler Bezeichner erwartet angezeigt.
Leider sehe ich den Wald vor Bäumen nicht. Kann mir jemand einen Wink geben?
Danke Ritze

ausblenden volle Höhe 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:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lagerverwaltung
{
  class Program
  {


    // Struktur für die Kistenverwaltung ***************************************************
    struct Kiste
    {
      public double laenge;
      public double breite;
      public double hoehe;
      public double volumen;
     
    }

    // Design für das Ausgabeprogramm ******************************************************** 
    static void Logo()
    {
      Console.Title = "Lagerverwaltung ";

      Console.BackgroundColor = ConsoleColor.DarkBlue;
      Console.ForegroundColor = ConsoleColor.Green;
      Console.Clear();
      Console.SetCursorPosition(201);
      Console.WriteLine("L A G E R V E R W A L T U N G\n\n");
    }

 
   static void einlesen(kleineKiste)

    {
      
     Kiste kleineKiste = new Kiste();
     
      Console.Write("Geben Sie die hoehe der {0}.Kiste ein: ", KistenNummer);
      kleineKiste.hoehe = Convert.ToDouble(Console.ReadLine());

      Console.Write("Geben Sie die breite {0}. Kiste ein: ", KistenNummer);
      kleineKiste.breite = Convert.ToDouble(Console.ReadLine());

      Console.Write("Geben Sie die laenge {0}. Kiste ein: ", KistenNummer);
      kleineKiste.laenge = Convert.ToDouble(Console.ReadLine());
      Console.WriteLine();

      return kleineKiste;
    }
      
       



        // Hauptprogramm ********************************************************************
        static void Main(string[] args)
          {
          //Variablendeklaration
          string antwort;
          string[] erlaubteZeichen = { "A""E""V""D""L" };

          //Aufruf der Methode  
          Logo();

          //Definition des Arrays
          Kiste[] KleineKiste = new Kiste[3];

         

          //Beginn des Auswahlmenue
          do
            {

                Console.SetCursorPosition(24);
                Console.WriteLine("Bitte wählen Sie die gewünschte Lageroperation aus!\n\n ");

                Console.SetCursorPosition(26);
                Console.WriteLine("Eingabe einer neuen Kiste:             (E/e)");

                Console.SetCursorPosition(28);
                Console.WriteLine("Anzeigen eine vorhandenen Kiste:       (A/a)");
             
                Console.SetCursorPosition(210);
                Console.WriteLine("Verändern der Daten einer Kiste:       (V/v)");

                Console.SetCursorPosition(2,12);
                Console.WriteLine("Löschen der Daten einer Kiste:         (D/d)");

                Console.SetCursorPosition(214);
                Console.WriteLine("Listenausgabe des Lagers:              (L/l)");
                
                Console.SetCursorPosition(218);
                Console.Write("Ihre Eingabe lautet: ");

                antwort = Console.ReadLine().ToUpper();

                // Wenn etwas anderes als die erlaubten Zeichen eingegegeben werden.
                if (!erlaubteZeichen.Contains(antwort))
                    {
                    Console.SetCursorPosition(220);
                    Console.WriteLine("Fehler: Ungültige Eingabe! Bitte wählen Sie eine der obigen Funktionen!");
                    }

            } while (!erlaubteZeichen.Contains(antwort));

            //Beginn des Switch Cases.
            switch (antwort)
            {
              
              case "E"/*Eingabe der Kiste*/

                for (int index = 0; index < 3; index++)
                KleineKiste[index] = einlesen(index + 1);
                
                     break;

              case "A":
                 
                    Console.WriteLine("Anzeige der Kiste");
                    break;

              case "D":
                    Console.WriteLine("Löschen der Daten");
                    break;

              case "L":
                    Console.WriteLine("Listenausgabe der Daten");
                    break;

              case "V":
                    Console.WriteLine("Ändern der Daten");
                    break;

              default:
                    break;

            }
          }
   }


Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 20.10.13 22:39 
Fang wir mit der einlesen Methode an.
a.) Parameter haben immer ein Typ und einen Namen
b.) Du übergibst scheinbar nur einen Namen legst aber gleichzeitig eine lokale Variable gleichen Namens an
c.) Du benutzt etwas das KistenNummer heißt das ist aber nirgendwo definiert.
d.) die Methode returned etwas ist aber mit Rückgabetyp void (also nix) definiert.
...
An anderen Stellen sind noch reichlich Fehler zu finden so das Aufzuzählen kaum lohnt.

Ich würde dir raten nochmal bei null anzufangen, du kannst deinen vorhanden Code ja als Quelle benutzen. Aber versuche von null mit dem Hinzufügen von einzelnen Codestücken in einer sinnigen Reihenfolge, so das du regelmäßig kompilieren kannst und das funktionieren deines Codes prüfen kannst, das ganze neu zusammenzusetzen.
Ritzeratze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101



BeitragVerfasst: So 20.10.13 22:58 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Fang wir mit der einlesen Methode an.
a.) Parameter haben immer ein Typ und einen Namen
Ja, genau darauf zielt meine Frage eigentlich ab. Wie müsste es richtig heißen?

b.) Du übergibst scheinbar nur einen Namen legst aber gleichzeitig eine lokale Variable gleichen Namens an
Das war ein verzweifelter Versuch von mir :-(

c.) Du benutzt etwas das KistenNummer heißt das ist aber nirgendwo definiert.
Stimmt. Muss ich ändern.

d.) die Methode returned etwas ist aber mit Rückgabetyp void (also nix) definiert.
Ja , auch hier versuche ich mich . Weiß aber nicht was zurückgegeben werden soll. Die Struckturvariable?
...
An anderen Stellen sind noch reichlich Fehler zu finden so das Aufzuzählen kaum lohnt.
Ja, stimmt. Einige habe ich gerade selber entdeckt. Bin halt noch am üben, üben, üben.


Ich würde dir raten nochmal bei null anzufangen, du kannst deinen vorhanden Code ja als Quelle benutzen. Aber versuche von null mit dem Hinzufügen von einzelnen Codestücken in einer sinnigen Reihenfolge, so das du regelmäßig kompilieren kannst und das funktionieren deines Codes prüfen kannst, das ganze neu zusammenzusetzen.
Puh, vielleicht hast Du recht. Bis zur Eingabe der einlesen Methode hat ja auch alles funktioniert.



Gruss Ritze
#
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 20.10.13 23:22 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
An anderen Stellen sind noch reichlich Fehler zu finden so das Aufzuzählen kaum lohnt.
Da finde ich leider keine, ich weiß nicht so recht welche du meinst ehrlich gesagt. Das einzige wirklich falsche ist die Deklaration der Funktion einlesen... dafür reicht es die eine Zeile zu korrigieren. Alles andere sollte funktionieren.

Sprich:
ausblenden C#-Quelltext
1:
2:
3:
    static void einlesen(kleineKiste) // alt

    static Kiste einlesen(int KistenNummer) // neu

Denn aufgerufen wird die Funktion ja hier:
ausblenden C#-Quelltext
1:
2:
                for (int index = 0; index < 3; index++)
                KleineKiste[index] = einlesen(index + 1);
Du übergibst also die Nummer der Kiste und das ist ein int. Und zurück bekommen möchtest du eine Kiste. Also Kiste statt void (nichts) als Rückgabewert und KistenNummer vom Typ int als Parameter statt kleineKiste fälschlicherweise ohne Typ.

Alles andere sieht so aus als würde es funktionieren, auch wenn da noch ein wenig fehlt.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 21.10.13 09:59 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
An anderen Stellen sind noch reichlich Fehler zu finden so das Aufzuzählen kaum lohnt.
Da finde ich leider keine, ich weiß nicht so recht welche du meinst ehrlich gesagt.


Der qualitative Unterschied zwischen der einlesen Methode und dem Rest des Code war so offensichtlich das ich eigentlich eine "der müßte eigentlich funktionieren der ist von unserem Lehrer bzw. stammt aus meinen Buch"-Antwort provozieren wollte um seine einleitenden Worte "mein Programm" zu wiederlegen ;) Psychologie ist wohl nicht meine Stärke.
Wobei ich etwas entäuscht bin da er in der Methode so ziemlich alles falsch gemacht hat was er in den letzten Fragen die er hier gestellt hat scheinbar schon wußte.
Ritzeratze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101



BeitragVerfasst: Mo 21.10.13 22:02 
Mich würde mal allgemein interessieren, wie Ihr angefangen habt eine Programmiersprache zu erlernen?

Sicherlich seit Ihr alle Meister, die dies schon mit in die Wiege gelegt bekommen haben. Aber der Rest der arbeitenden Bevölkerung muss sich dies mühsam aneignen und
neben Job, Familie, Kindererziehung und sonstigen Verpflichtungen diese Aufgabe meistern. Wenn man dann noch über 50 ist, und abends erst ab 22:00 Uhr dazu kommt ,fällt es einen nicht mehr so leicht, wie mit 15 oder 20 Jahren. Nein, ich lerne es nicht, weil ich da Spaß daran habe, sondern weil mein Dienstherr es befohlen hat. Das gehört zu Vereinbarungen die in einen Dienstvertrag niedergeschrieben sind.

Nun fragt man sich sicherlich, warum sucht man ein Forum auf? Für mich ist es immer interessant, was für Probleme die einzelnen User haben. Gibt es Probleme, die ich auch schon mal hatte, und lösen konnte? Dann ist es für mich sehr befriedigend, wenn ich jemanden mit meinem Wissen weiterhelfen kann. Eigentlich dacht ich immer, dass dies genau die Werte sind, die ein Forum vermitteln möchte.

Anscheinend habe ich mich da aber getäuscht!! Und zum Abschluss einen schönen Gruss an mein Kommentator, Das jetzige Programm habe ich mit, meinem jetzigen Wissenstand so niedergeschrieben.

Mit einem freundlichen Gruß
Ritze
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 21.10.13 22:35 
Zitat:
Nun fragt man sich sicherlich, warum sucht man ein Forum auf? Für mich ist es immer interessant, was für Probleme die einzelnen User haben. Gibt es Probleme, die ich auch schon mal hatte, und lösen konnte? Dann ist es für mich sehr befriedigend, wenn ich jemanden mit meinem Wissen weiterhelfen kann. Eigentlich dacht ich immer, dass dies genau die Werte sind, die ein Forum vermitteln möchte.


Hätte man mich etwas in der Richtung gefragt hätte ich etwas ähnliches geantwortet.
Ansonsten scheint die Art wie ich das mache nicht zu gefallen bzw. nicht zu helfen. Das ist ok. Ich werde es einfach lassen und es ein paar anderen Forenbesuchern überlassen.
Ritzeratze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101



BeitragVerfasst: Di 22.10.13 00:08 
Na, nicht gleich eingeschnappt sein. Das war nur eine allgemeine Frage, und meine Antwort auf diverse Antworten in diesem Forum. Bitte nicht persönlich angegriffen fühlen !!!!
Manch Kommentator soll sich nur mal darüber Gedanken machen, warum Forenteilnehmer hier Fragen stellen und Beiträge veröffentlichen. Wenn jeder 100 % eine Sprache beherrscht, wäre dieses Forum leer.


Gruss
Ritze