Bergervei/Javascript-Felder

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
<code id="5c03b10cf01fb" hidden>
var rand = 50;
var maxBreite = 400 - 2 * rand;
var maxHoehe = 300 - 2 * rand;

function minMax(feld) {
 var ergebnis = new Array(0, 0);
 for (var i = 0; i < feld.length; i++) {
  if (ergebnis[0] > feld[i]) ergebnis[0] = feld[i];
  if (ergebnis[1] < feld[i]) ergebnis[1] = feld[i];
 }
 return ergebnis;
}

function balken(turtle, hoehe, breite) {
 turtle.forward(breite); turtle.left(90); 
 turtle.forward(hoehe); turtle.left(90);
 turtle.forward(breite); turtle.left(90);
 turtle.forward(hoehe); turtle.left(90);
 turtle.forward(breite); 
}

function balkenDiagramm(canvas, turtle, feld) {
 var breite = maxBreite / feld.length; 
 var extremWert = minMax(feld);
 var min = extremWert[0];
 var max = extremWert[1];
 canvas.clear();
 turtle.hide();
 turtle.move(rand, rand + max / (max - min) * maxHoehe);
 turtle.right(90);
 for (var i = 0; i < feld.length; i++)
  balken(turtle, feld[i] / (max - min) * maxHoehe, breite);
}
</code>


== Feld deklarieren ==

<code id="5c03b10cf0293">   
var myFeld = new Array();
var anz = 50;
</code>

== Feldelemente generieren und ausgeben ==

<code id="5c02623d1483c">
function randomInt(left, right) {
 return Math.floor(Math.random() * (right - left + 1) + left);
}

function erzeugen(left, right, count) {
 var feld = new Array();
 for (var i = 0; i < count; i++)
  feld[i] = randomInt(left, right);
 return feld;
}

function ausgeben(feld) {
 var maxAnzahl = 25;
 var teilFeld = new Array();
 var i = 0, j = 0;
 while (i < feld.length) {
  j = i + maxAnzahl;
  if (j < feld.length)
   teilFeld = feld.slice(i, j);
  else
   teilFeld = feld.slice(i, feld.length);
  console.log(teilFeld);
  i = j;
 }
}
</code>

== Bubble-Sort ==

<code id="5bdf7ae25cdda">
function sortieren(feld) {
 for (var i = 0; i < feld.length - 1; i++)
  for (var j = i + 1; j < feld.length; j++)
   if (feld[i] > feld[j]) {
    let temp = feld[i];
    feld[i] = feld[j];
    feld[j] = temp;
   }
 return feld;
}
</code>

== Feld definieren und sortieren ==

<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center">
'''Ungeordnete Zufallszahlen:'''
<canvas w="400" h="300"></canvas>
</td>
<td>&nbsp;</td>
<td align="center">
'''Geordnete Zufallszahlen:'''
<canvas w="400" h="300"></canvas>
</td>
</tr>
</table>

<run id="5c03b10cf0310">
console.log("Unsortierte Feldelemente:");
myFeld = erzeugen(1, 100, anz);
ausgeben(myFeld);
balkenDiagramm(canvas1, turtle1, myFeld);
myFeld = sortieren(myFeld);
console.log("Sortierte Feldelemente:");
ausgeben(myFeld);
balkenDiagramm(canvas2, turtle2, myFeld);
</run>