home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / das_buch / einfuehr / quadmag.pas < prev    next >
Pascal/Delphi Source File  |  1993-06-07  |  2KB  |  67 lines

  1. PROGRAM Magisches_Quadrat;
  2.  
  3. USES  Crt;
  4.  
  5. VAR
  6.   A : ARRAY [1..4, 1..4] OF INTEGER;
  7.   Zeile,
  8.   Spalte : INTEGER;
  9.   Sum1,
  10.   Sum2   : INTEGER;
  11.  
  12. BEGIN
  13.   ClrScr;                                           { Bildschirm löschen }
  14.   FOR Zeile := 1 TO 4 DO                               { Matrix einlesen }
  15.   BEGIN
  16.     Write('Bitte ', Zeile, '. Zeile des magischen Quadrats eingeben: ');
  17.     ReadLn(A[Zeile,1], A[Zeile,2], A[Zeile,3], A[Zeile,4])
  18.   END;
  19.   Sum1 := 0;
  20.   FOR Spalte := 1 TO 4 DO                { Summe erste Zeile berechnen }
  21.     Sum1 := Sum1 + A[1,Spalte];
  22.   Zeile := 2;                            { Summe der Zeilen 2-4 testen }
  23.   Sum2 := Sum1;
  24.   WHILE (Zeile <= 4) AND (Sum1 = Sum2) DO
  25.   BEGIN
  26.       Sum2 := 0;
  27.       FOR Spalte := 1 TO 4 DO
  28.         Sum2 := Sum2 + A[Zeile, Spalte];
  29.       Zeile := Zeile + 1
  30.   END;
  31.   IF Sum1 <> Sum2 THEN
  32.     WriteLn('Fehler in ', Zeile - 1,'. Zeile')
  33.   ELSE                                { Spalten auf Korrektheit testen }
  34.     BEGIN
  35.     Spalte := 1;
  36.     Sum2 := Sum1;
  37.     WHILE (Spalte <=4) AND (Sum1 = Sum2) DO
  38.     BEGIN
  39.       Sum2 := 0;
  40.       FOR Zeile := 1 TO 4 DO
  41.         Sum2 := Sum2 + A[Zeile, Spalte];
  42.       Spalte := Spalte + 1
  43.     END;
  44.     IF Sum1 <> Sum2 THEN
  45.       WriteLn('Fehler in ', Spalte - 1,'. Zeile')
  46.     ELSE
  47.       BEGIN
  48.       Sum2 := 0;
  49.       FOR Zeile := 1 TO 4 DO
  50.         Sum2 := Sum2 + A[Zeile,Zeile];
  51.       IF Sum1 <> Sum2 THEN
  52.         WriteLn('Fehler in 1. Diagonale ')
  53.       ELSE
  54.         BEGIN
  55.         Sum2 := 0;
  56.         FOR Zeile := 1 TO 4 DO
  57.           Sum2 := Sum2 + A[5 - Zeile ,Zeile];
  58.         IF Sum2 <> Sum1 THEN
  59.           WriteLn('Fehler in 2. Diagonale ')
  60.         ELSE
  61.           WriteLn('Magisches Quadrat ');
  62.         END;
  63.       END;
  64.     END;
  65.     ReadKey;
  66. END.
  67.