пʼятниця, 14 листопада 2014 р.

Алгоритми табуляції функції



Задача  Tabulyazia1.  Алгоритмом,  написаному мовою Pascаl, протабулювати  значення функції  f(х)=2x+1 на числовому проміжку (ab) з кроком h.
Технічні умови.  З клавіатури ввести  ліву межу табуляції , як дійсне число а, праву межу  табуляції, як дійсне число b, крок табуляції, як дійсне число h. Вивести  у  усі дійсні значення функції f(х)  на числовому проміжку (ab) з кроком h,  з вказівкою у порядку зростання дійсного значення аргументу  х.
Приклад. 
А)Введіть ліву межу табуляції a=3
Введіть праву межу табуляції b=8
Введіть крок табуляції h=1
Результати  табуляції:
x=3.000;  f(3.000)=  7.000;
x=4.000;  f(4.000)=  9.000;
x=5.000;  f(5.000)= 11.000;
x=6.000;  f(6.000)= 13.000;
x=7.000;  f(7.000)= 15.000;
x=8.000;  f(8.000)= 17.000;

Б)Введіть ліву межу табуляції a=-4.8
Введіть праву межу табуляції b=2.8
Введіть крок табуляції h=1.5
Результати  табуляції:
 x=-4.800;  f( -4.800)=  -8.600;
 x=-3.300;  f( -3.300)=  -5.600;
 x=-1.800;  f( -1.800)=  -2.600;
 x=-0.300;  f( -0.300)=   0.400;
 x=1.200;  f( 1.200)=   3.400;
 x=2.700;  f( 2.700)=   6.400;

Розв’язання.

program Tabulyazia1;
var x,a,b,h,f: real;
begin
write ('  Введіть ліву межу табуляції a='); read (a);
write (' Введіть праву межу табуляції b=');read (b);
writeln(' Введіть крок табуляції h=');readln (h);
writeln(' Результати  табуляції:');
x:=a;
while x<=b do
begin
f:=2*x+1;
writeln (' x= ',x:5:3,';  f( ',x:5:3,')= ',f :7:3,';');
x:=x+h;
 end;
end.

Задача 2A.  Value. Обчислити значення  функції  для заданого значення х:  
                  у=5х2 – 7, якщо х<=2;      
                  у = 1/ (2х – 4), якщо  2< х<5;      
                  у=(х – 5)0,5, якщо х>=5.
Результат вивести з 3-ма знаками після коми.

Технічні умови. Із клавіатури вводиться одне дійсне число х, а виводиться дійсне значення у (із трьома знаками після коми).

Приклад.  Введення: 0   Виведення:  -7.000
Розв'язання.
program  value;
var
f,x: real;
k, p,t: boolean;
begin
   read(x);
   t:=((x>2)and(x<5));
   p:=(x<=2);
   k:=(x>=5);
if p=true then  f:=5*x*x -7;
if t=true then  f:=1/(2*x -4);
if k=true then  f:=sqrt(x -5);
   writeln(f:10:3);
end.
Задача 2Б.  Value. .  Алгоритмом,  написаному мовою  Pascаl, протабулювати  значення  функції, що задана на різних числових проміжках різними формулами  на числовому проміжку (ab) з кроком h.
                  у=5х2 – 7,   якщо х<=2;      
                  у = 1/ (2х – 4),   якщо  2< х<5;      
                  у=(х – 5)0,5   якщо х>=5.
Результат вивести з 3-ма знаками після коми.
Технічні умови. З клавіатури ввести  ліву межу табуляції , як дійсне число а, праву межу  табуляції, як дійсне число b, крок табуляції, як дійсне число h. Вивести  у  усі дійсні значення функції f(х) 1 на числовому проміжку (ab) з крокомh,  з вказівкою у порядку зростання дійсного значення аргументу  х.
Приклад.  A)Введіть ліву межу табуляції a=1
Введіть праву межу табуляції b=8
Введіть крок табуляції h=1
 x= 1.000;  f( 1.000)=  -2.000;
 x= 2.000;  f( 2.000)=  13.000;
 x= 3.000;  f( 3.000)=  38.000;
 x= 4.000;  f( 4.000)=  73.000;
 x= 5.000;  f( 5.000)= 118.000;
 x= 6.000;  f( 6.000)= 173.000;
 x= 7.000;  f( 7.000)= 238.000;
 x= 8.000;  f( 8.000)= 313.000;
Б)Введіть ліву межу табуляції a = -10
Введіть праву межу табуляції b = 10
Введіть крок табуляції h = 2
Результати  табуляції:
 x= -10.000;  f( -10.000)= 493.000;
 x= -8.000;  f( -8.000)= 313.000;
 x= -6.000;  f( -6.000)= 173.000;
 x= -4.000;  f( -4.000)=  73.000;
 x= -2.000;  f( -2.000)=  13.000;
 x= 0.000;  f( 0.000)=  -7.000;
 x= 2.000;  f( 2.000)=  13.000;
 x= 4.000;  f( 4.000)=  73.000;
 x= 6.000;  f( 6.000)= 173.000;
 x= 8.000;  f( 8.000)= 313.000;
 x= 10.000;  f( 10.000)= 493.000;
Розв'язання.
program  value;
var x,a,b,h,f: real;    k, p, t: boolean;
   begin   write ('  Введіть ліву межу табуляції a='); read (a);
write (‘ Введіть праву межу табуляції b=');read (b);
writeln(' Введіть крок табуляції h=');read(h);
writeln(' Результати  табуляції:');
  t:=((x>2)and(x<5));       p:=(x<=2);       k:=(x>=5);   x:=a;
while x<=b do  begin 
if p=true then  f:=5*x*x -7;
if t=true then  f:=1/(2*x -4);
if k=true then  f:=sqrt(x -5);
writeln (' x= ',x:5:3,';  f( ',x:5:3,')= ',f :7:3,';');
x:=x+h;   end;  end; end.


Задача 3. Протабулювати функцію дійсної змінної  функцію y=1/p e-x  в інтервалі значень [ab] з кроком Step.
Технічні умови. З клавіатури ввести  ліву межу табуляції , як дійсне число а, праву межу  табуляції, як дійсне число b, крок табуляції, як дійсне число h. Вивести  у  усі дійсні значення функції f(х) 1 на числовому проміжку (ab) з крокомh,  з вказівкою у порядку зростання дійсного значення аргументу  х.
Приклад.  A)Введіть ліву межу табуляції a=-3
Введіть праву межу табуляції b=3
Введіть крок табуляції h=0.5
Результати  табуляції:
 x = -3   y = 6.39666780993238
 x = -2.5   y = 3.87977514672085
 x = -2   y = 2.35320257927728
 x = -1.5   y = 1.42728951284652
 x = -1   y = 0.865694849827721
 x = -0.5   y = 0.525070468375837
 x = 0   y = 0.318471337579618
 x = 0.5   y = 0.19316263048173
 x = 1   y = 0.117159057697912
 x = 1.5   y = 0.0710605605568248
 x = 2   y = 0.0431004086740805
 x = 2.5   y = 0.0261417193069741
 x = 3   y = 0.0158557542572815
Розв'язання.
Використаємо цикл з лічильником. Нехай  i - параметр циклу. Часто крок зміни аргументу, яка управляє циклом, змінюється від 1 або -1.
Програма табулює  функцію y=1/p e-x в інтервалі значень [ab] з кроком Step. Зверніть увагу на те, що перед входом у цикл обчислюється N - верхня межа параметра циклу, а в тілі циклу обчислюється наступне 

program Tabulation;
   const pi=3.141592;
   var      a,b,step, x, y : real;      i, n: integer;
 begin  
write ('  Введіть ліву межу табуляції a=');   read (a);
write (‘ Введіть праву межу табуляції b=');  read (b);
writeln(' Введіть крок табуляції h=');   read(h);
writeln(' Результати  табуляції:');
n:=round((b-a)/step)+1;
x:=a;
  for i:=1 to n  do
begin   
 y:=(1/pi)*exp(-x);
writeln(' x = ', x, '   y = ', y);
 x:=x+step;
end;
end.

Завдання для самостійної роботи.
1. Знайти нульове значення функції, протабулювавши  функцію 
y=1 - 4х  в інтервалі значень [-155] з кроком h=0,1. 

2. Знайти нульове значення функції,  протабулювавши   функцію   
 в інтервалі значень [-88] з кроком h=0.5. 
                   у=2х3 – 6,   якщо х<=2;      
                  у = 1/ (-3х – 5),   якщо  2< х<6;      
                  у=(х – 6)0,5   якщо х>=6.

Немає коментарів:

Дописати коментар