-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
9. Jun 2021
Geht mal davon aus, dass bei Studierenden, die gerade erst Programmieren lernen, nur die einfachsten Wege beschritten werden sollen und nicht die abgefahrensten und performantesten.
Was hätten wir alle, nachdem wir so gerade mal 4 Wochen mit Pascal programmiert haben, wohl so an Lösungansätzen genutzt?
if
case
while
for
repeat
Mehr geben die momentanen Anforderungen einfach nicht her.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
7. Jun 2021
Es geht aber darum den nummerischen Wert der längsten Ziffernfolge in einem beliebig langen String zurückzugeben. Und da scheitern wir dann bei dem Rückgabewert 0 für keine Ziffernfolge enthalten und der nummerische Wert der längsten Ziffernfolge ist gleich 0. Das nächste Problem wäre dann noch, das Word bei Werten über 65535 nicht mehr unbedingt was verwertbares zurückgibt ;-)
Und: Aus meine...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
6. Jun 2021
Dann fällt mir nurnoch dashier ein:function longestNumber(s : string) : word;
var
run, number, longNum : Word;
NumberStr : String;
longNumStr : String
begin
// Zu Beginn alle Variabeln initialisieren, um definierte Ausgangswerte zu haben.
longNum := 0;
longNumStr := '';
number := 0;
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
6. Jun 2021
Das verstehe ich nicht:
Eine Ziffernfolge darf mit Nullen beginnen, gut und schön.
Wenn ich als Rückgabewert Word verwende, so gehen führende Nullen verloren. Es kann somit als Word also nur der nummerische Wert der längsten Ziffernfolge zurückgegeben werden. Dabei muss es sich dann aber nicht zwingend um den größten Wert aus allen Ziffernfolgen handeln. a00000000001b65535c4812 gäbe dann 1...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
6. Jun 2021
Ja, aber die hier genannten führenden Nullen gehen dabei verloren:
Man könnte aus dem String die führenden Nullen entfernen, man könnte den String in eine Zahl umwandeln.
Nur: Soll die längste Ziffernfolge zurückgegeben werden oder ihr nummericher Wert?
Die Frage ist also: Was ist jetzt bitteschön die Aufgabenstellung und welche Syntaxelemente wurden bisher im Lehrstoff vermittelt und...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
5. Jun 2021
Nein, 'A ist als Beispiel für das Anhängen eines einzelnen Zeichens an einen String gedacht.
StringVariabel := StringVariabel + 'String';
oder
StringVariabel := StringVariabel + AndereStringVariabel;
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
5. Jun 2021
s := s + 'A'; oder NumberString := NumberString + s;
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
5. Jun 2021
Nö, das geht auch ohne Copy und Pos:
Du hast eine Stelle, an der Du momentan unter einer gewissen Bedingung Number hochzählst. Dort kannst Du das Zeichen, das zum Hochzählen führt, auch an einen String dranhängen. Damit wird ein String dann jeweils solange um eine Ziffer verlängert, wie auch Number hochgezählt wird.
Ist ein Zeichen keine Ziffer, speicherst Du Number in LongNum. Dort kannst Du...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
5. Jun 2021
Ja, das ist klar.
Und wie lang ist bei 1234567890aaaaaaaaaa -> 00000 die längste Ziffernfolge?
Deine Routine sagt: Die Länge der längsten Ziffernfolge ist 0. Das ist wohl kaum richtig.
Bei Deiner Routine wäre auch bei 0000000000aaaaaaaaaa die Länge der längsten Ziffernfolge = 0, ebenso bei 9999999999aaaaaaaaaa und selbst bei 0 (hier bitte eine unendliche Anzahl von Nullen einfügen) 0a...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
5. Jun 2021
Naja, momentan speicherst Du halt die Länge der längsten Nummer und gibst dann eine Zahl (Byte) zurück.
An der Stelle, an der Du Dir die längste Nummer merkst, musst Du Dir dann wohl "einfach" nur diese Nummer merken und diese dann zurückgeben. Da es sich bei den Nummern um Zeichenfolgen handelt, wird der Rückgabewert wohl besser ein String sein, damit auch (wie oben gefordert) führende Nullen...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
3. Jun 2021
An welcher Stelle wird der Fehler angezeigt?
In PascalScript funktioniert diese Variante:function longestNumber(s : string) : byte;
var run, number : byte;
begin
Result := 0;
number := 0;
for run := 1 to length(s) do
begin
case s of
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
3. Jun 2021
Eventuell könnte dashier schon reichen, ist aber ungetestet:
function longestNumber(s : string) : byte;
var run, number : byte;
begin
longestNumber := 0;
number := 0;
for run := 1 to length(s) do
begin
case s of
'0'..'9' : inc(number);
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
3. Jun 2021
Versuch' bitte mal vom Prinzip sowas in der Art:
Die Funktion bekommt den String übergeben, dann gehst Du in einer Schleife darüber, solange ein Zeichen keine Zahl ist, wird es ignoriert.
Ist es eine Zahl, so wird das Zeichen an eine Variabel angehängt, so dass diese Variabel dann alle Ziffern enthält, bis das erste Zeichen kommt, das keine Ziffer ist.
Erhälst Du nun bei weiterem...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Delphi.Narium,
3. Jun 2021
Es geht um systematisches Lernen und nicht um einfach: Mach mal was, mal sehen was rauskommt und wenn nix rauskommt ist auch egal.
Es geht halt darum das Programmieren zu lernen. Hier wird halt zufällig Delphi genutzt.
Nach Abschluss des Studiums soll die Fähigkeit zu programmieren so ausgebildet sein, dass die Programiersprache, die Entwicklungsumgebung, ... absolut nachrangig ist.
Es...