init dgs; window (0.0, 0.0, 13.5, 6.5); viewport (0.0,0.0,13.5,6.5); (*scale (1.7,1.7, 0.0,0.0);*) (*clear pixels;*) INT VAR i; move (4.0, 0.0); draw (4.0, 2.0); move (5.5, 0.0); draw (5.5, 2.0); FOR i FROM 0 UPTO 4 REP move (4.0, real (i) * 0.5); draw (5.5, real (i) * 0.5) END REP; move (4.0, 3.0); draw (4.0, 6.0); move (5.5, 3.0); draw (5.5, 6.0); FOR i FROM 0 UPTO 6 REP move (4.0, real (i) * 0.5 + 3.0); draw (5.5, real (i) * 0.5 + 3.0) END REP; move (7.5, 2.0); draw (7.5, 6.0); move (9.0, 2.0); draw (9.0, 6.0); FOR i FROM 0 UPTO 8 REP move (7.5, real (i) * 0.5 + 2.0); draw (9.0, real (i) * 0.5 + 2.0) END REP; strichel (5.5, 6.0, 7.5, 6.0); strichel (5.5, 3.0, 7.5, 3.0); strichel (5.5, 1.0, 7.5, 3.0); strichel (5.5, 0.0, 7.5, 2.0); move (5.5, 4.75); draw (6.0, 4.75); draw (6.0, 1.75); draw (5.5, 1.75); move (4.0, 3.75); draw (3.5, 3.75); draw (3.5, 1.25); draw (4.0, 1.25); font size (0.4); font expansion (1.5); move (0.0, 0.8); draw ("Koppeldatei"); move (0.0, 4.3); draw ("Hauptdatei"); move (10.0, 4.3); draw ("virtuelle"); move (10.0, 3.4); draw ("Datei"); font size (0.3); move (4.5, 0.1); draw ("H2"); move (4.5, 0.6); draw ("H1"); move (4.5, 1.1); draw ("B"); move (4.5, 1.6); draw ("A"); move (4.5, 3.1); draw ("F4"); move (4.5, 3.6); draw ("B"); move (4.5, 4.1); draw ("F3"); move (4.5, 4.6); draw ("A"); move (4.5, 5.1); draw ("F2"); move (4.5, 5.6); draw ("F1"); move (8.0, 5.6); draw ("F1"); move (8.0, 5.1); draw ("F2"); move (8.0, 4.6); draw ("A"); move (8.0, 4.1); draw ("F3"); move (8.0, 3.6); draw ("B"); move (8.0, 3.1); draw ("F4"); move (8.0, 2.6); draw ("H1"); move (8.0, 2.1); draw ("H2"); PROC strichel (REAL CONST x anf, y anf, x end, y end) : REAL VAR laenge := x end - x anf; INT VAR teile := int (abstand/ 0.4); REAL VAR verhaeltnis := (y end - y anf) / laenge; laenge := laenge / (real (2 * teile + 1)); INT VAR i; FOR i FROM 0 UPTO teile REP move (x anf + real (i + i) * laenge, y anf + verhaeltnis * real (i + i) * laenge); draw (x anf + real (i + i + 1) * laenge, y anf + verhaeltnis * real (i + i + 1) * laenge) END REP . abstand : sqrt ((y end - y anf) + (y end - y anf) + (x end - x anf) * (x end - x anf)) . END PROC strichel; LET myname = "abb.9-2"; save pixels (myname + ".p"); FILE VAR f := sequential file (modify, myname + ".p"); to line (f, 1); insert record (f); write record (f, "#linefeed (0.8)#"); insert record (f); write record (f, myname); to eof (f); insert record (f); write record (f, myname); to line (f, 1); (* pause (9000); *)