Строки?Строки!Ох уж эти строки..ТР

Mary Yu
Сообщения: 40
Зарегистрирован: 24 сен 2008, 00:15

Дана строка,состоящая из русских слов,разделенные пробелом(одним или несколькими).Вывести строку ,содержащую эти же слова,разделенные одним символом "."(точкой).Вконце строки точк не ставить.
Я тут помучилась-помучилась,но точка в конце так и остается.Можете исправить или предложить более рациональное решение?^^'

Код: Выделить всё

program ex1;
var s:string[70];
     s1:string[70];
   begin
   s:='строка из  русских ';
   writeln(s);
   delete(s,7,1);
   writeln(s);
    s1:='.';
      insert(s1,s,7);
      writeln(s);
    delete(s,10,2);
     insert(s1,s,10);
     insert(s1,s,11);
     insert(s1,s,19);
writeln(s);
 readln
end.
А ещё не догоню условие:
Даны строки S и S1.Удалить из строки S последнюю подстроку,совпадающую с S1.Если совпадающих строк нет,то вывести строку S без изменений.

вот например:
пипирупиру пиру пируру
пируру
т.е. удалить пируру?
Mary Yu
Сообщения: 40
Зарегистрирован: 24 сен 2008, 00:15

Заранее оригато годзаймасу=^^=
Аватара пользователя
demon416
Сообщения: 178
Зарегистрирован: 30 янв 2006, 14:03
Откуда: kirovskoe

1 по пунктам
а)заменять 2 пробела одним пока не закончатся
б)заменить все пробелы точками
в)если последний символ в строке точка - удалить
замену желательно реализовать в виде функции

2 да надо удалить последнее вхождение пируру в строку

ps советую посмотреть функцию pos

pps если надо еще и текст программы то как минимум должно быть домо оригато годзамайсу ^_-
ака хинт: коментируйте код, самим же легче будет разобраться ;)
derhummel
Сообщения: 6
Зарегистрирован: 25 ноя 2008, 16:03

Эти строки взорвали мне мозг) Помогите плиз с такой задачей:
Дана последов. символов, заканчив. точкой! Известно что среди них есть двоеточие. Определить количество символов * (звездочка), стоящих до и после двоеточия!
Аватара пользователя
demon416
Сообщения: 178
Зарегистрирован: 30 янв 2006, 14:03
Откуда: kirovskoe

в цикле от 0 до длины строки -1 перебираеш символы если попадается * увеличиваеш счетчик звездочек до двоеточия когда встретиться двоеточие установиш флаг и дальше будеш увеличивать счетчик звездочек после двоеточия
ака хинт: коментируйте код, самим же легче будет разобраться ;)
Mary Yu
Сообщения: 40
Зарегистрирован: 24 сен 2008, 00:15

Онегай таскете!
Домо оринато годзаймасу!=^^=
Mary Yu
Сообщения: 40
Зарегистрирован: 24 сен 2008, 00:15

Решила сделать так: {хоть бы препод принял!!!}

Код: Выделить всё

program ex1;
var s:string[70];
     s1:string[70];
   begin
   s:='строка из  русских_';
   s1:='.';
writeln(s);
   delete(s,7,1);     'строкаиз  русских_'
   writeln(s);
   delete(s,9,2);
      writeln(s);       'строкаизрусских_'
    delete(s,16,1);
      writeln(s);       'строкаизрусских'
     insert(s1,s,7);
      writeln(s);       'строка.изрусских'
insert(s1,s,10);
     writeln(s);       'строка.из.русских' 
insert(s1,s,10);
writeln(s);       'строка.из..русских' 
 readln
end.
Mary Yu
Сообщения: 40
Зарегистрирован: 24 сен 2008, 00:15

А до второй задачи озарение ещё не снизошло...Помогите плиззз Т.Т
Аватара пользователя
demon416
Сообщения: 178
Зарегистрирован: 30 янв 2006, 14:03
Откуда: kirovskoe

Вынужден огорчить - препод не примет
потому что программа должна все делать сама при любых входных строках
первая программа

Код: Выделить всё

program ex1;
var
s: string;
begin
s:= ' dfdf dfdf dfdf  dvfdv  dfdf   ddf   ';
writeln(s);
while pos('  ',s)<>0 do
delete(s,pos('  ',s),1);
while pos(' ',s)<>0 do
begin
insert('.',s,pos(' ',s));
delete(s,pos(' ',s),1);
end;
if s[length(s)] = '.' then
delete(s,length(s),1);
writeln(s);
readln;
end.
вторая прога поинтереснее

Код: Выделить всё

program ex2;
var
s,s1,temp: string;
i,j: integer;
begin
s:= 'sdgfsdrgcv sdfsdf sertgefwbv drgcv drgcv ';
s1:='drgcv';
j:=0;
temp:=s;
if pos(s1,s)=0 then
writeln(s)
else
begin
while pos(s1,temp)<>0 do
begin
i:=pos(s1,temp);
j:=j+1;
delete(temp,i,1);
end;
delete(s,i+j-1,length(s1));
end;
writeln(s);
readln;
end.
Mary Yu, очень надеюсь увидеть сделанные вами коментарии к каждой строке этих программ
ака хинт: коментируйте код, самим же легче будет разобраться ;)
derhummel
Сообщения: 6
Зарегистрирован: 25 ноя 2008, 16:03

demon416 писал(а):в цикле от 0 до длины строки -1 перебираеш символы если попадается * увеличиваеш счетчик звездочек до двоеточия когда встретиться двоеточие установиш флаг и дальше будеш увеличивать счетчик звездочек после двоеточия

А хотя бы чуть набросать текст программы можешь ибо я нубяра полный :confused:
Ответить