Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 18.07.2019
Сообщений: 24
1

Вывести слова из текста, которые имеют 3 и более согласных букв

19.07.2019, 12:51. Показов 2697. Ответов 5

Author24 — интернет-сервис помощи студентам
не могу разобраться что не так,
программа выводить последнее слово из текста, а не все слова с тремя и более согласными буквами.
не подскажете в чем проблема?
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
procedure TForm1.N1Click(Sender: TObject);
var
  i, count: byte;
  S, T: string;
  
begin
  s:=memo1.text;
  i := 1; 
  while i < Length(S) do begin
    count := 0; 
    T := '';
    while (i <= Length(S))and(UpCase(s[i]) in ['А'..'Я']) do begin
      T := T + s[i]; 
      if UpCase(s[i]) in ['Б',  'В', 'Г', 'Д', 'Ж', 'З', 
      'К', 'Л', 'М', 'Н', 'П', 'Р', 'С', 'Т', 'Ф', 'Х', 
      'Ц', 'Ч', 'Ш', 'Щ', 'б',  'в', 'г', 'д', 'ж', 'з', 
      'к', 'л', 'м', 'н', 'п', 'р', 'с', 'т', 'ф', 'х', 
      'ц', 'ч', 'щ', 'ш'] then inc(count);
      inc(i)
    end;
    if count > 2 then memo2.text:=T; 
    inc(i) 
  end
end.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.07.2019, 12:51
Ответы с готовыми решениями:

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

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

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

Из данного текста выделить слова, содержащие 3 и более согласных букв
нужен код:) &quot;из данного текста (20 слов) выделить слова, содержащие 3 и более согласных букв&quot;

5
 Аватар для mr-Crocodile
3048 / 1668 / 656
Регистрация: 19.03.2019
Сообщений: 5,376
19.07.2019, 13:29 2
Лучший ответ Сообщение было отмечено thessmnv как решение

Решение

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
procedure TForm1.Button1Click(Sender: TObject);
var
  i, count: byte;
  S, T: string;
 
begin
  Memo2.Clear;
  s := memo1.text;
  i := 1;
  while i < Length(S) do begin
    count := 0;
    T := '';
    while (i <= Length(S)) and (AnsiUpperCase(s[i])[1] in ['А'..'Я']) do begin
      T := T + s[i];
      if UpCase(s[i]) in ['Б', 'В', 'Г', 'Д', 'Ж', 'З',
        'К', 'Л', 'М', 'Н', 'П', 'Р', 'С', 'Т', 'Ф', 'Х',
        'Ц', 'Ч', 'Ш', 'Щ', 'б', 'в', 'г', 'д', 'ж', 'з',
        'к', 'л', 'м', 'н', 'п', 'р', 'с', 'т', 'ф', 'х',
        'ц', 'ч', 'щ', 'ш'] then inc(count);
      inc(i)
    end;
    if count > 2 then memo2.Lines.Append( T );
    inc(i)
  end
end;
0
Модератор
3758 / 2262 / 784
Регистрация: 15.11.2015
Сообщений: 9,012
19.07.2019, 13:34 3
Зачем искать апкейсеную букву среди маленьких?
0
 Аватар для mr-Crocodile
3048 / 1668 / 656
Регистрация: 19.03.2019
Сообщений: 5,376
19.07.2019, 14:42 4
Цитата Сообщение от AzAtom Посмотреть сообщение
Зачем искать апкейсеную букву среди маленьких?
думаешь, её там нет?

так лучше?
Delphi
1
2
3
4
5
      if s[i] in ['Б', 'В', 'Г', 'Д', 'Ж', 'З',
        'К', 'Л', 'М', 'Н', 'П', 'Р', 'С', 'Т', 'Ф', 'Х',
        'Ц', 'Ч', 'Ш', 'Щ', 'б', 'в', 'г', 'д', 'ж', 'з',
        'к', 'л', 'м', 'н', 'п', 'р', 'с', 'т', 'ф', 'х',
        'ц', 'ч', 'щ', 'ш'] then inc(count);
0
 Аватар для AHBAR
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
22.07.2019, 06:51 5
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
так лучше?
ну, я бы сказал, что лучше будет апкейснуть s[i], а множество в 2 раза сократить

Добавлено через 30 минут
Цитата Сообщение от thessmnv Посмотреть сообщение
последнее слово из текста, а не все слова с тремя и более согласными буквами
потому что код вообще не правильный
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
var
  i: Integer;
  S, R, GL: string;
  list,list2: TStringList;
begin
r := '!%( )?.,:;'; //одиночные разделители
gl := 'аеёиоуыэюяьъ';
s := Memo1.Text;
 
//заменить все одиночные разделители на пробелы
for i := 1 to Length(r) do s := StringReplace(s, r[i], ' ',[rfReplaceAll]);
 
//заменить все НЕодиночные разделители на пробелы
s := StringReplace(s, ' - ', ' ',[rfReplaceAll]);
 
//для удобства отправим все слова в TStringList (каждое слово - отдельный элемент)
list:=TStringList.Create;
list.DelimitedText := s;
 
list2:=TStringList.Create;
list2.Text := list.Text;
 
//удалить все НЕсогласные из списка слов
for i := 1 to Length(gl) do list.Text := StringReplace(list.Text, gl[i], '',[rfReplaceAll, rfIgnoreCase]);
 
for i := 0 to list.Count-1 do
    if length(list[i]) > 2 then Memo2.Lines.Add(list2[i]);
 
list.Free;
list2.Free;
end;
0
Модератор
10077 / 5418 / 3356
Регистрация: 17.08.2012
Сообщений: 16,585
22.07.2019, 09:33 6
Цитата Сообщение от AHBAR Посмотреть сообщение
лучше будет апкейснуть s[i], а множество в 2 раза сократить
Без ansiuppercase ничего, кроме английского, не апкейсается, либо апкейсается, но некорректно, и ansiuppercase есть не во всякой версии delphi.
2
22.07.2019, 09:33
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.07.2019, 09:33
Помогаю со студенческими работами здесь

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

Вывести слова текста, которые имеют окончание -а
Вывести слова текста, которые имеют окончание -а

Вывести на экран все слова, которые имеют парное количество букв
Помогите пожалуйста решить задачу, очень прошу: Розробити програму що виводить на екран вси слова...

Вывести слова текста, которые отличны от последнего слова и количество символов в которых не более четырех
Дан текст, содержащий от 2 до 50 слов, в каждом из которых от 1 до 7 строчных латинских букв;...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как удалить коммит из ветки (branch) в Git
bt_guru 24.01.2025
Система контроля версий Git является мощным инструментом для отслеживания изменений в коде и совместной работы над проектами. Она предоставляет разработчикам гибкость и возможность экспериментировать. . .
Чем Docker отличается от виртульной машины
bt_guru 24.01.2025
В мире информационных технологий виртуализация стала неотъемлемой частью разработки и развертывания программного обеспечения. Этот подход позволяет создавать изолированные среды для запуска. . .
Как перейти с jQuery на Angular/AngularJS
bytestream 24.01.2025
jQuery долгое время занимала позицию незаменимого инструмента, существенно упрощающего работу с DOM-элементами и асинхронными запросами. Эта библиотека произвела настоящую революцию в том, как. . .
Зачем добавляется while (1); в JSON. Безопасность JSON и его уязвимости
bytestream 24.01.2025
JavaScript Object Notation (JSON) стал стандартом де-факто для обмена данными между клиентом и сервером. Этот легковесный формат данных обеспечивает удобное представление структурированной информации. . .
Как отметить чекбокс (установить checked) с помощью jQuery
bytestream 24.01.2025
jQuery представляет собой мощную JavaScript-библиотеку, которая значительно упрощает манипуляции с элементами веб-страницы, включая работу с формами и их компонентами. Особое место в веб-разработке. . .
Преобразование полей (элементов управления содержимым) в обычный текст
РоΜа 23.01.2025
Возникла необходимость преобразовать поля в текст (те, что на вкладке разработчик добавляются) . Помучившись родил следующее: Sub ПоляВТекст() Преобразует все поля в текст (даты, текст,. . .
Как проверить существование директории в скрипте Bash
bt_guru 23.01.2025
При разработке скриптов Bash одной из ключевых задач является корректная работа с файловой системой, где особое место занимает проверка существования директорий. Эта операция становится критически. . .
Как работают срезы (slice) в Python
bytestream 23.01.2025
Python предоставляет разработчикам мощный и гибкий инструмент для работы с последовательностями данных - срезы (slices). Эта функциональность позволяет извлекать, модифицировать и управлять. . .
Как удалить подмодуль (submodule) в Git
bytestream 23.01.2025
При работе с крупными проектами в системе контроля версий Git разработчики часто сталкиваются с необходимостью управления зависимостями и внешними компонентами. Подмодули (submodules) представляют. . .
В чем разница между @staticmethod и @classmethod в Python. Декораторы методов
bytestream 23.01.2025
В Python декораторы методов представляют собой мощный инструмент, позволяющий модифицировать поведение функций и методов без изменения их исходного кода. Эта возможность является одной из. . .
Как преобразовать InputStream в String в Java
bytestream 23.01.2025
В мире Java-разработки работа с потоками данных является одной из ключевых операций при создании современных приложений. InputStream, как фундаментальный класс для обработки входных потоков данных,. . .
Как обновить форк (ответвление) репозитория в Git
bytestream 23.01.2025
Одним из наиболее мощных инструментов Git для организации совместной работы является механизм форкинга репозиториев, который позволяет создавать независимые копии проектов для дальнейшей разработки. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru