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

Подсчитать количество слов в тексте, которые содержат одинаковое количество букв

24.10.2008, 20:00. Показов 8629. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите плз....если не сложно то с пояснениеями.


Подсчитать количество слов в тексте, которые содержат одинаковое количество
букв. Слова в тексте разделяются символом ' '-пробел.
'.'-признак конца строки.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.10.2008, 20:00
Ответы с готовыми решениями:

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

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

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

10
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.10.2008, 21:15
Подсчитать количество слов в тексте, которые содержат одинаковое количество букв.
Не понятно, что считать, приведите какой нибудь пример. Если в предложении 2 слова по 4 буквы, 2 слова по 3 буквы и три слова по 5 букв, то какие слова считать?
0
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
24.10.2008, 21:21
Маленький такой вопросик есть, а так сказать набор слов надо брать из файла? или пользователь сам вводить должен? хи-хи или же пользователь вначале должен заполнить текстовый фаил, а потом по всему текстовому файлу смотреть нуно?

Добавлено через 2 минуты 12 секунд
Puporev, а как я понимаю, нужно считать все слова и вывести ввиде:
число слов с 1 буквой=
число слов с 2 буквами=
число слов с 3 буквами=
0
0 / 0 / 0
Регистрация: 24.10.2008
Сообщений: 7
24.10.2008, 21:25  [ТС]
да именно в таком виде, ну, мне сказали что нужно в самой программе текст вводить, использовать латиницу , маленькие буквы вот
0
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
25.10.2008, 00:10
Pluger

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

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
program pr1;
 
var    s,l:string; {определяем строковые переменные}
   i,k,n,m:integer;{определяем целочисленные переменные}
 
begin
   Write('vvedi predlojenie s=');{просим ввести строчку}
   Readln(s);{записываем строчку в переменную s}
   m:=1;
     for i:=1 to length(s) do {цикл для определения числа пробелов}
       if s[i]=' ' then       {нужен чтоб узнать кол-во слов}
         m:=m+1;
   n:=1;   {задаём длинну слова для поиска}
   repeat  {ищем слово длинной n, цикл идёт до кол-ва слов (m) }
      k:=0;  {начальные значения переменных для поиска длинны слов}
      i:=1;  {}
      l:=''; {}
        while i<>length(s)+1 do {цикл для поиска длинны каждого слова в S}
           begin
              if s[i]<>'.'then
                  begin          {если i-тый элемент из строчки S <> точке}
                     if (s[i]<>' ') then {узнаём равен ли i-тый элемент из S пробелу}
                        l:=l+s[i]    {собираем по элементам слово}
                     else
                       begin   {если найден пробел, тогда у нас есть одно слово L из S}
                          if n=length(l) then {узнаём равна ли длинна слова длинне, которую мы ищем}
                            k:=k+1;   {если равна то добавляем к колличеству найденных слов ещё одно}
                          l:='';     {опустошаем L для записания в него другого слова из строки S}
                     end;
                  end
              else  {если i-тый элемент = точке}{то узнаём длинну слова без точки}
                  if n=length(l) then {узнаём равна ли длинна слова длинне, которую мы ищем}
                   k:=k+1; {если равна то добавляем к колличеству найденных слов ещё одно}
                i:=i+1; {следующий элемент в строчке S}
           end;
        if k<>0 then {если найдено хоть одно слово нужной длинны, выводим колличество найдённых}
         Writeln('n=',n,' k=',k);
      n:=n+1; {ищем слово большей длинны}
   until n>m;  {прошлись по всем словам в строке S}
   Readln; {задержка перед выходом}
end.


Удачи в разборке программы.
2
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
25.10.2008, 00:10
Pluger

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

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
program pr1;
 
var    s,l:string; {определяем строковые переменные}
   i,k,n,m:integer;{определяем целочисленные переменные}
 
begin
   Write('vvedi predlojenie s=');{просим ввести строчку}
   Readln(s);{записываем строчку в переменную s}
   m:=1;
     for i:=1 to length(s) do {цикл для определения числа пробелов}
       if s[i]=' ' then       {нужен чтоб узнать кол-во слов}
         m:=m+1;
   n:=1;   {задаём длинну слова для поиска}
   repeat  {ищем слово длинной n, цикл идёт до кол-ва слов (m) }
      k:=0;  {начальные значения переменных для поиска длинны слов}
      i:=1;  {}
      l:=''; {}
        while i<>length(s)+1 do {цикл для поиска длинны каждого слова в S}
           begin
              if s[i]<>'.'then
                  begin          {если i-тый элемент из строчки S <> точке}
                     if (s[i]<>' ') then {узнаём равен ли i-тый элемент из S пробелу}
                        l:=l+s[i]    {собираем по элементам слово}
                     else
                       begin   {если найден пробел, тогда у нас есть одно слово L из S}
                          if n=length(l) then {узнаём равна ли длинна слова длинне, которую мы ищем}
                            k:=k+1;   {если равна то добавляем к колличеству найденных слов ещё одно}
                          l:='';     {опустошаем L для записания в него другого слова из строки S}
                     end;
                  end
              else  {если i-тый элемент = точке}{то узнаём длинну слова без точки}
                  if n=length(l) then {узнаём равна ли длинна слова длинне, которую мы ищем}
                   k:=k+1; {если равна то добавляем к колличеству найденных слов ещё одно}
                i:=i+1; {следующий элемент в строчке S}
           end;
        if k<>0 then {если найдено хоть одно слово нужной длинны, выводим колличество найдённых}
         Writeln('n=',n,' k=',k);
      n:=n+1; {ищем слово большей длинны}
   until n>m;  {прошлись по всем словам в строке S}
   Readln; {задержка перед выходом}
end.

Удачи в разборке программы.
2
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
25.10.2008, 00:10
Pluger

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

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
program pr1;
 
var    s,l:string; {определяем строковые переменные}
   i,k,n,m:integer;{определяем целочисленные переменные}
 
begin
   Write('vvedi predlojenie s=');{просим ввести строчку}
   Readln(s);{записываем строчку в переменную s}
   m:=1;
     for i:=1 to length(s) do {цикл для определения числа пробелов}
       if s[i]=' ' then       {нужен чтоб узнать кол-во слов}
         m:=m+1;
   n:=1;   {задаём длинну слова для поиска}
   repeat  {ищем слово длинной n, цикл идёт до кол-ва слов (m) }
      k:=0;  {начальные значения переменных для поиска длинны слов}
      i:=1;  {}
      l:=''; {}
        while i<>length(s)+1 do {цикл для поиска длинны каждого слова в S}
           begin
              if s[i]<>'.'then
                  begin          {если i-тый элемент из строчки S <> точке}
                     if (s[i]<>' ') then {узнаём равен ли i-тый элемент из S пробелу}
                        l:=l+s[i]    {собираем по элементам слово}
                     else
                       begin   {если найден пробел, тогда у нас есть одно слово L из S}
                          if n=length(l) then {узнаём равна ли длинна слова длинне, которую мы ищем}
                            k:=k+1;   {если равна то добавляем к колличеству найденных слов ещё одно}
                          l:='';     {опустошаем L для записания в него другого слова из строки S}
                     end;
                  end
              else  {если i-тый элемент = точке}{то узнаём длинну слова без точки}
                  if n=length(l) then {узнаём равна ли длинна слова длинне, которую мы ищем}
                   k:=k+1; {если равна то добавляем к колличеству найденных слов ещё одно}
                i:=i+1; {следующий элемент в строчке S}
           end;
        if k<>0 then {если найдено хоть одно слово нужной длинны, выводим колличество найдённых}
         Writeln('n=',n,' k=',k);
      n:=n+1; {ищем слово большей длинны}
   until n>m;  {прошлись по всем словам в строке S}
   Readln; {задержка перед выходом}
end.


Удачи в разборке программы.
1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.10.2008, 10:04
Программа нормально работает, но предложу пару изменений, оптимизирующих код.
1. Чтобы не возиться с точкой, вставим перед ней пробел.
2. Можно не собирать буквы в слова, а потом применять функцию Length, а сразу считать количество букв в слове, сами то слова нам не нужны.
Привожу слегка измененный код.

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
uses crt;
var    s:string;
        i,k,n,m,l:integer;
begin
   clrscr;
   Write('vvedi predlojenie s=');
   Readln(s);
   insert(' ',s,pos('.',s));
   m:=1;
   for i:=1 to length(s) do  {цикл для определения числа пробелов}
   if s[i]=' ' then m:=m+1;  {нужен чтоб узнать кол-во слов}
   n:=1;   {задаём длину слова для поиска}
   repeat  {ищем слово длиной n, цикл идёт до кол-ва слов (m) }
    k:=0;i:=1; l:=0;{начальные значения переменных для поиска длины слов}
    while i<>length(s)+1 do {цикл для поиска длины каждого слова в S}
        begin
          if s[i]<>'.'then
             begin          {если i-тый элемент из строчки S <> точке}
               if (s[i]<>' ') then {узнаём равен ли i-тый элемент из S пробелу}
               l:=l+1    {считаем количество букв в слове}
               else
                  begin   {если найден пробел, тогда у нас есть одно слово длины L из S}
                    if n=l then {узнаём равна ли длина слова длине, которую мы ищем}
                    k:=k+1;   {если равна то добавляем к колличеству найденных слов ещё одно}
                     l:=0;     {обнудяем счетчик L для подсчета в очередном слове}
                 end;
             end;
          i:=i+1; {следующий элемент в строчке S}
      end;
    if k<>0 then {если найдено хоть одно слово нужной длины, выводим колличество найденных}
    Writeln('Слово из ',n,' букв встречается ',k,' раз');
    n:=n+1; {ищем слово большей длины}
   until n>m;  {прошлись по всем словам в строке S}
   Readln; {задержка перед выходом}
end.
1
0 / 0 / 0
Регистрация: 24.10.2008
Сообщений: 7
25.10.2008, 18:30  [ТС]
спасибо огромное... в школе паскаль вообще не изучали , а в институте азы не объясняют, так что приходится туго...
0
 Аватар для Arriba
257 / 173 / 27
Регистрация: 17.10.2008
Сообщений: 770
25.10.2008, 20:57
Puporev, Молодец, я не стал использовать вставленный пробел, потому что если допустим у нас после слова стоит не точка а допустим пробел и точка, тогда у нас цикл пробежится ещё разок, вот и решил оставить. Kласно что написал insert; узнал новенького.

Добавлено через 3 минуты 17 секунд
Pluger, мы в школе байсик мучали вообще, досовский который и только 2 последних года, а в универ пришёл, там сразу дельфи,хорошо познакомился с девушкой, помогла на начальном этапе, и мило и учёба. удачки,главное чтоб нравилось!
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.10.2008, 21:09
если допустим у нас после слова стоит не точка а допустим пробел и точка
Если по уму, то после вставки пробела нужно пройтись по всей строке и удалить лишние пробелы и знаки препинания, вдруг пользователь между словами ввел три пробела, или запятую где поставил. Просто в условии задачи это не говорится, не стал усложнять код, а то автор темы совсем запутается.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.10.2008, 21:09
Помогаю со студенческими работами здесь

Распечатать слова предложения, которые содержат одинаковое количество букв
Не могу написать последние три задачки: 1)Составьте программу вычисления среднего арифметического каждого столбца матрицы B(N,N) и...

Подсчитать количество букв, количество слов и количество символов в тексте
Дан текст, который состоит из слов. Слова в тексте отделяются одно от другого символом *. Подсчитать количество букв в тексте, количество...

Найти количество слов, которые содержат одинаковое количество гласных и согласных букв
С клавиатуры вводиться текстовую строку. Разработать программу, которая выполняет: a) количество слов, которые содержат одинаковое...

Подсчитать количество слов, которые содержат не менее двух букв "с"
Подскажите что не так:cry: case '6': { system(&quot;cls&quot;); char st3; int i, l=0, k=0; puts(&quot;Input string&quot;); fgets(st3,...

Подсчитать количество слов, которые содержат буквы a,e,f
Здравствуйте, помогите с проблемой. Дан любой текст,который считывается из файла. Задача подсчитать количество слов,предложений в тексте...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru