Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.433 Beiträge
 
Delphi 7 Professional
 
#12

AW: Erstellung einer Schleife mit drei Überprüfungen

  Alt 24. Mai 2021, 11:08
Irgendwie konnte ich es nicht lassen:

Da es ja vorwiegend um die korrekte Nutzung von Schleifen gehen soll und die Verwendung einer For-, eine Repeat-Until und einer While-Schleife gefordert ist, dachte ich mir. "Die Fibonacci-Folge kann man doch auch per Schleife berechnen (statt durch 'hötere Mattetik'."

Dabei rausgekommen ist dann folgendes:
Delphi-Quellcode:
program ueb04;

{$APPTYPE CONSOLE}
{$R+,Q+,X-}

uses
  System.SysUtils;

const
  LOWER_BORDER = 0;
  UPPER_BORDER = 50;

var
  even : boolean;
  fib : boolean;
  twinprim : boolean;
  zahl : integer;
  Primzahl : integer;
  teiler : integer;
  uebrig : Integer;
  a : Integer;
  b : Integer;
  c : Integer;
begin
  for zahl := LOWER_BORDER to UPPER_BORDER do
  begin
    // Alles auf Anfang, damit nicht irrtümlicherweise die Ergebnisse der vorherigen Zahl genutzt werden.
    even := false;
    fib := false;
    twinprim := false;

    if zahl > 1 then
    begin
      // Überprüfung ob gerade:
      even := (zahl mod 2 = 0);

      // Überprüfung ob Primzahl:
      teiler := 1;
      repeat
        teiler := teiler + 1;
        uebrig := zahl mod teiler;
      until (uebrig = 0);

      if (teiler = zahl) then
        Primzahl := zahl;
    end;

    // Überprüfung ob Primzahlzwilling:
    if zahl >= 1 then
      twinprim := (zahl + 2 = Primzahl) or (zahl - 2 = Primzahl);

    // Überprüfung ob Teil der Fibonacci-Folge:
    a := 0;
    b := 1;
    c := 0;
    while (a < zahl) and not fib do
    begin
       c := a + b;
       a := b;
       b := c;
       fib := c = zahl;
    end;
    WriteLn(zahl, ' even: ', even, ' fib: ', fib, 'twinprim: ', twinprim);
  end;
  readln;
end.
Das Ergebnis sieht so aus:
Code:
00, even: false, fib: false, twinprim: false
01, even: false, fib: true, twinprim: false
02, even: true, fib: true, twinprim: false
03, even: false, fib: true, twinprim: false
04, even: true, fib: false, twinprim: false
05, even: false, fib: true, twinprim: false
06, even: true, fib: false, twinprim: false
07, even: false, fib: false, twinprim: false
08, even: true, fib: true, twinprim: false
09, even: false, fib: false, twinprim: true
10, even: true, fib: false, twinprim: false
11, even: false, fib: false, twinprim: false
12, even: true, fib: false, twinprim: false
13, even: false, fib: true, twinprim: false
14, even: true, fib: false, twinprim: false
15, even: false, fib: false, twinprim: true
16, even: true, fib: false, twinprim: false
17, even: false, fib: false, twinprim: false
18, even: true, fib: false, twinprim: false
19, even: false, fib: false, twinprim: false
20, even: true, fib: false, twinprim: false
21, even: false, fib: true, twinprim: true
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: true
26, even: true, fib: false, twinprim: false
27, even: false, fib: false, twinprim: false
28, even: true, fib: false, twinprim: false
29, even: false, fib: false, twinprim: false
30, even: true, fib: false, twinprim: false
31, even: false, fib: false, twinprim: false
32, even: true, fib: false, twinprim: false
33, even: false, fib: false, twinprim: true
34, even: true, fib: true, twinprim: false
35, even: false, fib: false, twinprim: false
36, even: true, fib: false, twinprim: false
37, even: false, fib: false, twinprim: false
38, even: true, fib: false, twinprim: false
39, even: false, fib: false, twinprim: true
40, even: true, fib: false, twinprim: false
41, even: false, fib: false, twinprim: false
42, even: true, fib: false, twinprim: false
43, even: false, fib: false, twinprim: false
44, even: true, fib: false, twinprim: false
45, even: false, fib: false, twinprim: true
46, even: true, fib: false, twinprim: false
47, even: false, fib: false, twinprim: false
48, even: true, fib: false, twinprim: false
49, even: false, fib: false, twinprim: true
50, even: true, fib: false, twinprim: false
  Mit Zitat antworten Zitat