0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 22
1

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

21.10.2012, 14:51. Показов 2160. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Delphi 6. Нужно с визуализацией, вывод результата в форму.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2012, 14:51
Ответы с готовыми решениями:

Дана строка, состоящая из слов, разделенных пробелом. Определить количество слов, в которых есть хотя бы одна буква "а", или "А"
Дана строка, состоящая из слов, разделенных пробелом. Определить количество слов, в которых есть...

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

Дана строка. Вывести на экран те слова строки, где встречается хотя бы одна цифра
оформить в виде процедуры и функции

Из файла удалить слова, в которых содержится хотя бы одна буква предпоследней строки
Доброго времени суток! Подскажите как на питоне v3.3.2 сделать скрипт задача которого в следующем:...

2
13095 / 5876 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
21.10.2012, 19:17 2
Лучший ответ Сообщение было отмечено iluxych как решение

Решение

Delphi
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
procedure TForm1.Button1Click(Sender: TObject);
const
  //Множество разделителей слов.
  D = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13];
var
  S : String;
  i, Len, LenW : Integer;
  Da : set of Char;
  Ch : Char;
  F : Boolean;
begin
  //Исходный текст.
  S := Memo1.Text;
 
  Len := Length(S);
  LenW := 0;
  Da := [];
  F := False;
  //Перебор символов строки ведём от конца строки - к началу. Это нужно для того,
  //чтобы алгоритм не зависел от изменений длины строки.
  for i := Len downto 1 do begin
    //Пропускаем разделители.
    if S[i] in D then Continue;
    //Учитываем очередную букву в длине слова.
    Inc(LenW);
    //Приводим букву к верхнему регистру.
    Ch := AnsiUpperCase(S[i])[1];
    //Если очередная буква уже есть в множестве, то устанавливаем флаг F в True.
    if (not F) and (Ch in Da) then F := True;
    //Добавляем очередную букву во множество.
    Da := Da + [Ch];
    //Отслеживаем начало слова.
    if (i = 1) or (S[i - 1] in D) then begin
      //Если в слове есть повторы букв, то удаляем его.
      if F then Delete(S, i, LenW);
      //Сброс флага, обнуление длины слова и обнуление множества.
      F := False;
      LenW := 0;
      Da := [];
    end;
  end;
 
  //Показываем результат.
  Memo2.Text := S;
end;
1
0 / 0 / 0
Регистрация: 10.04.2010
Сообщений: 22
21.10.2012, 22:56  [ТС] 3
Спасибо огромное
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2012, 22:56
Помогаю со студенческими работами здесь

Дана строка. Указать те слова в которых есть хотя бы одна буква "k"
Помогите решить задачу: Дана строка. Указать те слова в которых есть хотя бы одна буква "k". Я...

Дана строка. Указать те слова в которых есть хотя бы одна буква "k"
Помогите решить задачу: Дана строка. Указать те слова в которых есть хотя бы одна буква "k". Я...

Дана строка. Вывести на экран слова, внутри которых имеется хотя бы одна буква, с которой слово начинается. [Turbo prolog][есть решение]
predicates ...

Дана строка, состоящая из слов. Выдать слова, в которых буквы уже упорядочены по алфавиту.
Дана строка, состоящая из слов. Выдать слова, в которых буквы уже упорядочены по алфавиту.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru