Selection sort v poli - Javascript

Toto je hlavní technické fórum pro diskusi o problémech při vytváření PROMOTIC aplikací a jejich řešení.

Selection sort v poli - Javascript

Postby dbernacky » Wed 24. Jan 2018 8:12:46

Dobrý den,
prosím potřeboval bych pomoci setřídit data v poli. Nezáleží jestli od nejmenšího po největší nebo naopak.

//mám pole o 10 naplněných proměnných
var pole = Pm.CreatePmArray().Array1(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);
var polelen = pole.GetSize(1);

var temp,min;
for (var i = 0; i < (polelen - 1); i++) {
min = polelen-1;
for (var j = i; j < (polelen - 1); j++){
if(pole.GetItem(min) > pole.GetItem(j)){min = j;}
temp = pole.GetItem(min);
pole.SetItem(min) = pole.GetItem(i);
pole.SetItem(i) = temp;
}}
// a pomocí tohoto algoritmu se snažím setřídit hodnoty v poli, ale z debug souboru získávám tuto chybu:
//ERROR: Count:1 Ident:PmPanel:/Workspace/vyroba,PmiWEdit: /Edit55,ID=55 , Event: onStart, [51,1] Note:Objekt tuto akci nepodporuje.
// mohl bych Vás poprosit o opravu kódu, popřípadě rady kde dělám chybu? Moc Vám děkuji

Pm.Debug(pole,1);
dbernacky
 
Posts: 1
Joined: Wed 24. Jan 2018 8:04:42

Re: Selection sort v poli - Javascript

Postby Kazimierz Heczko » Wed 14. Feb 2018 10:19:14

Dobrý den,

chybu máte ve způsobu použití metody pole SetItem.
Jde o to, že metoda GetItem má jeden povinný (a resp. jeden volitelný parametr), který znamená index pole.
Metoda SetItem má dva povinné parametry (a resp. jeden volitelný parametr), kde první je hodnota, kterou chcete do pole vložit, druhý a resp. třetí parametr určují index v poli.

Tzn že přiřazení hodnot do pole je nutné psát takto:
Code: Select all
pole.SetItem(pole.GetItem(i), min);
pole.SetItem(temp, i);
Kazimierz Heczko
 
Posts: 68
Joined: Thu 13. Dec 2012 9:28:56


Return to Nevím jak...

Who is online

Users browsing this forum: No registered users and 2 guests