![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
STAB |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Реальное имя: xxx Репутация: ![]() ![]() ![]() |
В общем, нужно составить программу для создания текста, состоящего из последних букв всех слов заданного текста.
Долго искал на форуме что-то подобное, ничего не нашёл. Рассчитываю на помощь форумчан |
renesko1 |
![]()
Сообщение
#2
|
![]() поиск ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 347 Пол: Мужской Реальное имя: nir Репутация: ![]() ![]() ![]() |
Есть специальный раздел, где описаны способы разделения текста на слова. А теперь просто загоняешь последние буквы этих слов в файл...
-------------------- typedef void Śūnyatā ;
|
STAB |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Реальное имя: xxx Репутация: ![]() ![]() ![]() |
|
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата Есть специальный раздел, где описаны способы разделения текста на слова А зачем разбивать на слова, если нужно взять только последний символ каждого слова? Пробежать одним циклом по всей строке, и сделать одну единственную проверку для каждой ее буквы не проще?const
delimiter = [' '];
var
s, res: string;
i: integer;
begin
s := 'Two consecutive single quotes are used to indicate' +
' a single quote in a string';
{ oeesedoeaeenag }
res := '';
for i := 1 to length(s) do begin
if ((i = length(s)) and not (s[i] in delimiter)) then res := res + s[i]
else
if ((i > 1) and (s[i] in delimiter) and not (s[i - 1] in delimiter))
then res := res + s[i - 1];
end;
writeln(res)
end.
|
STAB |
![]()
Сообщение
#6
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Реальное имя: xxx Репутация: ![]() ![]() ![]() |
О, спасибо!!!
но: а если в тексте есть точки, запятые, или два пробела?
program posl_bukv;
USES CRT;
const
probel = [' '];
var
s, res: string;
p:byte;
i: integer;
begin
ClrScr;
readln(s);
res := '';
{ Удаляем лишние пробелы }
repeat
p := Pos(' ', s); { Здесь 2 пробела !!! }
if p > 0 then Delete(s, p, 1);
until p = 0;
{ Удаляем пробел в начале строки }
if s[1] = ' ' then
Delete(s, 1, 1);
p := 1;
while p <= length(s) do begin
if (s[p] = ',') or (s[p] = '.') then delete(s, p, 1) { удаляем символ, если он точка или запятая }
else inc(p);
end;
for i := 1 to length(s) do begin
if ((i = length(s)) and not (s[i] in probel)) then res := res + s[i]
else
if ((i > 1) and (s[i] in probel) and not (s[i - 1] in probel))
then res := res + s[i - 1];
end;
writeln(res);
readln;
end.
Ещё раз спасибо volvo!!!!!!!! Сообщение отредактировано: STAB - |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата но: а если в тексте есть точки, запятые Значит все эти символы занести в множество Delimiter, и все будет продолжать работать...Цитата или два пробела? Хоть десять, это не важно.Итого, всех изменений: const
delimiter = [' ', '.', ','];
|
![]() ![]() |
![]() |
Текстовая версия | 17.04.2025 6:59 |