• Lernkarte - Primfaktorzerlegung (JavaScript)
  • Christian Leeser
  • 08.06.2023
  • Informatik
  • 9, 10
Um die Lizenzinformationen zu sehen, klicken Sie bitte den gewünschten Inhalt an.
Pro­gramm­be­schrei­bung und
Fluss­dia­gramm
Hin­weis

Die­ses Pro­gramm zer­legt eine Zahl in ihre Prim­fak­to­ren. Hier­zu wird die Be­rech­nung mit Mo­du­lo (Rest­wert) ver­wen­det.

Die Um­set­zung des Pro­gramm ver­wen­det:

- if-​Abfrage

- while-​Schleife

- Va­ri­a­blen

- Mo­du­lo

Schritt-​für-Schritt-Anleitung

In dem fol­gen­den Teil führt Schritt-​für-Schritt durch das Fluss­dia­gramm.



Am Ende die­ser An­lei­tung steht das voll­stän­di­ge Pro­gramm pas­send zum Fluss­dia­gramm.

1. Schritt: Die Ein­ga­be (Zeile 1 und 2)

Mit let wird die Va­ri­a­ble n de­kla­riert. Mit prompt wird der Nut­zer auf­ge­for­dert, zu die­ser Va­ri­a­blen einen Werte an­zu­ge­ben.

JavaScript
let n = prompt('Gebe eine Zahl an: ');

2. Schritt: Die while-​Schleife (Zeile 3)

So­bald n gleich 1 ist, wer­den die Ab­fra­gen nicht mehr durch­lau­fen. (oder an­ders for­mu­liert)

So­lan­ge n nicht gleich 1 ist, wer­den die Ab­fra­gen durch­lau­fen.



Hin­ter­grund: Von 1 lässt sich keine Prim­fak­tor­zer­le­gung durch­füh­ren.

JavaScript
let n = prompt('Gebe eine Zahl an: ');
while (n != 1) {

3. Schritt: Die Ab­zwei­gung (Zeile 4 bis 6)

Wenn n Mo­du­lo 2 gleich null ist, also n/2 ohne Rest, dann soll 2 aus­ge­ge­ben und n durch 2 ge­teilt wer­den. Hin­weis: Un­ter­schei­dung zum Fluss­dia­gramm.

JavaScript
let n = prompt('Gebe eine Zahl an: ');
while (n != 1) {
if (n % 2 == 0) {
alert("2");
n = n / 2;

4. Schritt: Die erste Ab­zwei­gung (Zeile 7 bis 26)

Der Schritt 3 wird für die Prim­zah­len 3, 5, 7, 11, 13 und 17 eben­falls durch­ge­führt. Nach jeder Aus­ga­be und Be­rech­nung geht es zu­rück zur while-​Schleife, bis n = 1 ist.

JavaScript
let n = prompt('Gebe eine Zahl an: ');
while (n != 1) {
if (n % 2 == 0) {
alert("2");
n = n / 2;
} else if (n % 3 == 0) {
alert("3");
n = n / 3;
} else if (n % 5 == 0) {
alert("5");
n = n / 5;
} else if (n % 7 == 0) {
alert("7");
n = n / 7;
} else if (n % 11 == 0) {
alert("11");
n = n / 11;
} else if (n % 13 == 0) {
alert("13");
n = n / 13;
} else if (n % 17 == 0) {
alert("17");
n = n / 17;
}
}

ENDE

Auf­ga­ben
1
Füge in dem Quell­code pas­send zu den Schrit­ten Kom­men­ta­re ein, die den je­wei­li­gen Teil in sei­ner Funk­ti­on be­schrei­ben.
JavaScript
// Zwei "Balken" ergeben einen Zeilenkommentar
/* Balken und Sternchen am Anfang und am Ende
ergeben einen Kommentar auf mehreren Zeilen */
2
Ei­ni­ge Fra­gen, um das Ver­ständ­nis zum Pro­gramm zu über­prü­fen.
  • Die va­ri­a­ble n be­ginnt mit dem Wert, den der User ein­trägt. Was pas­siert im Laufe des Pro­gram­mes mit die­sem Wert?
  • Die­ses Pro­gramm hat Gren­zen in der Zer­le­gung in Prim­zah­len. Im Grun­de stellt die­ses Pro­gramm kei­nen voll­stän­di­gen Al­go­rith­mus dar. Be­grün­de, warum dies spe­zi­ell bei Prim­fak­tor­zer­le­gung dies so ist.
3
Über­le­ge Dir mög­li­che Ver­bes­se­run­gen für das Pro­gramm. Bei­spiels­wei­se:
  • Könn­te der Text der Ein­ga­be und der Aus­ga­be ver­bes­sert wer­den.
  • Be­steht die Mög­lich­keit, eine an­de­re Be­rech­nung zu ver­wen­den.
  • Wird am Ende eine Else-​If-Anweisung be­nö­tigt?
4
Passe das Fluss­dia­gramm und den Quell­text ent­spre­chend Dei­ner Über­le­gun­gen aus Auf­ga­be 3 an.
x