СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Pascal (Паскаль) Сложная программа

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Pascal (Паскаль) Сложная программа»

uses crt;

{разделители слов, можно еще добавить}

const zn=[' ',':',',','!','?','-',';',')'];

var s,s1,s2:string;

    i,k:byte;

begin

clrscr;

writeln('Введите строку, содержащую 2 одинаковых слова:');

readln(s);

s:=s+' ';{добавим в конец пробел}

for i:=1 to length(s) do

if s[i] in zn then s[i]:=' ';{все разделители заменим на пробелы}

while pos('  ',s)0 do{пока есть 2 пробела рядом(в апострофах 2 пробела)}

delete(s,pos('  ',s),1);{1 пробел удаляем}

if s[1]=' ' then delete(s,1,1);{если первый символ пробел, тоже удаляем}

k:=0;

while pos(' ',s)0 do{пока есть пробел}

 begin

  s1:=copy(s,1,pos(' ',s)-1);{копируем первое слово до пробела}

  for i:=pos(' ',s)+1 to length(s) do{смотрим строку дальше}

  if (copy(s,i,length(s1))=s1){если набор символов совпадает с этим словом}

     and(s[i-1]=' '){и перед ним пробел}

     and((s[i+length(s1)]=' '){и за ним пробел}

     or(i+length(s1)-1=length(s))) then{или это последнее слово}

      begin

       k:=1;{фиксируем совпадение}

       s2:=s1;{запоминаем слово}

       write('Одинаковые слова ',s2);{выводим на экран}

       readln;

       exit;{выходим из программы, нужно только 1 пару}

      end;

  delete(s,1,pos(' ',s));{удаляем первое слово, следующее первое}

 end;

if k=0 then write('Нет двух одинаковых слов');

readln

end.




Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!