AGB  ·  Datenschutz  ·  Impressum  







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

Wortumkehr mit ADT Stapel

Ein Thema von seppel19901 · begonnen am 28. Mär 2009 · letzter Beitrag vom 30. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
seppel19901

Registriert seit: 28. Mär 2009
3 Beiträge
 
#1

Wortumkehr mit ADT Stapel

  Alt 28. Mär 2009, 20:32
Hi Leute,

ich habe letztes Jahr mal ein Programm mit ADT - Stapel programmiert.

Dieses bestand aus 2 Editfenster und einen Button.

Es funktionierte so:

Editfenster 1: Eingabe eines Worts

Button: durch den Button wurde das Wort von hinten nach vorne gelesen

Editfenster 2: Ausgabe des Wortes Rückwärts.

Dieses Programm funktionierte mit Benutzung des ADT - Stapel.

Leider hab ich keine Ahnung mehr wie das Programm zu programmieren war.

Hat jemand das Programm rumliegen? Oder könnte mir den Quelltext schreiben?
Das Programm war in Delphi Win32


mfg
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Wortumkehr mit ADT Stapel

  Alt 28. Mär 2009, 21:13
Guten Abend,

was ist ein ADT Stapel?

[OT] lösche nie Sourcen, denn man könnte sie mal wieder gebrauchen [/OT]

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
seppel19901

Registriert seit: 28. Mär 2009
3 Beiträge
 
#3

Re: Wortumkehr mit ADT Stapel

  Alt 28. Mär 2009, 21:15
ADT Stapel ist ein Datentyp der sich aus der ADT Liste ergibt.

Oder hat jemand eine andere IDee wie das funktionieren könnte?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Wortumkehr mit ADT Stapel

  Alt 28. Mär 2009, 21:17
Wofür steht das Akronym "ADT"?

Ansonsten würde das noch mit einem LIFO Stack gehen.
Oder mit einer For Schleife die den String von hinten abarbeitet.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#5

Re: Wortumkehr mit ADT Stapel

  Alt 28. Mär 2009, 21:18
Die Aufgabenstellung klingt sehr nach Schule, mein Lehrer hat auch die Neigung ADT für "abstrakter Datentyp" zu benutzen, es dürfte also ein Stack gemeint sein.
Wo genau das Problem? Deine Aufgabenstellung ist (suboptimal, aber wohl so gedacht) durch eine einfache rekursive Funktion zu lösen, bei der immer ein Buchstabe abgeschnitten wird.

[Edit]vertippt
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
seppel19901

Registriert seit: 28. Mär 2009
3 Beiträge
 
#6

Re: Wortumkehr mit ADT Stapel

  Alt 28. Mär 2009, 22:08
hab leider das Problem das ich seit ca. 1 1/2 Jahren nicht mehr mit Delphi programmiert habe. Nach Delphi kommt in der Schule Prolog und da ich von der 12. zurück in die 11. musste hab ich zur Zeit nur Prolog im Kopf und kann mich nicht mehr entscheiden wie ich das machen könnte. Bräuchte mal einen Anhaltspunkt von euch....
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#7

Re: Wortumkehr mit ADT Stapel

  Alt 28. Mär 2009, 22:53
Du nimmst jeweils den letzten Buchstaben und übergibst rekursiv den um eins verkürzten String an deine Prozedur, als Abbruchbedingung für die Rekursion dient die Prüfung, ob ein Leerstring übergeben wird. Das ist natürlich die komplizierte Variante, aber ich denk mal es geht um Rekursion, ansonsten kannst du den String einfach rückwärts mit einer Schleife durchlaufen.
Da das Ganze ja irgendwie mit einem Stack gemacht werden soll, müsstest du den String nur vorwärts durchlaufen und jeden Buchstaben pushen und dann hinterher alles poppen. Was genau davon jetzt richtig ist, musst du wissen, hängt von deiner Aufgabenstellung ab.
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
DeathsShadow

Registriert seit: 26. Apr 2008
22 Beiträge
 
#8

Re: Wortumkehr mit ADT Stapel

  Alt 29. Mär 2009, 00:21
Hey

Ich würde es persöhnlich mit einer Schleife machen, Rekursion ist nicht so meins. Hier ist der Code den ich verwenden würde.

Delphi-Quellcode:
 
function Wortumkehr(Text : String) : String;
var i : integer;
begin
  Setlength(result,0);
  for i := length(Text) downto 1 do
  begin
    Setlength(result,length(result)+1);
    result[length(result)] := Text[i];
  end;
end;


procedure TForm1.Aufruf(Sender : TObject);
begin
Edit2.Text := Wortumkehr(Edit1.Text);
end;
Ich hab ihn frei getippt, deswegen können Tippfehler drin sein.


_______________
Lg Florian
Florian S.
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#9

Re: Wortumkehr mit ADT Stapel

  Alt 29. Mär 2009, 10:36
Zitat von DeathsShadow:
Delphi-Quellcode:
Setlength(result,0);
for i := length(Text) downto 1 do
begin
  Setlength(result,length(result)+1);
  result[length(result)] := Text[i];
end;
Davon sollte man wirklich absehen, wenn man die Länge kennt, dann SetLength einmal vorher aufrufen.
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
DeathsShadow

Registriert seit: 26. Apr 2008
22 Beiträge
 
#10

Re: Wortumkehr mit ADT Stapel

  Alt 30. Mär 2009, 00:18
Zitat von Cyf:
Davon sollte man wirklich absehen, wenn man die Länge kennt, dann SetLength einmal vorher aufrufen.
Ok, du hast recht
das war ja auch nur ein Vorschlag für eine mögliche, allgemeine Form. Es geht aber wirklich eleganter.

____________________
Lg Florian
Florian S.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz