Помощь - Поиск - Пользователи - Календарь
Полная версия: Как работает оператор for?
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Женя
Помогите! Завтра экзамен!
Если в задаче установлен шаг, например 3, то как его записать?
Задача: Написать программу для вычисления значений Y=sqrt(Z) при изменении z от 3 до 21 с шагом 3.
Yu Lo
[если правильно понял]
Попробуй так:

Итераций: 21 / 3 = 7
То есть:

procedure TForm1.Button1Click(Sender: TObject);
var
 i, z : integer;
 y : real;
begin
  z:=0;
  for i:=1 to 7 do
  begin
    z:=z+3;
    y:=SQRT(z);
    // ... ... ... ... ... // Вывод результатов...
  end;
end;


Подправь, если что не совпадает...
Forsag
или так (так быстрее)
procedure TForm1.Button1Click(Sender: TObject); 
var i: integer;
    y    : real;
begin
  for i:=1 to 7 do
  begin
     y:=SQRT(3*i);
     ... ... ... ... ... // Вывод результатов...
  end;
end;
mj
Цитата
или так (так быстрее)
Код

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
    y    : real;
begin
  for i:=1 to 7 do
  begin
     y:=SQRT(3*i);
     ... ... ... ... ... // Вывод результатов...
  end;
end;

А вот и не прав ;D
Так медленнее...
Объясняю:
в первом случае в цикле будет к значению в регистре прибавлятся 3 и вычислятся корень,
во втором случае к регистер будет умножатся на регистр,
а как известно сложение выполняется намного быстрее чем умножение ;)
Женя
Спасибо огромное. Вы мне очень помогли!
CJ
Так же как и на Паскале!!!!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.