Pascal-Programm mit Menüfunktionen

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 2,87 KB

Dieses Programm demonstriert verschiedene mathematische Funktionen und Prozeduren in Pascal.

Funktionen

  • Sum: Berechnet die Summe bis N.
  • Factorial: Berechnet die Fakultät einer Zahl.
  • Power: Berechnet die Potenz einer Zahl.

Prozeduren

  • Exchange: Tauscht zwei Werte.
  • Sequence: Gibt eine Zahlenfolge aus.
  • Odd/Paar: Filtert ungerade und gerade Zahlen.
  • Table: Erstellt ein Einmaleins.
  • Geometrie: Berechnet Flächen und Umfänge für Quadrat, Rechteck, Dreieck und Kreis.

Quellcode

PROGRAM MenuFunktionen;
USES CRT;
VAR B, X, R, Y: INTEGER;

FUNCTION Sum(N: INTEGER): INTEGER;
VAR I, S, Y: INTEGER;
BEGIN
  S := 0; Y := 0;
  FOR I := 1 TO N DO BEGIN
    Y := Y + 1; S := S + Y;
  END;
  Sum := S;
END;

FUNCTION Factorial(N: INTEGER): INTEGER;
VAR I, F, Y: INTEGER;
BEGIN
  Y := 0; F := 1;
  FOR I := 1 TO N DO BEGIN
    Y := Y + 1; F := F * Y;
  END;
  Factorial := F;
END;

FUNCTION Power(X, Y: INTEGER): INTEGER;
VAR P, I: INTEGER;
BEGIN
  P := 1;
  FOR I := 1 TO Y DO P := P * X;
  Power := P;
END;

PROCEDURE Exchange(VAR X, Y: INTEGER);
VAR X1: INTEGER;
BEGIN
  X1 := X; X := Y; Y := X1;
END;

PROCEDURE Sequence(X, Y: INTEGER);
VAR S: INTEGER;
BEGIN
  S := 1;
  REPEAT
    WRITE(X, ' ');
    X := X + S;
  UNTIL X = Y + 1;
END;

PROCEDURE Odd(X, Y: INTEGER);
BEGIN
  REPEAT
    IF NOT (X MOD 2 = 0) THEN WRITE(X, ' ');
    X := X + 1;
  UNTIL X = Y + 1;
END;

PROCEDURE Paar(X, Y: INTEGER);
BEGIN
  REPEAT
    IF (X MOD 2 = 0) THEN WRITE(X, ' ');
    X := X + 1;
  UNTIL X = Y + 1;
END;

PROCEDURE Tabelle(X: INTEGER);
VAR S, I: INTEGER;
BEGIN
  FOR I := 1 TO 10 DO BEGIN
    S := X * I;
    WriteLn(X, '*', I, '=', S);
  END;
END;

PROCEDURE Square(X: INTEGER);
VAR A, P: INTEGER;
BEGIN
  A := X * X; P := 4 * X;
  WriteLn('Der Umfang ist: ', P, ' Areal ist: ', A);
END;

PROCEDURE Rectangle(X, Y: INTEGER);
VAR AR, PR: INTEGER;
BEGIN
  AR := X * Y; PR := 2 * (X + Y);
  WriteLn('Der Umfang ist: ', PR, ' Areal ist: ', AR);
END;

PROCEDURE Triangle(X, Y: INTEGER);
VAR AT: REAL;
BEGIN
  AT := (X * Y) / 2;
  WriteLn('Die Fläche des Dreiecks ist: ', AT:0:2);
END;

PROCEDURE Circle(X: INTEGER);
VAR A, P: REAL;
BEGIN
  A := 3.1415 * X * X; P := 2 * 3.1415 * X;
  WriteLn('Der Umfang ist: ', P:2:3, ' Areal ist: ', A:2:3);
END;

BEGIN
  REPEAT
    ClrScr;
    WriteLn('1. Summe'); WriteLn('2. Fakultät'); WriteLn('3. Potenz');
    WriteLn('4. Tausch'); WriteLn('5. Sequenz'); WriteLn('6. Ungerade');
    WriteLn('7. Gerade'); WriteLn('8. Einmaleins'); WriteLn('9. Geometrie');
    WriteLn('0. EXIT');
    Readln(B);
    CASE B OF
      1: BEGIN WriteLn('Zahl:'); READ(X); R := Sum(X); WriteLn(R); END;
      { ... weitere Fälle ... }
    END;
  UNTIL B = 0;
END.

Verwandte Einträge: