Advertisement
pinkerton5

Variables

Aug 5th, 2021
360
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.50 KB | None | 0 0
  1. program variables;
  2. uses sysutils;
  3.  const
  4.   VARMAX     =  32;
  5.   VARLENGTH  =   8;
  6.      
  7.  Type
  8.   TVARProto  = record
  9.    name  : string[VARLENGTH];
  10.    value : word;  end;    
  11.  
  12.  var
  13.   VARs  : array[0..VARMAX] of TVARProto;
  14.   VARi  : byte = 0;
  15.   i     : byte;  
  16.  
  17.  procedure Error(s: string);
  18.  begin
  19.   Writeln(s); Halt;  end;  
  20.  
  21.  function VARCheck(Vname: string) : byte;
  22.  begin
  23.   if (Length(Vname) > VARLENGTH) then Error('-'+Vname+'- as VAR name is too long');
  24.   VARCheck := VARi;
  25.   for i := 0 to VARi-1 do
  26.     if (VARs[i].name = Vname) then VARCheck := i;
  27.  end;
  28.  
  29.  procedure VARValueSet(Vname, Val: string);
  30.  var i: byte;
  31.  begin
  32.     if (VARi = VARMAX) then Error(' too much VARs');
  33.     i:= VARCheck(Vname);
  34.     VARs[i].value := strtoint(Val);
  35.     if (i = VARi) then
  36.       begin
  37.       VARs[i].name  := Vname;      
  38.       Inc(VARi);
  39.       end;    
  40.  end;
  41.  
  42.  function VARValueGet(Vname: string) : word;
  43. var i: byte;
  44.  begin
  45.   if (Length(Vname) > VARLENGTH) then Error ('-'+vname+'- var name is too long');
  46.   for i := 0 to VARi do
  47.     if (VARS[i].name = Vname) then VARValueGet := VARS[i].Value;
  48.  end;
  49.    
  50.  begin
  51.   VARValueSet('elso','568');
  52.   VARValueSet('atlo','12');
  53.   VARValueSet('szel','110');
  54.   VARValueSet('metr','45');
  55.   VARValueSet('drb','1034');
  56.   VARValueSet('atlo','255');
  57.  
  58.   writeln;
  59.   writeln(VARvalueGet('metr'));
  60.   writeln(VARvalueGet('elsp'));
  61.   writeln;
  62.  
  63.  
  64.   for i:= 0 to VARi-1 do writeln(i+1,#09,VARS[i].name,#09,VARS[i].value);    
  65.  end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement