Autor |
Beitrag |
Ritzeratze
      
Beiträge: 101
|
Verfasst: 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
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 {
struct Kiste { public double laenge; public double breite; public double hoehe; public double volumen; }
static void Logo() { Console.Title = "Lagerverwaltung ";
Console.BackgroundColor = ConsoleColor.DarkBlue; Console.ForegroundColor = ConsoleColor.Green; Console.Clear(); Console.SetCursorPosition(20, 1); 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; }
static void Main(string[] args) { string antwort; string[] erlaubteZeichen = { "A", "E", "V", "D", "L" };
Logo();
Kiste[] KleineKiste = new Kiste[3];
do {
Console.SetCursorPosition(2, 4); Console.WriteLine("Bitte wählen Sie die gewünschte Lageroperation aus!\n\n ");
Console.SetCursorPosition(2, 6); Console.WriteLine("Eingabe einer neuen Kiste: (E/e)");
Console.SetCursorPosition(2, 8); Console.WriteLine("Anzeigen eine vorhandenen Kiste: (A/a)"); Console.SetCursorPosition(2, 10); 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(2, 14); Console.WriteLine("Listenausgabe des Lagers: (L/l)"); Console.SetCursorPosition(2, 18); Console.Write("Ihre Eingabe lautet: ");
antwort = Console.ReadLine().ToUpper();
if (!erlaubteZeichen.Contains(antwort)) { Console.SetCursorPosition(2, 20); Console.WriteLine("Fehler: Ungültige Eingabe! Bitte wählen Sie eine der obigen Funktionen!"); }
} while (!erlaubteZeichen.Contains(antwort));
switch (antwort) { case "E":
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 Christian S.: Code- durch C#-Tags ersetzt
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: 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 
      
Beiträge: 101
|
Verfasst: So 20.10.13 22:58
Ralf Jansen hat folgendes geschrieben : | 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
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 20.10.13 23:22
Ralf Jansen hat folgendes geschrieben : | 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: C#-Quelltext 1: 2: 3:
| static void einlesen(kleineKiste) static Kiste einlesen(int KistenNummer) |
Denn aufgerufen wird die Funktion ja hier: 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
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Mo 21.10.13 09:59
|
|
Ritzeratze 
      
Beiträge: 101
|
Verfasst: 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
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: 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 
      
Beiträge: 101
|
Verfasst: 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
|
|
|