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

Н,И_Лаб_раб. 1сем_Pascal / Лабораторная работа№7_строки

.doc
Скачиваний:
44
Добавлен:
26.03.2015
Размер:
68.61 Кб
Скачать

Лабораторная работа №8. Строки

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

Постановка задачи

Написать две программы согласно индивидуальному варианту. Использовать строковые и символьные переменные, но не массивы символов.

Варианты заданий

  1. Дана строка символов. Заменить в ней большие русские буквы на маленькие, а маленькие − на большие, остальные символы оставить без изменения.

  2. Дана строка, содержащая последовательность слов, разделенных любым количеством пробелов и знаками препинания, и заканчивающаяся точкой. Подсчитать, сколько слов она содержит.

  1. Дана символьная строка. Определить длину самой длинной подстроки из подряд стоящих букв «о».

  2. Дана строка, содержащая последовательность слов, разделенных запятыми, и заканчивающаяся точкой. Удалить из нее все слова нечетной длины.

  1. Дана строка символов. Преобразовать её, заменяя каждый пробел на два пробела, а из каждой пары идущих подряд одинаковых букв оставляя только одну.

  2. Дана строка, содержащая предложение, заканчивающееся точкой. Подсчитать в ней число слов, содержащих хотя бы одну букву «а».

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

  2. Дана строка, содержащая последовательность слов, разделенных запятыми и точками. Проверить, что слова, стоящие после запятой, начинаются с маленькой буквы, а слова, стоящие после точки, и первое слово − с большой буквы. Если это не так, то исправить.

  1. Дана строка символов, заканчивающаяся точкой. Вывести ее на экран в обратном порядке без пробелов и знаков препинания.

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

  1. Дана символьная строка. Зашифровать в ней все латинские буквы с помощью циклической подстановки ABC…YZA

  2. Дана строка, содержащая последовательность слов, разделенных пробелами и заканчивающихся точкой. Записать слова этой строки в обратном порядке (мама мыла раму  раму мыла мама).

  1. Дана строка символов, состоящая из цифр от 0 до 9. Зашифровать её. Для этого составить новую строку из букв, заменяя каждую цифру на букву латинского алфавита, порядковый номер которой соответствует заменяемой цифре. (‘0’ − на ‘А’, ‘1’ − на ‘В’ и т.д.)

  2. Дана символьная строка. Определить длину самой длинной подстроки из подряд стоящих букв «е».

  1. Дана строка символов. Преобразовать строку, из групп идущих подряд пробелов оставляя по одному и удваивая все гласные буквы.

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

  1. Дана строка символов. Заменить все пробелы в заданной строке точками и запятыми поочередно.

  2. Дана строка символов. Изменить строку: во всех словах, имеющих нечетное количество символов, средний символ удалить.

  1. Дана строка символов. Изменить ее таким образом, чтобы все символы отделялись друг от друга одним пробелом.

  2. Дана символьная строка, содержащая предложение, заканчивающееся точкой. Преобразовать её, удаляя однобуквенные слова и лишние пробелы.

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

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

  1. Дана строка символов. Проверить, является ли она правильной десятичной записью вещественного числа.

  2. Дана строка символов, содержащая последовательность слов, разделенных пробелами и заканчивающихся точкой. Определить, сколько слов, состоящих из 5 и более символов, содержит данная строка.

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

  2. Дана строка символов, содержащая последовательность слов, разделенных любым количеством пробелов и знаками препинания, и заканчивающаяся точкой. Удалить из нее все слова, начинающиеся с буквы «а».

  1. Дана строка, содержащая дату в формате “дд.мм.гггг”. Проверить корректность этой даты и сформировать строку, содержащую следующую по порядку дату.

  2. Дана строка символов, содержащая предложение, заканчивающееся точкой. Найти в строке самое длинное слово и вывести его на экран.

  1. Дана строка символов. Удалить из нее все повторные вхождения букв.

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

  1. Дана строка символов. Найти наибольшее количество подряд идущих цифр в этой строке.

  2. Дана строка символов, содержащая некоторый текст. Определить, сколько слов текста составлено из букв русского алфавита, сколько – из латинских букв. Слова, в которых присутствуют буквы обоих алфавитов, заменить словом «Ошибка».

  1. Дана строка символов. Заменить каждый пробел в заданной строке двумя знаками подчеркивания, а каждое сочетание букв ‘он’ заключить в круглые скобки..

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

  1. Дана строка, содержащая фамилию, имя и отчество человека. Преобразовать строку так, чтобы сначала указывались инициалы с точками, а затем фамилия.

  2. . Дана строка, содержащая предложение, заканчивающееся точкой. Поменять в нем местами первое и последнее слова.

  1. Дана строка символов. Заменить в строке все слоги “да” на “не” и удалить символ, предшествующий каждому пробелу.

  2. Дана строка символов, содержащая предложение, заканчивающееся точкой. Инвертировать каждое слово в заданном предложении.

  1. В БГТУ принято, что старшая цифра номера студенческой группы означает номер кафедры, средняя – последнюю цифру года поступления, младшая – порядковый номер группы на курсе. Продолжительность обучения не более 6 лет. Дан номер группы студента и текущий год. Определить, к какой кафедре прикреплен студент, в каком году он поступил и на каком сейчас курсе.

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

  1. Дана строка, содержащая арифметическое выражение, в которое входят целые числа и знаки ‘+’ и ‘−‘ и которое заканчивается знаком ‘=’. Например, ‘17+23−4+121=’. Вычислить значение этого выражения и дописать результат после знака ‘=’.

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

  1. Дана строка символов, заканчивающаяся точкой. Определить, является ли она палиндромом. (Палиндром слева направо и справа налево читается одинаково, например "Леша на полке клопа нашел.") Пробелы и знаки препинания, а также регистр букв не учитываются.

  2. Найти самое длинное слово в заданном предложении.

Контрольные вопросы

  1. Каковы способы записи символьных данных в Паскале?

  2. Каков результат функций ord, succ и pred для символов?

  3. Как может описываться строковая переменная?

  4. Какова максимальная длина строки, описанной как string?

  5. Какова структура строковой переменной? Чем она отличается от массива символов?

  6. Как обратиться к отдельному символу строки?

  7. Что содержится в нулевом байте строковой переменной и в каком виде?

  8. В результате каких действий автоматически изменяется нулевой байт строки?

  9. Можно ли присваивать значение нулевому байту строки? Если да, то к чему это приведет?

  10. Какие операции для строк существуют в языке Паскаль?

  11. Как происходит сравнение строк?

  12. Как изменить значение строки? Как изменить отдельный символ строки?

  13. Почему строку нельзя вводить посимвольно в цикле как строку символов?

  14. Какие стандартные подпрограммы можно использовать для работы со строками?