Стандартные процедуры и функции для работы со строками




Операции со строками

Склеивание (сцепление, конкатенация, объединение строк) – это последовательное объединение нескольких строк. Знак операции "+".

Пример:

Str1:='У Егорки';Str2:=’отговорки';Str3:=Str1+' '+Str2;

В результате строка Str3='У Егорки отговорки'

Склейку строк можно произвести с помощью функции Concat(Str1,Str2,...,StrN); например, Str3:=concat(Str1,Str2);

Сравнение

Сравнение строк производится посимвольно слева направо до первого несовпадающего символа; большей считается та строка, в которой код первого несовпадающего символа больше.

Две строки считаются равными, если они равны по длине и совпадают посимвольно.

Пример:

'Balkon'<'balkon' (Ord('B')<Ord('b'))'balkon'>'balken' (Ord('o')>Ord('e'))'balkon'>'balk' (длина первой строки больше)'кошка '>'кошка''Кот'='Кот'

Стандартные процедуры и функции для работы со строками

Процедура Delete(Str, Poz,m) – удаляет m символов из строки Str, начиная с позиции Poz.

Пример:

Значение Str Оператор Результат Str
‘Мама мыла раму’ Delete(Str,6,5) ‘Мама раму’

 

Процедура Insert(Str1,Str2, Poz) – вставляет строку Str1 в строку Str2, начиная с позиции Poz, при этом Str1 не изменяется.

Пример:

Значение Str Оператор Результат Str
‘ЭВМ PC Insert(’IBM- ’,Str,5) ‘ЭВМ IBM-PC’

 

Функция Copy(Str, Poz,m) – копирует (выделяет) из строки Str m символов, начиная с позиции Poz, при этом исходная строка не меняется.

Пример:

Значение Str Оператор Результат S
‘Мама мыла раму’ S:=Copy(Str,6,4) ‘мыла’

 

Функция Length(Str) - возвращает целое число, равное количеству символов в строке Str.

Пример:

Значение Str Оператор Результат Х
‘Тест 5’ X:=Length(Str)  

 

Функция Pos(Str1,Str2) – определяет первое появление (вхождение) в строке Srt2 подстроки Str1. Результатом этой функции является целое число; оно равно номеру той позиции, где находится первый символ подстроки Str1. Если в строке Str2 подстроки Str1 нет, то значение функции равно 0.

Пример:

Значение Str Оператор Результат Х
‘Программа’ X:=Pos(‘ра’,Str)  
‘Программа’ X:=Pos(‘б’,Str)  

 

Процедура Str(N,Str1) – переводит числовое значение N в строковое и присваивает результат строке Str1, причём можно переводить как целые числа, так и вещественные, и есть возможность задавать формат числа, например: Str(f:6:3,Str1);

Пример:

Значение N Оператор Результат Str
  Str (N,Str) ‘1234’

 

Процедура Val(Str,N,K) – переводит строковое значение Str в числовое N. Если строка Str действительно является записью числа (целого или вещественного), то значение k=0, иначе K будет равно номеру первого ошибочного символа, а значение N не определено.

Пример:

Значение Str Оператор Результат N Результат K
’123’ Val(Str,N,K)    
’12-33’ Val(Str,N,K)    

 

Подготовка к практической работе:

1. изучить конспект по теме «Строковый тип данных ЯП Turbo Pascal»;

2. изучить краткие теоретические сведения данной работы;

3. ответить на контрольные вопросы.

Контрольные вопросы (допуск к работе):

1. Что такое строка?

2. Является ли величина строкового типа структурированной?

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

4. Как вводятся и выводятся переменные строкового типа?

5. Какими двумя способами можно работать со строками?

 

Задание 1

Составить программу, которая:

· вводит две строки;

· объединяет введенные строки;

· из новой (объединенной) строки копирует все символы, начиная с 3-го;

· в первую строку вставляет «–» во 2-ю позицию;

· из второй строки удаляет 3 символа, начиная с первого символа «2».

 

Порядок выполнения работы

1. разработайте решение поставленной задачи (постановка задачи, список используемых переменных, тип используемого алгоритма, текст программы на Турбо Паскале, тестовый пример, протокол выполнения программы).

2. Загрузите Borland Pascal 7.0.

3. Наберите текст программы.

4. Выполните отладку программы.

5. Запустите программу на выполнение и проверьте результаты тестовых примеров.

 

Содержание отчета:

1. постановка задачи

2. список используемых переменных

3. текст программы на Turbo Pascal

4. тестовый пример

5. протокол работы программы

 

Пример оформления отчета:

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

Составить программу, которая:

· вводит две строки;

· объединяет введенные строки;

· определяет длину полученной строки;

· выводит первый и последний символ полученной строки;

· подсчитывает количество букв «а» в объединенной строке;

· в первую строку вставляет символ «–» во 2-ю позицию;

· из второй строки удаляет 3 символа, начиная с первого символа «2».

Используемые алгоритмы

Линейный – для ввода, обработки и вывода строк.

 

Список используемых переменных

Входные данные:

st1, st2 – строки;

Выходные данные:

st, st1, st2 – строки;k – длина объединенной строкиn – количество букв «а» в объединенной строкеПромежуточные величины:i – номер символа в строке

 

Текст программы на Turbo Pascal:

Program Prim;Var St, st1, st2: string; k,n,i: byte;{Процедура ввода в режиме диалога}Procedure wwod(var a:string); Begin Write('Введите произвольную строку - '); ReadLn(a);End;{основная программа}Begin {ввод строк}wwod(st1);wwod(st2);{объединение строк}writeln ('Объединение строк:');st:=concat(st1, st2);writeln ('Объединенная строка - ', st);{определение длины новой строки}k:=length(st);writeln ('Длина объединенной строки = ', k);{вывод первого и последнего символа новой строки}writeln ('Первый символ => ‘, st[1]+’ последний символ => ’,st[k]);{подсчет количества вхождений символа «а» в новую строку}n:=0;for i:=1 to k do if st[I]=’a’ then n:=n+1;writeln ('Количество вхождений символа «а» => ‘, n);{вставка символа в строку}writeln ('Вставка:');insert('-', st1,2);writeln ('Итоговая строка - ', st1);{удаление фрагмента строки}writeln ('Удаление:');delete(st2,pos('2',st),3);writeln ('Итоговая строка - ', st2);End.

Тестовый пример

Если st1=’По’

st2=’года 2005’

то объединением строк будет строка ‘Погода 2005’

длина объединенной строки = 11

первая буква новой строки: ‘П’, последний символ: ’5’

количество вхождений символа «а» = 1

после вставки в первую строку «–» во 2-ю позицию: ‘П–о’

после удаления из второй строки 3-х символов, начиная с первого символа «2»: ‘года 5’

 

Протокол выполнения программы

Введите произвольную строку - ПоВведите произвольную строку – года 2005Объединение строк:Объединенная строка – Погода 2005Длина объединенной строки = 11Первый символ => П последний символ => 5Количество вхождений символа «а» => 1Вставка:Итоговая строка – П–оУдаление:Итоговая строка – года 5

 


Варианты заданий I-го уровня

Вариант 1.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов запятой и пробелом;

· определяет длину полученного предложения;

· выводит второй с начала и с конца символ предложения;

· подсчитывает количество букв «T» в предложении.

Вариант 2.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом;

· определяет длину полученного предложения;

· выводит третий с начала и с конца символ предложения;

· подсчитывает количество букв «b» в предложении.

Вариант 3.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов точкой с запятой и пробелом;

· определяет длину полученного предложения;

· выводит четвертый с начала и с конца символ предложения;

· удалить букву «b» в предложении.

Вариант 4.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов запятой и пробелом;

· определяет длину полученного предложения;

· выводит пятый с начала и с конца символ предложения;

· подсчитать количество пробелов в предложении.

Вариант 5.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов восклицательным знаком и пробелом;

· определяет длину полученного предложения;

· выводит средний символ из середины предложения (две средние буквы, если длина строки нечетная);

· удаляет букву «с» в предложении.

Вариант 6.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов знаком тире и пробелом;

· определяет длину полученного предложения;

· выводит третий с начала и с конца символ предложения;

· подсчитать количество букв «o» в предложении.

Вариант 7.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и запятой;

· определяет длину полученного предложения;

· выводит вторую букву с начала и с конца предложения;

· подсчитать количество букв «R» в предложении.

Вариант 8.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и точкой;

· определяет длину полученного предложения;

· выводит пятый с начала и с конца символ предложения;

· заменяет последний символ символом «S».

Вариант 9.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и запятой;

· определяет длину полученного предложения;

· выводит второй с начала и с конца символ предложения;

· вставляет символ «#» после шестого символа.

Вариант 10.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и вопросительным знаком;

· определяет длину полученного предложения;

· выводит второй с начала и с конца символ предложения;

· вставляет сочетание «1-2» вместо первого символа.

Вариант 11.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и вопросительным знаком;

· определяет длину полученного предложения;

· выводит четвертый с начала и с конца символ предложения;

· удаляет букву «P» в предложении.

Вариант 12.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и вопросительным знаком;

· определяет длину полученного предложения;

· выводит средний символ из середины предложения (две средние буквы, если длина строки нечетная);

· удаляет букву «t» в предложении.

Вариант 13.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и запятой;

· определяет длину полученного предложения;

· выводит пятый с начала и с конца символ предложения;

· вставляет сочетание «AAA» после третьего символа предложения.

Вариант 14.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом;

· определяет длину полученного предложения;

· выводит пятый с начала и с конца символ предложения;

· удаляет букву «f» в предложении.

Вариант 15.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов точкой с запятой и пробелом;

· определяет длину полученного предложения;

· выводит второй с начала и с конца символ предложения;

· удаляет букву «w» в предложении.

Вариант 16.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов запятой и пробелом;

· определяет длину полученного предложения;

· выводит пятый с начала и с конца символ предложения;

· подсчитать количество запятых в предложении.

Вариант 17.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов восклицательным знаком и пробелом;

· определяет длину полученного предложения;

· выводит средний символ из середины предложения (две средние буквы, если длина строки нечетная);

· подсчитать количество букв «d» в предложении.

Вариант 18.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов знаком тире и пробелом;

· определяет длину полученного предложения;

· выводит четвертый с начала и с конца символ предложения;

· подсчитать количество знаков тире в предложении.

Вариант 19.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и запятой;

· определяет длину полученного предложения;

· выводит шестой букву с начала и с конца предложения;

· подсчитать количество запятых в предложении.

Вариант 20.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и точкой;

· определяет длину полученного предложения;

· выводит третий с начала и с конца символ предложения;

· заменяет последний символ символом «Q».

Вариант 21.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и запятой;

· определяет длину полученного предложения;

· выводит пятый с начала и с конца символ предложения;

· вставляет слово «Yes» после четвертого символа.

Вариант 22.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и вопросительным знаком;

· определяет длину полученного предложения;

· выводит третий с начала и с конца символ предложения;

· вставляет слово «No» вместо пятого символа.

Вариант 23.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и вопросительным знаком;

· определяет длину полученного предложения;

· выводит седьмой с начала и с конца символ предложения;

· удаляет букву «F» в предложении.

Вариант 24.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и вопросительным знаком;

· определяет длину полученного предложения;

· выводит средний символ из середины предложения (две средние буквы, если длина строки нечетная);

· удаляет букву «Y» в предложении.

Вариант 25.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов запятой и пробелом;

· определяет длину полученного предложения;

· выводит пятый с начала и с конца символ предложения;

· подсчитывает количество символов «&» в предложении.

Вариант 26.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом;

· определяет длину полученного предложения;

· выводит четвертый с начала и с конца символ предложения;

· подсчитывает количество букв «V» в предложении.

Вариант 27.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов точкой с запятой и пробелом;

· определяет длину полученного предложения;

· выводит второй с начала и с конца символ предложения;

· удалить букву «G» в предложении.

Вариант 28.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов запятой и пробелом;

· определяет длину полученного предложения;

· выводит шестой с начала и с конца символ предложения;

· подсчитать количество пробелов в предложении.

Вариант 29.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов восклицательным знаком и пробелом;

· определяет длину полученного предложения;

· выводит средний символ из середины предложения (две средние буквы, если длина строки нечетная);

· подсчитать количество букв «Х» в предложении.

Вариант 30.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов знаком тире и пробелом;

· определяет длину полученного предложения;

· выводит четвертый с начала и с конца символ предложения;

· подсчитать количество букв «g» в предложении.

Вариант 31.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и запятой;

· определяет длину полученного предложения;

· выводит седьмую букву с начала и с конца предложения;

· подсчитать количество символов «@» в предложении.

Вариант 32.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и точкой;

· определяет длину полученного предложения;

· выводит пятый с начала и с конца символ предложения;

· заменяет последний символ символом «Z».

Вариант 33.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и запятой;

· определяет длину полученного предложения;

· выводит третий с начала и с конца символ предложения;

· вставляет символ «%» после восьмого символа.

Вариант 34.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и вопросительным знаком;

· определяет длину полученного предложения;

· выводит третий с начала и с конца символ предложения;

· вставляет сочетание «Not» вместо первого символа.

Вариант 35.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и вопросительным знаком;

· определяет длину полученного предложения;

· выводит пятый с начала и с конца символ предложения;

· удаляет букву «G» в предложении.

Вариант 36.

Составить программу, которая:

· вводит три слова в разные строковые переменные;

· объединяет введенные строки с учетом разделения слов пробелом и вопросительным знаком;

· определяет длину полученного предложения;

· выводит средний символ из середины предложения (две средние буквы, если длина строки нечетная);

· удаляет букву «H» в предложении.

 

Варианты заданий II-го уровня

1. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Заменить второе слово введенным словом.

2. В заданном тексте удалить часть текста, заключенную в круглые скобки (скобки не удалять).

3. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Определить количество слов в тексте.

4. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Вывести самое длинное слово.

5. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Вывести самое короткое слово.

6. В заданном тексте удалить лишние пробелы, оставив по одному между словами.

7. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Определить, сколько слов начинается на заданную букву.

8. Определить, сколько раз в тексте встречается буква «n» в сочетании «no».

9. В заданном тексте определить сколько раз встречается удвоенное сочетание «SS».

10. Из заданного текста удалить все символы «*» и повторить каждый символ, отличный от «*».

11. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Определить, сколько слов оканчивается на заданную букву.

12. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Определить количество букв «Х» в последнем слове.

13. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Вывести все слова, начинающиеся на заданную букву.

14. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Определить, сколько слов начинается с той же буквы, с которой начинается первое слово.

15. Дана строка. Слова в тексте разделены одним пробелом. В конце текста – точка. Сформировать новую строку, где те же слова разделялись бы двумя пробелами.

16. Проверить, является ли заданное слово палиндромом. (Например, слова палиндромы: КАЗАК, ШАЛАШ, МАДАМ).

17. Из заданной строки получить новую строку, заменив в ней все цифры символом «&».

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

19. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Найти первое слово, которое имеет четную длину и начинается заданным символом.

20. В заданной строке заменить все слова «Yes» на «No».

21. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Вывести предпоследнее слово.

22. Из заданной строки получить новую, заменив в ней все сочетания «abcd» на «abc».

23. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Определить, на какую букву оканчивается третье слово.

24. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Вывести слова, которые оканчиваются на «txt».

25. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Определить количество слов такой же длины, как и первое слово.

26. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Вывести первое слово, которое имеет заданную длину.

27. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Вывести слова, которые начинаются и заканчиваются одним и тем же символом.

28. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Удалить из текста слова, начинающиеся с заданного символа.

29. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Определить, сколько раз заданный символ стоит на четных местах в последнем слове.

30. Дана строка. Определить, сколько раз заданное сочетание символов встречается в строке.

31. Дана строка. Определить наибольшую цифру данной строки.

32. Дана строка. Удалить из строки каждый третий символ.

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

34. Задан текст. Слова в тексте разделены одним пробелом. В конце текста – точка. Удалить из текста группы символов, расположенные между круглыми скобками, вместе со скобками.

 

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

 

1. С помощью какой функции можно определить количество символов в строке?

2. Как можно вставить в строку заданную последовательность символов?

3. Верно ли утверждение, что со строкой можно работать как с одномерным массивом символов?

4. Для чего используется функция Pos?

5. Какие функции преобразования типов предусмотрены в Turbo Pascal для работы со строковыми величинами?

6. Как можно удалить из строки заданную последовательность символов?

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: