Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_Sys_05_00.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
162.3 Кб
Скачать

5.4.3. Общие объявления

В функции main() применяются библиотечные функции ввода-вывода и функция сравнения строк, так что включим в программу файлы stdio.h и string.h. Кроме того, следует включить и описание функции substr(). Хотя все эти описания нужны только для функции main(), стиль программирования на языке C требует размещения их в начале программы, вне программных блоков.

5.2.5. Отладка программы

При отладке программы в пошаговом режиме следует отслеживать:

  • правильность передачи параметров функции,

  • правильность выхода на начальный символ подстроки,

  • правильность контроля параметров,

  • правильность копирования символов,

  • правильность окончательного формирования строки-результата (достаточно распространенной ошибкой является отсутствие признака конца в строке-результате).

Следует отметить, что при наличии некоторых ошибок отладка может быть несколько неудобной за счет того, что в функции применены очень мощные операторы цикла, которые занимают одну строку. В пошаговом режиме все итерации такого цикла выполняются за один шаг. При наличии ошибок в цикле, возможно, нужно будет "разгружать" оператор цикла - переносить часть действий из заголовка цикла в его тело.

Очень важно подобрать для отладки такие входные данные, которые позволили бы убедиться в правильном функционировании программы на всех ветвях ее алгоритма. Мы при отладке этой работы использовали во всех случаях строку-источник вида: "0123456789". Такой вид позволяет легко установить по выводу на экран, какое преобразование было выполнено функцией. Параметры pos и len мы задавали в таких вариантах:

pos=2, len=3

- проверка правильности работы при правильных заданиях параметров

pos=0,len=4

- подстрока начинается с начала строки

pos=6, len=4

- подстрока заканчивается на конце строки

pos=0, len=10

- подстрока захватывает всю строку

pos=3, len=0

- подстрока нулевой длины

pos=8, len=4

- особый случай: подстрока будет иметь меньшую длину, чем задано

pos=3, len=-2

- ошибка: отрицательная длина

pos=-1, len=3

- ошибка: отрицательная начальная позиция

pos=10, len=3

- ошибка: позиция начала больше длины источника

5.2.6. Результаты работы программы

Результаты работы программы при приведенных выше входных данных такие:

pos=2, len=3

s2=>>0123456789<<

s1=>>234<<

R=0

pos=0, len=4

s2=>>0123456789<<

s1=>>0123<<

R=0

pos=6, len=4

s2=>>0123456789<<

s1=>>6789<<

R=0

pos=0, len=10

s2=>>0123456789<<

s1=>>0123456789<<

R=0

pos=3, len=0

s2=>>0123456789<<

s1=>><<

R=0

pos=8, len=4

s2=>>0123456789<<

s1=>>89<<

R=1

pos=3, len=-2

s2=>>0123456789<<

s1=>><<

R=-1

pos=-1, len=3

s2=>>0123456789<<

s1=>><<

R=-1

pos=10, len=3

s2=>>0123456789<<

s1=>><<

R=1

10

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