ТЕМА: ИСПОЛЬЗОВАНИЕ СТАНДАРТНЫХ ФУНКЦИЙ И ПРОЦЕДУР ДЛЯ РАБОТЫ СО СТРОКАМИ
Цель работы
Целью работы является приобретение навыков алгоритмизации и программирования задач, оперирующих строковыми типами данных:
§ ввод и вывод строковых данных;
§ обработка строковых данных;
§ использование стандартных процедур и функций языка Pascal для обработки строковых данных.
Оборудование: ПК, ИСР Pascal ABC
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Обработка строковых данных является необходимым элементом программ, работающих с текстами. К таким программам относятся программы лингвистического анализа текстов, текстовые редакторы, программы, работающие в диалоговом (интерактивном) режиме, программы, содержащие текстовые пояснения результатов своей работы.
Строка – последовательность символов (от 0 до 255), заключенная в апострофы. При составлении программ используются строковые константы и строковые переменные.
1. Определение через описание типа в разделе описания типов. Формат
TYPE
<имя типа> = STRING [максимальная длина строки];
VAR
<идентификатор1, идентификатор2,…> : <имя типа>; где
STRING – зарезервированное слова (строка);
Максимальная длина строки – наибольшее допустимое количество символов переменной данного типа ( . 255).
Например,
TYPE
FLO = STRING [130];
FTK = STRING; {По умолчанию длина строки равна 255}
VAR
ST1 : FLO; ST2, ST3 : FTK;
2. Определение непосредственно в разделе описания переменных Формат
VAR
ST4, ST5 : STRING [60]; ST6, ST7 : STRING;
ПРИМЕР ЗАДАЧИ
Разработать программу, удаляющую из вводимой с клавиатуры строки пробелы между словами и записывающую в массив N длину (число символов) каждого слова. Длина текста – не более 80 символов. Число слов – не более 10. Наличие более одного символа ‘пробел’ подряд свидетельствует о конце строки.
Используемые в программе идентификаторы приведены в таблице 1.
Таблица 1
Листинг программы
Program Prim1; Uses Crt;
Label 4; VAR
N: ARRAY [1..10] OF INTEGER; I, J, K, L: INTEGER;
A: STRING [80]; PR, OTVET:BYTE; BEGIN
CLRSCR; REPEAT
REPEAT
WRITELN (' Введите через пробел'); READLN (A);
WRITELN('Исходная строка'); WRITELN(A);
WRITELN ('Работаем дальше? 1 -да,0 -нет'); READLN (OTVET);
UNTIL OTVET=1;
K:=0;
L:=0;
PR:=0;
FOR I:=1 TO length(a) DO
IF (A[I]= ' ') THEN
ELSE
BEGIN
END
begin
end;
L:=L+1; N[L]:=K;
IF (A[I+1]=' ')THEN GOTO 4;
FOR J:=i TO length(a) DO A[J]:= A[J+1];
K:=1
K:=K+1; N[L+1]:= K-l;
4:WRITELN ('Результирующая строка');
UNTIL PR=0 END.
WRITELN (A);
WRITELN ('№ слова число букв'); FOR I:=1 TO L+1 DO
WRITELN (' N[',I,'] =',N[I]:6);
WRITELN('Обработать еще одну строку? 1 –да 0 -нет'); READLN(PR);
Протокол работы программы
Протокол работы программы показан на рис. 1.
![]() |
Рис. 1. Протокол работы программы
ЗАДАНИЕ
1. В заданном тексте удалить символ ‘,’ и подсчитать число удаленных символов. Предусмотреть возможность задания с клавиатуры удаляемого символа.
2. В заданном тексте заменить словосочетание «свернутые обороты» на словосочетание
«разделенные обороты» и подсчитать число произведенных замен.
3. Из заданного предложения выбрать и вывести на экран только те символы, которые встречаются в нем только один раз (в том порядке, в каком они встречаются в тексте)
4. В заданном предложении найти самое длинное и самое короткое слова и подсчитать, на сколько больше символов в самом длинном слове.
5. Проверить, встречается ли в заданном предложении словосочетание «Остаток счета».
6. Проверить, встречается ли в заданном предложении словосочетание «Сальдо счета».
7. Для каждого слова заданного предложения указать долю согласных букв. Определить слово, в котором доля согласных максимальна.
8. Из заданного текста выбрать цифры и записать в массив N, а буквы- в массив B. Все остальные символы записать в массив S.
9. Удалить из заданного текста все пробелы, подсчитать длину получившегося текста и число удаленных пробелов.
10. Для заданного предложения указать слова, в котором доля гласных букв максимальна.
11. Отредактировать предложение, удаляя из него лишние пробелы, оставив только по одному пробелу между словами. Подсчитать число удаленных пробелов.
12. Проверить, имеется ли в заданном тексте баланс открывающихся и закрывающихся круглых скобок.
13. Дана последовательность из 10 слов. Вывести слова в обратном порядке.
14. Дана последовательность из 10 слов. Вывести все слова, входящие в эту последовательность по одному разу.
15. Дана последовательность из 8 слов. Вывести входящие в эту последовательность слова, расположив их по алфавиту.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что такое строка?
2. Для чего в программировании используются строки?
3. Как объявляется строка в программе?
4. Как обозначается элемент строки?
5. Назовите процедуры для обработки строк
6. Назовите функции для обработки строк
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.