home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
pascal
/
das_buch
/
einfuehr
/
quadmag.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-06-07
|
2KB
|
67 lines
PROGRAM Magisches_Quadrat;
USES Crt;
VAR
A : ARRAY [1..4, 1..4] OF INTEGER;
Zeile,
Spalte : INTEGER;
Sum1,
Sum2 : INTEGER;
BEGIN
ClrScr; { Bildschirm löschen }
FOR Zeile := 1 TO 4 DO { Matrix einlesen }
BEGIN
Write('Bitte ', Zeile, '. Zeile des magischen Quadrats eingeben: ');
ReadLn(A[Zeile,1], A[Zeile,2], A[Zeile,3], A[Zeile,4])
END;
Sum1 := 0;
FOR Spalte := 1 TO 4 DO { Summe erste Zeile berechnen }
Sum1 := Sum1 + A[1,Spalte];
Zeile := 2; { Summe der Zeilen 2-4 testen }
Sum2 := Sum1;
WHILE (Zeile <= 4) AND (Sum1 = Sum2) DO
BEGIN
Sum2 := 0;
FOR Spalte := 1 TO 4 DO
Sum2 := Sum2 + A[Zeile, Spalte];
Zeile := Zeile + 1
END;
IF Sum1 <> Sum2 THEN
WriteLn('Fehler in ', Zeile - 1,'. Zeile')
ELSE { Spalten auf Korrektheit testen }
BEGIN
Spalte := 1;
Sum2 := Sum1;
WHILE (Spalte <=4) AND (Sum1 = Sum2) DO
BEGIN
Sum2 := 0;
FOR Zeile := 1 TO 4 DO
Sum2 := Sum2 + A[Zeile, Spalte];
Spalte := Spalte + 1
END;
IF Sum1 <> Sum2 THEN
WriteLn('Fehler in ', Spalte - 1,'. Zeile')
ELSE
BEGIN
Sum2 := 0;
FOR Zeile := 1 TO 4 DO
Sum2 := Sum2 + A[Zeile,Zeile];
IF Sum1 <> Sum2 THEN
WriteLn('Fehler in 1. Diagonale ')
ELSE
BEGIN
Sum2 := 0;
FOR Zeile := 1 TO 4 DO
Sum2 := Sum2 + A[5 - Zeile ,Zeile];
IF Sum2 <> Sum1 THEN
WriteLn('Fehler in 2. Diagonale ')
ELSE
WriteLn('Magisches Quadrat ');
END;
END;
END;
ReadKey;
END.