Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

vtoroy_semestr_individualnoe_1

.pdf
Скачиваний:
32
Добавлен:
28.03.2015
Размер:
188.18 Кб
Скачать

ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ №1

Время выполнения и сдачи: 1–3 неделя (09.02 – 01.03)

Цель работы. Развить навыки конструирования алгоритмов на основе методов расширения неиндуктивной функции, инварианта цикла и т.п. Закрепить опыт создания подпрограмм и их локального тестирования. Приобрести и развить навыки использования типизированных файлов для хранения обрабатываемой информации.

Содержание задания. Задание состоит из двух частей и выполняется парами. В рамках первой части задания каждый студент должен написать модуль, содержащий подпрограмму обработки последовательностей и программугенератор, которая должна позволять создавать тестовые файлы для подпрограммы с разными параметрами. Написанное откомпилировать, протестировать и предъявить преподавателю. Для второй части предоставить напарнику программугенератор тестовых файлов, откомпилированный модуль с подпрограммой (tpu-файл для среды Turbo Pascal, ppu-файл для среды Free Pascal, pcu – для Pascal ABC) и полную спецификацию подпрограммы. Вторая часть задания заключается в тестировании подпрограммы своего напарника с помощью различных видов внешнего тестирования. Тестирующий должен написать программу, которая будет использовать предоставленный модуль, и вызывать подпрограмму вычисления, предварительно определив файл, с которым будет работать подпрограмма. По окончании тестирования показать преподавателю результаты и составленное о подпрограмме напарника мнение.

Рекомендации к программе:

Требования к межпрограммному интерфейсу стандартны (см. индивидуальное задание №2 в первом семестре).

При написании тестирующих программ предлагается использовать наряду с вводом автоматическую генерацию тестовых данных для больших объемов информации. Например, длина тестируемой последовательности может вводиться с клавиатуры, а сама последовательность генерироваться автоматически. Генератор должен использовать датчик псевдослучайных чисел и закон распределения данных, необходимых для тестирования. Параметры закона могут вводиться с клавиатуры. Например, для задачи о средней длине слова можно задать вероятность разделителя, а множества разделителей и букв, их условные законы распределения выбрать произвольные. Несмотря на случайный характер, автоматически генерируемые тестовые данные должны учитывать не только спецификацию задачи, но и алгоритм ее решения, и его программную реализацию. Выполнение этих требований позволяет существенно сократить время тестирования. Однако не следует ограничиваться только случайными тестами, даже если они используют весьма сложные и разнообразные законы распределения, так как в основном производят нормальные условия эксплуатации программ. Для обеспечения граничных испытаний и испытаний в исключительных ситуациях обычно используются контролируемые данные, вводимые из файлов, подготовленных вручную и/или функционально. При этом не следует забывать и о так называемых нулевых примерах, которые могут иметь место в реальных условиях эксплуатации программного обеспечения. В некоторых случаях в процессе испытаний в тестируемые программы вносятся изменения, обеспечивающие специальный характер поведения обрабатываемых данных. В заключение еще раз отметим, что никакое тестирование не может гарантировать правильности программы, поэтому ее верификация другими методами остается актуальной.

Требования к первой части (10 баллов):

1. Алгоритм вычисления реализован с помощью метода индуктивной функции.

2.Основная подпрограмма реализована как функция, возвращающая код завершения. Все возможные ошибки должны быть обработаны (в том числе недопустимые входные параметры, неверное содержимое файла и т.д.). К подпрограмме есть полная спецификация в виде комментария под заголовком.

3.Программа-генератор тестовых файлов использует некоторые доступные для изменения при тестировании параметры, которые позволяют сгенерировать файл с заданными характеристиками (например, если считается средняя длина символьного представления целого числа со знаком в последовательности символов, то в качестве параметров можно взять количество символов в файле, суммарную длину символьных представлений всех чисел и их количество).

Требования ко второй части (10 баллов):

1.Тестирующая программа получает из командной строки имя текстового файла (text), в который будут записываться результаты; спрашивает у пользователя имя файла, из которого будет читаться последовательность; вызывает подпрограмму и выводит в заданный текстовый файл результаты ее работы (т.е. сведения о возникших ошибках, значения выходных параметров и т.д.) с необходимыми комментариями. При очередном запуске тестирующей программы, если текстовый файл задан в командной строке, то результаты нового запуска будут дописаны в него, в противном случае, будет создан новый файл, имя которого спрашивается с клавиатуры.

2.Применены все виды внешнего тестирования. При тестировании функциональности проверены особые случаи.

3.Результаты работы всех тестов представлены в текстовом файле.

Варианты задания №1

1.Дана последовательность символов, заданная в типизированном файле. Методом индуктивной функции определить число вхождений подпоследовательности, заданной в строке символов. Все символы в строке различны.

2.Дана последовательность целых чисел, заданная в типизированном файле. Методом индуктивной функции определить число нестрогих локальных максимумов в последовательности.

3.Дана последовательность символов, заданная в типизированном файле. Методом индуктивной функции вычислить среднюю длину символьных представлений натуральных чисел, начинающихся с 9.

4.Дана последовательность вещественных чисел, заданная в типизированном файле. Методом индуктивной функции вычислить среднюю длину связных строго возрастающих подпоследовательностей.

5.Дана последовательность символов, заданная в типизированном файле. Методом индуктивной функции определить количество вхождений в последовательность цифры, которая встречается в последовательности максимальное число раз.

6.Дана последовательность символов, заданная в типизированном файле. Методом индуктивной функции определить среднюю длину связной подпоследовательности, состоящей из четного числа пробелов.

7.Дана последовательность вещественных чисел, заданная в типизированном файле. Методом индуктивной функции вычислить среднюю длину связных подпоследовательностей отрицательных чисел.

8.Дана последовательность символов, заданная в типизированном файле. Методом индуктивной функции определить среднюю длину подпоследовательностей, состоящих из четных цифр.

9.Дана последовательность символов, заданная в типизированном файле. Методом индуктивной функции вычислить значение средней длины целого числа со знаком.

10.Дана последовательность символов, заданная в типизированном файле. Методом индуктивной функции вычислить значение средней длины идентификатора.

11.Дана последовательность вещественных чисел, заданная в типизированном файле. Методом индуктивной функции при известном значении аргумента вычислить значение первой производной многочлена, коэффициенты которого записаны по убыванию степеней многочлена.

12.Дана последовательность символов, заданная в типизированном файле. Методом индуктивной функции вычислить значение средней длины связной подпоследовательности цифр.

13.Дана последовательность символов, заданная в типизированном файле. Методом индуктивной функции подсчитать количество различных символов.

14.Дана последовательность вещественных чисел, заданная в типизированном файле. Методом индуктивной функции при известном значении аргумента вычислить значение многочлена, коэффициенты которого записаны по убыванию степеней многочлена.

15.Дана последовательность целых чисел, заданная в типизированном файле. Методом индуктивной функции вычислить значение средней длины связной подпоследовательности чисел, кратных 5.

16.Дана последовательность целых чисел, заданная в типизированном файле. Методом индуктивной функции вычислить значение средней длины связных подпоследовательностей нечетных чисел.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]