init dgs; window (0.0, 0.0, 13.5, 7.0); viewport (0.0,0.0,13.5,7.0); (*scale (1.7,1.7, 0.0,0.0);*) (*clear pixels;*) x alignment (center); font size (0.3); font expansion (1.2); kasten (1.5, 5.0, 2.0, 1.5); move (2.5, 5.9); draw ("EUDAS-"); move (2.5, 5.3); draw ("Datei 1"); move (3.5, 5.75); draw (4.0, 5.75); kasten (4.0, 5.0, 2.0, 1.5); move (5.0, 5.9); draw ("gekettete"); move (5.0, 5.3); draw ("Datei A"); move (6.0, 5.75); draw (6.5, 5.75); kasten (6.5, 5.0, 2.0, 1.5); move (7.5, 5.9); draw ("gekettete"); move (7.5, 5.3); draw ("Datei B"); kasten (1.5, 2.0, 2.0, 1.5); move (2.5, 2.9); draw ("gekoppelte"); move (2.5, 2.3); draw ("Datei C"); kasten (4.0, 0.0, 2.0, 1.5); move (5.0, 0.9); draw ("gekoppelte"); move (5.0, 0.3); draw ("Datei D"); punkt (9.0, 5.75); punkt (9.25, 5.75); punkt (9.5, 5.75); strichel (1.0, 4.5, 10.0, 4.5); strichel (1.0, 7.0, 10.0, 7.0); strichel (1.0, 4.5, 1.0, 7.0); x alignment (right); font size (0.4); move (10.0, 3.9); draw ("Hauptdatei"); punkt (2.5, 3.75); punkt (2.5, 4.0); punkt (2.5, 4.25); punkt (5.0, 1.75); punkt (5.0, 2.0); punkt (5.0, 2.25); punkt (5.0, 2.5); punkt (5.0, 2.75); punkt (5.0, 3.0); punkt (5.0, 3.25); punkt (5.0, 3.5); punkt (5.0, 3.75); punkt (5.0, 4.0); punkt (5.0, 4.25); PROC punkt (REAL CONST x pos, y pos) : LET p size = 0.025; move (x pos, y pos + p size); draw (x pos + p size, y pos); draw (x pos, y pos - p size); draw (x pos - p size, y pos); draw (x pos, y pos + p size) END PROC punkt; 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 senkrecht, verhaeltnis; IF laenge <> 0.0 THEN verhaeltnis := (y end - y anf) / laenge; senkrecht := 1.0 ELSE verhaeltnis := 1.0; senkrecht := 0.0 ; laenge := y end - y anf END IF; laenge := laenge / (real (2 * teile + 1)); INT VAR i; FOR i FROM 0 UPTO teile REP move (x anf + real (i + i) * laenge * senkrecht, y anf + verhaeltnis * real (i + i) * laenge); draw (x anf + real (i + i + 1) * laenge * senkrecht, 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; PROC kasten (REAL CONST x anf, y anf, x l, y l) : move (x anf, y anf); draw (x anf, y anf + y l); draw (x anf + x l, y anf + y l); draw (x anf + x l, y anf); draw (x anf, y anf) END PROC kasten; LET myname = "abb.9-3"; 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) *)