End.
Begin
End.
Begin
Begin
Пример
Var XN: real;
NN: word;
{Подпрограмма-функция вычисления XN }
function Ipow(X: real; N: word): real;
Var I: word;
M: real;
M:=1;
for I:=1 to N do
M:=M * X;
Ipow:=M
end;
{Основная программа}
Readln(XN,NN);
Writeln(‘ Значение функции = ‘, IPow(XN,NN))
Как ранее указывалось, тип формальных параметров может быть любым, однако в заголовке подпрограммы нельзя вводить новый тип, так нельзя писать:
function Max(A: array [1..50] of real): real;
Правильно в основной программе ввести новый тип, а затем использовать его в заголовке подпрограммы:
Type MASS = array [1..50] of real;
function Max(A: MASS): real;
· Формальное описание процедуры
procedure <имя процедуры> ( <список формальных параметров> );
<секция описания локальных переменных>;
begin
<секция операторов>
end;
В отличие от формального описания функции, в заголовке процедуры отсутствует понятие <тип>, так как имя процедуры не является носителем формального результата. Результаты выполнения процедуры могут быть множественны и указываются в списке формальных параметров в качестве параметров-переменных.
|
|
В качестве формальных параметров наиболее часто встречаются параметры-значения и параметры-переменные.
Параметры-значения передаются основной программой в подпрограмму через стек в виде их копий и, следовательно, собственный параметр программы подпрограммой изменится не может.
При передаче параметров-переменных в подпрограмму фактически через стек передаются их адреса в порядке, объявленном в заголовке подпрограммы. Следовательно, подпрограмма имеет доступ к этим параметрам и может их изменять, поэтому результаты выполнения процедуры должны указываться в списке формальных параметров именно в качестве параметров-переменных.
Параметр-переменная указывается в заголовке процедуры аналогично параметру-значению, но только перед именем параметра записывается ключевое слово Var.
procedure MaxMin(A:MASS; Var Max,Min:real);
Здесь A - параметр-значение; Max, Min - параметры-переменные.
· Вызов процедуры
Для вызова процедуры из основной программы или другой подпрограммы используется отдельный оператор следующего вида:
<имя процедуры> ( <список фактических параметров> );
Требования к списку фактических параметров в процедуре предъявляются те же, что и в подпрограмме-функции.
Пример
Var N: integer;
S: real;
{Подпрограмма-процедура вычисления суммы ряда
1/3 + 1/5 + 1/7 +... + 1/(2*I+1) }
procedure Summa(Kol:integer; Var Sum:real);
Var I:integer;
Sum:=0;
for I:=1 to Kol do
Sum:=Sum+1/(2*I+1)
end;
{Основная программа}
Begin
Readln(N);
Summa(N,S); {вызов процедуры}
Writeln(‘ Сумма ряда =’, S)
Одна из задач ЭВМ – автоматизация труда, повышение эффективности научных исследований. Основная особенность ЭВМ – ориентация на применение пользователями, не владеющими языками программирования. Такой подход позволяет преодолевать языковой барьер, отделяющий человека от машины. С этой целью разрабатываются пакеты прикладных программ, рассчитанные на широкие круги специалистов. К подобным пакетам относится Mathcad.
|
|
Математический пакет Mathcad позволяет выполнять математические вычисления не только в числовой, но и в аналитической форме.
Пакет прикладных программ Mathcad предназначен для:
· проведения расчетов с действительными и комплексными числами;
· решения линейных и нелинейных уравнений и систем уравнений;
· упрощения, развертывания и группировки выражений;
· транспонирования, обращения матриц и нахождения определителя;
· построения двух - трехмерных графиков;
· оформления научно-технических текстов, содержащих сложные формулы;
· дифференцирования и интегрирования, аналитического и численного;
· проведения статистических расчетов и анализа данных.
Рис. 1. Рабочее окно программы Mathcad:
1- панель управления Арифметическая (Calculator); 2 - панель управления Графическая (Graph); 3 - панель управления Матрица (Matrix); 4 - панель управления Вычисление (Evaluati…); 5 - панель управления Исчисление (Calculus); 6 - панель управления Логическая (Boolean); 7 - панель управления Программирование (Programming); 8 - панель управления Греческий алфавит (Greek); 9 - панель управления Аналитические вычисления (Symbolic)
Документ Mathcad состоит из областей различного типа. Текстовые области создаются нажатием кнопки с буквой А на панели инструментов. Математические области возникают, если щелкнуть мышью на свободном месте рабочего окна (появляется красный крестик – визир, фиксирующий место ввода формулы). Документ Mathcad, на котором совмещены текст, графика и формулы, выглядит как страница научной статьи или учебника, при этом формулы являются «живыми»: стоит внести изменения в любую из них, как будут пересчитаны результаты, перерисованы графики и т.д.
Текст, формулы и графики можно свободно сочетать, передвигая их как выделенные штриховой рамкой объекты, и помещать их в произвольной точки экрана; при изменении хотя бы в одном из объектов последовательно пересчитываются все остальные данные.
Все процедуры: возведения в степень, извлечения корня, взятия модуля, интеграла, операции присваивания и многие другие вынесены в пиктограммы. С клавиатуры они набираются интуитивно понятным способом.
В пакете широко используются встроенные функции. К основным встроенным функциям относятся тригонометрические и обратные, гиперболические и обратные, экспоненциальные и логарифмические, статистические, Фурье, Бесселя, комплексных переменных и др. Такой широкий набор функций (более 200) позволяет решать задачи практически из любой области.
При решении задач физики обычно требуется проставления размерности и такую возможность предоставляет Mathcad. Всего в среде Mathcad пять единиц измерения: длина, масса, время, заряд и абсолютная температура. Если же при решении вы будете, к примеру, суммировать секунды с метрами, то Mathcad честно вам признается, что делать это нельзя и откажется работать.
Пакет Mathcad предоставляет широкие графические возможности. Кроме того, здесь можно использовать чертежи и рисунки, полученные в других графических системах.
Кроме работы с десятичными числами существуют возможность работы с восьми – и шестнадцатеричными числами. Так же есть набор процедур для возможности функционирования не только над числами, векторами или матрицами, но и над более сложными объектами, таких как деревья, списки или наборы. При вычислениях в символах, так называемая символьная математика (или аналитические преобразования), существуют три группы инструментов:
|
|
Команды символьной математики из меню (Symbolic);
Режим непрерывных символьных преобразований (Life Symbolics);
Оптимизация численных вкладок через символьные преобразования (Optimize).
Они позволяют вычислять неопределенные интегралы, интегрировать по переменой, дифференцировать по переменой, упрощать и разлагать по степеням и на множители выражения, находить полиномиальные коэффициенты, решать относительно переменой, разлагать в ряд, матричные преобразования, преобразования Фурье, Лапласа и Z, находить пределы и т.д. Вывод числового значения возможен с точностью до 4000 знаков.
Кроме работы с функциями языка С и С++, есть встроенный язык программирования. Пользователь может создавать свой собственные приложения к Mathcad`у: процедурные операции позволяют определять локальные переменные, циклы, ветвления, вложенные структуры данных, рекурсию и т.д. к тому же язык программирования внедрен в пользовательский интерфейс пакета: его операторы функционируют как полноправные объекты Mathcad`a, а при изменениях хотя бы одном из объектов приводят к автоматической модификации зависимых выражений.