Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Результат сохраним в переменной AbsX. Это далеко не единственный вариант реализации этого фрагмента программы. Думаю, читатель при желании сможет разработать свой вариант решения.

Цикл while
Этот цикл используется в тех случаях, когда число повторений цикла заранее неизвестно. Цикл while — это цикл с предварительным условием, и его выполнение или невыполнение зависит от начальных условий. Синтаксис этого выражения можно представить в общем виде следующим образом:
while (условие)
<операторы циклах

Выход из цикла осуществляется, если условие окажется ложным. Так как истинность условия определяется в начале каждой итерации, вполне может оказаться, что тело цикла не выполнится ни разу.
В С + + цикл while имеет вид:
while (условие)
{
<операторы цикла>
}

Синтаксис этой конструкции в Delphi несколько иной:
while <условие> do
begin
<операторы цикла>
end

Рассмотрим пример, где используется цикл while. Пусть имеется массив из 10 целых чисел. Требуется найти количество элементов массива, предшествующих первому встретившемуся нулевому элементу (если таковой будет найден). Фрагмент программы должен вернуть число элементов, предшествующих первому нулевому, или о, если нулевой элемент не найден. Такой фрагмент кода можно применить для поиска и выделения строк с завершающим нулем. Подобная задача легко решается при помощи цикла for.
Но мы решим ее, используя цикл while.
Вначале, как обычно, представим исходный текст программы на языке высокого уровня. Фрагмент кода на Delphi приведен в листинге 3.2.
Листинг 3.2. Пример кода на Delphi, выполняющий подсчёт ненулевых символов в массиве с использованием цикла while : lv
var
XI: array[1..10] of Integer = (12, 90, -6, 30, 22, 10, 22, 89, -0, 47);
IXl: Integer;
SX1: Integer;
Counter: Integer;
Counter := 0;
IXl := 1;
SX1 := SizeOf(Xl) div 4;
while (XI [IXl] <> 0) do
begin
Inc(Counter);
if (IXl = SX1) then break;
Inc(IXl);
end;
if (Counter = SX1) then
Counter := 0;

Здесь xi — массив целых чисел, ixi — текущий индекс массива, sxi — размер массива, counter — счетчик элементов.
Этот фрагмент кода выполняется следующим образом:
• после инициализации переменных программа в начале каждой итерации цикла while проверяет неравенство элемента массива xi на о. Если элемент равен о, происходит немедленный выход из цикла;
• если условие верно, т. е. элемент массива не равен о, выполняется тело цикла. При этом инкрементируются счетчик counter и индекс массива i x i . Если обнаружен последний элемент массива, происходит выход из цикла (инструкция if);
• в любом случае счетчик counter содержит количество элементов, предшествующих первому нулевому, или о, если нулевой элемент вообще не обнаружен.


 
 
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru