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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2014, 13:28   #1
BlackwHite11
Новичок
Джуниор
 
Регистрация: 14.05.2014
Сообщений: 2
По умолчанию найти самое длинное общее слово двух заданных предложений паскаль

Код:
uses crt;
type mas=array [1..255] of string;
var a1,a2:mas;
    s1,s2: string;
    r1,r2: byte;
 
procedure StrToArr(s: string; var z:mas; var r: byte);
var sl: string;
    i: byte;
begin
r:=0; s:=s+' '; sl:='';
for i:=1 to length(s) do
    if not (s[i] in ['.',',',' ','-',';',':','!','?'])
       then sl:=sl+s[i] else if length(sl)>0 then
           begin
           inc(r);
           z[r]:=sl;
           sl:='';
           end
end;
 
function MaxWord (x,y:mas; rr1,rr2: byte):string;
var i,j: integer;
    smax: string;
begin
smax:='';
for i:=1 to rr1 do
    for j:=1 to rr2 do
        if (x[i]=y[j]) and (length(x[i])>length(smax))
           then  smax:=x[i];
MaxWord:=smax;
end;
 
begin
write('s1=');
readln(s1);
write('s2=');
readln(s2);
StrToArr(s1,a1,r1);
StrToArr(s2,a2,r2);
writeln('Самое длнное общее слово - "',MaxWord (a1,a2,r1,r2),'"');
end.
что в этой программе не так?

Последний раз редактировалось Stilet; 23.06.2014 в 14:07.
BlackwHite11 вне форума Ответить с цитированием
Старый 23.06.2014, 13:35   #2
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

Цитата:
procedure StrToArr(s: string; var z:mas; var r: byte);
А StringList-а в паскале нет? Было бы проще.
XE5 вне форума Ответить с цитированием
Старый 23.06.2014, 14:08   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
что в этой программе не так?
Отладкой проходил? Массив вообще верно составляется?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.06.2014, 21:06   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

программку проверил. код годный и рабочий!

единственное, в TurboPascal возникли проблемы с компиляцией массивов (решил её уменьшением допустимых длин слов) и ошибка выполнения - в MS DOS стека не хватало под оба массива (решил через const ):
Код:
type mas=array [1..255] of string[80];


function MaxWord (const x,y:mas; rr1,rr2: byte):string;
...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти самое длинное общее слово двух заданных предложений DELPHI bratteampro Помощь студентам 1 10.01.2013 18:17
Найти самое длинное слово в строке. Mineralkaaaa Помощь студентам 9 16.12.2012 21:01
С# найти самое длинное и самое короткое слово в строке и вывести их Зеленый Чай Помощь студентам 4 06.01.2012 18:40
найти самое длинное симметричное слово Си++ xVeteRx Помощь студентам 3 10.04.2009 21:25
С++ Найти самое длинное слово строки k0z7_g0b1in Общие вопросы C/C++ 3 22.04.2007 17:37