for i:=1 to length (a) do
begin
j:=i+1;
while(j<=length(a))do
begin
if (a=a[j])and(a<>' ') then begin delete (a,j,1); dec(j); end;
inc(j);
end;
end;
Строки
Есть задание: Вести ряд символов, получить новую строку в которой нету повторный символов кроме пробелов, количество пробелов удвоить.
А покажите, что уже сделали, и в чем именно проблема. Хотя бы алгоритм светаните.
Дело в том, что я не могу понять, как сделать так что бы программа убирала повторные символы???
Цитата:
Дело в том, что я не могу понять, как сделать так что бы программа убирала повторные символы???
Добавлять в новую строку только те символы, которых в ней ещё нет. Если символ пробел, то не проверять его наличие, а просто добавить два пробела. Надеюсь как обходить все символы и добавлять в другую строку символы в конец вы знаете.
Цитата: airmen
Дело в том, что я не могу понять, как сделать так что бы программа убирала повторные символы???
в вашем случае удобно воспользоваться множествами.
смотрите посимвольно, присутствует ли такая буква в множестве(изначально пустом), если да - не пишете, если нет - пишете и добавляете ее в множество. а насчет пробелов - вам верно подсказали :)
1.Правда ли, что в тексте количество пропусков на 1 меньше, чем слов?
2.Вычеркнуть из слова А1 те символы, которые встречаются в слове А2.
До завтра нужно
Вот моя програма:
program lab6;
uses crt;
var
a: string;
s:string;
i,j: integer;
begin
clrscr;
writeln ('Wedite stroku');
readln (a);
s:=' ';
for i:=1 to length (a) do
for j:=i+1 to length (a) do
if a=a[j] then delete (a,j,1);
for i:=1 to length (a) do
if a=' ' then insert (a,s,i-1);
writeln ('stroka ostavshihsya sinvolov');
writeln (a);
readkey;
end.
вроде должно добавлять пробелы, но ниче не получается.
Цитата:
for i:=1 to length (a) do
for j:=i+1 to length (a) do
if a=a[j] then delete (a,j,1);
for j:=i+1 to length (a) do
if a=a[j] then delete (a,j,1);
это неправильное условие, введите строку "аааааа bbb ccc" и убедитесь в этом.
правильно так:
Код:
а с пробелами так:
Код:
i:=1;
while i<=length (a) do
begin
if a=' ' then begin insert (' ',a,i); inc(i);end;
inc(i);
end;
while i<=length (a) do
begin
if a=' ' then begin insert (' ',a,i); inc(i);end;
inc(i);
end;