Цитата:
Сообщение от MrSTEP
ни разу не встречал типа cardinal.
|
Есть такой. Это целый тип, который относится к LongInt так же, как Word к Integer, т.е. сохраняя размер, "сдвигается" в сторону исключительно неотрицательных значений. Короче говоря, интервал Cardinal есть
0..4294967295.
Понимается не всеми трансляторами. Мой любимый DOS Free Pascal, например, глотает его и не давится, но в других действительно могут быть проблемы.
Только вот напрочь непонятно, на кой он в этой программе сдался: тут вполне и типа Word хватит.
Цитата:
Сообщение от FPS
В паскале пишет, что Cardinal - Unknown Identifier. А если Cardinal заменить например на Integer, то компилируется, но не запускается, подскажите плз как правильно сделать...
|
Код:
program v6;
var
X :double;
dividend :double;
factor :double;
Xmin :double;
Xmax :double;
dx :double;
N :word;
R :double;
tmp :double;
E :double;
begin
Xmin:=1;
Xmax:=10;
dx:=0.5;
E:=0.00001;
writeln;
writeln('Xmin = ':8, Xmin:10:6);
writeln('Xmax = ':8, Xmax:10:6);
writeln('dx = ':8, dx:10:6);
writeln('E = ':8, E:10:6);
writeln;
writeln('+-----------------------+--------------+----------------------+');
writeln('l Znachenie argumenta X l Summa ryda R l Chislo Chlenov Summi l');
writeln('+-----------------------+--------------+----------------------+');
X:= Xmin;
while (x<= Xmax) do
begin
N:= 0;
factor:= 1;
dividend:= 1;
R:= 0;
repeat
tmp:= dividend/factor;
if tmp < E then break;
R:= R+tmp;
N:= N+1;
factor:= factor*N;
dividend:= dividend*X;
until false;
writeln('l ', X:12:1,' l ', R:12:2,' l ', N:10, ' l ');
X:= X+dx;
end;
writeln('+-----------------------+--------------+----------------------+');
ReadLn;
end.
Я не проверял самО решение задачи, а лишь подчистил форматы вывода и добавил останов в конце. Попробуйте.