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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2017, 20:25   #1
Максим лёг
 
Регистрация: 16.11.2017
Сообщений: 3
По умолчанию Работа со строками - Pascal

вроде как все должно работать, но почему то не работает

uses crt;

procedure Vvod(var s:string);
begin
readln(s);
s:=s+' ';
while pos(' ',s)>0 do
delete(s,pos(' ',s),1);
end;

function Slovo(sl,s:string):boolean;
var k:byte;
begin
k:=pos(sl,s);
if ((k=1)and(s[k+length(sl)]=' '))
or((s[k-1]=' ')and(s[k+length(sl)]=' '))
then Slovo:=true else Slovo:=false;
end;
var s,s1,s2,s3:string;
mx:byte;
begin
clrscr;
writeln('Первая строка:');
Vvod(s1);
writeln('Вторая строка:');
Vvod(s2);
mx:=0;
while pos(' ',s1)>0 do
begin
s:=copy(s1,1,pos(' ',s1)-1);
if (length(s)>mx)and not Slovo(s,s2) then
begin
mx:=length(s);
s3:=s;
end;
delete(s1,1,pos(' ',s1));
end;
writeln('Самое длинное слово ',s3);
readln
end.
Максим лёг вне форума Ответить с цитированием
Старый 23.11.2017, 23:50   #2
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

Вроде как буквы знаю, но смысла не понимаю
Попробуйте, хотя бы задание показать.

И используйте для листинга BBCode code http://www.programmersforum.ru/misc.php?do=bbcode
СтудПом вне форума Ответить с цитированием
Старый 24.11.2017, 01:30   #3
Максим лёг
 
Регистрация: 16.11.2017
Сообщений: 3
По умолчанию

В предложении S1 найти самое длинное слово, которое отсутствует в предложении S2.

Вот задание
Максим лёг вне форума Ответить с цитированием
Старый 24.11.2017, 07:14   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
В предложении S1 найти самое длинное слово, которое отсутствует в предложении S2.
И тут же возникает вопрос: как разделяются слова? Судя по использованию "предложение" я склонен считать, что там могут быть пробелы, запятые, точки с запятой. Но не точки, восклицательные и вопросительные знаки, многоточия и т.п. - то есть закрывающие предложение знаки.


А для начала вот эту конструкцию:

Код:
if ((k=1)and(s[k+length(sl)]=' '))
or((s[k-1]=' ')and(s[k+length(sl)]=' '))
then Slovo:=true else Slovo:=false;
можно (и нужно) переделать вот так

Код:
function Slovo(sl,s:string):boolean;
var
  k:byte;
begin
  k := pos(sl,s);
  Slovo := ((k = 1) and (s[k+length(sl)] = ' ')) or ((s[k-1] = ' ') and (s[k+length(sl)] = ' '));
end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 24.11.2017 в 07:24.
Sciv вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками Pascal decantnik Помощь студентам 3 12.03.2011 22:46
Pascal. Работа со строками. lisenog Помощь студентам 1 16.12.2010 15:56
Работа со строками (pascal) Marlin Помощь студентам 7 03.06.2010 14:11
Работа со строками (pascal) ДиM@ Помощь студентам 3 18.04.2010 09:39
Работа со строками (Pascal) RoMaNyIL Помощь студентам 2 21.05.2009 20:39