Осипов А.В. «PascalABC.NET: введение в современное программирование»

Просмотров: 11115

обложка

Материалы книги будет выкладываться поэтапно по главам

Обсуждение книги на форуме

 

Части книги

Тексты программ, приводимых в книге (17.05.19)

 

Лицензия

Авторские права на публикуемые материалы принадлежат автору книги Осипову Александру Викторовичу. Публикация данных материалов не предполагает извлечения какой-либо коммерческой выгоды.

Публикуемые материалы защищены действующим законодательством об авторском праве. Все предусмотренные этим законодательством права на опубликованные материалы принадлежат их автору.

Официальным источником для распространения материалов является Интернет-сайт http://pascalabc.net, ссылка на который при цитировании обязательна. Разрешается свободно копировать и распространять исключительно на безвозмездной основе опубликованные материалы при условии сохранения их в неизменном виде и с указанием авторства. Передача материалов третьим лицам разрешается при условии сохранения в них страницы с настоящей лицензией. Исключение делается для учебных заведений: при подготовке раздаточного материала допускается страницу с лицензией не включать. Любые другие способы распространения опубликованных материалов при отсутствии письменного разрешения автора запрещены.

Запрещается любым организациям осуществлять любого рода лицензирование опубликованного материала и осуществлять какую бы то ни было иную связанную с авторскими правами деятельность без письменного разрешения автора.

Новости

Случайная программа

// Создание случайного идеально сбалансированного 
// бинарного дерева и его инфиксный обход
// Уровень сложности: 2

type
  Node<T> = auto class
    data: T;
    left, right: Node<T>;
  end;

function CreateTree(n: integer): Node<integer>;
begin
  if n <= 0 then
    Result := nil
  else
    Result := new Node<integer>(
      Random(100),
      CreateTree((n-1) div 2),
      CreateTree(n-1 - (n-1) div 2));
end;

procedure InfixPrintTree<T>(r: Node<T>);
begin
  if r = nil then
    exit;
  InfixPrintTree(r.left);
  Print(r.data);
  InfixPrintTree(r.right);
end;

const N = 20;

begin
  var root := CreateTree(N);
  InfixPrintTree(root);
end.