Лабораторна робота № 3 (2 сем.)
Тема : Обробка символьної інформації з використанням стандартних функцій С++.
Ціль : Придбання умінь та навичок у таких питаннях:
- використання покажчиків при розробці та налагоджуванні програм обробки символьної інформації;
- застосування функцій з бібліотеки для обробки символьних даних у програмах на C++.
/ Мотивація: З Нормативної частини змісту освітньо-професійної програми напряму підготовки
6.0804 Комп’ютерні науки:
Ø Зміст уміння, що забезпечується:
Визначати принципи організації інформаційного забезпечення комп’ютеризованих інформаційних систем в умовах технічного проектування, використовуючи інформаційну модель предметного середовища, вимоги технічного завдання на розробку системи.
(Шифр уміння: ПФ. Е.26.ЗР. Р.05 Назва змістового модуля: Шифр змістового модуля:
- Функціональні, структурні, трансформаційні, методичні аспекти інформаційного забезпечення. - ПФ. Е.26.ЗР. Р.05.01)
Ø Зміст уміння, що забезпечується:
Розробляти документацію технічного завдання на створення комп’ютерних інформаційних систем і технологій в умовах автоматизованого або неавтоматизованого проектування за допомогою комп’ютера, використовуючи відповідні програмні засоби.
(Шифр уміння ПФ. С.02.ЗП. Р.01 Назва змістового модуля: Шифр змістового модуля:
- Вимоги до документів на стадії розробки технічного завдання.
- Автоматизована підготовка та оформлення документів.
- Обробка текстової і графічної інформації.
- ПФ. С.02.ЗП. Р.01.01
- ПФ. С.02.ЗП. Р.01.02
- ПФ. С.02.ЗП. Р.01.03)
Ø Зміст уміння, що забезпечується:
Розробляти документацію на програмний продукт в умовах робочого проектування за допомогою технічних засобів, використовуючи сучасні програмні засоби підготовки документів.
(Шифр уміння ПФ. С.04.ЗП. Р.01 Назва змістового модуля: Шифр змістового модуля:
- Обробка текстової і графічної інформації - ПФ. С.04.ЗП. Р.01.03)
Ø Зміст уміння, що забезпечується:
Створювати складні документи, розробляти зміст, предметний покажчик, списки, форматувати, упорядковувати текст в процесі автоматизації оброблення текстів за допомогою сучасних технічних і програмних засобів, використовуючи текстові процесори, видавничі системи, електронні таблиці.
(Шифр уміння ПФ. С.05.ПП. Р.02 Назва змістового модуля: Шифр змістового модуля:
- Методи обробки текстової інформації. - ПФ. С.05.ПП. Р.02.01)/
Вимоги до реалізації:
1) Початкові дані вводяться з клавіатури з організацією необхідного діалогу з користувачем, використовуючи елементарне форматоване введення-виведення.
2) Використання покажчиків для доступу до елементів обробки.
3) Перетворення рядків відбувається у тій самій області пам’яті, якщо це не оговорено в умові завдання.
4) Використання вбудованих функцій роботи з рядками.
5) Якщо не оговорено окремо, слова у реченнях можуть відокремлюватись будь-якими розділовими знаками, кількість прогалин не обмежена.
6) Тестування програми провести на варіантах вхідної інформації, які передбачають різні ситуації у границях обмежень у постановці задачі. Аналіз результатів необхідно провести самостійно до демонстрації програми викладачу та зафіксувати тести у зошиті.
7) Програма повинна супроводжуватися коментарем, якій містить в собі: П. І.Б., шифр групи, повну умову завдання, примітки (якщо необхідно).
8) При наявності будь-яких обмежень на вхідну інформацію, або на алгоритм, вони повинні бути зазначені в коментарі після умови завдання.
Индивидуальные задания:
Группа А (чуть проще)
Вариант А1.
Составить и отладить программу, которая для каждого слова заданного предложения подсчитывает, сколько раз оно встречается в предложении и составляет строку с отчетом, куда одинаковые слова входят один раз.
Вариант А2.
Ввести символьную строку и выделить из нее в новую строку все слова, начинающиеся с заглавной буквы.
Вариант А3.
Составить и отладить программу, которая в заданном предложении находит и преобразует фрагмент указания цены в виде ХХ-Х. УУ соответственно в следующую форму записи: ХХ-Х грн. УУ коп.
Вариант А4.
Составить и отладить программу, которая подсчитывает в тексте число вхождений заданного слова. Если оно превышает число раз, введенных пользователем с клавиатуры, заменить первое и последнее вхождение этого слова в текст пробелами.
Вариант А5.
Составить и отладить программу, которая в заданном предложении находит и преобразует дату в виде ДД. ММ. ГГГГ соответственно в следующую форму записи: ДД <месяц> ГГГГ, где <месяц> – соответствующее номеру название месяца (в родительном падеже).
Вариант А6.
Составить и отладить программу, которая формирует результирующую строку, содержащую все последовательности цифр максимальной длины в предложении.
Вариант А7.
Составить и отладить программу, которая выделяет из заданного предложения в отдельную строку все слова, где встречается хотя бы одна буква иностранного алфавита или специальный символ.
Вариант А8.
Составить и отладить программу, которая вводит символьную строку и выделяет из неё все целые числа – только положительные или только отрицательные, в зависимости от ответа на запрос.
Вариант А9.
Составить и отладить программу, реализующую замену заданной подстроки в произвольном тексте на новую подстроку такой же длины. При этом предусмотреть возможность замены всех вхождений или оставить первое вхождение без изменений, в зависимости от ответа на запрос.
Вариант А10.
Составить и отладить программу, которая обрабатывает текст следующим образом. Считая, что количество символов в слове не превосходит десяти, определить, сколько в тексте имеется слов, состоящих из одного, двух, трех,…, десяти символов.
Вариант А11.
Составить и отладить программу, которая в произвольном тексте находит самое длинное и самое короткое слово. Если их длина отличается более чем на N единиц (вводится с клавиатуры), то оставить текст без изменения; в противном случае самое длинное слово в тексте заменить звездочками.
Вариант А12.
Составить и отладить программу, реализующую ввод символьной строки и выделение из нее всех имен файлов (согласно синтаксису MS DOS), имеющих заданное расширение, которое вводится по запросу.
Вариант А13.
Составить и отладить программу, которая подсчитывает число повторений каждого слова в тексте и выдает соответствующую информацию (для каждого экземпляра слова – один раз).
Вариант А14.
Составить и отладить программу, которая выделяет из текста в отдельную строку все слова, которые встречаются в тексте ровно один раз (в порядке их появления в тексте).
Вариант А15.
Составить и отладить программу, которая находит в тексте первую пару слов заданной длины (в порядке их появления в тексте) и подсчитывает для этой пары слов количество различий в соответствующих позициях. Если указанная пара слов не найдена – выдать сообщение.
Вариант А16.
Составить и отладить программу, которая находит в тексте длину каждого несимметричного слова и количество таких слов. Выдать соответствующие сообщения, если в тексте нет несимметричных слов.
Вариант А17.
Составить и отладить программу, которая преобразует произвольный текст, оставив между словами один пробел (без каких-либо других знаков препинания).
Вариант А18.
Составить и отладить программу, которая преобразует произвольный текст путем переворачивания (записи букв в обратном порядке) слов, имеющих четное количество букв.
Вариант А19.
Составить и отладить программу, которая преобразует произвольный текст следующим образом: если в тексте есть одинаковые слова, сократить все повторяющиеся вхождения, оставив только первую букву.
Вариант А20.
Составить и отладить программу, которая редактирует произвольный текст, удаляя из него слова, встречающиеся в тексте заданное число раз.
Вариант А21.
Составить и отладить программу, которая редактирует произвольный текст, удаляя из него слово с заданным номером (вводится по запросу). Выдать соответствующие сообщения, если слово с заданным номером в тексте отсутствует.
Группа В (чуть сложнее)
Вариант В1.
Составить и отладить программу, реализующую выбор в новую строку из заданного предложения всех слов, которые состоят из тех же букв, что и первое слово предложения (и не содержат других букв).
Вариант В2.
Составить и отладить программу, которая выбирает из текста слова, где буквы упорядочены по алфавиту, и формирует из них новую последовательность, в которой слова разделяются не менее чем одним пробелом.
Вариант В3.
Составить и отладить программу, которая в произвольном тексте находит все союзы «и» и печатает их вместе с двумя соседними словами. Определить номер предложения, в котором встречается максимальное количество «и» и напечатать его отдельно.
Вариант В4.
Составить программу, которая для каждого слова введенного предложения определяет, является ли оно целым десятичным числом (м. б. со знаком) и результат заносит в дополнительную строку.
Вариант В5.
Составить и отладить программу, которая подсчитывает количество слов, оканчивающихся на N гласных или согласных букв, где N и вид букв определяет пользователь в диалоге.
Вариант В6.
Составить и отладить программу, которая находит и выбирает в новую строку множество всех слов, которые встречаются в каждом из двух заданных предложений.
Вариант В7.
Составить и отладить программу, которая в заданном предложении преобразует цифровое представление 1- , 2-х и 3-значных чисел в словесный эквивалент (в именительном падеже).
Вариант В8.
Составить и отладить программу, которая выделяет из заданного предложения в отдельную строку все слова, где встречается хотя бы одна буква из первого слова предложения. Выделенные слова должны сопровождаться указанием их порядкового номера в предложении.
Вариант В9.
Составить и отладить программу, которая удаляет (путем сжатия) из заданного предложения все слова, где встречаются цифры, сохраняя знаки препинания.
Вариант В10.
Составить и отладить программу, которая в заданном предложении находит все пары слов, где одно является обращением другого, т. е. состоит из тех же букв, расположенных в обратном порядке. Составить строку из таких пар и вывести на экран в следующем виде:
abc – cba
прим1 – 1мирп
123 – 321
Вариант В11.
Составить и отладить программу, которая для произвольного текста формирует результирующую строку, содержащую все последовательности цифр максимальной длины в предложении с заданном номером.
Вариант В12.
Составить и отладить программу, которая выполняет следующие действия. В заданном тексте из нескольких предложений найти самое длинное и самое короткое слово. Если они принадлежат одному и тому же предложению, заменить их в тексте звездочками.
Вариант В13.
Составить и отладить программу, которая редактирует заданное предложение, удаляя из него слова, которые встречаются в предложении более одного раза путем «сжатия» текста.
Вариант В14.
Составить и отладить программу, реализующую замену заданной подстроки в произвольном тексте на новую, более длинную подстроку.
Вариант В15.
Составить и отладить программу, которая обрабатывает текст, содержащий сведения о сотрудниках, записанные по следующему образцу: фамилия имя отчество, фамилия имя отчество, ..., фамилия имя отчество. Необходимо исключить из текста информацию об однофамильцах.
Вариант В16.
Ввести символьную строку и произвести в ней корректировку всех телефонных номеров, относящихся к АТС №N и имеющих шесть цифр, записанных по две цифры через дефис. N вводится с клавиатуры. Изменение заключается в дополнении номера до семи цифр путем вставки перед первой цифрой (равной N) новой цифры, которая вводится по запросу (она одинакова для всех телефонных номеров данной АТС). Например, 45-57-23 преобразуется в 745-57-23.
Вариант В17.
Составить и отладить программу, которая в произвольном тексте из нескольких предложений находит в каждом предложении самое длинное слово и инвертирует его, т. е. переставляет буквы этого слова в обратном порядке.
Вариант В18.
Составить и отладить программу, которая находит и выбирает в новую строку самое длинное общее слово двух заданных предложений.
Вариант В19.
Составить и отладить программу, реализующую замену заданной подстроки в произвольном тексте на новую, более короткую подстроку. При этом предусмотреть возможность «сжатия» текста либо заполнения освободившегося места пробелами, в зависимости от ответа на запрос с терминала.
Вариант В20.
Составить и отладить программу, которая находит в каждом предложении текста самое короткое и самое длинное слово и меняет их местами в этом предложении.
Вариант В21.
Составить и отладить программу, реализующую сравнение двух сравнение двух предложений произвольной длины с целью поиска несовпадающих фрагментов либо установления их идентичности. При этом выявляется один отличительный фрагмент, но он может находиться в начале, в конце или в середине предложения.
Вариант В22.
Составить и отладить программу, реализующую разбиение произвольного текста на строки указанной длины без переноса (=разрыва) слов в конце строки и в то же время без большого количества пробелов в конце строки (>3), путем равномерного распределения их между словами данной строки.
Вариант В23.
Составить и отладить программу, реализующую замену цифр в произвольном заданном тексте их русскими или английскими названиями, в зависимости от ответа на запрос с терминала.
Вариант В24.
Составить и отладить программу, которая в произвольном тексте реализует обмен местами двух указанных фрагментов текста (вводятся по запросу). Если это выполнить невозможно по какой-либо причине – выдать сообщение.
Вариант В25.
Составить и отладить программу, которая в произвольном тексте удаляет слова с нечётными номерами, а в словах с четными номерами записывает буквы в обратном порядке.


