Разработка подпрограммы 6




Спецификация

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

2. Имя: chered

3. Вид: функция

4. Перечень параметров

Таблица 21.12. Перечень параметров

Статус Назначение Имя Тип Вид
Вxoд Исходное слово s string параметр-значение
Возвращаемый результат Признак чередования букв(истина – гласные и согласные чередуются, ложь –нет) chered boolean -

5. Заголовок п/п: function chered(s:string):boolean;

Метод решения

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

chered:=true;

  1. Определение ожидающейся буквы. Если первый символ принадлежит множеству гласных букв (множество mn1), то ожидаемая буква – согласная (переменной next присваивается значение истина), в противном случае ожидаемая буква – гласная (переменной next присваивается значение ложь)

;

  1. Перебор всех остальных букв, начиная со 2 по конец слова. Если очередная буква принадлежит множеству согласных букв (mn2) и ожидалась согласная, то следующая ожидаемая – гласная буква (next присваивается ложь). В противном случае, если очередная буква принадлежит множеству гласных букв (mn1) и ожидалась гласная, то следующая ожидаемая – согласная буква (next присваивается истина); в противном случае чередование нарушено (результату функции присваивается ложь)

Информационная модель


Таблица 21.13. Информационная модель

Назначение Имя Тип
Индекс символа в строке i integer
Признак ожидаемой буквы (истина – ожидается согласная буква, ложь – гласная) next boolean

Программная модель

function chered(s:string):boolean;

const mn1:tsetchar=['А','И','Е','Ё','О','У','Э','Ы','Ю','Я',

'а','и','е','ё','о','у','э','ы','ю','я'];

mn2:tsetchar=['Б','В','Г','Д','Ж','З','Й','К','Л','М','Н',

'П','Р','С','Т','Ф','Х','Ц','Ч','Ш','Щ',

'б','в','г','д','ж','з','й','к','л','м','н',

'п','р','с','т','ф','х','ц','ч','ш','щ'];

var i:integer;

next:boolean;

begin

chered:=true;

if s[1] in mn1 then next:=true else next:=false;

for i:=2 to length(s) do

if (s[i] in mn2) and next then

next:=false

else

if (s[i] in mn1) and not next then

next:=true

else chered:=false

end;

Разработка подпрограммы 7

Спецификация

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

2. Имя: udalen

3. Вид: процедура

4. Перечень параметров

Таблица 21.14. Перечень параметров

Статус Назначение Имя Тип Вид
Вxoд/выход Обрабатываемая строка слов s string параметр-переменная

5. Заголовок п/п: procedure udalen(var s:string);

Метод решения

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

1.1 ;

1.2.

Информационная модель

Таблица 21.16. Информационная модель

Назначение Имя Тип
Номер слова в строке k integer
Позиция начала слова в строке beg integer
Количество символов в слове kol integer

Программная модель

procedure udalen(var s:string);

var k,beg,kol:integer;

begin

k:=1;

while k<=kolslov(s) do

if not chered(slovo(s,k,beg,kol)) or

not simmetr(slovo(s,k,beg,kol))then

delete(s,beg,kol+1)

else k:=k+1;

end;

 

Разработка программы

Метод решения

  1. Если при вводе строки ее символы не русские буквы и не пробелы, то строка задана неверно – сообщаем об этом пользователю и прекращаем выполнение программы

;

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

udalen(s);

  1. Выводим результирующую строку. Если она пуста, то сообщаем об этом.

Информационная модель

Таблица 21.17. Информационная модель

Статус Назначение Имя Тип
Вход/выход Строка слов s string

Набор тестов

Исходная строка Ожидаемый результат
  'МИМО ЦИРКА МИМ ИМАМ ОГОГО ОСЕЛ ЛЕТЕЛ.КОК' 'МИМ ОГОГО ЛЕТЕЛ'
  'ПРООРП ПРИВЕТ.' Пустая строка


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-11-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: