Пример 4. Упражнение выполнить в среде PascalABCNET
Разработать программу, определяющую в строке количество слов длиннее 4 символов. Слова разделены одним пробелом.
Решение задачи:
1. Сначала проверим, что в конце строки есть пробел.
2. Если пробела нет, тогда вставим его.
3. Затем, пока длина строки не станет равной 0, будем определять местоположение пробела и, соответственно, длину слова, которая на 1 меньше номера пробела.
4. Если длина слова больше 4 символов, то добавим 1 к счетчику слов.
5. Затем удалим обработанное слово вместе с пробелом и перейдем к обработке следующего слова.
Программа:
Пример 5. Упражнение выполнить в среде PascalABCNET
Разработать программу, меняющую в строке одно сочетание букв на другое.
С использованием строковых функций задача решается просто. Вводим строку и оба сочетания букв. Затем определяем вхождения заменяемого сочетания, удаляем его и вставляем на это место заменяющее сочетание.
Программа:
Пример 6. Упражнение выполнить в среде PascalABCNET
Разработать программу, меняющую в строке местами слова с указанными номерами.
Запретить ввод номеров, которые превышают количество слов в строке или равны между собой.
В а р и а н т 1.
1. При решении данной задачи строку приходится просматривать посимвольно, т.к. надо фиксировать начало и длину каждого из слов с указанными номерами.
2. Если очередной символ равен пробелу, то количество слов надо увеличить на 1, проверить, не совпадает ли номер с одним из заданных и если совпадает, то запомнить номер первого символа и длину слова.
3. После чего обнуляем счетчик длины слова и фиксируем начало следующего слова.
4. Если символ не пробел, то увеличиваем длину текущего слова.
5. В конце строки пробела может не быть. Значит, завершение последнего слова надо проверять отдельно, к тому же учитывая, что если после последнего слова нет пробела, то его длина получается на единицу меньше, что тоже надо скорректировать.
6. После того, как местоположение слов определено, надо осуществить их перемещение.
7. При этом надо учесть, что как только удалим первое слово, начало второго слова сместится. Значит, вначале надо удалить второе слово и вставить первое, а затем уже удалить первое слово и вставить второе.
8. Чтобы не анализировать, какое из слов первое, а какое второе, лучше всего сортировать введенные номера слов по возрастанию.
Программа:
В а р и а н т 2.
Вначале разобьем текст на слова и поместим каждое слово в элемент вспомогательного массива строк. Затем выполним перестановку элементов и, вновь объединим слова в строку.
Это решение имеет два существенных недостатка. Во-первых, оно требует дополнительной памяти для размещения вспомогательного массива. Во-вторых - выполняться такая программа будет несколько дольше, т.к. исходная строка будет просматриваться несколько раз. Но этот вариант решения несколько проще, и в тех случаях, когда отсутствуют строгие ограничения на объем используемой памяти и время выполнения, он может оказаться предпочтительным.
Программа: