DMUG-Archiv 2012

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Selectionort aus Mathematica Dokumentation

Hallo Michael,

Sie haben erneut das Problem vom Juli (7.7.) diesen Jahres

In[2]:= max = 20;
liste = RandomInteger[ 1000, max]

Out[3]= {860, 415, 33, 610, 416, 354, 542, 612, 451, 992, 735, 316, \
513, 726, 476, 212, 333, 374, 394, 800}

In[14]:= (* Michael Gamer Original *)
Remove[selectionSortFalsch]
selectionSortFalsch[ liste_List] :=
 Module[{i, j, limit = Length[liste]},
  Do[If[ liste[[i]] > liste[[j]],
    liste[[{i, j}]] = liste[[{j, i}]]], {i, limit - 1}, {j, i + 1,
    limit}];
  liste]

selectionSortFalsch[ liste]

During evaluation of In[16]:= Set::setps: {860,415,33,610,416,354,542,612,451,992,735,316,513,726,476,212,333,374,394,800}
in the part assignment is not a symbol. >>

hier wird wieder versucht, auf das Argument zu schreiben und Mma sagt auch, dass das aufgelöste Argument kein Symbol ist ... kahein Symbohol ...

In[17]:= Remove[selectionSort]
selectionSort[ l_List] := Module[{i, j, limit = Length[l], xL = l},
  Do[If[ xL[[i]] > xL[[j]], xL[[{i, j}]] = xL[[{j, i}]]], {i,
    limit - 1}, {j, i + 1, limit}];
  xL
  ]

In[19]:= selectionSort[liste]
Out[19]= {33, 212, 316, 333, 354, 374, 394, 415, 416, 451, 476, 513, \
542, 610, 612, 726, 735, 800, 860, 992}

Gruss
Udo.

P.S.: Siehe auch das damalige Mail (7.7.2012) vom Rolf.




On Wed, 26 Dec 2012 12:45:32 +0100, Michael Gamer <mgamer@XXXXXXX.com> wrote:

Hallo zusammen,

wie oft, wenn man mal schnell etwas machen will.... dauert es. Ich wollte eine kurze Darstellung des Selectionsort machen und habe dafÌr einfach das Beispiel aus der Dokumentation (im Abschnitt der DO Funktion) genommen (Bild anbei). Den Ausschnitt habe ich in einen Modul eingebunden. Eigentlich sollte das ja sofort laufen, aber ich bekomme eine Fehlermeldung, die ich nicht so recht nachvollziehen kann (vielleicht stehe ich beidfÌ�ig auf dem Schlauch).

In dem beiliegenden Bild ist ein Bildschirmausdruck direkt aus der WorkBench zu sehen. In den gelb markierten Bereichen liegt das Problem. Der untere Codeausschnitt ist direkt aus der aus der Mathematica Dokumentation, im oberen markierten Teil ist das Problem sichtbar. Hier sind die bei den links der Zuweisung stehenden Variablen nicht instanttiiert , die rechts des Gleichheitszeichens sehr wohl. Die Zuweisung soll liste[[ {i,j}]] =liste[[ {j,i}]] lauten und die beiden nicht in der richtigen Reihenfolge stehenden Variablen vertauschen. Die Variableninhalte sind im oberen Teil der WB zu sehen - sieht eigentlich alles gut aus. Kann mir jemand einen kurzen Tip geben, warum das hier nicht geht?


Viele Gr�e

m.g.


Michael Gamer
Zur RömerbrÌcke 19
63456 Hanau

Telefon:                06181 663363
Fax:                    06181 663362
Mail:           mg@XXXXXXX.de

home:           www.michaelgamer.de







Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html