Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию.docx
Скачиваний:
0
Добавлен:
26.01.2020
Размер:
682.73 Кб
Скачать

Экзаменационный вопрос № 24. Программа вычисления суммы бесконечного ряда

Задание. Составить программу для вычисления суммы членов ряда. Вычисление прекращается, если найден член ряда, по абсолютной величине не превосходящий Epsilon. Первоначально N = 1. Использовать рекуррентные формулы для перехода от предыдущего члена ряда к последующему.

Исходные данные.

Общий член ряда

X(–1)N,

N!

Epsilon = 10–3, X = 2,1; N = 1.

Решение.

При N = 1 → T = X(–1)/1! = –X; T= –X; проводим следующие преобразования:

, т. е. в программе используем выражение T = T(–1)/N.

Код программы.

PROGRAM primer6;

CONST

Epsilon = 0.001;

X = 2.1;

VAR

Summ,T : REAL;

N : INTEGER;

BEGIN

Summ:=0; {первоначальное значение суммы}

N:=1; {увеличение номера члена ряда}

T:=-X; {первоначальное значение элемента}

REPEAT

N:=N+1; {вычисление элемента}

WRITELN('Итерация: ',N, ', Член ряда: ',T:7:4);

Summ:=Summ+T; {накопление суммы}

T:=T*(–1)/N; {вычисление элемента}

UNTIL ABS(T)<Epsilon; {условие выхода}

WRITELN('Число итераций: ',N);

WRITELN('Сумма ряда: ',Summ:7:4);

END.

Экзаменационный вопрос № 25. Программирование циклических вычислительных структур

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

FOR <парам.цикл.>:=<нач.знач.> TO <кон.знач.> DO <оператор>;

Здесь <парам.цикл.> — целочисленная переменная, определяющая построение циклической структуры; <нач.знач.>, <кон.знач> — соответственно начальное и конечное значения параметра цикла; <оператор> — оператор (простой или составной) языка Turbo - Pascal.

П р и м е р

J:=1;

FOR I:=3 TO 7 DO j:=j+I*3;

Оператор цикла FOR выполняет несколько действий:

1) присваивает параметру цикла начальное значение;

2) проверяет, не превосходит ли текущее значение параметра цикла конечное. Если не превосходит, то выполняется <оператор>, после чего значение <парам.цикл.> увеличивается на единицу и действия повторяются, в противном случае выполнение оператора FOR заканчивается.

Еще один вид оператора FOR:

FOR <парам.цикл.>:=<нач.знач.> DOWNTO <кон.знач.> DO <оператор>;

Он отличается от предыдущего только тем, что шаг изменения параметра цикла не 1, а –1.

Задание. Составить программу для вычисления значений функции F(X) на отрезке [A, B] в точках

Xi = A + iH, где H = (B – A)/M

(M — заданное целое число).

Исходные данные.

Функция F(X) = сos(2X), A = 0, B = 5, M = 15.

Код программы.

PROGRAM primer1;

USES CRT;

CONST

A = 0;

B = 5;

M = 15;

VAR

F,X,H : REAL;

I : INTEGER;

BEGIN

ClrScr;

H:=(B–A)/M; {определение шага}

FOR I:=0 TO M DO

BEGIN

X:=A+I*H;

F:=сos(2*X); {вычисление функции F}

WRITELN('X=',X:6:3, ', F(X)=',F:6:3); {вывод результата}

END;

END.