Size: 264
Comment:
|
Size: 3533
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
* https://craftofcoding.files.wordpress.com/2013/07/ada_strings.pdf * https://www.adaic.org/resources/add_content/standards/05rm/html/RM-TOC.html * https://ada-util.readthedocs.io/en/latest/Util_Dates/ * https://en.wikibooks.org/wiki/Ada_Programming/Libraries/GNAT.Calendar.Time_IO * https://www.tutorialspoint.com/compile_ada_online.php * https://docs.adacore.com/gnat_rm-docs/html/gnat_rm/gnat_rm/the_gnat_library.html * https://www.adaic.org/resources/add_content/docs/craft/html/contents.htm |
|
Line 6: | Line 13: |
'''hello.adb''' | |
Line 8: | Line 16: |
-- comment | |
Line 14: | Line 22: |
* gnat make hello.adb == Hello date == '''hellodate.adb''' {{{#!highlight ada with ada.text_io; use ada.text_io; with gnat.calendar.time_io; use gnat.calendar.time_io; with ada.calendar; use ada.calendar; procedure HelloDate is datetime: string(1..26); -- has exactly 26 chars begin -- gets date to string with milliseconds datetime := image( clock, "[%Y-%m-%dT%H:%M:%S.%i] " ); -- concatenetas string and shows date put_line( datetime & "stuff " ); end HelloDate; }}} * gnat make hellodate.adb == Person == '''person.ads''' {{{#!highlight ada -- The package encapsulates the type and code (functions,procedures) for the type. package Person is type Data is tagged private; -- constructor function Init(Name : in String; Address : in String) return Data; -- getter name function GetName(self : in Data; extra : in String) return String; -- getter address function GetAddress(self : in Data; extra : in String) return String; -- setter name procedure SetName(self : in out Data; name : in String); -- setter address procedure SetAddress(self : in out Data; address : in String); private type Data is tagged record Name : String (1 .. 10); Address : String (1 .. 10); end record; end Person; }}} '''person.adb''' {{{#!highlight ada package body Person is -- constructor function Init(Name : in String ; Address : in String) return Data is p : Person.Data;-- := (Name => Name , Address => Address); begin p.Name := Name; p.Address := Address; return p; end; -- getter name function GetName(self : in Data ; extra : in String) return String is begin return self.Name & extra; end; -- getter address function GetAddress(self : in Data ; extra : in String) return String is begin return self.Address & extra; end; -- setter name procedure SetName(self : in out Data ; name : String) is begin self.Name := name; end; -- setter address procedure SetAddress(self : in out Data ; address : String) is begin self.Address := address; end; end Person; }}} '''testperson.adb''' {{{#!highlight ada with ada.text_io; use ada.text_io; with Person; procedure TestPerson is p : Person.Data; q : Person.Data; begin p := Person.Init("0123456789", "9876543210"); q := Person.Init("aaaaaaaaaa", "bbbbbbbbbb"); q.SetName("zzzzzzzzzz"); put_line( p.GetName("ex1") & " " & p.GetAddress("ex3") ); put_line( q.GetName("ex2") & " " & q.GetAddress("ex4") ); end TestPerson; }}} * gnat make testperson.adb |
Ada
https://craftofcoding.files.wordpress.com/2013/07/ada_strings.pdf
https://www.adaic.org/resources/add_content/standards/05rm/html/RM-TOC.html
https://en.wikibooks.org/wiki/Ada_Programming/Libraries/GNAT.Calendar.Time_IO
https://docs.adacore.com/gnat_rm-docs/html/gnat_rm/gnat_rm/the_gnat_library.html
https://www.adaic.org/resources/add_content/docs/craft/html/contents.htm
Hello world
hello.adb
- gnat make hello.adb
Hello date
hellodate.adb
1 with ada.text_io;
2 use ada.text_io;
3 with gnat.calendar.time_io;
4 use gnat.calendar.time_io;
5 with ada.calendar;
6 use ada.calendar;
7
8 procedure HelloDate is
9 datetime: string(1..26); -- has exactly 26 chars
10 begin
11 -- gets date to string with milliseconds
12 datetime := image( clock, "[%Y-%m-%dT%H:%M:%S.%i] " );
13 -- concatenetas string and shows date
14 put_line( datetime & "stuff " );
15 end HelloDate;
- gnat make hellodate.adb
Person
person.ads
1 -- The package encapsulates the type and code (functions,procedures) for the type.
2 package Person is
3 type Data is tagged private;
4 -- constructor
5 function Init(Name : in String; Address : in String) return Data;
6 -- getter name
7 function GetName(self : in Data; extra : in String) return String;
8 -- getter address
9 function GetAddress(self : in Data; extra : in String) return String;
10 -- setter name
11 procedure SetName(self : in out Data; name : in String);
12 -- setter address
13 procedure SetAddress(self : in out Data; address : in String);
14
15 private
16 type Data is tagged
17 record
18 Name : String (1 .. 10);
19 Address : String (1 .. 10);
20 end record;
21
22 end Person;
person.adb
1 package body Person is
2
3 -- constructor
4 function Init(Name : in String ; Address : in String) return Data is
5 p : Person.Data;-- := (Name => Name , Address => Address);
6 begin
7 p.Name := Name;
8 p.Address := Address;
9 return p;
10 end;
11
12 -- getter name
13 function GetName(self : in Data ; extra : in String) return String is
14 begin
15 return self.Name & extra;
16 end;
17
18 -- getter address
19 function GetAddress(self : in Data ; extra : in String) return String is
20 begin
21 return self.Address & extra;
22 end;
23
24 -- setter name
25 procedure SetName(self : in out Data ; name : String) is
26 begin
27 self.Name := name;
28 end;
29
30 -- setter address
31 procedure SetAddress(self : in out Data ; address : String) is
32 begin
33 self.Address := address;
34 end;
35
36 end Person;
testperson.adb
1 with ada.text_io;
2 use ada.text_io;
3 with Person;
4
5 procedure TestPerson is
6 p : Person.Data;
7 q : Person.Data;
8 begin
9 p := Person.Init("0123456789", "9876543210");
10 q := Person.Init("aaaaaaaaaa", "bbbbbbbbbb");
11 q.SetName("zzzzzzzzzz");
12
13 put_line( p.GetName("ex1") & " " & p.GetAddress("ex3") );
14 put_line( q.GetName("ex2") & " " & q.GetAddress("ex4") );
15 end TestPerson;
- gnat make testperson.adb