Здавалка
Главная | Обратная связь

Табулирование функций



 

В задачах табулирования функций приходится делать многократные вычисления по одним и тем же математическим зависимостям при различных значениях входящих в них величин (аргументов). Использование циклов позволяет при этом существенно сократить длину программы. В отличие от итерационного цикла в задачах табулирования функций применяется цикл с заданным количеством повторений, которое можно определить по формуле:

n=[(Xk-Xн)/h]+1,

где Хк и Хн - начальное и конечное значение аргумента; h - шаг изменения аргумента.

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

 

Пример выполнения задания лабораторной работы

 

Пример 7. Найти сумму ряда

 

y = , при 0 £ x £ p , D x = p /20.

Порядок работы:

Шаг 1. Установим начальное значение суммы s = 0.

Шаг 2. Определим начальное значение параметра цикла x = 0.

Шаг 3. Пока x £ p , выполняем шаги 3-7, иначе - идем на шаг 8.

Шаг 4. Вычисляем y = sinx / (x2+1).

Шаг 5. Вычисляем сумму s = s + y.

Шаг 6. Увеличиваем значения x на шаг: x = x + p /20.

Шаг 7. Возвращаемся на шаг 3.

Шаг 8. Останов.

 

Пример 8. Вычислить y = sin(3x)/x при 1£ x£ 100 с шагом 0,5.

 

Порядок работы:

Шаг 1. Задаем начальное значение x=1.

Шаг 2. Пока x £ 100, выполняем шаги 3-6, иначе - шаг 7.

Шаг 3. Вычисляем y = sin(3x)/x..

Шаг 4. Выводим x, y.

Шаг 5. Увеличиваем значения x на шаг: x = x + 0,5.

Шаг 6. Возвращаемся на шаг 2.

Шаг 7. Останов.

 

 
 

Блок-схема

 

 

Пример 9. Вычислить таблицу значений функции

 

 

где а=3|sin2x|, x изменяется в интервале от -1,8 до 4,6 с шагом 0,4.

Программа вычисления таблицы значений функции z имеет вид:

program pr9;

uses Crt;

const XN = -1.8; XK = 4.6; HX = 0.4;

var x,a,z,y:real; p:char;

begin

clrscr;

x:=XN;

writeln('======================');

writeln('I X I A I Z I');

writeln('-------------------------------------------');

while x <= XK do

begin

a:=3*abs(sin(2*x));

if x<a then begin

y:=sqrt(abs(a*x))+ln(sqr(x));

z:=y/exp(-a*x) end

else

begin

y:=1+exp(ln(x*x*x*pi*a)/5);

z:=a*sqr(sin(x))/y end;

writeln(‘I ‘,x:5:2,’I’,a:7:3,’I’,z:7:3,' I');

x:=x+HX;

end;

writeln('================');

p:=readkey

end.

 

В этой программе цикл организован оператором while. Аналогично можно использовать оператор repeat.

 

Оператор цикла for

«Цикл - до» имеет вид

 

for I:=N1 to N2 do P;

Здесь I – параметр цикла; N1,N2 - начальное и конечное значения параметру цикла; Р - оператор (простой или составной). I,N1,N2 должны быть одного скалярного типа, но не real. Если это целые переменные, то шаг равняется единице.

Например: for M:=5 to 20 do Y:=Y+M;

Цикл по убывающему значению параметра I от N2 к N1 имеет вид

 

for I:=N2 downto N1 do P;

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.