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

Поиск:

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


Новичок



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

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




Может кто поможет еще с такой задачей:
2) Первое слово необходимо преобразовать во второе, используя наименьшее количество следующих действий:
   1. удалений символов
   2. замен символа на любой другой
Программа должна:
  1. Запросить исходное слово ( до 20 символов), которое будет преобразовываться
  2. Запросить слово которое нужно получить
  3. Для найденного самого короткого преобразования выполненного по правилам сообщить:
      а) число удалений
      б) число замен
      в) для контроля слово, образовавшееся после выполнения всех удалений и слово результат
или сообщить что преобразование невозможно
Пример. Исходные данные: корова, свора. Ответ: удалений 1, замен 3, после удаления - коова, итог - свора

Тесты

переулок, пешеход                       удалений 1, замен 3, после удаления - переуок
молот, молоток                              невозможно
энциклопедия, махаон                  удалений 6, замен 5, после удаления - энциоп
полиметилметакрилат, метромост    удалений 10, замен 4, после удаления - метилтетт


Что касается наработок, то я ток начал и заступарился сразу.. голова уже не соображает... вот что написал...
Код
 program slova;
var x,y,z:string; s,k,a,b:integer;
begin
writeln('vvedite ishodnoe slovo');
readln(x);
writeln('vvedite poluchaemoe slovo');
readln(y);
s:=0;
k:=0;
z:=y;
if length(x)>=length(y) then
for a:=1 to length(x) do
  begin
    for b:=1 to length(y) do
    begin
    if (x[a]=y[b]) then delete(z, ,(pos(x,x[a])-1))
    end;
  end;


незнаю как сделать так, чтобы удалить ненужные буквы во втором слове и оставить их на нужных местах...


PM MAIL   Вверх
Majar
Дата 14.12.2008, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот держи мое решение. Все тесты проверял - работают как в условии, так что вроде все верно.
Код

program pro31;
uses
 Crt;
type
 slovo = record
  st: string[20];
  flags: array [1..20] of boolean;
 end;
var
 insl: slovo;
 outsl: string[20];
 i, j, k, ud, zam: byte;
 f: boolean;
begin
 ClrScr;
 write('Vvedite isxodnoe slovo: ');
 readln(insl.st);
 write('Vvedite resultat: ');
 readln(outsl);
 if Length(outsl) > Length(insl.st) then
  writeln('nevozmozhno!')
 else
  begin
   k:= 0;
   for i:= 1 to length(outsl) do
    begin
     f:= false;
     for j:= k+1 to length(insl.st)-length(outsl)+i do
      if insl.st[j] = outsl[i] then
       begin
        k:= j;
        insl.flags[j]:= true;
        f:= true;
        break;
       end;
     if not f then
      begin
       insl.flags[k+1]:= true;
       inc(k);
      end;
    end;
   i:= 1;
   j:= 1;
   ud:= 0;
   repeat
    begin
     if insl.flags[j] <> True then
      begin
       Delete(insl.st,i,1);
       inc(ud);
       dec(i);
      end;
     inc(i);
     inc(j);
    end;
   until i > Length(insl.st);
   zam:= 0;
   for i:= 1 to Length(insl.st) do
    if insl.st[i] <> outsl[i] then
     inc(zam);
   writeln('Kol-vo udalenii: ', ud);
   writeln('Kol-vo zamen: ', zam);
   writeln('Kontrolnoe slovo: ', insl.st);
   writeln('Itog: ', outsl);
  end;
 readln;
end.

PM MAIL   Вверх
ProofF
Дата 14.12.2008, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Большое спасибо! Даже не большое, а просто гигантское)
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.0446 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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