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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача: на символьную обработку, помогите разобраться. в чем огрех? 
:(
    Опции темы
ADAfonin
  Дата 17.10.2006, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Суть задачи:

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


Код

Program                                       labaratornayarabora_pyat;
Var
  r, z, w, st: string;
 b, i, j, d, l: integer;
    begin 
      readln (st);
      st:=st + ‘ ‘;
      l:=length(st);
i:=1;
while i <= l do
    begin
      b:=i;
      While st[i] < > ‘ ‘ do
      i: = i +1;
d:=i-B;
Copy:=W(st, b, d);
V:=’’;
For j:=1 to d do
If W[1]=W[n] then
V:=V+W[j];
If m > 0 then
Delete (st, b, d);
Insert (v, st, b);
I:=i-d+m;
End;
End;
End;
I:=i+1;
End;
Writeln (st);
End.


Не работает, что не так? Может я что-то не так сделал?
Заранее благодарен.


Это сообщение отредактировал(а) ADAfonin - 17.10.2006, 23:47
PM MAIL ICQ   Вверх
Coder
Дата 18.10.2006, 02:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



где храняться слова? каждое слово нужно вводить с клавиатуры? что это за конструкция Copy:=W(st, b, d);

если писать программу строго следуя: "Удалить все слова, которые начинаются и заканчиваются одной и той же буквой, и продублировать все остальные слова.", то:
Код

var
  st : string;
begin
  readln(st);
  if st[1]=st[length(st)] then
    // удалить откуда-то это слово
  else
    writeln(st);// продублировать .... на экране
end.



PM MAIL   Вверх
Zero
Дата 18.10.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



ADAfonin, мюдрёная слишком у тебя прога... smile хотел переделать, чтобы тебе понятнее было, но всётаки, лучше без наворотов сделать как надо:
Код

program pr;
var
  s,buf:string;
Begin
  write('Введите строку S: ');
  readln(s);
  s:=s+' ';
  while s<>'' do
    begin
      buf := copy(s,1,pos(' ',s)-1);
      delete(s,1,pos(' ',s));
      if buf[1] <> buf[length(buf)] then
        write(buf,' ');
    end;
end.

PM MAIL ICQ   Вверх
volvo877
Дата 18.10.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

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



Цитата(Coder @  18.10.2006,  01:31 Найти цитируемый пост)
если писать программу строго следуя: "Удалить все слова, которые начинаются и заканчиваются одной и той же буквой, и продублировать все остальные слова.", то:
То ЧТО? Ты вводишь строку, сравниваешь первый и последний символ СТРОКИ, и что этим добиваешься?

А я введу
"start test finish sos", что сделает твоя программа?
PM MAIL   Вверх
Hidrag
Дата 18.10.2006, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код не проверял писал сразу  на форум, но думаю должно работать...

Код

program proga;
var
  strstart, strend,temp,slovo:String;
  i:integer;

procedure builder(s:string);
var
  a,b:string;
begin
  a:=copy(s,1,1);
  b:=copy(s,length(s)-1,1);
  if a<>b then strend:=strend + s+' '+s+' ';
end;

BEGIN
  Readln(strstart);
  strend:='';
  temp:='';
  slovo:='';
  for i:=1 to Length(strstart) do begin
    temp:=copy(strstart,i,1);
    if temp<>' ' then slovo:=slovo+temp
    else begin
      Builder(slovo);
      slovo:='';
    end;
  end;
  Writeln(strend);
END.


Это сообщение отредактировал(а) Hidrag - 18.10.2006, 16:35


--------------------
user posted image
PM WWW ICQ   Вверх
volvo877
Дата 18.10.2006, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

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



Цитата(Hidrag @  18.10.2006,  15:33 Найти цитируемый пост)
думаю должно работать...

Не работает оно... Вот результат:
Код
start test finish sos
start start test test finish finish
И что? test удалился? Нет, продублировался...
PM MAIL   Вверх
Zero
Дата 18.10.2006, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Господа, что вы паритесь над 2*2, я уже привёл рабочую прогу.
PM MAIL ICQ   Вверх
Hidrag
Дата 18.10.2006, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Zero, Почитай внимательно условие задачи....

Вот подправил:
Код

program Project1;

var
  strstart, strend,temp,slovo:String;
  i:integer;

procedure builder(s:string);
var
  a,b:string;
begin
  a:=copy(s,1,1);
  b:=copy(s,length(s),1);
  if a<>b then strend:=strend + s+' '+s+' ';
end;

begin
  Readln(strstart);
  strend:='';
  temp:='';
  slovo:='';
  for i:=1 to Length(strstart) do begin
    temp:=copy(strstart,i,1);
    if temp<>' ' then slovo:=slovo+temp
    else begin
      Builder(slovo);
      writeln(slovo);
      slovo:='';
    end;
  end;
  Writeln(strend);
  readln;
end.



--------------------
user posted image
PM WWW ICQ   Вверх
Zero
Дата 18.10.2006, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



Цитата(Hidrag @  18.10.2006,  20:10 Найти цитируемый пост)
Почитай внимательно условие задачи....

И что же там не так???
PM MAIL ICQ   Вверх
Hidrag
Дата 18.10.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Zero, 
Цитата(ADAfonin @  17.10.2006,  23:46 Найти цитируемый пост)
 и продублировать все остальные слова.


Вот этот момент пропустил...


--------------------
user posted image
PM WWW ICQ   Вверх
Coder
Дата 19.10.2006, 06:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(volvo877 @ 18.10.2006,  15:15)
Цитата(Coder @  18.10.2006,  01:31 Найти цитируемый пост)
если писать программу строго следуя: "Удалить все слова, которые начинаются и заканчиваются одной и той же буквой, и продублировать все остальные слова.", то:
То ЧТО? Ты вводишь строку, сравниваешь первый и последний символ СТРОКИ, и что этим добиваешься?

А я введу
"start test finish sos", что сделает твоя программа?

все, понял, был не прав.
[я не до конца понял задачу - откуда должны поступать слова]
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

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

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

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

3. Оффтопить

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

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

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


 




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


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

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