Нека [tex]c = \frac{b-a}{n}[/tex] e константа, стойностите ѝ са:
а) c = [tex]\frac{1}{3}[/tex]
б) c = [tex]\frac{2}{5}[/tex]
в) c = [tex]\frac{1}{4}[/tex]
г) c = [tex]\frac{4}{3}[/tex]
д) c = [tex]\frac{5}{2}[/tex]
Все положителни. Сиреч няма да има безкрайност, кофти.
[tex]x = x + \frac{b-a}{n} = x + c[/tex]
Сумата [tex]S[/tex] на функцията по-горе изглежда по следният начин:
[tex]S = x + c + c + c + c...[/tex] но x приема стойноста на 'а' първата итерация =>
[tex]S = a + c + c + c + c...[/tex]
нека с m означим броя повторения. [tex]m >0[/tex] за всяко едно от условията!
Тогава стойноста на [tex]x[/tex] спрямо броя повторенията [tex]m[/tex] за всяка подточка са съответно:
a) [tex]x_m = a + mc = 0 + mc = m\frac{1}{3}[/tex]
б) [tex]x_m = a + mc = 0 + mc = m\frac{2}{5}[/tex]
в) [tex]x_m = a + mc = 1 + mc = 1 + m\frac{1}{4}[/tex]
г) [tex]x_m = a + mc = 1 + mc = 1 + m\frac{4}{3}[/tex]
д) [tex]x_m = a + mc = 0 + mc = m\frac{5}{2}[/tex]
условията за всяка итерация са следните:
[tex]mc < b[/tex]
съответно:
а) [tex]m\frac{1}{3} < 1[/tex] <=>[tex]m < 3[/tex]
б) [tex]m\frac{2}{5} < 2[/tex] <=> [tex]m < 5[/tex]
в) [tex]1 + m\frac{1}{4} < 2[/tex] <=> [tex]m < 4[/tex]
г) [tex]1 + m\frac{4}{3} < 5[/tex] <=> [tex]m < 3[/tex]
д) [tex]m\frac{5}{2} < 5[/tex] <=>[tex]m < 2[/tex]
Важно нещо: Цикълът е конструиран по следният начин - Първо е проверката, след това операцията, след това извеждане резултата. Тогава в написаното горе,
дясната страна трябва да бъде увеличена с единица!
Окончателно:
а) [tex]m = <1, 2, 3>[/tex]
б) [tex]m = <1, 2, 3, 4, 5>[/tex]
в) [tex]m = <1, 2, 3, 4>[/tex]
г) [tex]m = <1, 2, 3>[/tex]
д) [tex]m = <1,2>[/tex]
Едит:
Драснах ти и програмката на Паскал

- Код: Избери целия код
program pr2213925;
{$APPTYPE CONSOLE}
uses
SysUtils;
const arra: array[0..4] of Byte = (0,0,1,1,0);
arrb: array[0..4] of Byte = (1,2,2,5,5);
arrn: array[0..4] of Byte = (3,5,4,3,2);
function test(a,b,n:Integer):Integer;
var x:Extended;
begin
Result:=0;
x:=a;
while(x<b) do begin
x:= x+((b-a) / n);
inc(Result);
end;
end;
var i:Integer;
begin
for i := 0 to 4 do Writeln('Pri ',AnsiChar((Chr(i+$61))),') iteraciite sa: ',test(arra[i],arrb[i],arrn[i]));
Readln;
end.