Einzelnen Beitrag anzeigen

Mo53

Registriert seit: 16. Mai 2021
59 Beiträge
 
Delphi 10.3 Rio
 
#1

Erstellung einer Schleife mit drei Überprüfungen

  Alt 23. Mai 2021, 00:11
Delphi-Version: 5
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.
  Mit Zitat antworten Zitat