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.