Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Слава Кондратье
1 / 1 / 0
Регистрация: 21.12.2011
Сообщений: 75
#1

Найти в тексте наибольшее по длине слово - Turbo Pascal

28.02.2012, 21:21. Просмотров 546. Ответов 4
Метки нет (Все метки)

дан текст.найти наибольшее по длине слово
помогите пожалуйста,если можно с объяснением
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2012, 21:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти в тексте наибольшее по длине слово (Turbo Pascal):

В произвольном тексте найти наибольшее слово и вычислить количество знаков в нём
В произвольном тексте найти наибольшее слово и вычислить количество знаков в...

Найти наибольшее количество цифр идущих в тексте подряд
Дан текст, найти наибольшее количество цифр идущих в нем подряд.

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

Найти слово, содержащее наибольшее количество различных букв
Дана строка. Найти слово содержащее наибольшее количество РАЗЛИЧНЫХ букв....

Найти слово, содержащие наибольшее количество указанных букв
Пожайлуста помогите решить такую задачу Дана строка, содержащая текст на...

Найти и вывести слово, содержащее наибольшее количество цифр
дан массив из n слов произвольной длины (длина слова не превышает 80 символов)....

4
versa4e
trainspotting
1083 / 483 / 384
Регистрация: 11.11.2010
Сообщений: 773
29.02.2012, 12:54 #2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const
  delims=[' ',',',':',';','-','"','.','!','?'];
var
  s,wd:string;
  left,right,maxLen:byte;
begin
  write('Input string->'); 
  readln(s);  
  maxLen:=0; left:=1; right:=1;
  while right<=length(s) do
    begin
      while (s[left] in delims) and (left<=length(s)) do inc(left);
      right:=left;
      while not (s[right+1] in delims) and (right+1<=length(s)) do inc(right);
      if (left<=length(s)) and (right-left+1>maxLen) then
        begin
          wd:=copy(s,left,right-left+1);
          maxLen:=right-left+1;
        end;
      left:=right+1;
    end;
  if maxLen=0 then writeln('String doesn''t contain words')
  else writeln('The first word with max length->',wd);
end.
0
Слава Кондратье
1 / 1 / 0
Регистрация: 21.12.2011
Сообщений: 75
29.02.2012, 20:36  [ТС] #3
объясните пожалуйста ход мыслей
0
versa4e
trainspotting
1083 / 483 / 384
Регистрация: 11.11.2010
Сообщений: 773
29.02.2012, 20:45 #4
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const
  delims=[' ',',',':',';','-','.','!','?','"'];{символы-разделители слов}
var
  s,wd:string;
  left,right,maxLen:byte;
begin
  write('Input string->');
  readln(s);  
  maxLen:=0;{максимальная длина слова}
  left:=1;{левая граница слова}
  right:=1;{правая граница слова}
  while right<=length(s) do{просматриваем строку}
    begin
      {пока встречаем символ-разделитель и не достигнут конец строки}
      while (s[left] in delims) and (left<=length(s)) do
        left:=left+1;{пропускаем символ, т.о. после прохода цикла в left - начало очередного слова}
      right:=left;{идем от начала слова}
      {пока символ за его концом не окажется разделителем или будет выход за конец строки}
      while not (s[right+1] in delims) and (right+1<=length(s)) do
        right:=right+1;{смещаем правую границу слова}
      {в итоге: в left - позиция символа-начала слова, в right - позиция символа-конца слова}
      (*если левая граница слова не вышла за конец строки(то есть строка пуста либо в строке 
      одни разделители и длина очередного найденного слова больше текущей максимальной*)
      if (left<=length(s)) and (right-left+1>maxLen) then
        begin
          wd:=copy(s,left,right-left+1);{выделяем из строки посл. символов этого слова}
          maxLen:=right-left+1;{меняем максимальную длину}
        end;
      left:=right+1;{переходим к анализу символов, стоящих за найденным словом}
    end;
  if maxLen=0 then write('String doesn''t contain words') {строка состоит только из разделителей либо пуста}
  else write('First found word with max length->',wd);
end.
0
Слава Кондратье
1 / 1 / 0
Регистрация: 21.12.2011
Сообщений: 75
29.02.2012, 21:34  [ТС] #5
спасибо большое
 Комментарий модератора 
Если какой-либо пост на форуме показался вам полезным, нажмите кнопку "Спасибо" внизу самого поста.
0
29.02.2012, 21:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.02.2012, 21:34
Привет! Вот еще темы с решениями:

Найти слово, содержащее наибольшее количество указанных букв
Помогите, пожалуйста, с задачей-Дана строка символов, содержащая текст,...

Найти и вывести слово, содержащее наибольшее количество согласных букв
Элементами слов могут быть любые символы. Найти и вывести слово, содержащее...

В файле найти слово, содержащее наибольшее количество заданной буквы
здравствуйте!):)помогите пожалуйста Дан файл, содержащий текст на русском...

Найти самое длинное слово в тексте.
Дан текст. Найти самое длинное слово в тексте.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru