Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Erstellung einer Schleife mit drei Überprüfungen

  Alt 23. Mai 2021, 02:10
Im Programm muss dazu noch jeweils ein for, while und repeat vorkommen und ich weiß nicht wo ich das while integrieren soll.
Erstelle für Input ein Array of "Datentyp" zum abarbeiten.
Erstelle für Output ein Array of String für die Ausgabe.

In einer "For"-Schleife über Input Array überprüfst Du auf gerade Zahlen und schreibst das Ergebnis in das Output Array.
In einer "While"-Schleife über Input Array überprüfst Du auf Fibonacci Zahlen und schreibst das Ergebnis in das Output Array.
In einer "Repeat"-Schleife über Input Array überprüfst Du auf Primzahlzwillinge und schreibst das Ergebnis in das Output Array.

Somit wären diese Pflichten erledigt.

Nun musst Du Dir überlegen wie Du es auswertest mit dem True/False da ich nicht verstanden habe was True/False bedeuten soll.

Ich hoffe es bringt Dich ans Ziel.

Ps: Ich würde mir für das Überprüfen jeweils eine Eigene Methode erstellen, "IsEven, IsFibo, IsPrimePair" um in den Schleifen einfacher darauf zugreifen zu können.


//edit grober pseudo code der verdeutlichen soll wie ich es meine, etwaige fehler und lücken müssen noch bearbeitet werden.
Delphi-Quellcode:
program hausaufgabe;

uses Units;

function IsEven(const AValue: {Datentyp}): Boolean;
begin
//code
end;

function IsFibo(const AValue: {Datentyp}): Boolean;
begin
//code
end;

function IsPrimePair(const AValue: {Datentyp}): Boolean;
begin
//code
end;

var
  input: Array of {Datentyp};
  output: Array of string;
  i, maxI: Integer;
begin
  Writeln('Hausaufgabe');
  Writeln('');

  Randomize;
  maxI := Random(666);
  SetLength(input, maxI);
  SetLength(output, maxI);
  for i := 0 to maxI do
    input[i] := Random(666);

  for i := 0 to High(input) do
    if IsEven(input[i]) then
      output[i] := 'IsEven, '
      else
      output[i] := 'IsNotEven, ';

  i := 0;
  while True do
  begin
    if IsFibo(input[i]) then
      output[i] := output[i] + 'IsFibo, '
      else
      output[i] := output[i] + 'IsNotFibo, ';
    if i < Length(input) then
      Inc(i, 1)
      else
      Break;
  end;

  i := 0;
  repeat
    if IsPrimePair(input[i]) then
      output[i] := output[i] + 'IsPrimePair'
      else
      output[i] := output[i] + 'IsNotPrimePair';
    Inc(i, 1);
  until i > Length(input);

  for i := 0 to High(output) do
    Writeln('#' + IntToStr(i) + ': "' + DatentypToStr(input[i]) + '" = ' + output[i];

  Readln;
end.
Gruß vom KodeZwerg

Geändert von KodeZwerg (23. Mai 2021 um 02:44 Uhr)
  Mit Zitat antworten Zitat