Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2011, 21:00   #1
Д@ш@
 
Регистрация: 28.04.2011
Сообщений: 8
По умолчанию Строки не работает

Написать программу, которая каждую встреченную букву "б" заменяет сочетанием "ку".
Не работает

Код:
Модуль 1
unit op;
interface
  type str= string;
implementation
end.

Модуль 2

unit obrabotka;
interface
uses op;
  procedure vvod(var s:str);
  function zamena(var s:str):integer;
implementation
procedure vvod;
begin
        writeln('‚Введите текст');
        readln(s);
end;
function zamena;
var   i,  s    : integer;
begin
for i:=length(s) downto 1 do
if s[i]='б' then
 begin
   insert('ку',s,i);
   delete(s,i+2,1);
 end;
end.

Модуль 3

uses op, obrabotka;
var
       s        : str;
begin
     vvod(s);
     writeln('Текст ', zamena(s));
end.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 25.05.2011 в 10:31.
Д@ш@ вне форума Ответить с цитированием
Старый 25.05.2011, 10:20   #2
stck
Пользователь
 
Аватар для stck
 
Регистрация: 14.06.2010
Сообщений: 84
По умолчанию

Зачем так сложно по нескольким модулям?
Сначала удаляйте текущий символ, потом только вставляйте.
stck вне форума Ответить с цитированием
Старый 25.05.2011, 10:58   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

модуль obrabotk (имя сократил до 8-ми символов, иначе TurboPascal не смог бы найти этот модуль...
Код:
unit obrabotk;
interface
uses op;
  procedure vvod(var s:str);
  function zamena(s:str): string;

implementation

procedure vvod;
begin
  WriteLn;
  write('Введите текст: ');
  readln(s);
end;

function zamena;
var   i : integer;
  sTemp : string;
begin
  sTemp := s;
  for i:=length(sTemp) downto 1 do
  if sTemp[i]='б' then
    begin
      delete(sTemp,i,1);
      insert('ку',sTemp,i);
    end;
  zamena := sTemp;
end;

end.
основная программа:
Код:
uses op, obrabotk;
var
  s : str;
begin
   vvod(s);
   writeln('Текст ', zamena(s));
   readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление строки в StringGrid работает как-то странно. Turboworld Общие вопросы Delphi 3 25.04.2011 09:04
Парсинг строки. SubString не правильно работает. Crivel C# (си шарп) 2 13.03.2011 15:49
Почему программа на С++ не работает с локальным описанием массива, но работает с глобальным? >>STINGER<< Помощь студентам 4 08.03.2011 09:56
Библиотека НЕ работает с 2008, но работает с 2000 SQL namenike Общие вопросы C/C++ 0 26.05.2009 11:04