Einführungskurs/Zufallszahlen, BubbleSort, Balkendiagramme

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
== Definition und Ausgabe eines eindimensionalen Arrays ==

<code id="4d2c2c1420cf">
var Zahlen = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

function ZahlenAusgabe(liste) { 
 var s = "";
 for (var i = 0; i < liste.length; i++)
  if (i == liste.length-1)
   s += (liste[i])+"\n";
  else 
   s += (liste[i]+", ")+"\n";
 return s;
}
</code>

<run id="4d2c2ec1429d">
ZahlenAusgabe(Zahlen);
</run>

== Zufallszahlen ==

<code id="4d30cfd7483">
function ZufallsZahlen(min, max, n) { 
 var Zahlen = []; 
 for (var i = 0; i < n; i++)
  Zahlen[i] = Math.floor(Math.random()*(max-min+1)+min);
 return Zahlen;
}
</code>

<run id="4d2c2ec14224">
var ZahlenListe = ZufallsZahlen(1, 1000, 20);
ZahlenAusgabe(ZahlenListe);
</run>

== BubbleSort ==

<code id="4d06a8ddec33">
function BubbleSort(liste) {
 var h;
 for (var j = 0; j < liste.length-1; j++)
  for (var i = j; i < liste.length; i++)
   if (liste[i] < liste[j]) {
    h = liste[i]; liste[i] = liste[j]; liste[j] = h;
   }
}
</code>

<run id="556d8ab97532">
var ZahlenListe = ZufallsZahlen(1, 1000, 20);
console.log("Unsortiert:" + ZahlenAusgabe(ZahlenListe));
BubbleSort(ZahlenListe);
console.log("Sortiert:" + ZahlenAusgabe(ZahlenListe));
</run>

==Darstellung im Balkendiagramm ==

<code id="4d2761b6ac7">
function BalkenDiagramm(canvas, turtle) {
 this.Rand = 50;
 this.MaxBreite = 400-2*this.Rand;
 this.MaxHoehe = 300-2*this.Rand;

 this.MinMax = function (liste) {
  var Ergebnis = [0, 0];
  for (var i = 0; i < liste.length; i++) {
   if (Ergebnis[0] > liste[i]) Ergebnis[0] = liste[i];
   if (Ergebnis[1] < liste[i]) Ergebnis[1] = liste[i];
  }
  return Ergebnis;
 };

 this.Balken = function(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); 
 };

 this.Darstellung = function(liste) {
  var ExtremWert = this.MinMax(liste);
  var Min = ExtremWert[0];
  var Max = ExtremWert[1];
  var Breite = this.MaxBreite/liste.length; 
  canvas.clear();
  turtle.hide();
  turtle.move(this.Rand, this.Rand+Max/(Max-Min)*this.MaxHoehe);
  turtle.right(90);
  for (var i = 0; i < liste.length; i++)
   this.Balken(liste[i]/(Max-Min)*this.MaxHoehe, Breite);
 };

 return this;
}
</code>

<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="4d0d0793d307">
var ZahlenListe = ZufallsZahlen(1, 1000, 20);
var BalkenDiagramm1 = new BalkenDiagramm(canvas1, turtle1);
BalkenDiagramm1.Darstellung(ZahlenListe);

BubbleSort(ZahlenListe);
BalkenDiagramm2 = new BalkenDiagramm(canvas2, turtle2);
BalkenDiagramm2.Darstellung(ZahlenListe);

</run>