Примеры программ

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

В данном разделе содержатся примеры программ на PascalABC.NET от элементарных до сложных. Часть из них посвящена алгоритмам, реализованным на языке Паскаль, другая часть - особенностям языка и библиотек PascalABC.NET.

Примеры разбиты на следующие группы:

Особенности языка

В данном разделе приводятся примеры, иллюстрирующие особенности языка PascalABC.NET.

Стандартные модули В данном разделе рассматриваются примеры использования графических модулей, модулей школьных исполнителей Робот и Чертежник, студенческих учебных модулей Arrays и Collections. Раздел также пока находится в разработке.
Начинающим
(программы и алгоритмы)
Данный раздел можно прекомендовать для начального изучения языка. Здесь приводятся простейшие классические алгоритмы с использованием основных конструкций языка Паскаль. Материалы раздела могут быть использованы для подготовки к ЕГЭ по информатике, для самостоятельного изучения, а также в качестве справочника.
Программы и алгоритмы для студентов Данный раздел предназначен для студентов и реализуется силами студентов 1 курса ИТ. В этом разделе будут располагаться программы и алгоритмы, возникающие в курсе "Основы программирования" (ИТ, 1 курс)
Алгоритмы средней сложности Данный раздел находится в разработке.

 

Новости

30.08.14. Встроенный задачник PT4 обеспечивает теперь автоматический многократный запуск программы.

15.02.14. Вышла версия PascalABC.NET 2.2. Многократно ускорено обращение к символам строки на запись

29.12.13. Суммарное количество ежедневных посетителей, запускавших программы в веб-среде хотя бы раз в день, достигло 1 миллиона!

30.09.13. Впервые с начала проекта - более 1000 скачиваний PascalABC.NET за день!

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

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

type
  Node<T> = class
    data: T;
    left, right: Node<T>;
    constructor (d: T; l, r: Node<T>);
    begin
      data := d;
      left := l;
      right := r;
    end;
  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);
  write(r.data, ' ');
  InfixPrintTree(r.right);
end;

const N = 20;

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