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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2014, 15:04   #1
JavaFan
Новичок
Джуниор
 
Регистрация: 04.05.2014
Сообщений: 3
По умолчанию Найти одинаковые слова в двух строках

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

Вот минимальный вариант но не могу найти ошибку, или подкиньте свой вариант, пожалуйста.
Код:
program six;

function Slovo(s:string;n:integer):string;
    const lim =[' ',',','!'];
    var ss:string;
    k,c,i:integer;
begin
    ss:=''; c:=1; k:=1;
    while k<=length(s) do begin
         while not(s[k] in lim) and (k<=length(s)) do begin
            if c=n then ss:=ss+s[k];
               inc (k); end;
               inc ( c );
       while (s[k] in lim) and (k<=length(s)) do inc (k);
      end;
   Slovo:=ss;
end;

var
  s1, s2, srez : string;
  n1, n2 : integer;
  i, j : integer;

begin

  writeln (' vvedite 1-u stroky' );  readln (s1);
  writeln (' vvedite 2-u stroky' );  readln (s2);
    n1 := 1;
    n2 := 1;
  srez := ' ';
    while slovo (s1, n1) <> '' do inc (n1);
    while slovo (s2, n2) <> '' do inc (n2);
  for i := 1 to n1 do
  for j := 1 to n2 do
     if slovo (s1, i) = slovo (s2, j) then  srez := srez + slovo (s1, i) +' ';
  writeln (' stroka - rezyltat : ' );
  writeln (srez);

end.
JavaFan вне форума Ответить с цитированием
Старый 04.05.2014, 15:18   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

А ошибка-то какая? Что компилятор говорит?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 04.05.2014, 15:19   #3
JavaFan
Новичок
Джуниор
 
Регистрация: 04.05.2014
Сообщений: 3
По умолчанию

Program4.pas(10) : Ошибка времени выполнения: Индекс находился вне границ массива.
JavaFan вне форума Ответить с цитированием
Старый 04.05.2014, 15:44   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

У меня сработало. Какие вы вводили строки?
Изображения
Тип файла: jpg 2014-05-04 15-42-48 Free Pascal IDE.jpg (16.0 Кб, 114 просмотров)
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 04.05.2014, 16:00   #5
JavaFan
Новичок
Джуниор
 
Регистрация: 04.05.2014
Сообщений: 3
По умолчанию

У меня PascalABC.NET
Те же строки ввел
В чем проблема может быть?

Последний раз редактировалось JavaFan; 04.05.2014 в 16:04.
JavaFan вне форума Ответить с цитированием
Старый 04.05.2014, 17:18   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Поковырялся. Ничего не понял, отчего ошибка. Совет - сменить этот недопаскальабц на нормальный компилятор паскаля.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как найти одинаковые слова в memo? gylayko Общие вопросы Delphi 10 06.04.2013 10:34
паскаль символьный тип (найти одинаковые слова) JosH7 Помощь студентам 4 25.03.2012 23:51
подсвечивающиеся одинаковые слова в Word 2003 Dbnfkbq Microsoft Office Word 1 29.03.2011 03:31
Напечатать все различные слова в строках Алексей Егораев Помощь студентам 1 20.02.2011 18:06
Какая разница в двух строках? bullvinkle HTML и CSS 2 07.12.2009 18:17