W Cat - Описание языка PascalABC.NET

Здесь есть возможность читать онлайн «W Cat - Описание языка PascalABC.NET» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, Детская образовательная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Описание языка PascalABC.NET: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Описание языка PascalABC.NET»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

PascalABC.NET — это язык программирования Паскаль нового поколения, включающий классический Паскаль, большинство возможностей языка Delphi, а также ряд собственных расширений. Он реализован на платформе Microsoft.NET и содержит все современные языковые средства: классы, перегрузку операций, интерфейсы, обработку исключений, обобщенные классы и подпрограммы, сборку мусора, лямбда-выражения, средства параллельного программирования.
PascalABC.NET является мультипарадигменным языком: на нем можно программировать в структурном, объектно-ориентированном и функциональном стилях.
PascalABC.NET — это также простая и мощная интегрированная среда разработки, поддерживающая технологию IntelliSense, содержащая средства автоформатирования, встроенный отладчик и встроенный дизайнер форм.

Описание языка PascalABC.NET — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Описание языка PascalABC.NET», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Задание, которое мы реализуем, дублирует задание Dynamic30, посвященное преобразованию односвязного списка в двусвязный (подгруппа Динамические структуры данных: двусвязный список"). Оформим два варианта этого задания в виде процедур MakerDemo8 и MakerDemo8Obj:

var WrongNode: TNode;

procedure MakerDemo8Data;

var

i, n: integer;

p, p1, p2: PNode;

begin

if RandomN(1, 4) = 1 then

n := 1

else

n := RandomN(2, 9);

case CurrentTest of

2: n := 1;

4: n := RandomN(2, 9);

end;

new(p1);

p1^.Data := RandomN(10, 99);

p1^.Prev := nil;

p2 := p1;

for i := 2 to n do

begin

new(p);

p^.Data := RandomN(10, 99);

p^.Prev := p2;

p2^.Next := p;

p2 := p;

end;

p2^.Next := nil;

SetPointer(1, p1);

SetPointer(2, p2);

ResultP('Последний элемент: ', 2, 0, 2);

ResultList(1, 0, 3);

ShowPointer(2);

DataP(1, 0, 2);

p := p1;

for i := 1 to n do

begin

p^.Prev := @WrongNode;

p := p^.Next;

end;

DataList(1, 0, 3);

ShowPointer(1);

end;

procedure MakerDemo8;

begin

CreateTask('Динамические структуры данных: двусвязный список');

TaskText('Дан указатель~{P}_1 на начало непустой цепочки ' +

'элементов-записей типа TNode,', 0, 1);

TaskText('связанных между собой с помощью поля Next. Используя ' +

'поле Prev записи TNode,', 0, 2);

TaskText('преобразовать исходную (\Iодносвязную\i) цепочку ' +

'в \Iдвусвязную\i, в которой каждый', 0, 3);

TaskText('элемент связан не только с последующим элементом ' +

'(с помощью поля Next),', 0, 4);

TaskText('но и с предыдущим (с помощью поля Prev). Поле Prev ' +

'первого элемента положить', 0, 5);

TaskText('равным \N. Вывести указатель на последний элемент ' +

'преобразованной цепочки.', 0, 0);

MakerDemo8Data;

end;

procedure MakerDemo8Obj;

begin

CreateTask('Динамические структуры данных: двусвязный список');

TaskText(

'Дана ссылка~{A}_1 на начало непустой цепочки элементов-объектов типа Node,'#13 +

'связанных между собой с помощью своих свойств Next. Используя свойства Prev'#13 +

'данных объектов, преобразовать исходную (\Iодносвязную\i) цепочку в \Iдвусвязную\i,'#13 +

'в которой каждый элемент связан не только с последующим элементом (с помощью'#13 +

'свойства Next), но и с предыдущим (с помощью свойства Prev). Свойство Prev'#13 +

'первого элемента положить равным \O. Вывести ссылку~{A}_2 на последний'#13 +

'элемент преобразованной цепочки.'

);

SetObjectStyle;

MakerDemo8Data;

end;

Анализируя приведенные варианты процедур, легко заметить, что они отличаются лишь деталями формулировки задания. Алгоритмы генерации исходных и контрольных данных для традиционного и объектного вариантов совпадают, поэтому они выделены в отдельную вспомогательную процедуру MakerDemo8Data. В то же время представления динамических структур и связанных с ними указателей или объектов будут отличаться (см. рисунки, приведенные ниже). Необходимые корректировки в представлении динамических структур выполняются задачником автоматически, с учетом используемого языка программирования.

Однако для языка PascalABC.NET требуемую настройку необходимо выполнить явно, так как в нем можно использовать оба варианта представления динамических структур: традиционный (как для обычного Паскаля в системах Delphi и Free Pascal Lazarus) и объектный (как в языках C#, Visual Basic .NET, Python и Java). Для того чтобы представление динамических данных при выполнении задания в среде PascalABC.NET соответствовало объектному варианту, следует в начале процедуры, реализующей задание (перед вызовом любых процедур, связанных с указателями и динамическими структурами), вызвать специальную процедуру без параметров SetObjectStyle. Для остальных языков данная процедура не выполняет никаких действий.

Обратите внимание на возможность использования в формулировке задания более 5 экранных строк. Строки, которые не умещаются в области формулировки задания, следует добавлять к заданию процедурой TaskText, указывая в качестве последнего параметра процедуры число 0 (см. процедуру MakerDemo8). Еще проще задавать длинные" формулировки заданий с помощью нового варианта процедуры TaskText с единственным строковым параметром, содержащим все строки формулировки (см. процедуру MakerDemo9). При наличии подобных строк в окне задачника (если окно находится в режиме с фиксированной компоновкой) слева от области формулировки появятся кнопки, обеспечивающие прокрутку формулировки задания; кроме этих кнопок для прокрутки можно также использовать стандартные клавиши, в частности, клавиши со стрелками.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Описание языка PascalABC.NET»

Представляем Вашему вниманию похожие книги на «Описание языка PascalABC.NET» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Catie Disabato - The Ghost Network
Catie Disabato
Отзывы о книге «Описание языка PascalABC.NET»

Обсуждение, отзывы о книге «Описание языка PascalABC.NET» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x