Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

Код:
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
Репутация: 108
По умолчанию

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

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

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

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


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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти самое длинное общее слово двух заданных предложений 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


19:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.