SierpinskiTriangle.ob07 815 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. (*
  2. adapted to Oberon-07 by 0CodErr, KolibriOS team
  3. *)
  4. MODULE SierpinskiTriangle;
  5. IMPORT In, Out, Console;
  6. VAR
  7. order: INTEGER;
  8. PROCEDURE PrintSierpinski(order: INTEGER);
  9. VAR
  10. x, y, k, size: INTEGER;
  11. BEGIN
  12. size := LSL(1, order) - 1;
  13. FOR y := size TO 0 BY -1 DO
  14. FOR k := 1 TO y DO
  15. Out.Char(" ")
  16. END;
  17. FOR x := 0 TO size - y DO
  18. IF BITS(x) * BITS(y) = {} THEN
  19. Out.String("* ")
  20. ELSE
  21. Out.String(" ")
  22. END
  23. END;
  24. Out.Ln
  25. END
  26. END PrintSierpinski;
  27. BEGIN
  28. Console.open;
  29. Out.String("Input triangle order(0..5):");
  30. In.Int(order);
  31. PrintSierpinski(order);
  32. In.Ln;
  33. Console.exit(TRUE)
  34. END SierpinskiTriangle.