Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая на Pascal.http://vk.com/pomoshtulgu.doc
Скачиваний:
27
Добавлен:
10.05.2015
Размер:
473.6 Кб
Скачать

2.5 Разработка структуры алгоритма решения задачи

Ниже приведена схема алгоритма разложения функции f(x) (рис. 8 и рис. 9).

1

1

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

3

2

4

5

6

нет

a-число and a<>0

да

7

7

8

9

10

нет

b-число and b<>a and b<>0

да

Рисунок 8 - Процесс ввода границ интервала

18

11

12

13

14

15

15

16

нет

да

h-число and h<>0

да

19

да

17

24

нет

20

f=1/3; ak=1/3

ck=(x-2)/3; k=1

18

25

нет

21

e – число and e<>0

ak= ck*ak

да

f=f+ak;

k=k+1

22

23

да

да

нет

Рисунок 9 – Ввод размеров шага и точности, подсчет и вывод таблицы разложения функции

19

2.6 Текст программы

Далее текст программы RiseAgainst на языке программирования IDE Borland Turbo Pascal 7.0, выполняющей вычисление среднего значения элементов, находящихся слева и справа от двух диагоналей.

Program RiseAgainst;

uses crt;

var i,k,proverka: integer;

a,b,h,x,f,ak,ck,e: real;

str1,str2,str3,str4: string;

procprov1:boolean;

begin

clrscr;

procprov1:=false;

repeat

Writeln ('Введите нижнюю границу интервала вычислений a= ');

Readln(str1);

val(str1,a,proverka);

if (proverka<>0) then

writeln('Введено неверное значение a. a - число.');

if a=0 then

Writeln ('Введено неверное значение. a – не равно нулю');

until ((proverka=0)and(a<>0));

repeat

write ('Введите верхнюю границу интервала вычислений b= ');

Readln (str2);

val(str2,b,proverka);

if (proverka<>0) then

writeln('Введено неверное значение b. b - число');

if(b<a) then

writeln('Введено неверное значение. b больше a');

if(b=0) then

writeln('Введено неверное значение. b не равен нулю ');

until ((proverka=0)and(a<b)and(b<>0));

repeat

Write ('Введите величину шага изменения аргумента h= ');

Readln (str3);

val(str3,h,proverka);

if (proverka<>0) then

writeln('Введено неверное значение h. h - число.');

if h=0 then

Writeln ('Введено неверное значение. h - не равен нулю')

until ((proverka=0)and(h<>0));

repeat

Write ('Введите точность вычислений e: ');

Readln (str4);

val(str4,e,proverka);

if (proverka<>0) then

writeln('Введено неверное значение e. e - число.');

if h=0 then

Writeln ('Введено неверное значение. e – не равен нулю');

until((proverka=0)and(e<>0));

begin

Writeln;

writeln('| № | x | f(x) | №чл.р. |');

x:=a;i:=1;

while x<=b do

begin

f:=1/3;

ak:=1/3;

ck:=(x-2)/3;

k:=0;

repeat

ak:=ak*ck;

20

f:=f+ak;

k:=k+1;

until ak<e ;

writeln('|',i:5,' | ',x:8:4,' | ',f:10:7,' | ',k:5,' |');

i:=i+1; x:=x+h;

end;

Writeln;

Readln;

end;

end.