|
|||
begin. whilen<>m do ⇐ ПредыдущаяСтр 6 из 6 var n, m, nod: integer; //начало описания функции functionnod_Evk(n, m: integer): integer; begin whilen< > m do begin ifm> n thenm: =m-n elsen: =n-m; end; nod_Evk: =n; end; //конец описания функции begin clrscr; write(' N =: '); read(n); write(' M =: '); read(m); write(' Наибольший общий делитель ', n, ' и ', m, ' = '); nod: =nod_Evk(n, m); write(nod); end. В конце описания функции, ее имени присваивается значение, которое впоследствии примет переменная nod. Как видите, в функцию из основной части передаются только два фактических параметра (m и n), что соответствует количеству формальных параметров. И если в заголовке процедуры после слова Var можно указать переменные, также относящиеся к числу формальных параметров, то в функции эта обязанность лежит на ее имени, принимающем после своей работы какое-то значение.
Большинство специалистов придерживаются точки зрения, что метод нисходящего проектирования программ наиболее удобен для решения сложных проблем. Cначала задача определяется в общих чертах, затем происходит постепенное уточнение ее структуры. На очередном шаге каждая подзадача, в свою очередь, разбивается на ряд других. Решение отдельного фрагмента сложной задачи представляет собой самостоятельный программный блок – подпрограмму. Написать функцию, которая возвращает среднее арифметическое двух переданных ей аргументов (параметров).
var a, b: real; functionaverage(c, d: real): real; begin average: =(c+d)/2; end; begin readln(a, b); writeln(average(a, b): 5: 2); end.
|
|||
|