Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 19.05.2010
Сообщений: 19
1

из данного предложения вычеркнуть слова,встречающиеся больше одного раза

30.06.2010, 12:35. Показов 2781. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
из данного предложения вычеркнуть слова,встречающиеся больше одного раза
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.06.2010, 12:35
Ответы с готовыми решениями:

Из данного предложения вычеркнуть слова, содержащие заглавную букву
из данного предложения вычеркнуть слова , содержащие заглавную букву .

Процедура: из предложения вычеркнуть слова, встречающиеся больше одного раза
написать программу "из предложения вычеркнуть слова, встречающиеся больше одного раза"

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

Вывести слова, встречающиеся более одного раза
Вывести слова, встречающиеся более одного раза в Windows Appication. В первом textBox вводим...

4
5 / 4 / 3
Регистрация: 28.06.2010
Сообщений: 13
30.06.2010, 12:37 2
Задача на множество?
0
0 / 0 / 0
Регистрация: 19.05.2010
Сообщений: 19
30.06.2010, 12:51  [ТС] 3
нет просто на тему строки
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
30.06.2010, 12:53 4
Alena_M,

Не по теме:

вас забанить? сколько можно уже одно и тоже дублировать? последнее официальное предупреждение!!! еще раз увижу темы про вычеркнутые слова

0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
30.06.2010, 17:35 5
Предлагаю решение:
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
program Project1;
 
const
  (*Разделители слов.*)
  D = [' ', '.', ',', ':', ';', '!', '?', #9, #10, #13];
  N = 100;
 
type
  (*Тип, задающий массив слов.*)
  TArrWords = array[1..N] of String;
 
(*Формирует массив слов, которые надо удалить из строки.*)
procedure FillArrD(const aStr : String; var aArrD : TArrWords; var aCntD : Integer);
var
  (*Массив уже найденных слов.
  При этом каждое слово - в единственном экземпляре.*)
  ArrU : TArrWords;
  CntU, i, j, k, Pos1, Pos2 : Integer;
  StrWord : String;
  InU, InD : Boolean;
begin
  CntU := 0;
  aCntD := 0;
  Pos1 := 0;
  Pos2 := 0;
  for i := 1 to Length(aStr) do begin
    (*Если очередной символ является разделителем - пропускаем итерацию.*)
    if aStr[i] in D then Continue;
    (*Отслеживаем начало слова.*)
    if i = 1 then
      Pos1 := i
    else if aStr[i - 1] in D then
      Pos1 := i
    ;
    (*Отслеживаем конец слова.*)
    if i = Length(aStr) then
      Pos2 := i
    else if aStr[i + 1] in D then
      Pos2 := i
    ;
    (*Если конец слова найден - обрабатываем его.*)
    if Pos2 > 0 then begin
      (*Выделяем слово и преобразуем его буквы к верхнему регистру.*)
      StrWord := UpperCase( Copy(aStr, Pos1, Pos2 - Pos1 + 1) );
 
      (*Проверяем есть ли такое же слово в ArrU.*)
      InU := False;
      for j := 1 to CntU do begin
        (*Если слово обнаружено в ArrU, добавляем его в aArrD*)
        if ArrU[j] = StrWord then begin
          InD := False;
          for k := 1 to aCntD do begin
            if aArrD[k] = StrWord then begin
              InD := True;
              Break;
            end;
          end;
          if not InD then begin
            Inc(aCntD);
            aArrD[aCntD] := StrWord;
          end;
          InU := True;
          Break;
        end;
      end;
      (*Если слова в ArrU не оказалось - добавляем это слово в ArrU.*)
      if not InU then begin
        Inc(CntU);
        ArrU[CntU] := StrWord;
      end;
      (*Сбрасываем флаг-координату конца слова.*)
      Pos2 := 0;
    end;
  end;
end;
 
var
  ArrD : TArrWords;
  CntD, i, j, Pos1, Pos2 : Integer;
  StrRes, StrSrc, StrWord : String;
  InD : Boolean;
begin
  Writeln('Vvedite stroku:');
  Readln(StrSrc);
 
  CntD := 0;
  FillArrD(StrSrc, ArrD, CntD);
 
  Pos1 := 0;
  Pos2 := 0;
  for i := 1 to Length(StrSrc) do begin
    //Если очередной символ является разделителем - добавляем его к результирующей строке.
    if StrSrc[i] in D then begin
      StrRes := StrRes + StrSrc[i];
      Continue;
    end;
    //Отслеживаем начало слова.
    if i = 1 then
      Pos1 := i
    else if StrSrc[i - 1] in D then
      Pos1 := i
    ;
    //Отслеживаем конец слова.
    if i = Length(StrSrc) then
      Pos2 := i
    else if StrSrc[i + 1] in D then
      Pos2 := i
    ;
    //Если конец слова найден - обрабатываем его.
    if Pos2 > 0 then begin
      //Выделяем слово и преобразуем его буквы к верхнему регистру.
      StrWord := UpperCase( Copy(StrSrc, Pos1, Pos2 - Pos1 + 1) );
      //Переписываем это слово в результирующую строку, только если
      //оно не присутствует в ArrD.
      InD := False;
      for j := 1 to CntD do begin
        if ArrD[j] = StrWord then begin
          InD := True;
          Break;
        end;
      end;
      (*Если слово отсутсвует в ArrD, то переписываем это слово в результирующую строку.*)
      if not InD then begin
        StrRes := StrRes + Copy(StrSrc, Pos1, Pos2 - Pos1 + 1);
      end;
      //Сбрасываем флаг-координату конца слова.
      Pos2 := 0;
    end;
  end;
 
  Writeln('Poluchennaya stroka:');
  Writeln(StrRes);
  Readln;
 
end.
0
30.06.2010, 17:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.06.2010, 17:35
Помогаю со студенческими работами здесь

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

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

Удалить из строки слова, встречающиеся более одного раза
Дана строка, состоящая из нескольких слов, разделенных пробелами. Удалить из нее слова,...

В исходном массиве все элементы, встречающиеся больше одного раза, заменить на нули
: в исходном массиве все элементы, встречающиеся больше одного раза заменить на нули


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru