Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Занятие 3. Стандартные функции для работы со строками (concat,copy,length, pos,upcase).



Функция Length

Встроенная функция Length (длина) позволяет определить фактическую длину текстовой строки, хранящейся в указанной переменной (а не величину предельного размера строки, установленную при декларации):

Program DemoFunctionLength;

Var

Word: string;

Begin

write ('Введите слово: ');

readln(Word);

writeln('Это слово состоит из ', Length (Word), ' букв');

End.

Примечание. При подсчете фактической длины строки учитываются все входящие в нее символы, в том числе и пробелы.

Функция Upcase

Функция Upcase позволяет преобразовывать символ любой литеры из строчного в прописной. Эта функция рассчитана на обработку отдельного символа. Поэтому для обработки строки символов с помощью этой функции приходится организовывать цикл.

Program DemoFunctionUpcase;

Var

Word: string;

i: Byte;

Begin

Word: = 'фирма Microsoft';

for i: = 1 to Length (Word) do

Word[i]: = UpCase (Word[i]);

writeln(Word); {выводится текст 'фирма MICROSOFT'}

End.

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

Примечание. Русские литеры не могут обрабатываться этой функцией.

Для того, чтобы преобразовать в заглавные строчные буквы русского алфавита, применяют оператор выбора Case:

...

case Word[i] of

'a': Word[i]: = 'A';

'б': Word[i]: = 'Б';

'в': Word[i]: = 'В';

...

end;

...

Функция Copy

Функция Copy позволяет копировать фрагмент некоторой строки из одной переменной в другую. Вызывая эту функцию нужно указать следующие параметры:

• имя строки, из которой должен извлекаться копируемый фрагмент,

• позицию в строке, начиная с которой будет копироваться фрагмент,

• число копируемых символов.

Program DemoFunctionCopy;

Var

Word: string;

Word1: string[20];

Begin

Word: = 'фирма Microsoft';

writeln(Word); {выводится текст 'фирма MICROSOFT'}

Word1: = Copy (Word, 1, 5);

writeln(Word1); {выводится текст 'фирма'}

End.

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

Функция Pos

C помощью функции Pos Вы можете осуществить поиск некоторого фрагмента в строке. Если заданный фрагмент в строке присутствует, то функция возвращает номер позиции, с которой он начинается. Если фрагмент не найден, то функция возвращает нуль.

Program DemoFunctionPos;

Var

Word: string;

SearchWord: string[20];

Position: Byte;

Begin

Word: = 'фирма Microsoft';

writeln(Word); {выводится текст 'фирма MICROSOFT'}

writeln ('Введите искомый текст ');

readln (SearchWord);

Position: = Pos(SearchWord, Word);

if Position < > 0

then

begin

write ('Фрагмент < ', SearchWord, '> содержится в строке < ', Word);

writeln ('>, начиная с позиции ', Position );

end

else

writeln('Фрагмент < ', SearchWord, '> не содержится в строке < ', Word); End.

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

Функция Concat

Функция Concat (Str1, Str2,..., StrN) выполняет конкатенацию (или сцепление) строк Str1, Str2,..., StrN в том порядке, в каком они указаны в списке параметров. Сумма символов всех сцепленных строк не должна превышать 255.

Program DemoFunctionConcat;

Var

Word: string;

Word1, Word2: string[20];

Begin

Word1: = 'фирмы ';

Word2: = 'Microsoft';

Word: = Concat('Компьютеры ', Word1, Word2);

writeln(Word); {выводится текст 'Компьютеры фирмы Microsoft'}

End.

Задачи для самостоятельного решения

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

2. Проверьте правописание “ча” и “ща” в тексте. Выведите на экран количество сделанных ошибок и исправленную строку. Применяйте подпрограммы.

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

4. Выясните, сколько раз встречается каждая буква алфавита в предложенном тексте. Применяйте подпрограммы.

5. Запишите строку а в обратном порядке в строку б. Посчитайте, сколько одинаковых букв находятся на одинаковых местах в этих строках. Применяйте подпрограммы.

6. Заданы фамилия, имя и отчество учащегося, разделенные пробелом. Напечатайте его фамилию и инициалы. Применяйте подпрограммы.

7. Проверьте правописание “жи” и “ши” в тексте. Выведите на экран количество сделанных ошибок и исправленную строку. Применяйте подпрограммы.

8. Запросите произвольное предложение и имя. Найдите ошибки употребления имени и исправьте их. Выведите на экран количество сделанных ошибок и исправленную строку. Применяйте подпрограммы.

9. Посчитайте количество цифр в веденной строке символов. Применяйте подпрограммы.

10. Посчитайте количество букв в введенной строке символов. Применяйте подпрограммы.

11. Запросите несколько символов и строку для выяснения, сколько заданных символов встречается в строке. Применяйте подпрограммы.

Занятие 4. Стандартные процедуры для работы со строками (delete, insert, str, val).

Процедура Insert

Процедура Insert вставляет в исходную строку, начиная с указанной позиции, какую-либо другую строку. Оператор Insert (Word1, Word2, 5) указывает, строку Word1 необходимо вставить в строку Word2, начиная с 5-ой позиции.

Процедура Delete

Процедура Delete удаляет в исходной строке фрагмент определенной длины, начиная с указанной позиции. Так, оператор Delete(Word1, 2, 3) удаляет из указанной строки фрагмент, длиной в три символа, начиная со второго.

Процедура Str

Общий вид Str(Chislo, Stroka)

Процедура Str преобразовывает числовое значение переменной Chislo в строковую переменную Stroka. После первого параметра может указываться формат, аналогичный формату вывода.

Program DemoProcedureStr;

Var

Word: string;

Chislo: integer;

Begin

Chislo: = 1560;

Str(Chislo: 8, Word);

writeln(Word); {выводится строка ' 1500'}

End.

Процедура Val

Общий вид Val(Stroka, Chislo, Code)

Процедура Val преобразует значение строки Stroka в величину целочисленного или вещественного типа и помещает результат в Chislo. Значение строковой переменной Stroka не должно содержать пробелов в начале и в конце. Code ­ целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно нулю, если же ошибка обнаружена, Code будет содержать номер позиции первого ошибочного символа, а значение Chislo будет не определено.

Program DemoProcedureVal;

Var

Word: string;

Chislo, Code: integer;

Begin

writeln('Введите строку цифр ');

readln(Word);

Val(Word, Chislo, Code); {преобразование строки в число}

if Code < > 0

then

writeln('Ошибка! В позиции ', Code, ' не цифра! ', );

End.

Задачи для самостоятельного решения

1. Составьте алгоритм приписывания к каждому слову в начало заданной буквы в данной строке. Выведите полученную строку на экран. Используйте подпрограммы для решения каждой частной задачи.

2. Составьте алгоритм замены в какой-нибудь литерной величине всех букв " а" на буквы " б" и наоборот (при такой замене, например, из слова " баба" должно получиться слово " абаб" ). Выведите полученную строку на экран. Используйте подпрограммы для решения каждой частной задачи.

3. Составьте алгоритм, утраивающий каждую букву в заданном тексте (при этом, например, из слова " кот" должно получиться слово " кккоооттт" ). Выведите полученную строку на экран. Используйте подпрограммы для решения каждой частной задачи.

4. Составьте алгоритм, выясняющий, является ли данное слово " перевертышем" (так называются слова, читающиеся одинаково слева направо и справа налево, например: ПОТОП, КАЗАК). Используйте подпрограммы для решения каждой частной задачи.

5. Составьте алгоритм, вычеркивающий из данного текста любую букву. Выведите полученную строку на экран. Если такого символа нет, то выведите соответствующее сообщение. Используйте подпрограммы для решения каждой частной задачи.

6. Составьте алгоритм, который каждую встреченную в слове букву " б" заменял бы сочетанием букв " ку". Если такого символа нет, то выведите соответствующее сообщение. Выведите полученную строку на экран. Используйте подпрограммы для решения каждой частной задачи.

7. Как только в строке встретится символ " *", удалить все символы в строке после " *". Выведите полученную строку на экран. Если такого символа нет, то выведите соответствующее сообщение. Используйте подпрограммы для решения каждой частной задачи.

8. Вставить в строку слово по условию:

а) в конец строки

б) в начало строки

в) после первого слова.

Выведите полученную строку на экран. Используйте подпрограммы для решения каждой частной задачи.

9. В строке удалить все буквы " б", " с", " д", ".". Если такого символа нет, то выведите соответствующее сообщение. Выведите полученную строку на экран. Используйте подпрограммы для решения каждой частной задачи.

10. Все слова, в которых буква “а” встречается более 2х раз, удалить из текста. Выведите полученную строку на экран. Если такого символа нет, то выведите соответствующее сообщение. Используйте подпрограммы для решения каждой частной задачи.

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


Поделиться:



Последнее изменение этой страницы: 2017-03-17; Просмотров: 672; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.033 с.)
Главная | Случайная страница | Обратная связь