Страница 1 из 2

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

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

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

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 без изменений.

вот например:
пипирупиру пиру пируру
пируру
т.е. удалить пируру?

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

Добавлено: 24 ноя 2008, 22:05
Mary Yu
Заранее оригато годзаймасу=^^=

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

Добавлено: 25 ноя 2008, 12:43
demon416
1 по пунктам
а)заменять 2 пробела одним пока не закончатся
б)заменить все пробелы точками
в)если последний символ в строке точка - удалить
замену желательно реализовать в виде функции

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

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

pps если надо еще и текст программы то как минимум должно быть домо оригато годзамайсу ^_-

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

Добавлено: 25 ноя 2008, 16:09
derhummel
Эти строки взорвали мне мозг) Помогите плиз с такой задачей:
Дана последов. символов, заканчив. точкой! Известно что среди них есть двоеточие. Определить количество символов * (звездочка), стоящих до и после двоеточия!

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

Добавлено: 25 ноя 2008, 16:57
demon416
в цикле от 0 до длины строки -1 перебираеш символы если попадается * увеличиваеш счетчик звездочек до двоеточия когда встретиться двоеточие установиш флаг и дальше будеш увеличивать счетчик звездочек после двоеточия

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

Добавлено: 25 ноя 2008, 18:22
Mary Yu
Онегай таскете!
Домо оринато годзаймасу!=^^=

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

Добавлено: 25 ноя 2008, 20:27
Mary Yu
Решила сделать так: {хоть бы препод принял!!!}

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

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.

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

Добавлено: 25 ноя 2008, 20:29
Mary Yu
А до второй задачи озарение ещё не снизошло...Помогите плиззз Т.Т

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

Добавлено: 26 ноя 2008, 01:30
demon416
Вынужден огорчить - препод не примет
потому что программа должна все делать сама при любых входных строках
первая программа

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

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, очень надеюсь увидеть сделанные вами коментарии к каждой строке этих программ

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

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

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