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», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

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

Интервал:

Закладка:

Сделать

При попытке подключения новой группы заданий, содержащей вызов функции CurrentTest, к задачнику более ранней версии (до 4.10 включительно) функция CurrentTest всегда возвращает 0.

Использование данной функции позволяет гарантировать включение в тестовые наборы специальных вариантов тестов (связанных с ситуациями, требующими особой обработки). В предыдущих версиях конструктора эти варианты выбирались только с применением датчика случайных чисел; это могло приводить к тому, что на протяжении требуемой серии тестов (которая не может превышать 9) особые варианты ни разу не генерировались. Используя функцию CurrentTest, особые варианты можно явно связать с тестовым испытанием, имеющим определенный номер. Наряду с подобными фиксированными" испытаниями при формировании задания следует предусматривать и испытания, при которых варианты тестов по-прежнему выбираются случайным образом; это позволит избежать ситуации (впрочем, маловероятной), при которой учащийся будет запускать разные программы для тестовых испытаний с различными порядковыми номерами. Необходимо также учитывать, что в ряде ситуаций функция CurrentTest возвращает особое значение 0, при котором также целесообразно выбирать тестовые варианты случайным образом.

В качестве примера приведем начальную часть процедуры, реализующей задание Array32, в котором требуется найти номер первого локального минимума. Очевидно, в данном задании следует предусмотреть особые варианты тестов, в которых первым локальным минимумом является первый или последний элемент исходного набора (а также промежуточный вариант", в котором первый локальный минимум расположен во внутренней части набора). Ранее это обеспечивалось следующим образом (здесь n -- размер исходного набора, k -- порядковый номер первого локального минимума):

n := 5 + Random(6);

caseRandom(4) of

0: k := 1;

1: k := n;

2, 3: k := 2 + Random(n-2);

end;

При предусмотренных шести тестовых испытаниях вполне могло оказаться, что функция Random(4) ни разу не примет значения 0 или 1, и тем самым один или оба особых случая не будут протестированы. Возможна (хотя и менее вероятна) ситуация, при которой в течение всех испытаний ни разу не будут получены значения 2 и 3; тем самым не будет испытан промежуточный вариант". В то же время было бы желательно, чтобы ошибка алгоритма, связанная с неверной обработкой одной из возможных ситуаций, была выявлена задачником автоматически, до просмотра преподавателем текста программы.

В новом варианте процедуры после первого оператора case был добавлен второй, в котором для некоторых тестовых испытаний вариант для значения k задается явным образом:

n := RandomN(5, 10);

caseRandom(4) of

0: k := 1;

1: k := n;

2, 3: k := RandomN(2, n-1);

end;

caseCurrentTest of

2: k := n;

3: k := RandomN(2, n-1);

5: k := 1;

end;

При этом для первого, четвертого и шестого (последнего) тестового испытания, а также при демонстрационных запусках, значение k по-прежнему выбирается случайным образом.

Заметим, что в новом варианте была также использована функция RandomN, добавленная в версию 4.11 конструктора.

После включения функции CurrentTest в конструктор были соответствующим образом модифицированы (без изменения формулировок) все группы заданий, включенные в базовый вариант задачника версии 4.11.

functionRandomN(M, N: integer): integer;

functionRandomR(A, B: real): real;

Вспомогательные функции, которые могут использоваться при генерации исходных данных с применением датчика случайных чисел. В явной инициализации датчика нет необходимости, поскольку подобная инициализация выполняется в процедуре CreateGroup. Указанные функции позволяют выполнять единообразную генерацию данных при использовании любого языка, поддерживаемого конструктором учебных заданий.

Функция RandomN(M, N) возвращает псевдослучайное целое число, лежащее в диапазоне от M до N -1 включительно . Если указанный диапазон пуст, то функция возвращает M .

Функция RandomR(A, B) возвращает псевдослучайное вещественное число, лежащее на полуинтервале [ A , B ). Если указанный полуинтервал пуст, то функция возвращает A .

При генерации заданий можно применять и стандартную функцию Random языка Pascal.

functionCenter(I, N, W, B: integer): integer;

Вспомогательная функция, которая позволяет размещать по центру экранной строки набор из N элементов данных одинаковой ширины. Эта функция возвращает горизонтальную координату, начиная с которой следует выводить I-й элемент набора (I меняется от 1 до N) при условии, что ширина каждого элемента равна W позициям, а между элементами надо указывать B пробелов. Функция Center обычно используется в качестве параметра X в процедурах групп Data и Result при выводе однотипных наборов данных (в частности, элементов массива).

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

Интервал:

Закладка:

Сделать

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

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


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

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

x