Помощь - Поиск - Пользователи - Календарь
Полная версия: задания на курсовую.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Михаил
Здравствуйте.. У меня проблемы с курсовой... срочно надо сдавать, а у меня даже наработок нет =( Помогите мне пожайлуста!!! А то погибну  

Вот задание:
Задан текст, состоящий из строк произвольной длины. Строки разделяются одним символом или несколькими, называемыми разделителями. Разделители одинаковы для всего текста. Текст заканчивается комбинацией двух специальных символов, отличных от разделителя.
Выполнить над текстом последовательность действий, указанную в задании:
а) Найти порядковые номера, считая от начала текста, определённых символов, которые задаются в исходных данных.
б) Сформировать новый текст, в котором каждый такой слог заключён в кавычки.

Может ещё не перевелись добрые люди на свете. Пожайлуста откликнитесь кто-нибудь!!!
Gid
Переводишь текст в тип string а затем...Короче, куда посылать готовую прогу?
___ALex___

program Search;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TBMTable = array[0..255] of Integer;

function BMSearch(StartPos: Integer; const S, P: String): Integer;
var
Pos, lp, i: Integer;
BMT: TBMTable;
begin

for i := 0 to 255 do BMT[i] := Length(P);
for i := Length(P) downto 1 do if BMT[Byte(P[i])] = Length(P) then
BMT[Byte(P[i])] := Length(P) - i;

lp := Length(P);
Pos := StartPos + lp -1;
while Pos <= Length(S) do
if P[lp] <> S[Pos] then Pos := Pos + BMT[Byte(S[Pos])] else
for i := lp - 1 downto 1 do if P[i] <> S[Pos - lp + i] then
begin
Inc(Pos);
Break;
end else if i = 1 then
begin
Result := Pos - lp + 1;
Exit;
end;
Result := 0;

end;

begin

WriteLn(BMSearch(1, 'dacf', 'cf'));
ReadLn

end.


Ф-ия ищет эффективным алгоритмым(упрощённая версия алгоритма Бойера-Мура) первое вхождение подстроки в строке.Легко исправить чтоб искала следующие вхождения(напиши если надо я тебе сделаю). Быстрый алгоритм поиска - это всё что тебе нужно для решения задачи!Пока
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.