program phase07f

    types
      datarec    : record
                   first   : int;
                   second  : real;
                   end;

    procedures
      readrecord   (var x : datarec);
      writerecord  (var x : datarec);
      changerecord (var x : datarec);

begin

  procedure main

      variables
        data     : datarec;

  begin
    writeln ("enter record R:");
    call readrecord (data);
    writeln ();
    writeln ("you entered the following:");
    writeln ();
    call writerecord (data);
    writeln ();
    call changerecord (data);
    writeln ("the changed record is:");
    writeln ();
    call writerecord (data);
    writeln ();
  end

  procedure readrecord

  begin
    write ("enter an integer: ");
    readln (x.first);
    write ("enter a real: ");
    readln (x.second);
  end

  procedure writerecord

  begin
    writeln ("the first field value is:  ",x.first);
    writeln ("the second field value is: ",x.second);
  end

  procedure changerecord

  begin
    x.first := x.first + 123;
    x.second := x.second * 3.1416;
  end

end
