Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
L20130926.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
265 Кб
Скачать
☆

1. Вычислить с абсолютной погрешностью не хуже .

В соответствии с уже применённой схемой, ,

где – частичная сумма,

– остаток суммы ряда.

содержит чередующиеся (при вещественных ) по знаку слагаемые. Если модули этих слагаемых убывают при , то модуль остатка меньше модуля первого из слагаемых остатка, то есть (Теорема Лейбница). Если при таком убывании будет найдено число , при котором , то для нахождения с требуемой погрешностью достаточно найти частичную сумму .

S0 = 1

A0 = 1

S1 = S0 + A1

A1 = –A0*B1

B1 = (x/2)2/12

S2 = S1 + A2

A2 = –A1*B2

B2 = (x/2)2/22

. . .

. . .

. . .

Si = Si–1 + Ai

Ai = –Ai–1* Bi

Bi = (x/2)2/i2

static double F(double x, double Eps)

{

int i; double x2, S, A, B;

x2 = x * x;

if (Eps <= 0 || Eps >= 1) return;

S = A = B = 1;

x2 = x * x / 4;

i = 0;

do

{

i++;

B = x2 / ((double)i * (double)i);

A *= –B;

S += A;

}

while (Math.Abs(A) > Eps || B >= 1)

return S;

}

Замечание по теме «циклы»

Оператор перехода break применяется в теле цикла для досрочного прекращения цикла. Оператор перехода continue применяется для досрочного перехода на очередную проверку условия продолжения цикла. Циклы, показанные в первом и втором столбцах таблицы, эквивалентны по фактическому результату:

for (…) {

…

if (…) continue;

…

if (…) break;

}

for (…) {

…

if (…) goto M1;

…

if (…) goto M2;

M1: ;

}

M2: ;

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

Тип «Перечисляемый»

<Объявление типа «перечисляемый»> ::=

enum <Имя типа>

{

<Имя значения 1> [= <Значение 1>] ,

<Имя значения 2> [= <Значение 2>] ,

…

<Имя значения n> [= <Значение n>]

}

Значение, которое дозволено присваивать переменой типа «перечисляемый», либо с которым дозволяется сравнивать её значение, записывается в виде <Имя типа>.<Имя значения i>.

В памяти переменная обсуждаемого типа хранится, как переменная типа int. По умолчанию <Имя значения i> соответствует значению . Если имени принудительно ставится в соответствие <Значение i>, то оно должно входить в диапазон, предназначенный для типа int. Если двум разным именам значений будет поставлено в соответствие одно и то же фактическое значение, ответственность за последствия принудительного назначения ложится на программиста.

Тело конструкции enum внешне похоже на блок, но блоком не является.

Пример объявления типа «перечисляемый»:

enum WeekDays

{

Monday = 1; // По умолчанию было бы: 0, принудительно 1

Tuesday, // По умолчанию было бы: 1, но будет 2 ввиду «Monday = 1»

Wednesday, // 3

Thursday, // 4

Friday, // 5

Saturday = 2, // По умолчанию было бы: 5, принудительно 2

Sunday // По умолчанию было бы: 6, но будет 3 ввиду «Saturday = 2»

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]