ПОИТ Лабораторная работа по основам алгоритмизации.№1-21
.docxБЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра программного обеспечения информационных технологий
Факультет ЗВиДО
Специальность ПОИТ
Контрольная работа № 1
по дисциплине «Основы алгоритмизации и программирования»
Вариант № 21
Минск 2009
Лабораторная №1 Задание №21
1) Задание
Для аргумента , изменяющегося от 0 с шагом 0.04 вычислить 20 значений функций:
;
.
Функцию f2(x) вычислить для ряда точностей . Для указанных точностей определить количество N элементов ряда, суммируемых для достижения заданной точности. Результаты расчетов свести в таблицу.
2) Схема алгоритма.
На рис. 1 представлена схема алгоритма по ГОСТ 19. 701-90.
3) Текст программы.
----------------------------------------------------------------------------------------------------------
program labrab1;
{901022-20 ПОИТ 1-й курс Пархейчук Э.А.
Вариант 21. Для аргумента , изменяющегося от 0 с шагом 0.04 вычислить
20 значений функций f1(x) и f2(x)}
uses CRT; {подключаем модуль CRT для использования процедуры ClrScr}
const
eps1 = 0.01; {Точность 10е-2}
eps2 = 0.001; {Точность 10е-3}
eps3 = 0.0001; {Точность 10е-4}
step_x = 0.04; {задаем шаг}
N = 19; {Количество значений}
var
f1, f2_1, f2_2, f2_3,x,SUM,stepen:real;
{f1 - запоминает знечения функции f1
f2_1 - запоминает значения функции f2 для точности 10е-2
f2_2 - запоминает значения функции f2 для точности 10е-3
f2_3 - запоминает значения функции f2 для точности 10е-4
x - ргумент функций}
k1,k2,k3,i:integer;
{k1 - запоминает на каком шаге была достигнута точность 10е-2
k2 - запоминает на каком шаге была достигнута точность 10е-3
k3 - запоминает на каком шаге была достигнута точность 10е-4}
Begin
ClrScr; {Очистка экрана пользователя}
{Вывод на экран шапки таблицы}
writeln('|-------------------------------------------------------------|');
writeln('| | | e=0.01 | e=0.001 | e=0.0001 |');
writeln('| x | f1(x) |-------------|-------------|-------------|');
writeln('| | | f2(x) | K | f2(x) | K | f2(x) | K |');
writeln('|-------------------------------------------------------------|');
writeln('|',x:7:2,'|', ' f1(x) и f2(x) для х=0 не существует |');
x:=0.04; {задаем начальное значение Х в связи с тем, что в
точке х=0 функции f1 и f2 не существуют}
{вычисляем оставшиеся 19 значения для f1(x) и f2(x)}
for i:=1 to N do
begin
{вычисляем F1(x)}
f1:=1/(4*x)*((1+x)/sqrt(x)*ln((1+sqrt(x))/(1-sqrt(x)))+2*ln(1-x));
stepen:=1; {Задаем начальное значение x^k-1}
k1:=0; {начальное значение k для f2_1}
SUM:=0;
{Вычисляем значение функции f2 для точности 10е-2}
f2_1:=1/(2*x);
repeat
inc(k1);
SUM:=stepen/(2*k1*(2*k1-1)*(2*k1+1));
f2_1:=f2_1+SUM;
stepen:=stepen*x;
until abs(SUM)<=eps1;
f2_2:=f2_1;
k2:=k1; {начальное значение k для f2_2}
{Вычисляем значение функции f2 для точности 10е-3}
repeat
inc(k2);
SUM:=stepen/(2*k2*(2*k2-1)*(2*k2+1));
f2_2:=f2_2+SUM;
stepen:=stepen*x;
until abs(SUM)<=eps2;
f2_3:=f2_2;
k3:=k2; {начальное значение k для f2_3}
{Вычисляем значение функции f2 для точности 10е-4}
repeat
inc(k3);
SUM:=stepen/(2*k3*(2*k3-1)*(2*k3+1));
f2_3:=f2_3+SUM;
stepen:=stepen*x;
until abs(SUM)<=eps3;
{Выводим на экран построчно таблицу аргументов и функций f1 и f2 для заданных точностей}
writeln('|',x:7:2,'|',f1:10:4,'|',f2_1:10:2,'|', k1:3,'|',f2_2:9:3,'|',
k2:3,'|',f2_3:9:4,'|',k3:3,'|');
x:=x+step_x; {находим следующее значение x}
end;
writeln('|______________________________________________________________');
end.
-----------------------------------------------------------------------------------------------------------------
4) Результаты работы программы:
|---------------------------------------------------------------|
| | | e=0.01 | e=0.001 | e=0.0001 |
| x | f1(x) |--------------|---------------|---------------|
| | | f2(x) | K | f2(x) | K | f2(x) | K |
|---------------------------------------------------------------|
| 0.00| f1(x) и f2(x) для х=0 не существует |
| 0.04| 12.6673| 12.67| 2| 12.667| 3| 12.6673| 4|
| 0.08| 6.4180| 6.42| 2| 6.418| 3| 6.4180| 4|
| 0.12| 4.3354| 4.34| 2| 4.335| 3| 4.3354| 4|
| 0.16| 3.2945| 3.29| 2| 3.294| 3| 3.2945| 4|
| 0.20| 2.6702| 2.67| 2| 2.670| 3| 2.6702| 4|
| 0.24| 2.2543| 2.25| 2| 2.254| 3| 2.2543| 4|
| 0.28| 1.9575| 1.96| 2| 1.957| 3| 1.9575| 4|
| 0.32| 1.7351| 1.73| 2| 1.735| 3| 1.7351| 4|
| 0.36| 1.5623| 1.56| 2| 1.562| 3| 1.5623| 4|
| 0.40| 1.4243| 1.42| 2| 1.424| 3| 1.4242| 5|
| 0.44| 1.3115| 1.31| 2| 1.311| 3| 1.3115| 5|
| 0.48| 1.2177| 1.22| 2| 1.218| 4| 1.2177| 5|
| 0.52| 1.1385| 1.14| 2| 1.138| 4| 1.1385| 5|
| 0.56| 1.0708| 1.07| 2| 1.071| 4| 1.0708| 5|
| 0.60| 1.0123| 1.01| 2| 1.012| 4| 1.0123| 6|
| 0.64| 0.9613| 0.96| 3| 0.961| 4| 0.9613| 6|
| 0.68| 0.9165| 0.92| 3| 0.916| 4| 0.9164| 6|
| 0.72| 0.8768| 0.88| 3| 0.876| 4| 0.8768| 7|
| 0.76| 0.8415| 0.84| 3| 0.841| 4| 0.8414| 7|
|_________________________________________