Обработка строк.
Постановка задачи для конкретного варианта: Задана строка, состоящая из слов, разделённых одним или несколькими пробелами. Удалить повторные вхождения каждого слова. Выделяем слова, переписываем их в первую строку двумерного массива, во вторую записываем ‘0’ для уникального слова и ‘1’- для повторяющегося слова. Затем формируем строку, состоящую из элементов первой строки массива, у которых во второй строке записано '0‘ и распечатываем строку. Текст программы: rem lab7{вариант № 8} const nn=10 dim a$(1 to 2,1 to nn) defint n, i, j, k defstr s,ss ‘исходная и вспомогательная строки Input “Введите строку:”;s s=s+” “ j=0: ss=” “ for i=1 to len(s)-1 if mid$(s,i,1)<>” ” and mid$(s,i+1,1)=” “ then ‘выделение слов ss=ss+mid$(s,i,1) j:=j+1;a$(1, j)=ss;a$(2, j)=”0” ‘первую строку записываем слово “0” во ss:=” “ ‘второй строке означает, что слово встретилось впервые else if s(i)<>” “ then ss:=ss+ mid$(s,i,1) end if next for i=1 to j-1 for k=i+1 to j if (a$(2,i)<>”1”)and(a$(2,k)<>”1”)and(a$(1,i)=a$(1,k) then a(2,k)=”1” ‘нашли ‘совпавшие слова s=” “ for i=1 to j if a$(2,i)<>”1” then s=s+a$(1,i)+” “ next print “Результат: “,s Результаты выполнения программы:
Варианты заданий. 1. Задано предложение, состоящее из слов, разделённым одним или несколькими пробелами. Упорядочить слова предложения в алфавитном порядке. 2. Задано предложение, состоящее из слов, разделённым одним или несколькими пробелами. Найти самое длинное слово в предложении. 3. Задано предложение, состоящее из слов, разделённым одним или несколькими пробелами. Подсчитать количество гласных русских букв в предложении. 4. Задано предложение, состоящее из слов, разделённым одним или несколькими пробелами. Вывести на экран все слова, преобразовав каждое при этом следующим образом: первую букву слова заменить последней. 5. Задано предложение, состоящее из слов, разделённым одним или несколькими пробелами. Выяснить какая буква встречается чаще всего. 6. Выдайте на экран символы, которые скрываются под кодами 33, 66, 99, 100, 128. 7. Определить количество слов в тексте. Число пробелов между словами может быть произвольное. 8. В заданном тексте одно заданное слово заменить на другое заданное слово такой же длины. 9. Заданную последовательность слов переупорядочить в алфавитном порядке (то есть выполнить лексикографическое упорядочении). 10. Проверить, имеется ли в линейной записи заданной математической формулы баланс открывающих и закрывающих скобок. 11. Удвоить каждую букву в заданном тексте. 12. Определить количество предложений в заданном тексте (предложение заканчивается либо точкой, либо восклицательным знаком, либо – вопросительным. 13. В записке слова зашифрованы- каждое из них записано наоборот. Расшифровать сообщение. 14. В строке все двоеточия (:) заменить точкой с запятой (;). Подсчитать количество замен. 15. Отредактировать заданное предложение, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами. 16. Определите с помощью функции LEN, сколько символов будет в следующем адресе: 17. Определите, какие слова получатся в результате выполнения приведенной ниже программы: 18. Постройте модель работы телеграфа. Сначала узнайте имя клиента и в дальнейшем обращайтесь к нему по имени. Запросите регион, куда посылается телеграмма. Их три: Россия (коэф. 1), страны СНГ (коэф. 2) и дальнее зарубежье (коэф 5). По России стоимость одного слова 3руб. 50 коп. Затем запрашивается телеграмма и определяется стоимость. Далее у клиента запрашивается денежная сумма. Если его сумма совпадает со стоимостью телеграммы, то его благодарят и прощаются, если его денег больше, сообщите о сдаче иначе просите доплату. 19. Вычислите сумму кодов всех символов, входящих в выражение «Я уже кое-что понимаю в QuickBasic!» 20. В заданном тексте, содержащем наряду с другой информацией целые числа, определить самое большое и самое маленькое целое число.
21. Дан текст из 80 символов. «Просеять» текст, оставив только строчные латинские буквы в том же порядке.
|