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

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

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

> Строки!Помогите. пожалуйста
Дымка
сообщение 9.07.2005 17:42
Сообщение #1


Новичок
*

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

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


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


Новичок
*

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

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


Че-то я совсем запуталась...
Код

Program Stroki;
uses crt;
Function StrUpper(s: String): String;
Var i: Byte;
 Begin
   For i := 1 To Ord(s[0]) Do
     Case s[i] Of
       'a' .. 'z': s[i] := Chr(Ord(s[i])-$20);
       #160 .. #175: s[i] := Chr(Ord(s[i])-$20);
       #224 .. #239: s[i] := Chr(Ord(s[i])-$50)
     End;
   StrUpper := s
 End;
Function StrLower(s: String):String;
 Var i: Byte;
 Begin
   For i := 1 To Ord(s[0]) Do
     Case s[i] Of
       'A' .. 'Z': s[i] := Chr(Ord(s[i])+$20);
       #128 .. #143: s[i] := Chr(Ord(s[i])+$20);
       #144 .. #159: s[i] := Chr(Ord(s[i])+$50)
     End;
   StrLower := s
 End;

const
  stUpper  = ['A' .. 'Z', #128 .. #159];
  abc = ['a'..'z','A'..'Z','1'..'9'];
var
  s_res, prev, word: string;
  p: integer;
  S: string;
  stnew: string;
  blank: boolean;
  i: integer;
begin
  clrscr;
  Write('Vvedite stroku,kotoraya zakan4ivaetsya');
  Writeln(' na vosklicatelniy znak ili to4ku');
  Readln(s);
  s_res :=StrUpper(s);
  prev := '';
  p := 1;
  repeat
     while not (s_res[p] in abc) and (p <= length(s_res)) do
        P:=p+1;
     while (s_res[p] in abc) and (p <= length(s_res)) do
     begin
        word := word + s_res[p];
        P:=p+1;
     end;
     if word = prev then
     begin
        delete(s_res, p - length(word), length(word));
        dec(p, length(word));
     end
     else
        prev := word;
     word := '';
  until p > length(s_res);
  blank:= false;
  stnew:= ' ';
  for i:= 1 to length(s_res) do
  begin
     if s_res[i] <>' ' then
     begin
        stnew:= stnew + s_res[i];
        blank:= false;
     end
     else if (not blank) then
     begin
         stnew:= stnew +s_res[i];
         blank:=true;
     end;
  end;
  while stnew[1]=' ' do
     stnew:=copy(stnew,2,255);
  while stnew[length(stnew)]=' ' do
     delete(stnew,length(stnew),1);
     s_res:=StrLower(stnew);
  writeln (s_res);

end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Дымка   Строки!Помогите. пожалуйста   9.07.2005 17:42
volvo   Поиском не пробовал пользоваться? Я по-моему уже в...   9.07.2005 18:02
Дымка   Спасибо большое!!!...Только почему-то ...   9.07.2005 18:17
volvo   Может уже произошло, и надо нажать на Alt+F5 чтобы...   9.07.2005 18:21
Дымка   Выдает измененную строку, но 33 раза подряд...:(   9.07.2005 18:26
volvo   Ну, я же не просто так сюда решение закинул, навер...   9.07.2005 18:34
Дымка   Еще раз огромное спасибо...И еще один дурацкий воп...   9.07.2005 18:44
volvo   Переводи всю строку в верхний регистр: s_res := St...   9.07.2005 19:38
Дымка   И за это спасибо...Хотя возник еще один вопрос...У...   9.07.2005 23:39
volvo   А, так тебе же к первоначальному виду возврашаться...   9.07.2005 23:45
Дымка   Че-то я совсем запуталась... Program Stroki; use...   9.07.2005 23:59
volvo   Ну не надо ничего придумывать... Я же сказал, что ...   10.07.2005 0:29
Дымка   Запихнула туда еще удаление пробелов и все пошло з...   10.07.2005 13:11
volvo   Ты тот модуль, на который я ссылку давал, внимате...   10.07.2005 13:46
Дымка   А можно еще пару глупых вопросов и с этой задачей ...   10.07.2005 13:27
klem4   Все просто : Chr(97)='a' ord('a...   10.07.2005 13:41
Дымка   а -$20, -$50?? это надо понимать, шестна...   10.07.2005 15:47
volvo   При том, что разность кодов символов в верхнем и н...   10.07.2005 16:01


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

 



- Текстовая версия 20.07.2025 22:33
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"