Triangle tools from the text book Programming Processors in Java.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
Triangle-Tools/programs/names.tri

52 lines
822 B

let
type Name ~ array 6 of Char;
type Number ~ Integer;
proc getname (var newname: Name) ~
let var i: Integer
in
begin
i := 0;
while i < 6 do
begin
if eol () then
newname[i] := ' '
else
get (var newname[i]);
i := i+1
end
end;
proc putname (newname: Name) ~
let var i: Integer
in
begin
i := 0;
while i < 6 do
begin
put (newname[i]);
i := i+1
end
end;
func samename (name1: Name, name2: Name) : Boolean ~
let
func same (n: Integer) : Boolean ~
(name1[n] = name2[n]) /\
(if n = 0 then true else same (n-1))
in
same (5);
var nam: Name
in
begin
getname (var nam); geteol ();
putname (nam); put (' ');
if samename (nam, ['D','a','v','i','d',' ']) then
put ('Y')
else
put ('N');
puteol ()
end