Найти в Дзене
Pascal для "чайников"

Табулирование функции и поиск её экстремумов в заданном дипазоне на Pascal

Самый эффективный способ изучения любого языка программирования - практика. Поэтому начнем изучение языка Pascal с простого примера: табулирования функции, а также поиска экстремумов функции в заданном диапазоне.

Табулирование функции представляет собой вычисление значения функции для каждого соответствующего аргумента, заданного с определенным шагом, в четко установленных границах. Проще говоря в заданном диапазоне от крайнего левого значения шагаем до крайнего правого значения и в каждой точке шага вычисляем значение функции.

Экстре́мум (лат. extremum — крайний) в математике — максимальное или минимальное значение функции на заданном множестве.

Для примера возьмем функцию: y=2x+3 и диапазон от -3 до 3 включительно. Шаг возьмем равным 1.

Составим таблицу табулирования функции:

Как видно из таблицы экстремумы функции в заданном диапазоне: максимум = 9, минимум = -3

Теперь составим программу. Для начала дадим нашей программе имя.

Program tabulirovanie;

Далее объявляем переменные, которые будем использовать в программе. Для этого используется служебное слово VAR после которого перечисляются имена необходимых нам переменных через запятую. Потом ставим двоеточие и пишем какого типа будут эти переменные.

integer - если нам нужны целочисленные значения и real -если мы будем использовать вещественные числа. Для универсальности математических программ используют, как правило, тип real, поскольку в зависимости от вида функции значения редко бывают целочисленными.

var x, x1, x2, y, s, min, max : real;

где x1 и x2 - границы интервала, x - текущая координата по оси x, y - значение функции в точке x, max и min - экстремумы функции и s - шаг табулирования.

Для упрощения алгоритма вычисление значения функции y в точке x вынесем в отдельную подпрограмму. Для этого используем служебное слово function далее следует значение fun, которое будет возвращать результат расчета, произведенного в подпрограмме. В скобках указываем имя аргумента, которое передаем для расчета в подпрограмму. Все значения будут типа real, т.е. вещественные числа.

function fun(a: real): real;

begin

fun := 2 * a + 3;

end;

Теперь приступим к самой программе. Для обозначения определенного блока команд используется пара служебных слов begin.....end, которые всегда находятся в паре. У каждого begin должен быть в программе end.

begin

write('Введите начало диапазона : '); Readln(x1);

write('Введите конец диапазона : '); Readln(x2);

write('Введите шаг табулирования : '); Readln(s);

Для вывода текста на экран используется команда write / writeln. Разница между этими командами состоит в том, что после команды write курсор остается в конце строки, а после команды writeln курсор переводится в начало следующей строки.

Команда Read / Readln предназначена для ввода данных с клавиатуры в соответствующую переменную, указанную в скобках.

Печатаем шапку нашей таблицы табулирования.

writeln(' Х Y');

Теперь нашей "рабочей" переменной x присваиваем значение начала диапазона, т.е. x1. Значениям экстремумов присваиваем значение функции в начальной точке.

x := x1; min := fun(x1); max := min;

Для табулирования нам надо будет повторять несколько одинаковых команд до тех пор, пока наше значение x не достигнет конца диапазона. Поэтому нам нужен цикл с условием: делать до тех пор пока x меньше либо равен правой границе диапазона, т.е. x2. Для этого используем цикл while <условие> do

while x <= x2 do

begin

Вычисляем значение функции в точке x.

y := fun(x);

Сравниваем полученное значение с переменными max и min. Если значение функции y больше значения переменной max, то заменяем значение переменной max на y. Аналогично проверяем минимум.

if y > max then max := y;

if y < min then min := y;

Выводим значения х и у на экран.

writeln(x:10:3, y:10:3);

Делаем шаг вправо, увеличиваем значение x на величину нашего шага s.

x := x + s;

Команды внутри цикла закончились, поэтому не забываем написать end.

end;

По окончании цикла выводим на экран значения экстремумов функции.

writeln(' Максимум функции: ', max:10:4);

writeln(' Минимум функции: ', min:10:4);

end.

Вот так будет выглядеть программа табулирования и результаты ее работы.

-2

Наука
7 млн интересуются