0.5*1024=512 байт
512*8=4096 бит
4096/128=32
в 32 раза больше
<h3>PascalABC.NET 3.4.2, сборка 1843 от 24.10.2018</h3><h3>Внимание! Если программа не работает, обновите версию!</h3>
begin
for var i := 0 to Trunc((95 + 100) / 0.5) do
begin
var z := -100 + 0.5 * i;
var y := Abs(z) < 1.5 ? Abs(z) + z * z : 1 / (Abs(z) + 1);
Writeln(z:6:1, y:20:16)
end
end.
<h2>Результаты (приведены начало и конец)</h2><h3>-100.0 0.0099009900990099</h3><h3> -99.5 0.0099502487562189</h3><h3> -99.0 0.0100000000000000</h3><h3> -98.5 0.0100502512562814</h3><h3> -98.0 0.0101010101010101</h3><h3>. . . . . . .</h3><h3> 93.0 0.0106382978723404</h3><h3> 93.5 0.0105820105820106</h3><h3> 94.0 0.0105263157894737</h3><h3> 94.5 0.0104712041884817</h3><h3> 95.0 0.0104166666666667</h3>
Здесь небольшая проблемка: при больших R некоторых частей функций не будет видно...
Но тем не менее;
uses Crt;
var x, y, R: real;
begin
ClrScr;
Write(' X = '); ReadLn(X);
Write(' R = '); ReadLn(R);
if x<=-R then y:=-3 else
if (x>=-R) and (x<=R) then y:=-sqrt(R*R-x*x) else
if (x>R) and (x<6) then y:=3+6*(x-6)/(R-6) else
if (x>=6) then y:=(x-9);
ReadLn;
end.
Единственное, что осталось - распечатать значения Y...
Но по условию распечатка Y вроде не требуется... Или я чего-то не понимаю...
Цикл, в котором условие записано после тела цикла, выполнится как минимум 1 раз, а потом начнет проверять условие цикла. Цикл с предусловием может не выполниться ни разу, тк условие проверяется сразу. Цикл с предусловием используется когда у нас есть четкие границы выполнения