Страница 1 из 1

Right Condition

Добавлено: 12 дек 2007, 16:22
Monopo
Помогите, пожалуйста, написать условие? Задание типа :
"Найдите и выведите на экран значения функции F(x) для всех х, от Хначального до Хконечного с шагом dX".

Понятно, что можно было бы задать условие типа :

while (Х{нач} <= Х{кон}) do
begin
{Находим значение х, выводим}
X{нач} := Х{нач} + dX;
end;

Но это подойдет ведь не для всех Х. Если будет, например, Х{нач}=5, Х{кон}=-4, dX=-1, то найти значения можно, а программа не пойдет.

Вот помогите, пожалуйста, составить условие, при истинном значении которого для последовательности всех получающихся Х можно будет найти F(x), в противном случае вывести на экран соответствующее сообщение о невозможности выполнения операции??????

Re: Right Condition

Добавлено: 13 дек 2007, 10:57
Хыиуду
var increment: boolean
increment:=Xнач<Хкон;
while increment=Xнач<=Xкон do
....

Re: Right Condition

Добавлено: 13 дек 2007, 11:31
annihilator
а я бы сделал так: ввел начальное и конечное значение и dx, потом сделал бы

Код: Выделить всё

n:=abs(round((кон-нач)/dx));
for i:=0 to n+1 do
бла бла бла бла бла
по крайней мере достаточно просто и понятно, без мудрёных вещей

Re: Right Condition

Добавлено: 13 дек 2007, 14:36
Хыиуду
Тогда уж пиши в теле цикла, что x:=Xнач+i*dx

Re: Right Condition

Добавлено: 13 дек 2007, 20:59
annihilator
Хыиуду, а чем плох предыдущий вариант Хнач:=Хнач+dx в теле цикла? не обязательно каждый раз вычислять значение переменной, можно просто использовать такое инкрементирование, это ничего не изменит =)

Re: Right Condition

Добавлено: 14 дек 2007, 11:19
Хыиуду
Гм... можно и так. Я просто не понял, что у тебя "Хнач:=Хнач+dx" по умолчанию включается в "бла бла бла бла бла"