program Euklides; {plik Euklides}
var m,n:word;
{W nagłówku funkcji, po jej nazwie i parametrach, podaje się typ wyniku funkcji i średnik}
function NWD(m,n:word):word;
var r:word;
begin
{Instrukcja iteracyjna while}
while m>0 do
begin
r:=n mod m; n:=m; m:=r
end;
NWD:=n
{NWD - W treści funkcji występuje instrukcja przypisania nazwie funkcji jej wartości}
end;
procedure czytajDane(var m,n:word);
begin
Write('Podaj dwie dodatnie liczby naturalne, oddzielone spacja:');
Readln(m,n)
end; {czytajDane}
procedurE wypiszNWD(m,n:word);
begin
Write( 'NWD( ',m,',' ,n, ') = ');
Writeln(NWD(m,n))
{Parametrem instrukcji Writeln jest wywołanie funkcji NWD}
end; {wypiszNWD}
begin {Euklides}
czytajDane(m,n);
wypiszNWD(m,n)
end.