Лабораторная работа №5 Работа со строковыми величинами

advertisement
Лабораторная работа №5
Работа со строковыми величинами
Цель работы: Сформировать понятие величин полусоставного типа. Научиться
составлять алгоритмы обработки строковых переменных.
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.7.
1.8.
Задание 1
Составьте программу для решения одной из следующих задач.
Определить, какое из двух слов длиннее и на сколько.
Определить, является ли какое-нибудь из двух слов частью другого.
Определить, есть ли в записи квадрата данного числа цифра 1.
Поменять в слове первую и последнюю буквы.
Если в слове нечетное число букв, то удвоить среднюю.
По последнему символу определить тип предложения (повествовательное,
вопросительное, восклицательное).
Определить, является ли данный символ латинской буквой.
Удалить из слова среднюю букву (или две средних).
Задания 2-3
Составьте программу для решения одной из следующих задач.
2.1. Заменить в арифметическом выражении знаки "+" на знаки "-", а знаки "-"
удалить.
2.2. Удалить все буквы "я" в данном слове.
2.3. Удвоить все четные буквы слова.
2.4. Удалить все предлоги "на" в данном предложении.
2.5. Вставить после каждой буквы данного слова букву "о".
2.6. Удалить лишние пробелы в данном предложении.
2.7. Удвоить каждую букву данного слова.
2.8. Заменить каждую точку многоточием (т.е. тремя точками).
Измените программу, составленную Вами при выполнении предыдущего
задания так, чтобы в ней использовалась только одна строковая переменная, а если
у Вас первоначально была только одна строковая переменная, то переделайте
программу так, чтобы в ней было две строки – исходные данные и рабочая
(результат).
Задание 4
Дана строка длины 100 символов, содержащая только цифры от 0 до 9.
Составьте и исполните программу для определения, делится ли записанное в
строке число:
4.1. на 3
4.2. на 6
4.3. на 9
4.4. на 11
4.5. на 12
4.6. на 18
4.7. на 33
4.8. на 36
4.9. на 75

на к (1 дополнительный балл)

Дополнительные задания
Дата вводится с клавиатуры в виде текстовой величины, например, 31.12.07. (31
декабря 2007 г.). Составить программу, которая из нескольких дат определяет
самую раннюю (1 балл).
Чтобы закодировать текст, его записывают в таблицу nn строк, n - заданное
нечетное число. Затем прочитывают по спирали, начиная с центра. Напишите
программу раскодирования текста (1 балл).
Дан текст-словарь из n слов. Вводятся слова, в которых может быть допущена одна
из следующих ошибок:

пропущена одна буква;

вставлена лишняя буква;

искажена одна из букв;
Найти в словаре все слова, из которых могло бы получиться данное слово в
результате не более одной ошибки (1 балл).
Шифровка текста с помощью решетки заключается в следующем. Решетка, то есть
квадрат из клетчатой бумаги 1010 клеток, некоторые клетки в котором вырезаны,
совмещается с целым квадратом 1010 клеток и через прорези на бумагу наносятся
первые буквы текста. Затем решетка поворачивается на 90 и через прорези
записываются следующие буквы. Это повторяется еще дважды. Таким образом, на
бумагу наносятся 100 букв текста. Решетку можно изобразить квадратной
матрицей порядка 10 из нулей и единиц (0 изображает прорезь). Доказать, что
матрица А [i, j], i = 1…10, j = 1…10 может служить ключом шифра, если из
элементов А [i, j], А [10-i+1, j], А [i, 10-j+1], А [10-i+1, 10-j+1] в точности один
равен нулю.Дана последовательность из 100 букв и матрица-ключ.
4.10.
Зашифровать данную последовательность (1 балл);
4.11.
расшифровать последовательность (1 балл).
5. Имеется некоторое слово. Составить программу, которая генерирует
всевозможные слова, состоящие из всех букв данного слова (в алфавитном
порядке). (1 балл).
6. Имеется некоторое слово. Составить программу, которая генерирует все
возможные слова, состоящие из N каких-либо букв данного слова. При этом:
а) в исходном слове все буквы различны (1 балл).
б) в исходном слове буквы могут повторяться (1 балл).
7. Имеется некоторое слово. Составить программу, которая генерирует все
возможные слова, состоящие из каких-либо букв данного слова. При этом:
а) в исходном слове все буквы различны (1 балл).
б) в исходном слове буквы могут повторяться (1 балл).
8. Дана конечная последовательность левых и правых скобок K типов. Составить
программу, проверяющую, можно ли в эту последовательность добавить цифры и
знаки арифметических операций так, чтобы получилось правильное
арифметическое выражение. (1 балл).
9. Составить программу перевода чисел из римской записи в арабскую и обратно.
(1 балл).
10. Составить алгоритм вычисления арифметического выражения, содержащего
только однозначные положительнвые числа и знаки +,-,*,/. (1 балл).
11. В русском тексте на 1000 букв в среднем приходится:
а - 62 б - 14
в - 38 г - 13 д 25 е,е - 72 ж - 7 з - 16
и - 62 й - 10
к - 28 л - 35 м 26 н - 53 о - 90 п - 23
р - 40 с - 45
т - 53 у - 21 ф 2 х-9
ц - 4 ч - 12
ш - 6 щ - 3 ь,ъ
- 14 ы - 16 э - 3
ю - 6 я - 18 пробел - 174
Придумать кодирование букв последовательностями из 0 и 1 (необязательно
одинаковой длины) так, чтобы сообщение однозначно раскодировалось и имело по
возможности минимальную длину. (2 балла).
Download