Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 3 Pascal, лр1-9.doc
Скачиваний:
56
Добавлен:
22.05.2015
Размер:
654.85 Кб
Скачать

1 Краткая теория

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

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

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 }

149

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, то по третьей формуле.

150

Описание программы

В примере 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.