Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператор цикла с параметром. Привести фрагмент программы




Пример кода оператора цикла Паскаля с предусловием

y:=1; k:=0;
While y<=M do
Begin
y:=y*3;
k:=k+1;
End;

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

 

 

Оператор цикла с параметром

Оператор цикла с параметром организует выполнение одного оператора заранее известное количество раз.

Структура оператора

Существуют два варианта оператора

Вариант первый

For i:=<start> to <finish> do <оператор>;

Вариант второй

For i:=<start> downto <finish> do <оператор>;

В этих структурах:

i — параметр цикла;

<start> — начальное значение параметра;

<finish> — конечное значение параметра;

<оператор> — тело цикла;

Тип переменной цикла i и значений <start > и <finish> должен быть порядковым!

Порядок выполнения оператора:

1. Вычисляются и запоминаются начальное — start, и конечное — finish, значения параметра цикла. Start и finish могут быть представлены в виде конкретного значения (в этом случае нет необходимости в вычислениях) или в виде выражения, значение которого вычисляется в начале выполнения цикла.

2. Параметру цикла i присваивается значение start.

3. Значение параметра цикла i сравнивается со значением finish. Оператор "тело цикла" будет выполняться при выполнении следующего условия:
первый вариант оператора: i<=finish;
второй вариант оператора: i>=finish;
В противном случае происходит прекращение выполнения циклического оператора.

4. Параметру цикла присваивается:
первый вариант оператора: следующее большее значение;
второй вариант оператора: следующее меньшее значение.

5. Выполняется пункт 3 данной схемы.

Часто говорят, что первый вариант оператора цикла с параметром — цикл с возрастающим параметром; второй вариант — с убывающим параметром.

Если при первой же проверке, параметр цикла не будет удовлетворять условий пункта 3, то тело цикла не выполниться ни разу.

Телом цикла может быть только один оператор. для того, чтобы в теле цикла с параметром выполнить несколько операторов, их необходимо объеденить операторными скобками Begin и End.

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

Break

Процедура Break может использоваться во всех циклических операторах. Эта процедура позволяет досрочно выйти из цикла, не дожидаясь выполнения условия выхода.

Continue

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

Примеры применения

Вычислить сумму S=1+1/2+1/3+…+1/50.

Procedure TForm1.Button1Click(Sender:TObject);

Var i:Integer;

s:Real;

Begin

s:=0;

For i:=1 to 50 do s:=s+1/I;

LabelN.Caption:=FloatToStr(s);

End;

 




Поделиться с друзьями:


Дата добавления: 2015-04-30; Просмотров: 500; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.