Показать сообщение отдельно
Старый 12.11.2010, 10:42   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от 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.
Я не проверял самО решение задачи, а лишь подчистил форматы вывода и добавил останов в конце. Попробуйте.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070