Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для 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);
<< Назад В начало Далее >> |
|