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

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

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

 
 Ответить  Открыть новую тему 
> Удалить повторы в строке, Легкая задачка на строки
сообщение
Сообщение #1





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

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


Добрый вечер.

Надо не используя стандартных методов обработки строк, убрать из строки повторяющиеся символы(оставить по одному вхождению), можно новую строку записывать в новую переменную.

Помогите пожалуйста в понедельник уже надо сдать. На форуме есть примеры только с использованием стандартных методов паскаля, а надо без них(
Заранее спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Бывалый
***

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

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


вот, может быть не самый оптимальный вариант, но работающий:

program lab;

var
s:string;
i,j,k,kol:integer;
begin
readln(s);
kol:=1;
while(s[kol]<>#0) do inc(kol);
dec(kol);
i:=1;
while (i<=kol) do
begin
j:=i+1;
while (j <= kol) do
if s[i]=s[j] then
begin
for k:=j to kol do
s[k]:=s[k+1];
dec(kol);
end
else
inc(j);
inc(i);
end;
writeln(s);
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


прошу помогите с задачей) короче требуеться вот это "Ввести текст и определить количество слов, у которых первая и последняя буквы в слове - одинаковы. Вывести эти слова. Затем из исходного текста удалить эти слова." сделал так но не многу сделать чтоб слово удалялось(
Uses crt;
var t1,t2:array[1..225] of char;
mn: set of char;
kol, i,sl, kb,j,k: integer;
begin
ClrScr;
mn:=[' ','.',',',':',';'];
writeln('vvedite tekst');
i:=0;
repeat
inc(i);
read(t1[i]);
until (t1[i]='.');
kol:=i;
kb:=0;
k:=0;
for i:=1 to kol do
if not (t1[i] in mn) then inc(kb)
else
begin
if kb>0 then
begin
if t1[i-1]=t1[i-kb] then
for j:=i-kb to i do
begin
inc(k);
t2[k]:=t1[j];

end;
kb:=0;
inc(sl);
end;
end;
writeln('kol-vo slov ',sl);
for i:=1 to k do
write(t2[i]);
writeln;
for i:=1 to kol do
write(t1[i]);

readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Artem001, вообще-то мог бы открыть и новую тему, а не лезть в чужую...

Специально для такого класса задач, где надо удалять слова из исходной строки по некоторому условию, я сделал вот этот способ разбиения на слова: Разбиение на слова. Все способы. (именно тот, на который ведет ссылка!!!) После разбиения в массиве хранятся позиции и длины слов (а не сами слова), и зная их, можно
1) определить, подходит ли слово под твой критерий;
2) удалить его, если нужно простой процедурой Delete, ничего не надо пересчитывать еще раз, все данные уже хранятся в массиве...
 К началу страницы 
+ Ответить 

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

 





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