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





Если нулевой элемент вообще не найден, то в счетчик ненулевых элементов по условию задачи записываем о:
cmp ЕСХ, EDX
jne SET_CNT
хог ЕСХ, ЕСХ

Предыдущий фрагмент кода на ассемблере из трех операторов эквивалентен оператору на Delphi:
if Counter = SXl then
Counter := 0;

Мы так подробно остановились на ассемблерном варианте программы для того, чтобы читатель понял, что однозначного решения для оптимизации логических структур в языках высокого уровня не существует! "Строительным" кирпичиком такой оптимизации является все та же пара команд ассемблера:
cmp operandi, operand2
Jcond label

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

3.1.3. Цикл repeat-until (do-while)

Операторы цикла repeat-until (Pascal, Delphi) и do-while (С, С++) организуют выполнение цикла, состоящего из любого числа операторов с заранее неизвестным числом повторений. Тело цикла в любом случае будет выполнено хотя бы один раз. Выход из цикла происходит, когда становится истинным некоторое логическое условие. Цикл repeat-until можно представить в виде конструкции на языке Delphi:
repeat
<операторы>
until <условие>
По аналогии на языке С + + цикл do-while имеет вид:
do
{
<операторы>
}
while <условие>

Приведем примеры реализации таких циклов на языках высокого уровня. Как всегда, решим при этом практически полезные задачи. В следующем примере требуется найти сумму первых четырех элементов массива целых чисел. Пусть размерность массива равна 7.
Вариант программного кода в Delphi представлен в листинге 3.5.
Листинг 3.5. Фрагмент кода на Delphi, в котором находится сумма первых четырех элементов массива
var
XI: array [1..7] of Integer = (2, -4, 5, 1, -1, 9, 3);
1X1: Integer;
sumXl: Integer;
1X1 := 1;
sumXl :== 0;
repeat
sumXl := sumXl + XI[1X1];
1X1 := 1X1+1;
until (1X1 > 4) ;

Фрагмент кода довольно прост и в пояснениях не нуждается. На Visual С + + такая программа выглядит так, как представлено в листинге 3.6.
Листинг 3.6. Фрагмент кода на С++, в котором находится сумма первых четырех элементов массива
int Х1[7] = [2, -4, 5, 1, -1, 9, 3};
int 1X1 = 0;
int sumXl = 0;
do
i
sumXl = sumXl + X1[IX1];
1X1++;
}
while (1X1 <= 3);


 
 
 

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