Clanintern Clanintern Clanintern

Forum

Öffentliche Foren
FORUM: Allgemeines THEMA: Hilfe Informatik/Programmieren :(
AUTOR BEITRAG
Siv

RANG Ultimate 0wn3r

#1 - 27.11 22:51

quote:
Schreiben Sie ein Programm, welches 3 eingegebene Zahlen mittels Vergleichen (If-Anweisungen) der Größe nach sortiert. Verwenden Sie sowenig Vergleiche wie möglich!




...ich möchte nur wissen, was das Minimum ist. Ich brauche 5, aber irgendwer meinte es würden 4 reichen... was ist nun das Minimum?

Dankeschön im Vorraus ;(
cibo

RANG Deckschrubber

#2 - 27.11 23:39

Sollten nicht sogar 3 reichen?

x mit y
x mit z
z mit y

Daraus hat man alle Notwendigen Beziehungen, die man dann nur noch zusammenbauen muss.
h¥pertex

RANG Deckschrubber

#3 - 28.11 08:35

Ja, es reichen 3. Normalerweise erledige ich ja keine Hausaufgaben für andere Leute, aber ich muss hier grade warten, und hab sonst auch nichts zu tun.


code:

            int zahl1, zahl2, zahl3, minimum;
            zahl1 = 5;
            zahl2 = 10;
            zahl3 = 4;
            minimum = 0;
            if (zahl1 < zahl2)
            {
                if (zahl1 < zahl3)
                {
                    minimum = zahl1;
                }
                else
                {
                    minimum = zahl3;
                }

            }
            else
            {
                if (zahl2 < zahl3)
                {
                    minimum = zahl2;
                }
                else
                {
                    minimum = zahl3;
                }
            }
                Console.WriteLine(minimum);
            



Sollte immer das richtige ergebnis liefern, kommt mir 3 Ifs aus, weniger geht nicht.
Siv

RANG Ultimate 0wn3r

#4 - 28.11 11:22

Hm, ich möchte sie aber der grösse nach sortieren und nicht das Minimum bestimmen:

code:

        if (x >= y)
            {
            if (x>=z)
               {
               max = x;
               if (y >= z)
                  {
                  mit=y;
                  min=z;
                  }
               else
                  {
                  mit=z;
                  min=y;
                  }    
                }
            else
               {
               max = z;
               mit = x;
               min = y;
               }    
                    
            }
        else
            {
            if (y>=z)
               {
               max=y;
               if (x>=z)
                  {
                  min=z;
                  mit=x;
                  }
               else
                  {
                  min=x;
                  mit=z;        
                  } 
               }
            else
               {
               min=x;
               mit=y;
               max=z;
               }
            }
Abigor

RANG Prophet of Clanintern

#5 - 28.11 13:49

Bubblesort
Mergesort
Glumb!

RANG Lord of Luck

#6 - 28.11 15:17

auch fürs sortieren reichen 3, wie cibo schon schrieb

ich vermute, dass du die variablen min mit und max eigentlich nicht brauchst
es reicht dir eine variable zu definieren, mit der du dir das tauschen von elementen ermöglichst
h¥pertex

RANG Deckschrubber

#7 - 28.11 22:58

Ahso, du hast in #1 immer vom Minimum geschrieben, darum bin ich davon ausgegangen ;)
Aber auch das Sortieren solltest du mit meinem Programm schaffen können. Musst halt nur die 2 anderen Zahlen an den richtigen Stellen festlegen.
Aber nachdem ich jetzt nicht mehr blöd rumsitzen muss, überlasse ich dir das erstmal selber ;)
Siv

RANG Ultimate 0wn3r

#8 - 28.11 23:27

Axo, ich meinte aber das Minimum an Vergleichen... ;D
Der_Kiesch *Spitze der Nahrungskette und stolz drauf*

RANG Master of Clanintern

#9 - 29.11 09:07

Mal im Pseudocode:

code:

if zahl 1 <= zahl 2 
else tausche(zahl 1, zahl 2)

if zahl 2 <= zahl 3
else tausche(zahl 2, zahl 3)

if zahl 1 <= zahl 2 
else tausche(zahl 1, zahl 2)


Jetzt steht in Zahl 1 immer die kleinste und in Zahl 3 immer die größte Zahl mit 3 if anweisungen.

P.S: die letzte anweisung ist notwendig, da wenn die 2. if schleife tauscht unklar ist ob zahl 1 kleiner ist als zahl 2.

Das sieht dann so aus:

code:

if zahl 1 <= zahl 2 
else tausche(zahl 1, zahl 2)

if zahl 2 <= zahl 3
else 
     if zahl 1 <= zahl 3 tausche(zahl 2, zahl 3) 
     else tausche(zahl 1, zahl 3) 
          tausche(zahl 2, zahl 3)


von der laufzeit her sollte sich beides allerdings kaum was nehmen
h¥pertex

RANG Deckschrubber

#10 - 29.11 09:44

@Siv: Stimmt, in deinem Quote steht ja eindeutig, dass du sortieren willst. Sry.