|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.02.2015, 23:19 | #1 |
Пользователь
Регистрация: 27.12.2014
Сообщений: 15
|
считывать каждую первую букву в слове и записывать ее в множество
нужно считывать каждую первую букву в слове и записывать ее в множество
Код:
Последний раз редактировалось Stilet; 05.02.2015 в 08:01. |
04.02.2015, 23:50 | #2 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
Я приведу пример фрагмент выделения слов
Код:
Заключив этот код в цикл while i<=length(str) можно выделить все слова. А после выделения очередного слова выполнять поставленную задачу Код:
----------- Кстати, распечатка множества иная Код:
Последний раз редактировалось FPaul; 05.02.2015 в 00:12. |
05.02.2015, 08:02 | #3 |
Пользователь
Регистрация: 27.12.2014
Сообщений: 15
|
пишет,что индекс вне массива
program ghrklhw1;
CONST {Список всех ограничителей слов в строке} Delimiters = [ ' ', '.', ',', '!', '?', '-', ':', ';', '(', ')', '[', ']', '{', '}' ]; type c=set of char; var ch:c; s:string; i,j,k:integer; begin write('введите строку: '); read(s); ch:= [ ]; begin while (i<=Length(S)) do if (s[i] in Delimiters) then Inc(i) else Break; j:=i; while (i<=Length(s)) do if NOT(S[i] in Delimiters) then Inc(i) else break; k:=i-j; begin if j<=length(s) then ch:=ch+[s[j]]; end; end; write(ch); end. |
05.02.2015, 09:21 | #4 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
При компиляции FPC выдал мне
tak_011_2.pas(20,9) Warning: Variable "i" does not seem to be initialized tak_011_2.pas(36,10) Error: Can't read or write variables of this type Так в предупреждении - твой индекс вне границ. В ошибке - ранее я привел код как распечатать множество. Номера строк и позиций символа в строке могут не совпадать с теми, что на твоём компе - т.к. у тебя, наверняка, текст форматирован. Если не сложно - заключай код в теги (псевдо-кнопка # на форме ответа). Последний раз редактировалось FPaul; 05.02.2015 в 09:26. |
05.02.2015, 09:57 | #5 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,515
|
Код:
программа — запись алгоритма на языке понятном транслятору
|
05.02.2015, 10:12 | #6 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
Прости, но зачем упрощать разбиение на слова, если ТС уже освоил более корректный алгоритм? Тем более, что в условии задачи в интерпретации ТС отсутствуют гарантии на содержимое первого элемента строки.
Добавлю, что в кодовой странице cp866 (той, что используетя в консоли) символы кириллицы расположены не по алфавиту (пруф). |
05.02.2015, 10:34 | #7 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
Слегка изменённый для удобства тестирования вариант - вариант ТС с внесёнными коррекциями.
Код:
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Записать в массив каждую букву слова | Faton 11 | Общие вопросы C/C++ | 6 | 10.01.2014 17:04 |
Автоматически изменять первую букву в слове на заглавную для Microsoft Office Excel. | agregator | Microsoft Office Excel | 17 | 24.02.2012 10:56 |
Нужно переделать, чтобы программа могла считывать данные с файла и записывать в него результат. | Kroleg | Помощь студентам | 2 | 13.11.2011 19:15 |
Как записывать и считывать Ini File с набором строк (#10#13) в одном параметре?) | SkAndrew | Общие вопросы Delphi | 4 | 15.11.2008 00:02 |