File: example3.e

package info (click to toggle)
smarteiffel 1.1-11
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 12,288 kB
  • ctags: 40,785
  • sloc: ansic: 35,791; lisp: 4,036; sh: 1,783; java: 895; ruby: 613; python: 209; makefile: 115; csh: 78; cpp: 50
file content (53 lines) | stat: -rw-r--r-- 934 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
class EXAMPLE3
-- You can also compile this code without -sedb (there's an output)
   
creation main
   
feature
   
   main is
      local
	 x, y, z: POINT
	 t: TRIANGLE
      do
	 create x.make(1.0 , 2.0)
	 point_display(x)
	 
	 create y.make(3.0 , 4.0)
	 point_display(y)
	 
	 create z.make(5.0 , 6.0)
	 point_display(z)
	 
	 create t.make(x,y,z)
	 triangle_display(t)
	 
	 t.translate(1,2)
	 triangle_display(t)
	 -- It is too bad (i.e. not object oriented).
	 -- Have a look at version3 of class TRIANGLE
      end
   
   triangle_display(t: TRIANGLE) is
      do
	 io.put_string("TRIANGLE[%N%T")
	 point_display(t.p1)
	 io.put_string("%N%T")
	 point_display(t.p2)
	 io.put_string("%N%T")
	 point_display(t.p3)
	 io.put_string("%T]%N")
	 
      end
   
   point_display(p: POINT) is
      do
	 io.put_string("POINT[")
	 io.put_double(p.x)
	 io.put_character(',')
	 io.put_double(p.y)
	 io.put_string("]%N")
      end
   
end