Тип STRING
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: информация реферат, курсовая работа по дисциплине
| Добавил(а) на сайт: Лукерья.
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата
WRITELN('Ошибка ввода!');
UNTIL FALSE;
Решим часто встречающуюся задачу о распаковке текста: дана строка, содержащая текст на русском языке (или на любом другом языке, в том числе и искусственном - вы увидите, что это не принципиально); нужно выделить слова, содержащиеся в этом тексте. Хотя эта задача и элементарна, ее решение не столь тривиально и требует предварительной разработки алгоритма. Сначала уясним, что такое текст. Текстом будем называть последовательность слов, разделенных любым количеством "пробелов". Слова - это последовательности букв языка (в нашем случае - русских букв), "пробелы" - любые символы, не являющиеся буквами. Итак, наш текст в общем случае имеет вид : *X*X...*X* , где X - слово, * - "пробел". Можно предложить следующий алгоритм распаковки:
1) удалим завершающие пробелы, после чего текст примет регулярный вид *X*X...*X;
2) удалим лидирующие пробелы;
3) выделим первое слово и удалим его из текста.
После выполнения пунктов 2 и 3 мы получили одно слово и текст стал короче на одно слово, сохранив при этом свою структуру. Очевидно, что пункты 2 и 3 следует выполнять до тех пор, пока текст не пуст. Запишем программу, реализующую этот алгоритм.
VAR s : STRING; i : Byte;
CONST Letters : SET OF Char = ['а'..'п','р'..'я','А'..'Я']; {это алфавит}
BEGIN WRITE('Введите текст '); READLN(s);
{ удалим завершающие пробелы, здесь есть 1 ОШИБКА! }
WHILE NOT(s[Length(s)] IN Letters) DO Delete(s,Length(s),1);
WRITELN('Слова текста :');
{ организуем цикл ПО СЛОВАМ }
WHILE s<>'' DO BEGIN
{ удалим лидирующие пробелы }
WHILE NOT(s[1] IN Letters) DO Delete(s,1,1);
{ найдем границу первого слова, здесь есть 1 ОШИБКА! }
i:=1; WHILE s[i] IN Letters DO INC(i);
{ i - номер первого пробела }
Dec(i);
{ выведем слово }
WRITELN(Copy(s,1,i));
{ удалим слово из текста }
Delete(s,1,i);
Рекомендуем скачать другие рефераты по теме: сочинение рассказ, преступление реферат.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата