Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Первый этап работы




Пример оформления задачи

Задание

Напишите программу, выполняющую кодирование входной cтроки перестановкой символов по правилу 2-3-1.

Соображения

Необходимо представить себе поведение программы в целом. Хотим ли мы получить программу кодирования одной единственной строки или желателен диалоговый режим управления кодированием группы строк, каждая из которых вводится после некоторого приглашающего сообщения? Из общих соображений простоты общения и проверки работоспособности второй вариант (циклический ввод) представляется более предпочтительным.

Выводы

Первый раздел требований (спецификации) может быть сформулирован так:

1. Необходимо разработать программу, выполняющую следующие функции:

1.1. Ввод строки символов с клавиатуры.

1.2. Преобразование входной строки перестановкой символов в порядке 2-3-1.

1.3. Вывод преобразованной строки на экран.

1.4. Программа должна обрабатывать строки последовательно, каждый раз предупреждая пользователя о необходимости очередного ввода. Обработка должна быть закончена при вводе пользователем пустой строки.

Соображения

Теперь необходимо принять решения по основным позициям внешнего проекта программы.

Что такое входная строка (последовательность символов, ограничения на входной алфавит)?

Существенно ли деление строки на слова (пробел, как спецсимвол алфавита, разделитель/ограничитель слов)?

Может ли в строку (в слово) быть включен символ, не имеющий адекватного представления на клавиатуре, или символ-разделитель как часть слова?

Существует ли ограничение на длину строки?

Как вводится входная строка (ограничитель строки и признак конца ввода)?

Как выходная (преобразованная) строка сопоставляется с входной (формат вывода)?

Как производится преобразование при длине входной строки, не кратной трем?

Каждый автор может принять собственное решение по этим пунктам. В любом случае свои решения в рамках лабораторного практикума необходимо согласовать с преподавателем.

Выводы

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

2. Внешний проект

2.1. Вход

2.1.1. Входная строка должна вводиться с клавиатуры после вывода на экран приглашающего сообщения.

2.1.2. Входная строка представляет собой последовательность слов, разделенных (ограниченных) символами разделителями ",", ".", " " (запятая, точка, пробел). Признаком конца ввода строки с клавиатуры является нажатие клавиши <Enter>. Длина строки не должна превышать строки экрана (80 символов).

2.1.3. Слово входной строки может состоять из букв (русского и латинского алфавита) и/или цифр.

2.1.4. Первому слову в строке может предшествовать последовательность пробелов.

2.1.5. Признаком конца слова является любой символ ограничитель (См.

2.1.2). Последнее слово строки может не иметь за собой ограничителя, если его последний символ есть последний символ строки.

2.1.6. Ввод пустой строки является указанием пользователя на необходимость закончить работу программы.

2.2. Вывод

2.2.1. Сообщения программы. Сообщения программы выводятся с новой строки. Курсор после вывода устанавливается на новую строку.

2.2.1.1. "Введите строку для кодирования" - приглашающее сообщение программы. Указывает на необходимость ввода с клавиатуры входной строки.

2.2.1.2. "Работа закончена" - завершающее сообщение программы. Выводится после ввода пустой строки. Работа программы заканчивается.

2.2.1.3. "Ошибка во входной строке" - информационное сообщение программы. Выводится после ввода входной строки, не соответствующей пункту 2.1. Работа программы продолжается с ввода новой строки.

2.2.2. Результат

2.2.2.1. Выходная строка представляет собой последовательность преобразованных слов, организованную (в смысле разделителей и ограничителей) идентично входной строке.

2.2.2.2. Преобразованные слова выходной строки получаются из соответствующих слов входной строки применением к ним процедуры кодирования.

2.2.2.3. При выводе на экран выходная строка должна располагаться строго под входной (разделитель под разделителем, слово под словом).

3. Функция преобразования

3.1. Преобразование входной строки. Преобразованию подвергаются только правильные строки.

3.1.1. Преобразование слов входной строки производится путем перестановки каждой тройки символов слова в порядке 2-3-1.

3.1.2. Если в слове количество символов не кратно трем, то преобразование последних символов слова должно производиться по сокращенной схеме.

3.1.2.1. Последние два символа переставляются 2-1.

3.1.2.1. Единственный последний символ слова остается на своем месте.

3.1.3. Символы разделители (ограничители) слов остаются в выходной строке на тех же местах, которые они занимали во входной строке.

3.2. Контроль входной строки

3.2.1. Входная строка считается правильной, если она соответствует требованиям, описанным в п.п.2.1.

3.2.2. Если обнаружено, что входная строка не соответствует п.п.2.1., то должно выдаваться сообщение 2.2.1.3. и снова должен запрашиваться ввод входной строки.

4. Требования по проверке функций программной реализации

4.1. Проверить, что при правильном вводе строки производится ее преобразование в соответствии с п.п. 3.1.

4.1.1. В том числе проверить, что правильно обрабатывается строка, начинающаяся с пробелов.

4.1.2. В том числе проверить, что правильно обрабатывается строка, содержащая слова, длина которых не кратна трем.

4.1.3. В том числе проверить, что правильно обрабатывается (остается без изменения) строка, состоящая из одних разделителей.

4.2. Проверить, что при вводе пустой строки производится вывод сообщения 2.3.2 и выполнение программы заканчивается.

4.3. Проверить, что выводится сообщение 2.3.3 и повторяется приглашение к вводу, как реакция программы на неправильный ввод строки.

4.3.1. Строка содержит символы, отличные от пробелов перед первым словом.

4.3.2. В строке встретился недопустимый символ алфавита (недопустимый разделитель слов или недопустимый символ в слове).

4.3.3. Длина строки превышает 80 символов (не считая признака конца строки).

4.4. Проверить, что выходная строка располагается с начала строки экрана и строго под значением входной строки, в том числе при длине строки строго равной 80 символам.

Замечания

В данном варианте требования по проверке функций программной реализации сгруппированы в соответствии с описанием интерфейса (Раздел

2). В некоторых случаях удобнее разрабатывать и структурировать требования по проверке в соответствии с описанием функций проектируемой системы (Раздел 3).




Поделиться с друзьями:


Дата добавления: 2014-12-26; Просмотров: 501; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.