1.Определить, что будет на экране после исполнения последующего фрагмента программ: Var

1.Определить, что будет на экране после выполнения следующего куска программ: Var n, k:byte; Begin N:=5; For k:=1 to n do Begin n:=n+1; Writeln(k=, k,n=,n);end;End Помогите пожалуйста

Задать свой вопрос
1 ответ
Инвариантные куски кода
Оптимизация инвариантных фрагментов кода узко связана с неувязкой рационального программирования циклов. Снутри цикла могут встречаться выражения, куски которых никак не зависят от управляющей переменной цикла. Их именуют инвариантными кусками кода. Современные компиляторы нередко определяют наличие таких фрагментов и выполняют их автоматическую оптимизацию. Такое вероятно не всегда, и иногда производительность программы зависит полностью от того, как запрограммирован цикл. В качестве образца осмотрим последующий фрагмент программы (язык Turbo Pascal):
for i := 1 to n do
begin
...
for k := 1 to p do
for m := 1 to q do
begin
a[k, m] := Sqrt(x * k * m - i) + Абс(u * i - x * m + k);
b[k, m] := Sin(x * k * i) + Абс(u * i * m + k);
end;
...
am := 0;
bm := 0;
for k := 1 to p do
for m := 1 to q do
begin
am := am + a[k, m] / c[k];
bm := bm + b[k, m] / c[k];
end;
end;
Тут инвариантными кусками кода являются слагаемое Sin(x * k * i) в первом цикле по переменной m и операция разделения на элемент массива c[k] во втором цикле по m. Значения синуса и элемента массива не меняются в цикле по переменной m, как следует, в первом случае можно вычислить значение синуса и присвоить его вспомогательной переменной, которая будет употребляться в выражении, находящемся снутри цикла. Во втором случае можно выполнить разделение после окончания цикла по m. Таким образом, можно существенно уменьшить количество трудоёмких арифметических операций.
[править] Ценности оптимизации
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт