IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Замена пробело, Нужно несколько пробелов заменить одним
сообщение
Сообщение #1


Гость






Нужна помошь знающих людей. Вот задача: В тексте заменить все последовательности идущих подряд пробелов одним пробелом, т. е. "сжать" текст.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


И это уже было...
В чем трудность? Давай выкладывай что уже сделал.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Я незнаю как можно просмотреть текст и искать в нем пробелы.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Тебя бы в раздел F.A.Q. по строкам отправить...
Вот тебе подсказки:
Если S : String; то к каждому символу можно обращаться S[n]:='A'
Проверка на пробел: If S[n]=' ' then ...
n - целочисленное значение указывает номер символа
Длина строки - Length(S)
Почитай контекстную справку по функции Delete


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Сема

Подсказка:

Под текстом понимается строка? Если так, то к i-му символу строки S можно обратиться так: s[i]...

APAL
lol.gif
Оффтоп: Идем с тобой в ответах "ноздря в ноздрю" :p4:

Сообщение отредактировано: APAL -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цикл устраиваешь, если находишь пробел следующий за пробелом, то удаляешь его процедрура delete) и начинаешь опять просматривать сроку с начала. пока не пройдешь так до конца строки.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 253
Пол: Мужской

Репутация: -  4  +


Код
program del_prob;
var s:string;
begin
write('Введите строку> ');
readln(s);
while pos('  ',s)<>0 do delete(s,pos('  ',s),1);{выполняем цикл while..do... до тех пор, пока в тексте не останется ни одной комбинации идущих подряд двух пробелов; ищем в тексте 2 пробела и удаляем один из них}
writeln('Обработанная строка> 's);
end.

Сема, вот, что тебе нужно для разбора задачи:
Цитата
While (зарезервированное слово)
---
Оператор цикла While содержит выражение,
которое управляет повторением выполнения
отдельного или составного оператора.

Синтаксис:
While выражение Do оператор

Замечания:
Оператор после Do будет выполняться до тех
пор, пока булево выражением является истинным
(True).

Выражение оценивается до выполнения оператора,
так что если булево выражение с самого начала
было ложным (False), то оператор не будет
выполнен ни разу. (В отличие от оператора
цикла Repeat)

Цитата
Delete  (процедура)
---
Удаляет подстроку из строки.

Объявление:
Procedure Delete(Var S : String; Index : Integer; Count : Integer);

Режим:
Windows, Real, Protected

Замечания:
Параметр S - переменная со строковым типом.
Index и Count - целочисленные выражения.
Delete удаляет Count символов из строки S,
начиная с позиции Index. Если значение Index
больше, чем длина S, то никакие символы не
удаляются. Если Count определяет большее
количество символов, чем остается в строке с
позиции Index до конца строки, то удаляется
остаток строки.

Цитата
Pos  (функция)
---
Ищет подстроку в строке.

Объявление:
Function Pos(Substr : String; S : String) : Byte;

Режим:
Windows, Real, Protected

Замечания:
Параметры Substr и S - строковые выражения.
Pos ищет первое вхождение строки Substr в
строку S и возвращает целочисленное значение,
которое является индексом первого символа
Substr внутри S. Если строка Substr не
найдена, то Pos возвращает нуль.


--------------------
Я не буду жить с этой злобой внутри / Я не буду частью смертельной цепи / Я не буду потребителем твоих идей / Я не буду никогда убивать зверей (Unconform)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.01.2025 23:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name