Zum Inhalt springen

Delphi


Luncustaf

Empfohlene Beiträge

Wo die Wörter herkommen ist prinzipiell ja egal. Müßte was sein in der Richtung


Liste = new TStringList;

Liste.add(Wort1);

Liste.add(Wort2);

...

Liste.add(Wort5);

Liste.sort;

Schau dir die Online-Hilfe zu TStringList an. Da gibt es dann auch funktionen zum auslesen der Daten nach dem sortieren.

Ich hoffe, das bringt dich etwas weiter. Leider kann ich das wie gesagt hier nur aus dem Gedächtnis rekonstruieren, die letzte Zeile Delphi hab ich wohl vor 2 Jahren geschrieben...

Link zu diesem Kommentar
Auf anderen Seiten teilen

hy leutz,

ich hab die lösung:


var

wort1:string;

wort2:string;

wort3:string;

wort4:string;

wort5:string;

speicher1:string;

speicher2:string;

speicher3:string;

speicher4:string;

speicher5:string;

speicher6:string;

speicher7:string;

speicher8:string;

speicher9:string;

speicher10:string;

ausgabe:string;

begin

write('erstes Wort: ');    //Wörter einlesen

Readln(wort1);

write('zweites Wort: ');

Readln(wort2);

write('drittes wort: ');

Readln(wort3);

write('viertes wort: ');

Readln(wort4);

write('fuenftes wort: ');

Readln(wort5);

if wort2 < wort1                       //wort2 kleiner wort1

then begin

speicher1:=wort2;                      //wort2 in den speicher schreiben

wort2:=wort1;                          //wort2 durch wort1 ersetzen

wort1:=speicher1;                      //in wort1 den inhalt von speicher1 einsetzen

end;

  if wort3 < wort1                     //wort3 kleiner wort1

  then begin

  speicher2:=wort3;                    //wort3 in den speicher lesen

  wort3:=wort1;                        //wort3 durch wort1 ersetzen

  wort1:=speicher2;                    //in wort1 den inhalt vom speicher schreiben

  end;

    if wort4 < wort1                   //wort4 kleiner wort1

    then begin

    speicher3:=wort4;                  //wort4 in den speicher schreiben

    wort4:=wort1;                      //wort4 durch wort1 ersetzen

    wort1:=speicher3;                  //in wort1 den inhalt vom speicher schreiben

    end;

      if wort5 < wort1                 //wort5 kleiner wort1

      then begin

      speicher4:=wort5;                //wort5 in den speicher schreiben

      wort5:=wort1;                    //wort5 durch wort1 ersetzen

      wort1:=speicher4;                //in wort1 den inhalt vom speicher schreiben

      end;

        if wort3 < wort2               //wort3 kleiner wort2

        then begin

        speicher5:=wort3;              //wort3 in den speicher schreiben

        wort3:=wort2;                  //wort3 durch wort2 ersetzen

        wort2:=speicher5;              //in wort2 den inhalt vom speicher schreiben

        end;

          if wort4 < wort2             //wort4 kleiner wort2

          then begin

          speicher6:=wort4;            //wort4 in den speicher schreiben

          wort4:=wort2;                //wort4 durch wort2 ersetzen

          wort2:=speicher6;            //in wort2 den inhalt vom speicher schreiben

          end;

            if wort5 < wort2           //wort5 kleiner wort2

            then begin

            speicher7:=wort5;          //wort5 in den speicher schreiben

            wort5:=wort2;              //wort5 durch wort2 ersetzen

            wort2:=speicher7;          //in wort2 den inhalt vom speicher schreiben

            end;

              if wort4 < wort3         //wort4 kleiner wort3

              then begin

              speicher8:=wort4;        //wort4 in den speicher schreiben

              wort4:=wort3;            //wort4 durch wort3 ersetzen

              wort3:=speicher8;        //in wort3 den inhalt vom speicher schreiben

              end;

                if wort5 < wort3       //wort5 kleiner wort3

                then begin

                speicher9:=wort5;      //wort5 in den speicher schreiben

                wort5:=wort3;          //wort5 durch wort3 ersetzen

                wort3:=speicher9;      //in wort3 den inhalt vom speicher schreiben

                end;

                  if wort5 < wort4     //wort5 kleiner wort4

                  then begin

                  speicher10:=wort5;   //wort5 in den speicher schreiben

                  wort5:=wort4;        //wort5 durch wort4 ersetzen

                  wort4:=speicher10;   //in wort4 den inhalt vom speicher schreiben

                  end;

ausgabe:=wort1+' '+wort2+' '+wort3+' '+wort4+' '+wort5;

write(ausgabe);

Readln;

end.

euer Cruzito

[Dieser Beitrag wurde von Cruz Candalaria am 14. Dezember 2000 editiert.]

Link zu diesem Kommentar
Auf anderen Seiten teilen

hy Mirko,

das ganze war nur zur Übung und da wir erst vor ner woche mit delphi angefangen haben, haben wir Schleifen noch nicht durchgenommen.

Wenn es mehr abfragen werden dann würd ich sicherlich auch eine andere möglichkeit suchen mit 5 Wörtern geht das ganze ja noch.

euer Cruzito

[Dieser Beitrag wurde von Cruz Candalaria am 14. Dezember 2000 editiert.]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Guten Morgen Cruzito,

tut mir leid, ich konnte gestern nicht mehr nachschauen. Es war ein sehr langer Arbeitstag für mich.

Für den Anfang sieht Dein Progg ganz gut aus. Aber wie gesagt hättest du eine Array genommen und dann mit der Schleife sortiert, dann wärs kürzer gewesen. Aber ich weis, dass Ihr erst angefangen habt. Ich wünsche Dir weiterhin viel erfolg mit Delphi.

Wenn Ihr dann Objektorientiert programmiert, fängt es dann mal an Spaß zu machen. Besonders Datenbanken fetzen. OK, ich hoffe Du hast noch mehr Erfolge als nur diesen.

Gruß

Sellew

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hy Cruzito,

Ohoh, du warts gestern schon frustriert? Ich bins eigentlich jeden Tag. Ich werf grad in C mit Piontern um mich, die wollen aber nicht so wie ich das will.

Beim Proggen giibt es frustrierende Tage und dann wieder mal nicht. Am Ende freut man sich dann doch wenns geklappt hat.

Naja, du wirst das schon packen. Denk aber an mein obigen Ausspruch mit dem frustrieren, dies stimmt. Also, viel Spaß weiterhin und viel erfolg.

Gruß

Sellew

Link zu diesem Kommentar
Auf anderen Seiten teilen

hy leutz,

nun hab ich schon wieder ein Prob.

Ich soll nun diese wörter auf und absteigend sortieren. aufsteigend ist ja kein prob. aber absteigend. aufsteigend funktioniert auch. In meinem beispiel ist das nun 2x der gleiche code also meckert das bitte nicht an ich würd nur gerne wissen was ich umstellen muss das das ganze funzt. danke im voraus.


var

wort1:string;

wort2:string;

wort3:string;

wort4:string;

wort5:string;

speicher1:string;

speicher2:string;

speicher3:string;

speicher4:string;

speicher5:string;

speicher6:string;

speicher7:string;

speicher8:string;

speicher9:string;

speicher10:string;

steigend:string;

begin

write('Bitte geben Sie an ob Sie die Woerter auf-(auf) oder absteigend(ab) sortiert haben wollen: ');

readln(steigend);

write('erstes Wort: ');    //Wörter einlesen

Readln(wort1);

write('zweites Wort: ');

Readln(wort2);

write('drittes wort: ');

Readln(wort3);

write('viertes wort: ');

Readln(wort4);

write('fuenftes wort: ');

Readln(wort5);

if steigend='auf'

then begin

if wort2 < wort1                       //wort2 kleiner wort1

then begin

speicher1:=wort2;                      //wort2 in den speicher schreiben

wort2:=wort1;                          //wort2 durch wort1 ersetzen

wort1:=speicher1;                      //in wort1 den inhalt von speicher1 einsetzen

end;

  if wort3 < wort1                     //wort3 kleiner wort1

  then begin

  speicher2:=wort3;                    //wort3 in den speicher lesen

  wort3:=wort1;                        //wort3 durch wort1 ersetzen

  wort1:=speicher2;                    //in wort1 den inhalt vom speicher schreiben

  end;

    if wort4 < wort1                   //wort4 kleiner wort1

    then begin

    speicher3:=wort4;                  //wort4 in den speicher schreiben

    wort4:=wort1;                      //wort4 durch wort1 ersetzen

    wort1:=speicher3;                  //in wort1 den inhalt vom speicher schreiben

    end;

      if wort5 < wort1                 //wort5 kleiner wort1

      then begin

      speicher4:=wort5;                //wort5 in den speicher schreiben

      wort5:=wort1;                    //wort5 durch wort1 ersetzen

      wort1:=speicher4;                //in wort1 den inhalt vom speicher schreiben

      end;

        if wort3 < wort2               //wort3 kleiner wort2

        then begin

        speicher5:=wort3;              //wort3 in den speicher schreiben

        wort3:=wort2;                  //wort3 durch wort2 ersetzen

        wort2:=speicher5;              //in wort2 den inhalt vom speicher schreiben

        end;

          if wort4 < wort2             //wort4 kleiner wort2

          then begin

          speicher6:=wort4;            //wort4 in den speicher schreiben

          wort4:=wort2;                //wort4 durch wort2 ersetzen

          wort2:=speicher6;            //in wort2 den inhalt vom speicher schreiben

          end;

            if wort5 < wort2           //wort5 kleiner wort2

            then begin

            speicher7:=wort5;          //wort5 in den speicher schreiben

            wort5:=wort2;              //wort5 durch wort2 ersetzen

            wort2:=speicher7;          //in wort2 den inhalt vom speicher schreiben

            end;

              if wort4 < wort3         //wort4 kleiner wort3

              then begin

              speicher8:=wort4;        //wort4 in den speicher schreiben

              wort4:=wort3;            //wort4 durch wort3 ersetzen

              wort3:=speicher8;        //in wort3 den inhalt vom speicher schreiben

              end;

                if wort5 < wort3       //wort5 kleiner wort3

                then begin

                speicher9:=wort5;      //wort5 in den speicher schreiben

                wort5:=wort3;          //wort5 durch wort3 ersetzen

                wort3:=speicher9;      //in wort3 den inhalt vom speicher schreiben

                end;

                  if wort5 < wort4     //wort5 kleiner wort4

                  then begin

                  speicher10:=wort5;   //wort5 in den speicher schreiben

                  wort5:=wort4;        //wort5 durch wort4 ersetzen

                  wort4:=speicher10;   //in wort4 den inhalt vom speicher schreiben

                  write(format('%s %s %s %s %s',[wort1,wort2,wort3,wort4,wort5]));

                  end

else begin

if wort2 < wort1                       //wort2 kleiner wort1

then begin

speicher1:=wort2;                      //wort2 in den speicher schreiben

wort2:=wort1;                          //wort2 durch wort1 ersetzen

wort1:=speicher1;                      //in wort1 den inhalt von speicher1 einsetzen

   end;

  if wort3 < wort1                     //wort3 kleiner wort1

  then begin

  speicher2:=wort3;                    //wort3 in den speicher lesen

  wort3:=wort1;                        //wort3 durch wort1 ersetzen

  wort1:=speicher2;                    //in wort1 den inhalt vom speicher schreiben

    end;

    if wort4 < wort1                   //wort4 kleiner wort1

    then begin

    speicher3:=wort4;                  //wort4 in den speicher schreiben

    wort4:=wort1;                      //wort4 durch wort1 ersetzen

    wort1:=speicher3;                  //in wort1 den inhalt vom speicher schreiben

      end;

      if wort5 < wort1                 //wort5 kleiner wort1

      then begin

      speicher4:=wort5;                //wort5 in den speicher schreiben

      wort5:=wort1;                    //wort5 durch wort1 ersetzen

      wort1:=speicher4;                //in wort1 den inhalt vom speicher schreiben

        end;

        if wort3 < wort2               //wort3 kleiner wort2

        then begin

        speicher5:=wort3;              //wort3 in den speicher schreiben

        wort3:=wort2;                  //wort3 durch wort2 ersetzen

        wort2:=speicher5;              //in wort2 den inhalt vom speicher schreiben

          end;

          if wort4 < wort2             //wort4 kleiner wort2

          then begin

          speicher6:=wort4;

          wort4:=wort2;                //wort4 durch wort2 ersetzen

          wort2:=speicher6;            //in wort2 den inhalt vom speicher schreiben

            end;

            if wort5 < wort2           //wort5 kleiner wort2

            then begin

            speicher7:=wort5;          //wort5 in den speicher schreiben

            wort5:=wort2;              //wort5 durch wort2 ersetzen

            wort2:=speicher7;          //in wort2 den inhalt vom speicher schreiben

              end;

              if wort4 < wort3         //wort4 kleiner wort3

              then begin

              speicher8:=wort4;        //wort4 in den speicher schreiben

              wort4:=wort3;            //wort4 durch wort3 ersetzen

              wort3:=speicher8;        //in wort3 den inhalt vom speicher schreiben

                 end;

                if wort5 < wort3       //wort5 kleiner wort3

                then begin

                speicher9:=wort5;      //wort5 in den speicher schreiben

                wort5:=wort3;          //wort5 durch wort3 ersetzen

                wort3:=speicher9;      //in wort3 den inhalt vom speicher schreiben

                  end;

                  if wort5 < wort4     //wort5 kleiner wort4

                  then begin

                  speicher10:=wort5;   //wort5 in den speicher schreiben

                  wort5:=wort4;        //wort5 durch wort4 ersetzen

                  wort4:=speicher10;   //in wort4 den inhalt vom speicher schreiben

                  write(format('%s %s %s %s %S',[wort5,wort4,wort3,wort2,wort1]));


end;

end;

end;                


Readln;

end.


ich Probb. schon den ganzen nachmittag an dem schiss rum. mad.gif

euer Cruzito

Link zu diesem Kommentar
Auf anderen Seiten teilen

hy leutz,

also für die dies interessiert auch für das zweite Problem hab ich die Lösung gefunden.

ich hab die ausgabezeile des else befehls zwei zeilen zu hoch gesetzt. Ich stelle den richtigen Code nun rein



var

wort1:string;

wort2:string;

wort3:string;

wort4:string;

wort5:string;

speicher1:string;

speicher2:string;

speicher3:string;

speicher4:string;

speicher5:string;

speicher6:string;

speicher7:string;

speicher8:string;

speicher9:string;

speicher10:string;

steigend:string;

begin

write('Bitte geben Sie an ob Sie die Woerter auf-(auf) oder absteigend(ab) sortiert haben wollen: ');

Readln(steigend);

write('erstes Wort: ');    //Wörter einlesen

Readln(wort1);

write('zweites Wort: ');

Readln(wort2);

write('drittes wort: ');

Readln(wort3);

write('viertes wort: ');

Readln(wort4);

write('fuenftes wort: ');

Readln(wort5);

if steigend='auf'

then begin

if wort2 < wort1                       //wort2 kleiner wort1

then begin

speicher1:=wort2;                      //wort2 in den speicher schreiben

wort2:=wort1;                          //wort2 durch wort1 ersetzen

wort1:=speicher1;                      //in wort1 den inhalt von speicher1 einsetzen

end;

  if wort3 < wort1                     //wort3 kleiner wort1

  then begin

  speicher2:=wort3;                    //wort3 in den speicher lesen

  wort3:=wort1;                        //wort3 durch wort1 ersetzen

  wort1:=speicher2;                    //in wort1 den inhalt vom speicher schreiben

  end;

    if wort4 < wort1                   //wort4 kleiner wort1

    then begin

    speicher3:=wort4;                  //wort4 in den speicher schreiben

    wort4:=wort1;                      //wort4 durch wort1 ersetzen

    wort1:=speicher3;                  //in wort1 den inhalt vom speicher schreiben

    end;

      if wort5 < wort1                 //wort5 kleiner wort1

      then begin

      speicher4:=wort5;                //wort5 in den speicher schreiben

      wort5:=wort1;                    //wort5 durch wort1 ersetzen

      wort1:=speicher4;                //in wort1 den inhalt vom speicher schreiben

      end;

        if wort3 < wort2               //wort3 kleiner wort2

        then begin

        speicher5:=wort3;              //wort3 in den speicher schreiben

        wort3:=wort2;                  //wort3 durch wort2 ersetzen

        wort2:=speicher5;              //in wort2 den inhalt vom speicher schreiben

        end;

          if wort4 < wort2             //wort4 kleiner wort2

          then begin

          speicher6:=wort4;            //wort4 in den speicher schreiben

          wort4:=wort2;                //wort4 durch wort2 ersetzen

          wort2:=speicher6;            //in wort2 den inhalt vom speicher schreiben

          end;

            if wort5 < wort2           //wort5 kleiner wort2

            then begin

            speicher7:=wort5;          //wort5 in den speicher schreiben

            wort5:=wort2;              //wort5 durch wort2 ersetzen

            wort2:=speicher7;          //in wort2 den inhalt vom speicher schreiben

            end;

              if wort4 < wort3         //wort4 kleiner wort3

              then begin

              speicher8:=wort4;        //wort4 in den speicher schreiben

              wort4:=wort3;            //wort4 durch wort3 ersetzen

              wort3:=speicher8;        //in wort3 den inhalt vom speicher schreiben

              end;

                if wort5 < wort3       //wort5 kleiner wort3

                then begin

                speicher9:=wort5;      //wort5 in den speicher schreiben

                wort5:=wort3;          //wort5 durch wort3 ersetzen

                wort3:=speicher9;      //in wort3 den inhalt vom speicher schreiben

                end;

                  if wort5 < wort4     //wort5 kleiner wort4

                  then begin

                  speicher10:=wort5;   //wort5 in den speicher schreiben

                  wort5:=wort4;        //wort5 durch wort4 ersetzen

                  wort4:=speicher10;   //in wort4 den inhalt vom speicher schreiben


                  end

                  else begin

                  end;

                  write(format('%s %s %s %s %s',[wort1,wort2,wort3,wort4,wort5]));

                  readln;

                  end

else begin

if wort2 > wort1                       //wort2 kleiner wort1

then begin

speicher1:=wort2;                      //wort2 in den speicher schreiben

wort2:=wort1;                          //wort2 durch wort1 ersetzen

wort1:=speicher1;                      //in wort1 den inhalt von speicher1 einsetzen

end;

  if wort3 > wort1                     //wort3 kleiner wort1

  then begin

  speicher2:=wort3;                    //wort3 in den speicher lesen

  wort3:=wort1;                        //wort3 durch wort1 ersetzen

  wort1:=speicher2;                    //in wort1 den inhalt vom speicher schreiben

  end;

    if wort4 > wort1                   //wort4 kleiner wort1

    then begin

    speicher3:=wort4;                  //wort4 in den speicher schreiben

    wort4:=wort1;                      //wort4 durch wort1 ersetzen

    wort1:=speicher3;                  //in wort1 den inhalt vom speicher schreiben

    end;

      if wort5 > wort1                 //wort5 kleiner wort1

      then begin

      speicher4:=wort5;                //wort5 in den speicher schreiben

      wort5:=wort1;                    //wort5 durch wort1 ersetzen

      wort1:=speicher4;                //in wort1 den inhalt vom speicher schreiben

      end;

        if wort3 > wort2               //wort3 kleiner wort2

        then begin

        speicher5:=wort3;              //wort3 in den speicher schreiben

        wort3:=wort2;                  //wort3 durch wort2 ersetzen

        wort2:=speicher5;              //in wort2 den inhalt vom speicher schreiben

        end;

          if wort4 > wort2             //wort4 kleiner wort2

          then begin

          speicher6:=wort4;            //wort4 in den speicher schreiben

          wort4:=wort2;                //wort4 durch wort2 ersetzen

          wort2:=speicher6;            //in wort2 den inhalt vom speicher schreiben

          end;

            if wort5 > wort2           //wort5 kleiner wort2

            then begin

            speicher7:=wort5;          //wort5 in den speicher schreiben

            wort5:=wort2;              //wort5 durch wort2 ersetzen

            wort2:=speicher7;          //in wort2 den inhalt vom speicher schreiben

            end;

              if wort4 > wort3         //wort4 kleiner wort3

              then begin

              speicher8:=wort4;        //wort4 in den speicher schreiben

              wort4:=wort3;            //wort4 durch wort3 ersetzen

              wort3:=speicher8;        //in wort3 den inhalt vom speicher schreiben

              end;

                if wort5 > wort3       //wort5 kleiner wort3

                then begin

                speicher9:=wort5;      //wort5 in den speicher schreiben

                wort5:=wort3;          //wort5 durch wort3 ersetzen

                wort3:=speicher9;      //in wort3 den inhalt vom speicher schreiben

                end;

                  if wort5 > wort4     //wort5 kleiner wort4

                  then begin

                  speicher10:=wort5;   //wort5 in den speicher schreiben

                  wort5:=wort4;        //wort5 durch wort4 ersetzen

                  wort4:=speicher10;   //in wort4 den inhalt vom speicher schreiben

end;

write(format('%s %s %s %s %s',[wort1,wort2,wort3,wort4,wort5]));

end;

Readln;

end.


euer Cruzito

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

da du ja noch nicht lange dabei bist, ist das was du da geschrieben hast schon ok.

Sonst hätte ich gefragt, ob du wahnsinnig bist. Ich habe noch nie so einen kranken Code gesehen.

Die Lösung ist äußerst simple. Man verwendet ein kleines Array und einen einfachen Sortieralgorithmus, wie zB. Bubblesort.

Ungefähr 10 Zeilen Code insgesamt.

Gruß

Tobias

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

das müßte in C so aussehen:

#include <iostream.h>

#include <stdio.h>

#include <string.h>

void main(void)

{

char woerter[5][50];

char wort[50];

for(int i=0;i<5;i++)

{

cout<<"Geben Sie ein Wort ein: ";

gets(wort);

strcpy(woerter,wort);

cout<<endl;

}

for(i=0;i<5;i++)

{

for(int j=i+1;j<5;j++)

{

if(strcmp(woerter,woerter[j])>0)

{

strcpy(wort,woerter);

strcpy(woerter,woerter[j]); strcpy(woerter[j],wort);

}

}

}

for(i=0;i<5;i++)

cout<<woerter<<endl;

}

Wenn du anders herum sortieren willst, dann ersetzte das >0 durch <0

Ciao

[Dieser Beitrag wurde von DrGreg am 20. Dezember 2000 editiert.]

Link zu diesem Kommentar
Auf anderen Seiten teilen

schlechter Programmierstil.

Irgendwie hat er meine Einrückungen

verschluckt !!!

Übrigens der Bubblesort sind die 2 geschachtelten for-Schleifen und was darin steht.

Das Programm ist natürlich noch alles andere als perfekt. Mann muss z.B. 5 Wörter eingeben. Könnte man alles noch ändern.

[Dieser Beitrag wurde von DrGreg am 19. Dezember 2000 editiert.]

Link zu diesem Kommentar
Auf anderen Seiten teilen

um einen code korrekt anzuzeigen musst du den code in

(code)

alles was darin steht wird dann so geschrieben 

(/code) setzen.

euer Cruzito

PS. Die runden Klammern durch eckige ersetzen

[Dieser Beitrag wurde von Cruz Candalaria am 19. Dezember 2000 editiert.]

[Dieser Beitrag wurde von Cruz Candalaria am 19. Dezember 2000 editiert.]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...