program TypeProgram; Const MY_AGE = 35; Type Address = record city : string[100]; state : string[100]; zip : string[20]; street : string[100]; country : string[100]; end; Type Person = record id : integer; name : string[32]; age : integer; next : ^Person; contact : Address; end; Var test : Person; test2 : Person; p : ^Person; begin writeln('Hello, World!'); test.id := 101; test.name := 'Jo Doe'; test.age := MY_AGE; test.contact.city := 'Annapolis'; test.contact.state := 'Maryland'; test.contact.zip := '02345'; test.contact.street := '12 Jam St.'; test.contact.country := 'USA'; test.next := @test2; test2.id := 102; test2.name := 'Jane Doe'; test2.age := 22; test2.contact.city := 'Balitmore'; test2.contact.state := 'Maryland'; test2.contact.zip := '12345'; test2.contact.street := '11 Ark St.'; test2.contact.country := 'USA'; test2.next := Nil; writeln('test.id: ',test.id); writeln('test.name: ',test.name); writeln('test.age: ',test.age); writeln('test.contact.city: ',test.contact.city); writeln('test.contact.state: ',test.contact.state); writeln('test.contact.zip: ',test.contact.zip); writeln('test.contact.street: ',test.contact.street); writeln('test.contact.country: ',test.contact.country); writeln('--------------------'); p := @test; while p <> Nil do begin writeln('id: ',p^.id); writeln('name: ',p^.name); writeln('age: ',p^.age); writeln('city: ',p^.contact.city); writeln('state: ',p^.contact.state); writeln('zip: ',p^.contact.zip); writeln('street: ',p^.contact.street); writeln('country: ',p^.contact.country); writeln('--------------------'); p := p^.next; end; end.