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

Вариант 8

Задание 1. Найти x, при котором значение выражения 100+99+98+97+…+x становится меньше r. Значение r ввести с клавиатуры (r<100).

Задание 2. Вывести на экран в четыре столбца значения длин в метрах в диапазоне от 1 до 20 м с шагом 1 м, а также соответствующие им значения длин в дюймах (в одном дюйме 2,54 см), футах (в одном футе 0,3048 м) и ярдах (в одном ярде 0,9144 м).

Вариант 9

Задание 1. Найти значение выражения 1+4+9+16+…+x2 при вводе x с клавиатуры (x  целое число).

Задание 2. Вывести на экран в четыре столбца значения объема в литрах при убывании от 40 до 2 л с шагом 2 л, а также соответствующие им значения объема в галлонах (в одном галлоне 4,546 л), квартах (в одной кварте 1,138 л) и пинтах (в одной пинте 0,569 л).

Вариант 10

Задание 1. Найти сумму квадратных корней первых ста натуральных чисел.

Задание 2. Растворимость сернистого газа в воде описывается уравнением x=0,3p1,0363-t, где x – растворимость, г/л; p – парциальное давление сернистого газа, мм рт.ст.; t – температура, С. Вывести на экран в два столбца значения температуры в диапазоне от 0 до 50С с шагом 5С и соответствующие им значения растворимости сернистого газа при вводе p с клавиатуры.

Лабораторная работа №7 Программирование алгоритмов итерационной циклической структуры

Итерационные алгоритмы нашли широкое применение в инженерно-технических расчётах. В этих расчётах производятся многократные последовательные вычисления с целью постепенного приближения к искомому результату, причем для вычислений на каждом шаге используются результаты вычислений на предыдущем шаге. Завершение вычислений производится при достижении заданной точности вычислений. Поскольку количество итераций (повторений вычислений) заранее неизвестно, то при организации вычислений необходимо использовать циклы While или Repeat.

Итерационные алгоритмы применяются, например, в задачах вычисления суммы ряда или величины его членов, при численном решении нелинейных уравнений и т.п.

Одной из наиболее часто используемых областей использования итерационных алгоритмов является вычисление значений тригонометрических и трансцендентных функций, таких как синус, косинус, натуральный логарифм, экспонента и др. При этом, задаваясь требуемой точностью вычислений, можно заменить точное значение функции, например sin x, её приближённым значением, полученным в результате сохранения конечного числа членов разложения этой функции в ряд Тейлора:

Точность конечного результата зависит от количества сохранённых членов ряда. Если задана погрешность  (и, например, равна 10-4). Номер последнего слагаемого n определяется условием

Упражнение. Вычислить на ЭВМ значение суммы членов бесконечного ряда точностью до члена ряда, меньшего  = 10-4 для x, равного 0,1. Определить число членов ряда, вошедших в сумму.

Ключевым этапом решения задачи является вычисление каждого члена ряда . Его значение можно вычислять напрямую, однако, удобнее выразить n-й член через (n–1)-й, в данном случае получаем:

. Такие алгоритмы и формулы, в которых на каждом шаге используются значения, вычисленные на предыдущем шаге, называются рекуррентными.

Блок-схема алгоритма решения представлена на рис. 7.1. В блоке 2 организуется ввод исходных данных. В блоке 3 производится подготовка цикла, для этого задаётся значение первого члена ряда, начальное значение суммы, равное этому члену, и номер члена ряда, равный 1 (просуммирован один член). Блоки 4 и 5 выполняют расчет текущего номера члена ряда и значения этого члена с использованием рекуррентного соотношения. Блок 6 реализует функцию накопления суммы. Блок 7 выполняет проверку условия окончания цикла. В блоке 8 организуется вывод результатов расчётов.

Программа, реализованная в соответствии со схемой алгоритма, имеет вид:

Program Rows1;

Uses Crt;

Var

x,eps,a,s:real;

n:integer;

begin

ClrScr;

Write('Введите x ');

Readln(x);

Write('Введите eps ');

Readln(eps);

a:=x;

s:=0;

n:=1;

While Abs(a)>=eps do

begin

s:=s+a;

n:=n+1;

a:=-a*x*x/((2*n-2)*(2*n-1))

end;

Writeln('Сумма ряда = ',s:8:4);

Writeln('Число членов ряда = ', n:4)

End.

Рис.7.1. Блок-схема алгоритма