Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Програм готовый вариант БОГОДЯЖ . кр.docx
Скачиваний:
1
Добавлен:
16.08.2019
Размер:
196.89 Кб
Скачать

3.2 Задание 2

Вычислить значения функции:

где a=2.5 , x = [0 ; 4]

Обратим внимание, что функция с не определена в диапазоне a >= x >= b {(x <= a) and (x >= b)}. В этой ситуации программа должна обеспечить вывод соответствующего сообщения, например "функция не определена". Таким образом, фактически имеем три диапазона изменения x:

Функция не

определена

a cos x x2 sin x

0 2 3 4

Примем диапазон изменения x от 0 до 4, что позволит протестировать программу по всем трем условиям. Поскольку в задаче три условия, число блоков «решение» в алгоритме должно быть два (на единицу меньше). Блок-схема одного из вариантов алгоритма решения задачи и соответствующая программа будут иметь вид:

Рис. 2. Блок-схема алгоритма задачи 2

program Zadacha2;

{$mode objfpc}{$H+}

uses

{$IFDEF UNIX}{$IFDEF UseCThreads}

cthreads,

{$ENDIF}{$ENDIF}

Classes

{ you can add units after this };

label out;

var x,c:real;const a=2.5;

begin

writeln('vvedite x');

readln(x);

if(x<2)and(x>=0)then c:=cos(x)

else

if(x>=3)and(x<=4)then c:=x*x *sin(x)

else

begin

writeln('function NO');

goto out;

end;

writeln('c=',c:8:3);

out:readln

end.

Результаты работы программы:

Vvedite x Vvedite x Vvedite x

1 2.5 3.5

C = 0.540 function NO C = - 4.297

3.3 Задание 3

Используя оператор fotodo , вычислить на ПК значения функции

где a = 2.8; b = 0.7; x = 5.1

Параметром цикла является аргумент n.

При вычислении конечных сумм и произведений искомый результат формируется постепенно. При вычислении суммы сначала вычисляется S1 = S0 + S(n1), во втором повторе цикла эта сумма увеличивается на второе слагаемое и получается S2 = S1 + S(n2), в третьем повторе - на третье слагаемое S3 = S2 + S(n3) и т.д. Здесь S0 - начальное значение суммы и т.к. S1 должна быть равна S(n1) , то S0 = 0.

При вычислении произведения сначала вычисляется Р10P(n1), затем Р2 = Р1P(n2) и т.д. Здесь Р0 - начальное значение произведения и т.к. Р1 должно быть равно P(n1) , то Р0 = 1.

Поскольку cos na2b2 можно вынести за знак суммы, в тело цикла это произведение включать не следует. Тем самым сокращается время исполнения программы.

Блок-схема алгоритма решения задачи и соответствующая программа будут иметь вид (рис. 3):

Ввод b

Ввод a

Рис. 3. Блок-схема алгоритма задачи 3

program project1;

{$mode objfpc}{$H+}

uses

{$IFDEF UNIX}{$IFDEF UseCThreads}

cthreads,

{$ENDIF}{$ENDIF}

Classes

{ you can add units after this };

var a,b,x,v:real; n:byte;

begin

writeln('vvedite x');

writeln('vvedite a');

writeln('vvedite b');

readln(x);

readln(a);

readln(b);

v:=0;

for n:=1 to 12 do v:=v+1/n;

v:=cos (n)*a*a*b*b;

writeln('v=',v:6:2);

readln

end.