- Код: Выделить всё
program Project1;
{$mode objfpc}{$H+}
var Y: Real;
i:Integer;
begin
Y:=0;
while Y<1 do
begin
Y:=Y+0.1;
Writeln('Y=',Y:1:2);
end;
Readln;
end.
То есть цикл не прекращается при Y=1, а прекращается при Y=1.01. При выполнении выше указанного условия, но с Y<2 или Y<3, цикл прекращается при Y=2 или Y=3 соответственно.
Подобная проблема и со следующей конструкцией:
- Код: Выделить всё
program Project1;
{$mode objfpc}{$H+}
var Y: Real;
i:Integer;
begin
Y:=0;
for i:=1 to 20 do
begin
Y:=Y+0.1;
if Y=1.0 then Y:=0;
Writeln('Y=',Y:1:2);
end;
Readln;
end.
То есть не выполняется условие в цикле (при Y=1 переменная Y должна принять значение Y=0). Необходимо выполнение условие равенства.
Как можно решить данную проблему?