Программирование циклических алгоритмов с заданным 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Программирование циклических алгоритмов с заданным



Числом повторений

Первая форма счетного оператора цикла позволяет наращивать пара­метр цикла на единицу (+ 1):

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

(Для) (увеличивая к) (выполнять)

где <параметр цикла> - это переменная целого либо любого порядкового типа; <min, max значения> - это начальное и конечное значения пара­метра цикла (выражения того же типа, что и параметр цикла).

Вторая форма позволяет уменьшать значение параметра цикла на еди­ницу (- 1):

FOR <параметр цикла>:= <max знач.> DOWNTO <min знач.> DO <оператор>; (Для) (уменьшая к) (делать)

Пример 1. Вычислить сумму элементов s=1+1/4+1/9+1/16+....

На основе анализа изменения параметра знаменателя определим алгоритм решения за­дачи и напишем программу:

PROGRAM suma;

VAR s, r: REAL;

i, N: INTEGER;

BEGIN

s:=0;

WRITELN('введите N');

READ(N);

FOR I:=1 TO N DO

begin

r:=1/sqr(i);

s:=s+r;

end;

WRITELN('Сумма=',s:6:2);

END.

Пример 2. Вычислить значения двух функций F1(x)=tg(x) и

F2(x)=sin(x) в n точках, рав­номерно распределенных на интервале a ≤ x ≤ b, где a=-π/4, b=π.

 

Для реализации данной задачи разработана следующая программа:

 

Program Lab3;

Const а = -pi/4; b = pi;

Var F1, F2, x, dx: real; {dx - шаг изменения х}

i, n: integer; {i - пеpеменная цикла}

Begin

writeln ('введите число точек N');

read(n);

dx: = abs(b-a)/(n-1);

x:=a;

writeln (' _____________________________');

writeln ('| I | X | F1 | F2 |');

writeln ('|---|--------------|------------|------------|');

for i:=1 to n do {опеpатоp цикла}

begin

F2:=sin(x);

F1:=F2/cos(x); {вычисление: tg x}

writeln('|', i:3,' |', x:8:3,'|', f1:8:4,' |', f2:8:4,' |');

x:=x+dx;

end;

writeln('|________________________|);

End.

Задание 2 (программа 3_2)

Вычислить значения двух функций в n равномерно распределенных в диапазо-

№ п/п a b n F1(х) F2(х)
  -1 -2 - -1 -4 -   2 2     sin x cos x 1+2x+5 4e-|x|-1 | x+10|5 2 sin 2x +1 2-cos x 2-x/100 x3e2x 1/(1+ ) 5-3 cos x |sinx|+|cosx|   sin x + cos x -1 (x-1)3 cos x e-(x+5) (x+5)3(1+sin2x) 20/(1+x2) ex sin x x ln2 x 2x/(1-4x) |sin x| - |cos x|  

не а≤x≤b точках. Результаты оформить в виде таблицы.

 

 

Лабораторная работа 4

Программирование циклических алгоритмов с предусловием

Цель работы: научиться разрабатывать и отлаживать программы с неразветвленными и разветвленными циклами, управляемыми условиями.

Структура оператора цикла с предусловием (с предварительной про­веркой условия):

WHILE <условие _ выполнения> DO <оператор>;

пока делать

где <условие> - это любое логическое выражение, <оператор> - это про­извольный оператор Турбо Паскаля, в том числе и составной.

Пример. Для трех значений а = 0.1, 0.2,0.3 протабулировать функцию y=a.tg(x/4) при изменении аргумента x на интервале [0.5,0.9] с шагом, равным a.

Program a4_1;

var

 

a,x,y:real;

Begin

writeln('-------------------------');

writeln(' a | x | y |');

writeln('-------------------------');

a:=0.1;

while a<=0.31 do

begin

writeln(a:5:2);

x:=0.5;

while x<=0.91 do

begin

y:=a*sin(x/4)/cos(x/4);

writeln(x:12:2,' | ', y:10:2);

x:=x+a;

end;

writeln('-------------------------');

a:=a+0.1

end;

End.

Задание 2 (программа 4_2)

Модифицировать (изменить) программу 3_2 для вычисления функций F1(x) и F2(x) с применением вместо счетного цикла оператора цикла с предусловием. Выполнить ее и сравнить результаты с полученными в пре­дыдущей работе.

 

 

Лабораторная работа 5

Программирование циклических алгоритмов

С постусловием

 

Стpуктуpа оператора цикла с постусловием

REPEAT <оператор 1>;

(повторять)

<оператор 2>;

...

<оператор N>

UNTIL <условие окончания цикла>;

(до тех поp, пока)

Пример. Вычислить 15 значений функций

y1(x) = tg(x); и y2(x) = ctg(x) при a ≤ x ≤ b,

a=0.6*Pi, b=0.7*Pi.

Для вычислений разработана следующая программа:

Program Lab5;

Const n = 14;

a = 0.6*Pi;

b = 0.7*Pi;

Var x, y1, y2, dx: real;

Begin

dx:=abs((a-b)/n);

x:=a;

Repeat

y1:=sin(x)/cos(x);

y2:=1/y1;

writeln('x=', x:6:4,' y1= ', y1:7:4,' y2=', y2:7:4);

x:=x+dx

Until x>b;

End.

Пример 2. Вычислить сумму элементов s = 1+1/4+1/9+1/16+... c точностью до

E = 0.00001

 

PROGRAM sum;

CONST

E=0.00001; {точность}

VAR

s,r: REAL; {s - сумма, r – слагаемое}

i:INTEGER; {i - счетчик слагаемых}

BEGIN

s:=0;

i:=1;

REPEAT

r:=1/sqr(i); {вычисление слагаемого}

s:=s+r;

i:=i+1 {счет слагаемых}

UNTIL r<E; {сравнение слагаемого с Е}

WRITELN ('Сумма=',s:9:5); {вывод суммы}

END.

 

Задание 1 (программа 5_1)

Модифицировать программу 3_2 для вычис­ления функций F1(x) и F2 (x) с применением опе­ратора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.

 

 

Лабораторная работа 6



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 200; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.172.68 (0.011 с.)