Форма входа

Категории раздела

Мои статьи [15]

Поиск

Наш опрос

Оцените мой сайт
Всего ответов: 62

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0




Воскресенье, 19.05.2024, 03:19
Приветствую Вас Гость | RSS

Delphiport.ucoz.com

Главная | Регистрация | Вход
Каталог статей


Главная » Статьи » Мои статьи

Цикл For

  Цикл For - осуществляет выполнение операций, строго заданное количество раз.

  Зарезервированные слова для реализации цикла:  For,   to,  downto,  do.

  Чтобы понять как работает цикл, рассмотрим простенький пример заполнения массива состоящего из пяти элементов, числами от 1 до 5. 

  Для этого:

  1) Помещаем на форму, компоненты: 1- Button, и 1-Memo;

  2) Создаем обработчик событий на кнопке и записываем следующий код:

var

a: array[1..5] of Integer;

c: Integer;

begin

For c:=1  to  5  do

begin

a[c]:=c;

Memo1.Lines.Add(IntToStr(a[c]))

end;

end;

3) Запускаем проект и наблюдаем в компоненте Memo, заполненный нами масссив;

  Теперь давайте разбираться, что к чему. Для облегчения понимания, традиционно предлагаю перевести рассматриваемую конструкцию "For c:=1  to

5  do"  на русский язык:

For - означает - от,  для, в направлении;

to -   означает - к, на, до;

do -  означает -  выполнять, делать, 

  Запись  c:=1 - переменная счетчик с присвоенным начальным значением 1. А цифрапосле слова to - конечное значение.

  В случае с нашим примером, получаем буквально следующее: 

От 1 до выполнять //действия ниже - прописанные между begin и end;

begin

a[c]:=c; {Номер элемента массива а определяет переменная с и она же присваивается этому элементу (в данном случае это 1)} 

Memo1.Lines.Add(IntToStr(a[c])) {В нулевую строку (а строки компонента Memo, нумеруются с нуля) компонента Memo заносится единица .}

end;

   Далее, переменная с увеличивается еще на единицу, определяет номер второго элемента массива и присваивается ему в качестве значения (уже 2).

   Затем записывается в первую строку Memo.    

   Потом, переменная с увеличивается еще на единицу, определяет уже номер третьего элемента массива, присваивается ему в качестве значения

(теперь 3). Затем записывается во вторую строку компонента Memo.

   Снова, переменная с увеличивается на единицу, определяет номер четвертого элемента массива и присваивается ему, в качестве значения (уже 4).

   Затем записывается в третью строку компонента Memo.  

   И наконец, переменная с снова увеличивается на единицу, определяет номер пятого элемента массива, присваивается ему в качестве значения (уже

5), записывается в четвертую строку компонента Memo и цикл прекращается. 

   Ну как, понятно в общих чертах? Теперь по подробнее.

  1) В начале вычисляются и запоминаются начальное и конечное значения c:=1 и 5 .

  2) Циклу присваивается начальное значение c:=1, после чего это значение сравнивается с конечным -  5.

  3) Если начальное значение меньше или равно 5, выполняются итерации цикла, где происходит увеличение начального параметра цикла (переменной с) на единицу.  Затем выполняются команды прописанные после слова do, а именно:

begin

a[c]:=c;

Memo1.Lines.Add(IntToStr(a[c]))

end;

   Изменение параметра цикла происходит автоматом, после каждой итерации. 

4) Как только параметр цикла с превышает конечное значение 5, цикл прекращает свою работу.

 Цикл For может оперировать данными не только в порядке возрастания, но и в порядке убывания. Для этого мы вместо слова to, должны воспользоваться словом downto. И если в нашем первом примере начальное значение, не должно было превышать конечное, то в случае с обратным порядком, должно быть все наоборот. Попробуем модернизировать наш код из первого примера, и сделаем теперь так, чтобы массив заполнялся с 5 до 1

  Для этого:

  1) Помещаем на форму, компоненты: 1- Button, и 1-Memo;

  2) Создаем обработчик событий на кнопке и записываем следующий код:

var

a: array[1..5] of Integer;

c: Integer;

begin

For c:=5  downto  1  do

begin

a[c]:=c;

Memo1.Lines.Add(IntToStr(a[c]))

end;

end;

3) Запускаем проект и видим, что наш массив, заполнился в обратном порядке;

  Иногда случается, что цикл необходимо завершить досрочно, или наоборот продлить его работу. Для этого в Delphi присутствуют две стандартные

процедуры:

  1) break - позволяет прервать работу цикла на любом его этапе.

  2) continue - позволяет возобновить остановившийся цикл. 

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

var

a: array[1..5] of Integer;

c: Integer;

begin

For c:=1  to  5  do

begin

a[c]:=c;

Memo1.Lines.Add(IntToStr(a[c]));

if c=3 then break;

end;

end;

 

Категория: Мои статьи | Добавил: Sashok (04.12.2011)
Просмотров: 994 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright MyCorp © 2024