Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Паскаль. Строки. помогите исправит программу 
:(
    Опции темы
MonEnnemi
Дата 6.1.2010, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 6.1.2010

Репутация: нет
Всего: нет



Очень нужна помощь в строках)

Есть задание:
Удалить в строке слова, которые встречаются в ней указанное число раз.

При этом такой вариант написания программы не подходит, потому что сравнивает слова поэлементно:


Цитата

program stroka;
uses crt;
var a:string;
b:array[1..60]of string;
i,k,n,t,m,j:byte;
begin
clrscr;
writeln('vvedite stroku');
readln(a);
writeln('vvedite chislo');
readln(n);
a:=' '+a+' ';
for i:=1 to length(a) do
if a[i]=' 'then inc(k)else b[k]:=b[k]+a[i];
for i:=1 to k do
begin
m:=0;
for j:=1 to k do
if b[i]=b[j] then inc(m);
if m=n then
begin
for t:=length(a)downto 1 do
if copy(a,t,length(b[i])+2)=' '+b[i]+' ' then delete(a,t,length(b[i])+1);
end;
end;
writeln(a);
readln;
end.

Помогите, пожалуйста)
PM MAIL   Вверх
~FoX~
Дата 6.1.2010, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 1
Всего: 68



MonEnnemi, А как должно сравнивать?


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
MonEnnemi
Дата 6.1.2010, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 6.1.2010

Репутация: нет
Всего: нет



~FoX~
Нужно, сравнивать слова... То есть воспользоваться нахождением позиции пробела, но я не очень понимаю, как это все организовать, чтобы правильно работало(

Это сообщение отредактировал(а) MonEnnemi - 6.1.2010, 23:40
PM MAIL   Вверх
~FoX~
Дата 7.1.2010, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 1
Всего: 68



Вот так получаешь отдельные слова
Код

var
  EnteredString: string;
  TempString, TempWord: string;
  WordCount, DuplicateCount: integer;
  i, j: integer;
begin
  ClrScr;
  WriteLn('Enter your string');
  ReadLn(EnteredString);
  EnteredString := EnteredString + ' ';
  TempString := EnteredString;
  WriteLn('Enter word count');
  ReadLn(DuplicateCount);
  j := 0;
  WordCount := 0;
  for i := 0 to Length(TempString) do begin
    if TempString[i] = ' ' then begin
      TempWord := copy(TempString, j, i-j);
      j := i+1;
      WordCount := WordCount+1;
       {Здесь проверяешь количество вхожений}
    end;
  end;


Потом проверяешь количество вхождений слова в строку StrPos тебе поможет в этом.


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
MonEnnemi
Дата 7.1.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 6.1.2010

Репутация: нет
Всего: нет



Спасибо большое)

Тогда получается, что удаление этих слов надо будет организовать как-то так:

Цитата

for i := 0 to Length(TempString) do
           delete(TempString, pos(TempWord + ' ', TempString), length(TempWord)+1);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0847 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.