Программа итерационного цикла
Пример 1
Составить программу вычисления значения функции y = x (π-x), используя равенство
с погрешностью E =10-4 и напечатать для контроля значения функции, определяемые выражением в левой части равенства y = x (π-x) и её разложением в ряд косинусов.
Программа
Program iteracia
Const
e=0.0001;
Var
y,s,x:real; { y-функция, s-сумма, x-аргумент }
k:longint;
slag:real; { слагаемое (i-й член суммы) }
Begin
writeln('введите x ');
Readln(x);
s:= sqr(pi)/6;
k:=1;
Repeat
slag:=cos(2*k*x)/sqr(k);
s:=s+slag;
Inc(k);
until abs(slag)<e;
y:=s;
writeln(' y(x)= ',y);
writeln(' x*(pi-x)= ',x*(pi-x));
end.
Описание программы
В разделе объявления констант вводится точность вычислений Е=10-4, в разделе переменных вводятся y,s,x – вещественные, k – длинное целое и slag – вещественная.
Основной блок программы начинается оператором begin, в нём вводится значение аргумента х, вычисляется значение слагаемого slag=π./ 6 и присваивается переменной k значение 1.
Цикл открывается оператором repeat, в нём вычисляется слагаемое slag и прибавляется к предыдущему значению суммы s, затем k увеличивается на 1 (inc (k)). Проверка на окончание цикла выполняется после слова until сравнением модуля slag с заданной точностью е. Если условие выполняется (true), то при k=2 программа возвращается к repeat - на новое вычисление slag и s , если нет (false), то переходит к присвоению у значения накопленной суммы s, выводит на экран у и вычисленное значение x(π-x)для их сравнения (pi–это число π, хранящееся в памяти среды программирования Pascal)
Контрольные вопросы
1 Какие циклы называются итерационными?
2 Какие операторы цикла используются в итерационных циклах?
3 Как выполняется проверка на окончание вычислений в цикле?
Задание
Вычислить сумму членов ряда с точностью Е=10-2
при заданном х=0.75
№ варианта | Выражение |
, Е=103 | |
, Е=102 | |
, Е=102 | |
Содержание отчета
1 Название работы.
2 Цель работы.
3 Содержание работы
4 Задание и программа для своего варианта.
5 Результаты расчёта итерационной суммы
6 Письменные ответы на контрольные вопросы.
7 Выводы по работе.
Лабораторная работа № 5
Сложные алгоритмы
Цель работы:разработка программ, реализующих циклические и
ветвящиеся вычислительные процессы.
Содержание работы:
1 Программа "цикл в цикле"
2 Программа "цикл и ветвление"
3 Программа "цикл в цикле и ветвление"
Общие сведения
При записи программ со структурой вложенных циклов необходимо обращать внимание на правильность размещения внешнего и внутреннего циклов. Одни постановки задач допускают смену мест внешнего и внутреннего циклов, а в других постановках такая система приводит к неправильным результатам.
При записи программ со структурой вложенных циклов зона действия внутреннего цикла должна располагаться в зоне действия охватывающего цикла.
1 Программа "цикл в цикле"
Пример 1
Составить таблицу ступенчатой функции
где y = sin x + cos a + sin ax
при 1<=a<= 3; ∆a=0.5; 0<= x<=2; ∆x =0.2
В программе нужно вычислить у для всех возможных сочетаний а и х, сравнить его с 1 и, если у<1, то вычислить z по первой формуле, если >=1, то по второй.
Const
da=0.5;
dx=0.2;
Var
a,x,y,z: real;
Begin
a:=1;
repeat { цикл по a }
x:=0;
repeat { цикл по x }
y:=sin(x)+cos(a)+sin(a*x);
if y<1 then
z:=y+sqr(x)
Else
z:=sin(sqr(y+1))+sqr(cos(x));
writeln(' a=',a:4:3,' x=',x:4:3,'
z(x,y)= z(',x:4:3,',', y:4:3,')=',z:4:3);
x:=x+dx;
until x>2;
a:=a+da;
until a>3;
End.
Описание программы
В разделе объявлений задаются константы da и dx, затем вещественные переменные a,x,y,z.
В основном блоке переменной а задаётся начальное значение а=1 и открывается цикл repeat по а, затем задаётся начальное значение х=0 и открывается цикл repeat по х, вложенный в цикл по а. В этом цикле вычисляется значение у и, если оно меньше 1, то вычисляется z=y+x2, в противном случае z вычисляется по формуле z = . Далее выводятся a,x,y,z в формате 4 значащих цифры, из них 3 после запятой.
Затем х получает приращение 0,2, выполняется проверка на достижение им конечного значения 2. Если условие выполняется, то управление передаётся назад, к repeat по х, если нет, то выполняется следующий оператор, где а получает своё приращение 0,5 и проверяется на достижение конечного значения 3. Если условие выполняется, то программа возвращается к repeat по а, если нет, то конец программы.
2 Программа "цикл и ветвление"
Пример 2
Дана функция
е1/3ln|z| +1, если z<0
y = 0 , если z=0
tg2x , если z>0
Написать программу для вычисления значений функции на
отрезке x [-1;1] с шагом 0.1 для z = sin x - 0.1.
В примере для каждого значения х сначала нужно определить z, а затем, если z < 0. то у вычислить по первой формуле, если z = 0, то у = 0 и если z > 0, то по третьей формуле.
Описание программы
В примере 2 использованы циклический и ветвящийся вычислительные процессы.
Вначале организуется цикл repeat по параметру х, а внутри цикла проверяются условия, обуславливающие ветвящийся вычислительный процесс, где для каждого значения переменной z =f(x) предусмотрена своя ветвь вычисления значений искомой функции у.
Const
dx=0.1;
Var
x,y,z: real;
Begin
x:=-1;
repeat { цикл по x }
z:=sin(x) - 0.1;
if z<0 then
y:=exp(1/3*ln(abs(z)))+1
if z=0 then
y:=0
Else
z:=(sin(x)/cos(x))^2;
writeln(' x=',x:4:3,'z(x)= z(',x:4:3,')=',z:4:3);
x:=x+dx;
until x>1;
End.
3 Программа "цикл в цикле и ветвление"
Пример 3
Вычислить сумму S положительных и произведение Р отрицательных значений функции y = cos t -b, в области t [-1;1] с шагом 0.2 и
в области b [-0.1;0.2] с шагом 0.1.
В примере - две переменные, t и b, нужно для каждого значения t просчитать все b, если y>0,, то прибавить его значение к предыдущей сумме S, если y<0, то умножить его на предыдущее произведение Р.
В примере 3 встречаются два циклических и ветвящийся вычисли-
тельные процессы. Внешний цикл организован по параметру t, внутренний цикл - по параметру b.
Внутри цикла после вычисления значения функции у осуществляется проверка условий ветвящегося вычислительного процесса, который реализует вычисление произведения p отрицательных значений функции (в случае выполнения условия у<0) и вычисление суммы s положительных значений функции, если у>0.
Программа
Const
dt=0.2;
db=0.1;
Var
t,b,y,s,p: real;
Begin
t:=-1;
repeat { цикл по t }
b:=-0.1;
repeat { цикл по b }
y:=cos(t)-b;
if y<0 then
p:=p*y
Else
s:=s+y;
writeln(' t=',t:2:1,' b=',b:2:1,
'y(t,b)= y(',t:2:1,',', b:2:1,')=',y:4:2,
's=',s:4:2, 'p=',p:4:2);
t:=t+dt;
until t>1;
b:=b+db;
until b>0.2;
End.
Контрольные вопросы
1 Назовите известные вам структуры алгоритмов.
2 Какие вычислительные процессы реализуются в сложных алгоритмах?.
3 Как организуются программы с вложенными циклами ?
4 Какие вычислительные процессы можно выделить в задании по вашему варианту ?
5 Охарактеризуйте синтаксис и особенность применения операторов if,
repeat.
6 Сколько циклов может быть вложено друг в друга ?
7 Как изменится программа примера 3, если оператор repeat заменить на оператор while?
Задания
№ варианта | Выражение |
t(8-7(-t)) , если -1.4<=t<=4 z = t -│20-t , если 4<t<=9.8 | |
(2-x)+│x│ , если -0.8<=x<=0.2 S = cos x+e sin x , если 0.2<x<=1 | |
z (4-z) , если -2.5<=z<0.4 y = 3 sin(z-0.4)-z , если 0.4<=z<=2.5 | |
(12-x)x , если 5<=x<=11 y = x 12+x , если 11<x<=17 | |
3.14+xy , если 1<=x<=10 z = tg x + cos y , если 2<=y<=4 | |
sin (x +1) , если 0.1<=x<=0.5 y = cos z , если 0<=z<=1 | |
е2е + esin t , если -1.5<=t<0 z = 2√t ,если 0<=t<=2 | |
x+y 0.1<=x<=0.3 z = 1-xy 0.5<=y<=0.8 | |
(z-1) , если 0<=z<=3 C = |z-6| , если 3<=z<=8 | |
t+4sin t│ ,если -2<=t<0 y = (t-(t-3)) , если 0<=t<=4 | |
x-1 – lnx4 , если -5<=x<=0 M = │cos x│x-2 ,если 0<x<=10 | |
2+3(a-x) , 0.1<=x<=17.55 z = 5ax , 0.5<=a<=2.5 | |
(S -2S-2) , если -2<=s<=0 z = (S-cos S) , если 0<S<=1.5 | |
a+sin x -2<=x<=7 y = sin(a+x) -1<=a<=1 | |
(cos(y-1)-2) , ,если -3<=y<=1 S = (y sin y-1) , если 1<y<=4 | |
sin│x/a│ , 0.5<=x<=3.5 y = ax , 0.1<=a<=0.2 | |
b sin x 0<=x<=2 y = cos z 0.1<=z<=2.5 | |
a sin x , если 0.1<=x<=1 y = b cos x , если 1<x<2 |
│ax +bx │, если 0.1<=x<=1 y = sin(bx+a) , если 1<x<=2 | |
cos x , если 0.5<x<=0.9 y = x+sin x-cos x, если 0.9<x<=1 |
Содержание отчета
1 Название, цель, содержание работы
2 Задание для своего варианта.
3 Схема алгоритма.
4 Программы.
5 Результаты расчётов в среде pascal.
6 Письменные ответы на контрольные вопросы.
7 Выводы по работе.
Лабораторная работа № 6
Обработка массивов
Цель работы:разработка программ, реализующих вычислительные
процессы .с индексированными переменными
Содержание работы:
1 Одномерные массивы
2 Многомерные массивы
3 Обработка массивов
Дата добавления: 2016-02-02; просмотров: 839;