Hallo,
Ich muss ein Programm für die Uni erstellen das überprüft ob in einer Schleife gerade Zahlen, Fibonacci Zahlen, oder Primzahlzwillinge vorhanden sind, und dann bei der Zahl jeweils TRUE oder FALSE anzeigen. Die Ausgabe sollte dann so aussehen:
0 even: TRUE fib: TRUE twinprim: FALSE
1 even: FALSE fib: TRUE twinprim: FALSE
2 even: TRUE fib: TRUE twinprim: FALSE
3 even: FALSE fib: TRUE twinprim: TRUE
4 even: TRUE fib: FALSE twinprim: FALSE
5 even: FALSE fib: TRUE twinprim: TRUE
6 even: TRUE fib: FALSE twinprim: FALSE
7 even: FALSE fib: FALSE twinprim: TRUE
8 even: TRUE fib: TRUE twinprim: FALSE
9 even: FALSE fib: FALSE twinprim: FALSE
10 even: TRUE fib: FALSE twinprim: FALSE
11 even: FALSE fib: FALSE twinprim: TRUE
12 even: TRUE fib: FALSE twinprim: FALSE
13 even: FALSE fib: TRUE twinprim: TRUE
14 even: TRUE fib: FALSE twinprim: FALSE
15 even: FALSE fib: FALSE twinprim: FALSE
16 even: TRUE fib: FALSE twinprim: FALSE
17 even: FALSE fib: FALSE twinprim: TRUE
18 even: TRUE fib: FALSE twinprim: FALSE
19 even: FALSE fib: FALSE twinprim: TRUE
20 even: TRUE fib: FALSE twinprim: FALSE
21 even: FALSE fib: TRUE twinprim: FALSE
22 even: TRUE fib: FALSE twinprim: FALSE
23 even: FALSE fib: FALSE twinprim: FALSE
24 even: TRUE fib: FALSE twinprim: FALSE
25 even: FALSE fib: FALSE twinprim: FALSE
Nun habe ich ein Problem mit Gleitkommawerten und wollte dies mit Epsilon lösen also 1E - 100, so hatten die uns das in der Vorlesung erklärt, jedoch funktioniert das nicht ganz ohne weiteres und ich finde im Internet auch nix brauchbares dazu. Im Programm muss dazu noch jeweils ein for, while und repeat vorkommen und ich weiß nicht wo ich das while integrieren soll.
Sorry für die dummen Fragen, ich bin noch blutiger Anfänger, habe vor einem Monat mit dem Programmieren angefangen.
Freue mich über jede Hilfe und danke im voraus.
Hier mein Quellcode:
Delphi-Quellcode:
// Schleife zum überprüfen ob gerade Zahl, Primzahl oder Fibonacci Zahl.
program ueb04;
{$APPTYPE CONSOLE}
{$R+,Q+,X-}
uses
System.SysUtils, System.Math;
const
LOWER_BORDER = 0;
UPPER_BORDER = 50;
Epsilon = 1E - 100;
var
even: boolean;
fib: extended;
fibo: boolean;
twinprim: boolean;
zahl: integer;
Primzahl: integer;
teiler: integer;
übrig: integer;
begin
for zahl := 1 to 50 do
begin
// Überprüfung ob gerade
even := (zahl mod 2 = 0);
// Überprüfung ob Fibonacci
fib := ((1 / sqrt(5)) * (Power(zahl, ((1 + sqrt(5)) / 2)) - (Power(zahl,
((1 - sqrt(5)) / 2)))));
fibo := (zahl = (fibo - Epsilon));
// Überprüfung ob Primzahl
if zahl > 0 then
begin
teiler := 1;
repeat
teiler := teiler + 1;
übrig := zahl mod teiler;
until (teiler = 0);
if (teiler = zahl) then
Primzahl := zahl
end;
// Überprüfung ob Primzahlzwilling
twinprim := (Primzahl + 2 = Primzahl);
writeln(zahl, ' even: ', even, ' fib: ', fib, ' twinprim: ', twinprim);
end;
readln;
end.