Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





Цель лабораторной работы: изучить способы организации циклических вычислительных процессов.

Операторы для организации циклов

Цикл – многократное выполнение некоторой последовательности операторов. Количество повторений определяется управляющей переменной (счетчиком), которая должна изменять свое значение внутри цикла. Совокупность операторов, находящихся внутри цикла называют телом цикла.

3.1.1. Организация цикла с помощью оператора for

Оператор

for <счетчик>:=<начальное значение> to <конечное значение> do

Begin

<операторы>

End;

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

 

Вторая форма оператора

for <счетчик>:=<начальное значение> downto <конечное значение> do

Begin

<операторы>

End;

организует повторение последовательности операторов при изменении значений счетчика от конечного до начального, с шагом «минус единица».

Если начальное и конечное значения равны, то тело цикла выполняется только один раз. Если начальное значение превышает конечное (для первой формы оператора) или начальное значение меньше конечного (для второй формы оператора), то тела цикла не выполняется ни разу.

Значение счетчика внутри цикла изменять нельзя.

Как правило, с помощью оператора for организуют циклы с заранее известным количеством повторений.

 

Пример 3.1. Вычислить N! (1*2*3*...*N).

f:= 1; for i:= 1 to n do f:= f * i;

 

Пример 3.2. Найти минимум функции y(x)=sin2(x)+4*cos(x) на интервале [-1; 1] с точностью ε=0,01.

a:= -1; b:= 1; // границы интервала

n:= Round((b-a)/eps) + 1; // расчет количества шагов

x:= a; // начальная (первая) точка интервала

min:= sqr(sin(x))+4*cos(x); // в качестве минимума принимается

// значение функции в начальной точке интервала

for i:= 1 to n do begin

x:= x+eps; // переход к следующей точке

y:= sqr(sin(x))+4*cos(x); // расчет значения функции

if y<min then min:=y; // проверка, является ли

// текущее значение у минимальным

end;

Минимум с точностью ε находится путем перебора всех значений от а до b c шагом равным eps. В начале, в качестве минимума принимается значение функции в первой точке интервала. После этого перебираются все точки интервала с заданным шагом. Если текущее значение у меньше минимального, то оно принимается за минимум.

 

3.1.2. Организация цикла с помощью оператора repeat

Оператор

Repeat

<операторы>

until <условие>;

организует повторение операторов, помещенных между ключевыми словами repeat и until до тех пор, пока условие не примет значение истина (true). Так как условие проверяется после выполнения операторов цикла, то тело цикла всегда будет выполняться хотя бы один раз.

 

 

Пример 3.3. Вычислить N! (1*2*3*... *N).

i:= 1; f:= 1;

if n>1 then

Repeat

i:= i + 1;

f:= f * i;

until (i>=N);

Такой способ вычисления факториала менее удобен, чем с использованием оператора for. Для того, чтобы при n<=1 не выполнялось тело цикла введена проверка.

Пример 3.4. Найти минимум функции y(x)-sin2(x)+4*cos(x) на интервале [-1; 1] с точностью ε=0,01.

x:=a;

min:=sqr(sin(a))+4*cos(a);

Repeat

x:=x+eps;

y:= sqr(sin(x))+4*cos(x);

if y<min then min:=y;

until (x>=b);

Данный алгоритм более удобен, чем рассмотренный в примере 3.2.

 

 

3.1.3. Организация цикла с помощью оператора while

Данный оператор

While <условие> do begin

<операторы>

end;

организует повторение операторов, помещеннх между begin и end, до тех пор, пока условие не примет значение ложь (false).

В отличие от оператора repeat, если условие будет равно false тело цикла не будет выполнено ни разу.

Пример3.5. Вычислить N! (1*2*3*... *N).

i:= 0; f:= 1;

While i<N do begin

i:= i+1;

f:= f * i;

End;

Такой способ вычисления факториала менее удобен, чем с использованием оператора for.

 

Пример 3.6. Найти минимум функции y(x) = sin2(x)+4*cos(x) на интервале [-1; 1] с точностью ε=0,01.

x:= a;

min:= sqr(sin(a))+4*cos(a);

while (x<=b) do begin

x:= x+eps;

y:= sqr(sin(x))+4*cos(x);

if y<min then min:= y;

end;

Данный алгоритм более удобен, чем рассмотренный в примере 3.2.

 

 

Date: 2015-06-08; view: 591; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию