program procedura;

 var s2,r1,r:integer;  

//---------------------------------------------------
 function zv(a,b:integer):integer; // функции - это типо те же процедуры, только с конкретным результатом.
 //функция - это и есть результат. отсюда и :integer после скобок
   begin
    zv :=a+b; // у этой функции результатом является сложение переменных a и b
    WriteLn('Помимо этого в функции выполняются любые действия, не связанные с вычислением результата, поэтому эта надпись выведется на экран');
   end;       
//------------------------------------------------ 

 begin
  r:=random(5000000);
  r1:=random(5000000);
  WriteLn(r,' ',r1);
  s2:=zv(r,r1); // переменной s2 присваивается результат функции, и так собственно функция и призывается
  WriteLn('Сумма рандомных чисел = ',s2);
 end.
 