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

Строки. Удалить из строки слова с наибольшим количеством различных букв. - Turbo Pascal

18.05.2011, 20:18. Просмотров 1013. Ответов 3
Метки нет (Все метки)

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

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

(строки) удалить с строки все слова, состоящие из пяти букв
Помогите решить, а то я не очень дружу с строками((( удалить все слова,...

Найти слова, с наибольшим и наименьшим количеством заглавных латинских букв, и поменять их местами
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов)....

Удалить из каждой строки слово, содержащее наибольшее количество различных букв
Помогите с программой, на языке ПАСКАЛЬ: Удалить из каждой строки слово,...

удалить слова с нечетным кол-вом букв из строки
Как я вижу, что должна делать программа: проходить по символам строки st и...

Определить номер строки матрицы с наибольшим количеством нулей
Определить номер строки с наибольшим количеством нулей двоичной матриц размером...

3
AronSx
0 / 0 / 0
Регистрация: 18.05.2011
Сообщений: 10
01.06.2011, 11:54  [ТС] #2
ну что? поможите чем нить??
0
Mawrat
12821 / 5729 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
01.06.2011, 19:43 #3
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
program Project1;
 
type
  //Сведения о координатах слова в строке.
  TPos = record
    //Позиция начала и длина слова.
    Pos1, Len : Integer;
  end;
 
const
  //Максимальное количество слов.
  N = 100;
  //Множество разделителей слов.
  D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
 
var
  S : String;
  i, j, Len, Pos1, Cnt, CntMax : Integer;
  //Множество различных символов в слове.
  Da : set of Char;
  //Массив координат слов с наибольшей характеристикой.
  Arr : array[1..N] of TPos;
begin
  repeat
    Writeln('Введите строку:');
    Readln(S);
 
    Len := Length(S);
    Da := [];
    Cnt := 0;
    CntMax := 0;
    j := 0;
    Pos1 := 0;
    for i := 1 to Len do begin
      //Пропускаем разделители.
      if S[i] in D then Continue;
      //Вычисление характеристики для очередного слова - подсчёт количества
      //различающихся букв.
      if not (S[i] in Da) then begin
        Inc(Cnt);
        Da := Da + [ S[i] ];
      end;
      //Отслеживаем начало слова.
      if (i = 1) or (S[i - 1] in D) then Pos1 := i;
      //Отслеживаем конец слова.
      if (i = Len) or (S[i + 1] in D) then begin
        //Если характеристика очередного слова больше или равна текущей
        //наибольшей, то добавляем слово в массив. Причём, если характеристика
        //строго больше максимальной, то переопределяем наибольшую
        //характеристику и начинаем заполнять массив заново.
        if Cnt >= CntMax then begin
          if Cnt > CntMax then begin
            CntMax := Cnt;
            j := 0;
          end;
          Inc(j);
          Arr[j].Pos1 := Pos1;
          Arr[j].Len := i - Pos1 + 1;
        end;
        //Сброс счётчика.
        Cnt := 0;
        //Сброс множества.
        Da := [];
      end;
    end;
 
    //Удаляем из строки все слова с наибольшей характеристикой.
    for i := j downto 1 do begin
      Delete(S, Arr[i].Pos1, Arr[i].Len);
    end;
 
    //Ответ.
    Writeln('Строка после удаления всех слов с наибольшей характеристикой:');
    Writeln(S);
 
    Writeln('Повторить - Enter, выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
1
AronSx
0 / 0 / 0
Регистрация: 18.05.2011
Сообщений: 10
03.06.2011, 14:53  [ТС] #4
спасибо!

---
Mawrat: Пожалуйста.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2011, 14:53
Привет! Вот еще темы с решениями:

Определите номер строки матрицы с наибольшим количеством нулей
Матрицу размером 5х10 заполните случайными двоичными цифрами (0 и 1)....

В двоичной матрице размером 5X10 определить номер строки с наибольшим количеством нулей
В двоичной матрице размером 5X10 определить номер строки с наибольшим...

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

Слово с наибольшим количеством букв в строке
Задано произвольный строку: Определение слова с наибольшим количеством букв.


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

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

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