AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Erstellung einer Funktion

Ein Thema von Mo53 · begonnen am 3. Jun 2021 · letzter Beitrag vom 10. Jun 2021
Antwort Antwort
Mo53

Registriert seit: 16. Mai 2021
59 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Erstellung einer Funktion

  Alt 3. Jun 2021, 16:44
@runningsoft @Delphi.Narium Vielen Dank für eure Lösungsvorschläge, try und except, hatten wir noch nicht behandelt in den Vorlsungen deshalb bin ich mir da unsicher ob ich das benutzen darf, ich werde da mal nachfragen
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#2

AW: Erstellung einer Funktion

  Alt 3. Jun 2021, 16:52
Eventuell könnte dashier schon reichen, ist aber ungetestet:
Delphi-Quellcode:
function longestNumber(s : string) : byte;
var run, number : byte;
  begin
    longestNumber := 0;
    number := 0;
    for run := 1 to length(s) do
    begin
      case s[run] of
       '0'..'9' : inc(number);
      else
        begin
          if number > longestNumber then longestNumber := number;
          number := 0;
        end;
      end;
    end;
    if number > longestNumber then longestNumber := number;
  end;

Geändert von Delphi.Narium ( 3. Jun 2021 um 17:39 Uhr) Grund: Text angepasst.
  Mit Zitat antworten Zitat
Mo53

Registriert seit: 16. Mai 2021
59 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Erstellung einer Funktion

  Alt 3. Jun 2021, 17:17
@Delphi.Narium da wird leider die Fehlermeldung ''nicht genügend wirkliche Parameter angezeigt''
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#4

AW: Erstellung einer Funktion

  Alt 3. Jun 2021, 17:42
An welcher Stelle wird der Fehler angezeigt?

In PascalScript funktioniert diese Variante:
Delphi-Quellcode:
function longestNumber(s : string) : byte;
var run, number : byte;
  begin
    Result := 0;
    number := 0;
    for run := 1 to length(s) do
    begin
      case s[run] of
       '0'..'9' : number := number + 1;
      else
        begin
          if number > Result then Result := number;
          number := 0;
        end;
      end;
    end;
    if number > Result then Result := number;
  end;
Oder alternativ:
Delphi-Quellcode:
function longestNumber(s : string) : byte;
var run, number, longNum : byte;
  begin
    longNum := 0;
    number := 0;
    for run := 1 to length(s) do
    begin
      case s[run] of
       '0'..'9' : inc(number);
      else
        begin
          if number > longNum then longNum := number;
          number := 0;
        end;
      end;
    end;
    if number > longNum then longNum := number;
    longestNumber := longNum;
  end;

Geändert von Delphi.Narium ( 3. Jun 2021 um 18:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
717 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Erstellung einer Funktion

  Alt 3. Jun 2021, 18:11
In PascalScript funktioniert diese Variante:
Dir ist schon klar dass Du da gerade Hausaufgaben machst?
Ist klar, helfen macht Spass. Aber Hilfe zur Selbsthilfe ist besser. ....und macht übrigens auch Spass.

Im Studium habe ich öfter jemandem bei den Projekten geholfen. Leider auch ein paar mal so wie Du jetzt. Allerdings haben wir danach den Quelltext besprochen in der Hoffnung das etwas Verständnis aufkommt
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Erstellung einer Funktion

  Alt 3. Jun 2021, 19:18
Also schauen wir doch mal die Aufgabenstellung an:

„Sucht die längste Ziffernfolge (aus Ziffern von '0' bis '9') im String s. Gibt es mehrere gleich lange, wird davon die erste zurückgegeben. Sind keine Ziffern enthalten, gibt die Funktion den Wert 0 zurück.“

Daraus ergibt sich für mich als erstes:
Die Signatur der Funktion ist falsch müsste so aussehen:

function longestNumber(s : string) : string; Ansonsten wird die Bedingung : „Gibt es mehrere gleich lange, wird davon die erste zurückgegeben“ nicht erfüllt.

Beispiele:
Input: „123 1234 12345 “ Result : „12345“
Input: „333 4444 5555 “ Result : „4444“ da erstes Vorkommen
Input : „ABCDEF“ : Result 0;

Und dann pseudo Code:
startfunc
Result ‚0‘
tempResult „“
Scheife 1 bis länge Input
Prüfe ob Input[schleife] ist eine Ziffer
Ja : hänge input[schleife] an tempresult;
Nein:
block
Wenn länge tempresult > länge result dann setze result auf tempresult
Tempresult wieder auf „“ setzen
endblock
Schleifenende
Noch einmal prüfen:
Wenn länge tempresult > länge result dann setze result auf tempresult
endfunc
Fritz Westermann
  Mit Zitat antworten Zitat
mmw
(Gast)

n/a Beiträge
 
#7

AW: Erstellung einer Funktion

  Alt 3. Jun 2021, 20:14
hallo,
der Fehler duerfte hier auftreten

 if number > longestNumber then longestNumber := number;


Gruß
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz