Wir sollten ein Programm schreiben, das
Die Ausgabe haben wir dann endlich hingekriegt und die Multiplikation und die Primzahlen-Erkennung sollte auch richtig funktionieren, jedoch weiss ich nicht wo der Fehler in der Wurzelberechnung liegt.
Der Dickgedruckte Teil ist der (anscheinend) fehlerhafte.
[/B]
- - die Werte 1-30 checkt
- - einzelne Werte auf Primzahl überprüft
- - angibt, wie oft man einen Wert mit sich selber multiplizieren muss damit der Wert >500
- - wie oft muss man den Wert "Wurzeln", damit der Wert<5 ist.
- - und welche Primzahlen (ab dem Wert 2), existieren vor dem Wert.
Die Ausgabe haben wir dann endlich hingekriegt und die Multiplikation und die Primzahlen-Erkennung sollte auch richtig funktionieren, jedoch weiss ich nicht wo der Fehler in der Wurzelberechnung liegt.
Der Dickgedruckte Teil ist der (anscheinend) fehlerhafte.
Code:
[COLOR="DeepSkyBlue"]program[/COLOR] Aufgabe4 ;
[COLOR="DeepSkyBlue"]const[/COLOR]
LOWER_BORDER = 1;
UPPER_BORDER = 30;
MULT_BORDER = 500;
SQRT_BORDER = 5;
[COLOR="DeepSkyBlue"]var[/COLOR]
WertistPrimzahl,
Primzahl : Boolean;
Laufwert,
Wert,
Multiplikationsschleife,
Wurzelschleife,
Teiler,
Rest,
Primzahlzaehler : Byte;
Multiplikationsergebnis : Word;
sqrtergebnis : Extended;
[COLOR="DeepSkyBlue"]begin[/COLOR]
Wert:= 1 ;
[COLOR="DeepSkyBlue"]for[/COLOR] Wert:= LOWER_BORDER [COLOR="DeepSkyBlue"]to[/COLOR] UPPER_BORDER [COLOR="DeepSkyBlue"]do[/COLOR]
[COLOR="DeepSkyBlue"]begin[/COLOR]
write(Wert);
Laufwert:= Wert + 1;
Multiplikationsschleife:=0;
Multiplikationsergebnis := Laufwert;
[COLOR="DeepSkyBlue"]while[/COLOR] (Multiplikationsergebnis < MULT_BORDER)[COLOR="DeepSkyBlue"]do[/COLOR]
[COLOR="DeepSkyBlue"]begin[/COLOR]
Multiplikationsergebnis := Multiplikationsergebnis * Laufwert;
Multiplikationsschleife := Multiplikationsschleife+1;
[COLOR="DeepSkyBlue"]end;[/COLOR]
[B][COLOR="DeepSkyBlue"]repeat[/COLOR]
sqrtergebnis := sqrt(Laufwert);
Wurzelschleife := Wurzelschleife + 1;
[COLOR="DeepSkyBlue"]until[/COLOR] sqrtergebnis < SQRT_BORDER ;
write ('Mult:',Multiplikationsschleife);
writeln ('Wurzeln:',Wurzelschleife)
Teiler:=1 ;
[COLOR="DeepSkyBlue"]Repeat[/COLOR]
Teiler := Teiler+1;
Rest := Laufwert mod Teiler;
[COLOR="DeepSkyBlue"]until[/COLOR] Rest = 0;
[COLOR="DeepSkyBlue"]if[/COLOR] Teiler = Laufwert [COLOR="DeepSkyBlue"]then[/COLOR]
WertistPrimzahl:= True;
[COLOR="DeepSkyBlue"]for[/COLOR] Primzahlzaehler:= 2 [COLOR="DeepSkyBlue"]to[/COLOR] Laufwert - 1 [COLOR="DeepSkyBlue"]do[/COLOR]
[COLOR="DeepSkyBlue"]begin[/COLOR]
Teiler:=1;
[COLOR="DeepSkyBlue"]Repeat[/COLOR]
Teiler := Teiler+1;
Rest := Laufwert mod Teiler;
[COLOR="DeepSkyBlue"]until[/COLOR] Rest = 0;
[COLOR="DeepSkyBlue"]if[/COLOR] Teiler = Laufwert [COLOR="DeepSkyBlue"]then[/COLOR]
Primzahl:= True;
[COLOR="DeepSkyBlue"]if[/COLOR] Primzahl then
write (Primzahlzaehler,'_');
[COLOR="DeepSkyBlue"]end;[/COLOR]
[COLOR="DeepSkyBlue"]if[/COLOR] WertistPrimzahl = True [COLOR="DeepSkyBlue"]then[/COLOR]
write('Prim:TRUE')
[COLOR="DeepSkyBlue"]else[/COLOR]
write('Prim:FALSE');
[COLOR="DeepSkyBlue"]end;[/COLOR]
[COLOR="DeepSkyBlue"]end.[/COLOR]
Zuletzt bearbeitet: