|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.11.2008, 20:49 | #1 |
Новичок
Джуниор
Регистрация: 30.11.2008
Сообщений: 1
|
посчет в тексте кол-во слов, гласных и согласных букв
Надо написать программу для посчета в тексте из файла кол-во слов, гласных и согласных букв. Я сам еще плохо разбирюсь в C++, а программа срочно нужна.
|
01.12.2008, 11:45 | #2 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
для начала нужно определить вот что, какое число пробелов может быть между словами (просто если там может быть только 1 пробел между словами, то программу можно упростить).
если же там много пробелов, то программа будет капельку позамудреннее. Вот программа для подсчета кол-ва слов с любым кол-вом пробелов между ними. Возможно здесь есть что-то лишнее, ибо не охото было с нуля делать, и я перделал программу для изменения порядка букв в словахно вроде бы должна работать. (только когда будеш копировать смотри внимательне, там в ифах и не только в них, типа if (str[tl-1]!=' ') между ковычками стоит пробел) #include <iostream.h> #include <math.h> #include <conio.h> #include <stdio.h> #include <string.h> int main() { clrscr(); char str[400]; cout<<"Write the text"<<endl; gets(str); int tl; int slova=0; tl = strlen(str); cout<<endl; int i=0; int probel=0; if (str[tl-1]!=' ') { str[tl]=' '; tl++; } while (i<tl) { if (str[i] == ' ') { if(probel==0) { probel=1; slova++; } } else { if (probel == 1) { } probel = 0; } i++; } if (slova < 5) { cout<<"v tekste "<<slova<<" slova"<<endl; } else { cout<<"v tekste "<<slova<<" slov"<<endl; } getch(); return 0; } Алгоритм сводится к следующему: Программа дописывает в масив (после последнего символа) "технический" пробел. Если программа встречает пробельный символ она проверяет, встречался ли до этого ей символ пробела (переменная probel со значениями 1 - да и 0 - нет) Если нет, то она делает ++ к переменной, содержащей кол-во слов. Если да, то программа молча переходит к следующему символу. Если программа встречает символ отличный от пробельного, то она обнуляет переменную probel И так далее. (извини, если не понятно изложил суть алгоритма, у меня с обьяснениями тугова-то).
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс Последний раз редактировалось ROD; 01.12.2008 в 12:04. |
01.12.2008, 11:50 | #3 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
Что касается гласных/согласных, то я ничего не могу придумать кроме очень громоздкой конструкции вида
int glasnie=0, soglasnie=0; for (i=0; i<tl; i++) { if (str[i]=='a') {glasnie++;} if (str[i]=='b') {soglasnie++;} if (str[i]=='c') {soglasnie++;} if (str[i]=='d') {soglasnie++;} if (str[i]=='e') {glasnie++;} /*и так для каждой буквы (причем, если я не ошибаюсь, большие буквы он понимает как другой символ, однако можно ставить в ифе условие "или" (забыл знак) и тогда можно будет одновременно, т.е. одним ифом смотреть и большие и маленькие быквы и, к стати, если в один иф засунуть все галсные, а в другой все согласные (включая и большие и маленькие) то конструкция немного сократится).*/ }
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс Последний раз редактировалось ROD; 01.12.2008 в 11:55. |
01.12.2008, 13:12 | #4 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
Ой, просмотрел в условии фразу "из файла"
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
01.12.2008, 14:23 | #5 |
Форумчанин
Регистрация: 17.11.2008
Сообщений: 233
|
Ну так что, сделал задачу???
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление гласных, согласных, цифровых символов в строке | <zeroql> | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 27.11.2008 08:05 |
подсчитать кол-во гласных | FireHawK | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 22.11.2008 19:22 |
Установить сколько согласных букв в каждом слове данного предложения | ivan89 | Общие вопросы C/C++ | 2 | 12.11.2008 15:29 |
Уменьшения букв в тексте | igordeg | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 07.11.2008 10:32 |
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. | Briz | Помощь студентам | 2 | 11.05.2008 00:56 |