Главная arrow Статьи arrow Особенности языка arrow Туториал по работе с длинными целыми
  
PascalABC.NET
     

Главное меню
Главная
Скачать
О языке Паскаль
Что нового
Скриншоты
Web-среда разработки
Описание языка
Школьнику - задачи ЕГЭ
Статьи
Доклады и публикации
Примеры программ
Разработчики
Ссылки
Wiki
Форум
Гостевая книга
Случайная программа
// Пузырьковая сортировка
const N = 10;
var
  a: array [1..N] of integer;
begin
  for var i:=1 to N do
    a[i] := Random(100);
  for var i:=1 to N do
    write(a[i],' ');
  writeln;
//-----------------------------
  for var i:=n downto 2 do
  for var j:=1 to i-1 do
    if a[j+1]<a[j] then
      Swap(a[j+1],a[j]);
//-----------------------------
  write('После сортировки: ');
  for var i:=1 to N do
    write(a[i],' ');
end.
Баннеры

Рейтинг@Mail.ru

ptaskbook.com


Туториал по работе с длинными целыми
Автор: Михалкович Станислав   
08.02.2011 11:52

Тип System.Numeric.BigInteger в стандартной поставке .NET появился лишь в версии 4.0. К счастью, имеется множество сторонних реализаций. Рассмотрим реализацию, опубликованную здесь.

Поскольку она опубликована в виде исходного текста, я собрал на ее основе сборку BigInteger.dll - ее требуется скачать и поместить в каталог программы.

После этого можно приступать к программированию.

Вот простая программа:

{$reference BigInteger.dll}
 
uses
  System.Sfedu.Numeric;
 
begin
  var a := new BigInteger('8968565765674744564654');
  var b := new BigInteger(1235456436);
  writelnFormat('{0} {1} {2} {3}', a div b, a mod b, a + b, a - b);
  writelnFormat('{0} {1} {2} {3}', a + 1, a / 2, a * 2, a < b);
  writelnFormat('{0} {1} {2}', a.Negate, a=0, BigInteger.ToInt64(b));
 
  a := 1;
  for var i:=1 to 100 do
    a := a * i;
  writeln(a);  
end.

Операции типа += работать, естественно, не будут.

 

Добавить комментарий


Защитный код
Обновить






  © 2007-2012, PascalABCNET Team Южный федеральный университет (РГУ)