Процедура ничего не возвращает, функция возвращает.
В общем то, согласен со всем вышесказанным за одним маленьким но - процедура тоже может возвращать значения через свои аргументы (впрочем и функция то же) . Другое дело, что в отличии от функции, процедура не может использоваться в качестве операнда в выражениях.
Пример:
var c : Integer;
proceduere pSumm (const a, b : Integer; var Summ : Integer); // в аргументe Summ возвращается вычисленное значение a+b
function fSumm (a, b : Integer) : Integer; // функция возвращает вычисленное значение a+b
...
pSumm (5, 1, c); // в с результат сложения
с := fSumm (5, 1); // то же самое, но через функцию
f := c + pSumm(5, 1, c); // ОШИБКА
Где написано, что это модули?? ?
В остальном согласен с ответом выше.
Процедура описывается как:
procedure <имя процедуры>(список параметров) ;
Функция:
function <имя функции>(список параметров): тип возвращаемого значения;
Присваивать значение функции можно как через переменную функции (или хз как это точно называется) , которая пишется как result или же непосредственно используя имя функции т. е. <имя функции>:=значение
В PascalABC нет модулей "procedure" и "function". Не знаешь значение слова - не употребяй его.
Ну а процедура от функции в Паскале отличается тем, что функция возвращает значение (например, x:=sin(y) - функция sin вернула значение, и оно заносится в x), а процедура - нет (например, readln(x) прочтет x, но значение не вернет, запись writeln(readln(x)) некорректна.