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

Подсчитать количество слов в строке

18.11.2020, 18:55. Показов 1738. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подсчитать количество слов в строке разделенных произвольным количеством разделительных знаков(пробелы, точки, запятые, точка с запятой, вопросительный и восклицательный знаки, тире)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2020, 18:55
Ответы с готовыми решениями:

Подсчитать количество слов в строке
Дана строка, которая содержит от 2 до 50 слов в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами не меньше...

Подсчитать количество слов в строке
Дана строка, которая содержит от 2 до 50 слов в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами не меньше...

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

4
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
18.11.2020, 20:34
Лучший ответ Сообщение было отмечено loners как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
const rz=[' ','.',',',';','?','!','-'];
var s:string;
    i,k:integer;
begin
writeln('Введите строку из слов разлеленных знаками препинания');
readln(s);
s:=' '+s;
for i:=1 to length(s)do
if(s[i-1] in rz)and not(s[i] in rz)then inc(k);
write('Количество слов=',k)
end.
1
 Аватар для Вадим Тукаев
311 / 292 / 116
Регистрация: 23.01.2018
Сообщений: 933
18.11.2020, 21:07
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var s: string;
var k, w, i: integer;
 
begin
    readln(s);
    k := 0;
    w := 1;
    for i := 1 to length(s) do begin
        if pos(s[i], ' .,:;!?-') = 0 then begin
            k := k + w;
            w := 0;
        end else begin
            w := 1;
        end;
    end;
    writeln(k);
end.
1
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
19.11.2020, 12:04
Вадим Тукаев, я бы вместо Pos написал in
Pascal
9
   if Not (s[i] in [' ','.',',',';','?','!','-'])  then begin
и begin end в 12/14 строках лишний.


но алгоритм мне понравился!
0
 Аватар для Вадим Тукаев
311 / 292 / 116
Регистрация: 23.01.2018
Сообщений: 933
19.11.2020, 12:28
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
if Not (s[i] in [' ','.',',',';','?','!','-'])  then begin
Да, я знаю, что в Паскале есть множества. Но почему-то захотелось так. Может, потому что я плохо представляю, как они устроены. Я где-то читал (да это и так понятно), что даже если такая структура данных, как множество или словарь, реализованы со временем доступа O(1), то всё равно для 8-10 элементов проще и быстрее последовательный перебор.

Цитата Сообщение от mr-Crocodile Посмотреть сообщение
и begin end в 12/14 строках лишний.
Я вообще люблю "лишние" begin и end, а уж если они есть в одной ветке if-else, то во второй тоже должны быть.

Цитата Сообщение от mr-Crocodile Посмотреть сообщение
но алгоритм мне понравился!
Обычная машина состояний, просто немного оптимизированная: номер состояния используется ещё и как слагаемое.

В более классическом, развёрнутом виде он выглядел бы как-то так:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var s: string;
var k, i: integer;
var inside: boolean;
 
begin
    readln(s);
    k := 0;
    inside := false;
    for i := 1 to length(s) do begin
        if inside then begin
            if s[i] in [' ','.',',',';','?','!','-'] then inside := false;
        end else if not (s[i] in [' ','.',',',';','?','!','-']) then begin
            inc(k);
            inside := true;
        end;
    end;
    writeln(k);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2020, 12:28
Помогаю со студенческими работами здесь

Проверьте программу : подсчитать количество слов в строке
Доброго времени суток.Посмотрите пожалуйста что не так я сделал в программке?Некорректно считает количество слов. Условие : Дана...

Дано N-строк текста, слова разделены пробелом. Подсчитать количество слов в каждой строке.
дано N-строк текста слова разделены пробелом. подсчитать количество слов в каждой строке. Функция должна подсчитать количество слов для...

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

Подсчитать количество предложений и количество слов в предложении
Слова в предложении разделены пробелом. В конце предложения точка. Подсчитать количество предложений и количество слов в предложении. (ввод...

Подсчитать количество букв и количество слов в предложении
Надо написать программу, которая считает количество букв и количество слов в предложении. Вот программа, которая считает количество букв....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru