Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Пример 10. Переписать положительные элементы массива А, состоящего из n элементов, в массив В (n£20).
Программа Схема алгоритма
Program Prim10;
var
a,b: array[1..20] of real;
i,n,k: integer;
begin
writeln('Введите n');
readln(n);
writeln('Введите массив');
for i:=1 to n do
read(a[i]);
k:=0;
for i:=1 to n do
if a[i]>0 then begin
k:=k+1;
b[k]:=a[i];
end;
for i:=1 to k do
writeln('b[', i, ']=', b[i]:5:2);
end.
Исходные данные: Результат:
n = 10 b[1]= 4.00
Массив A b[2]= 5.00
4 5 -3 1 7 -2 12 -8 -14 26 b[3]= 1.00
b[4]= 7.00
b[5]=12.00
b[6]=26.00
Пример 11. Найти первый отрицательный элемент массива B, содержащего n элементов (n£20).
Программа Схема алгоритма
![]() |
Program Prim11;
label 1;
var
b:array[1..20] of real;
i,n:integer;
begin
writeln('Введите n');
readln(n);
writeln('Введите массив');
for i:=1 to n do read(b[i]);
for i:=1 to n do
if b[i]<0 then begin
writeln('b[',i,']=',b[i]:6:2);
goto 1;
end;
writeln('Отрицательных элементов нет');
1: end.
Исходные данные: Результат:
I вариант n = 7 I вариант b[3]= -5.00
Массив B
3 8 -5 -2 6 -9 12
II вариант n = 6 II вариант
Массив B Отрицательных элементов нет
4 7 2 9 4 1
Циклы с неизвестным числом повторений
В циклах с неизвестным числом повторений используются, как правило, операторы repeat - until и while-do.
Табулирование функции
Пример 12. Табулировать функцию y=2x-sin(x) на отрезке [ xmin,xmax ] с шагом Dx, т.е. вычислить таблицу значений функции y(x), если x задан на отрезке [ xmin,xmax ].
В данном примере для организации циклического процесса будем использовать оператор repeat - until.
Общий вид оператора repeat - until:
Repeat
оператор 1;
оператор 2;
…
оператор n;
until логическое_выражение;
Выполнение оператора repeat - until:
1) выполняются операторы цикла;
2) если значение логического_выражения равно true (истина), происходит выход из цикла, в противном случае процесс повторяется, начиная с пункта 1).
Программа Схема алгоритма
Program Prim12;
var
x, y, xmin, xmax, dx: real;
begin
writeln('Введите xmin,xmax,dx');
readln(xmin,xmax,dx);
x:=xmin;
repeat
y:=2*x-sin(x);
writeln('x=', x:7:2, ' y=', y:7:2);
x:=x+dx;
until x>xmax;
end.
Исходные данные: Результат:
xmin = -2; xmax = 1; dx = 0.5 x= -2.00 y= -3.09
x= -1.50 y= -2.00
x= -1.00 y= -1.16
x= -0.50 y= -0.52
x= 0.00 y= 0.00
x= 0.50 y= 0.52
x= 1.00 y= 1.16
Итерационные вычислительные процессы
Пример 13. Найти методом итераций корень уравнения
на интервале [ a,b] с заданной точностью e и определить количество итераций.
Указания. 1. В качестве нулевого приближения корня уравнения выберем середину интервала [a,b] (x:=(a+b)/2).
2. Для получения предыдущего и последующего приближенных значений корня уравнения будем использовать две переменные x0 и x.
3.Условие выхода из цикла: |x - x0|£e.
Программа Схема алгоритма
Program Prim13;
var
a,b,x,x0,eps: real;
n: integer;
begin
writeln('a,b,eps');
readln(a,b,eps);
x:=(a+b)/2;
n:=0;
repeat
x0:=x;
x:=sqrt(18+x0)+sqrt(16-x0);
n:=n+1;
until abs(x-x0)<=eps;
writeln('x=', x:8:5,' n=', n:3);
end.
Исходные данные: Результат:
a = 6; b = 8; eps = 0.0001 x= 7.93272 n= 5
Вычисление суммы членов бесконечного ряда
Пример 14. Найти сумму бесконечного ряда:

Условие выхода из цикла: |sin(nx)/n|£e
В этом примере будем использовать оператор while-do.
Общий вид оператора while-do:
While логическое_выражение do
Begin
оператор 1;
оператор 2;
…
оператор n;
end;
Выполнение оператора while-do:
Если значение логического_выражения равно true (истина), то выполняются операторы цикла, в противном случае происходит выход из цикла.
Программа Схема алгоритма
Program Prim14;
var
a,s,x,eps: real;
n: integer;
begin
writeln('Введите x, eps');
readln(x,eps);
s:=0;
n:=1;
a:=sin(x);
while abs(a)>eps do
begin
s:=s+a;
n:=n+1;
a:=sin(n*x)/n;
end;
writeln('s=', s:8:3);
end.
Исходные данные: Результат:
x = 3.48; eps = 0.0001 s= -0.168
Пример 15. Найти сумму ряда 
Условие выхода из цикла: |xn/n!|£e
Указания. 1. В качестве начальных приближений переменных выберем следующие значения:
s:=0; n:=1; a:=x; где а -очередной (текущий) член ряда.
2. Каждый последующий член ряда будем получать умножением предыдущего члена на дробь x/n и умножать на –1, т.к. ряд знакопеременный, т.е. будем вычислять по формуле: a:= -a*x/n.
Программа Схема алгоритма
Program Prim15;
var
a,s,x,eps: real;
n: integer;
begin
writeln('Введите x,eps');
readln(x,eps);
s:=0;
n:=1;
a:=x;
while abs(a)>eps do
begin
s:=s+a;
n:=n+1;
a:= -a*x/n;
end;
writeln('s=', s:8:3);
end.
Исходные данные: Результат:
x = 1.3; eps = 0.0001 s= 0.727
Сложные циклы
Сложные циклы – это циклы, содержащие внутри себя другие циклы, называемые вложенными.
Цикл, не входящий в другие циклы, но содержащий в себе другие циклы, называется внешним циклом.
Цикл, входящий в другие циклы, но не содержащий в себе другие циклы, называется внутренним циклом.
Пример алгоритма, содержащего вложенный цикл
Пример 16. Вычислить элементы вектора C(n), который является произведением матрицы А(n,n) на вектор B(n). Причем элементы вектора B(n) вычисляются по формулам:
где i=1,2,…,n.
Указания.
1. Для вычисления элементов вектора B нужно организовать циклический процесс, внутри которого присутствует разветвление.
2. Для организации разветвления можно использовать значение логического выражения (i mod 2) = 0. Если его значение равно true, т.е. остаток от деления значения индекса на 2 равен нулю, то индекс чётный, иначе – нечётный.
3. Элементы вектора C рассчитываются по формулам:
.
4. Для вычисления элементов вектора C используются два цикла: внутренний с параметром j и внешний с параметром i.
Пусть элементы матрицы A(n,n) и вектора B(n) – вещественные числа и пусть n<=10.
На следующей странице представлена схема алгоритма, реализующего процесс решения данного примера.
![]() |
Программа
Program Prim16;
Var
i, j, n: integer;
A: array [1..10,1..10] of real;
B, C: array [1..10] of real;
begin
writeln (' введите n');
readln (n);
writeln (' введите матрицу A');
for i:=1 to n do
for j:=1 to n do
read (a[i,j]);
for i:=1 to n do
if (i mod 2)=0 then b[i]:=1/(i*i+2)
else b[i]:=1/i;
for i:=1 to n do
begin c[i]:=0;
for j:=1 to n do
c[i]:=c[i]+b[j]*a[i,j];
end;
writeln (' вывод C');
for i:=1 to n do
writeln (c[i]:5:2);
end.
Исходные данные: Результат:
Размерность матрицы A:
n=3
Матрица A: Вектор C:

|
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!