Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2011, 20:56   #1
glebast
Форумчанин
 
Аватар для glebast
 
Регистрация: 10.12.2011
Сообщений: 154
Радость Подсчитать гласные буквы в предложении.

Доброго времени суток!
Есть одна задачка, нужно решить.
Буду очень благодарен!

Код:
Дана строка-предложение на русском языке.
Подсчитать кол-во содержащихся в строке гласных букв.
glebast вне форума Ответить с цитированием
Старый 28.12.2011, 21:58   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Код:
var
    gl: set of char = ('а','е','ё','и','о','у','ы','э','ю','я');
..........................
count := 0;
for i := 1 to length(s) do
    if s[i] in gl then Inc(count);
Writeln (count);
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 28.12.2011, 22:27   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

угу. точно.
только
1) я бы множесто гласных задал через константу (Const )
2) и добавил туда ПРОПИСНЫЕ буквы..
примерно так:
Код:
Const
 {русские гласные}
 gl=['А','а','Е','е','Ё','ё','И','и','О','о','У','у','ы',
          'Э','э','Ю','ю','Я','я'];
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.12.2011, 22:28   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
угу. точно.
только
1) я бы множесто гласных задал через константу (Const )
2) и добавил туда ПРОПИСНЫЕ буквы..
примерно так:
Код:
Const
 {русские гласные}
 gl=['А','а','Е','е','Ё','ё','И','и','О','о','У','у','ы',
          'Э','э','Ю','ю','Я','я'];
+1 согласен
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 28.12.2011, 22:44   #5
glebast
Форумчанин
 
Аватар для glebast
 
Регистрация: 10.12.2011
Сообщений: 154
Печаль

Ну ребята, у меня не так не так не получается
glebast вне форума Ответить с цитированием
Старый 28.12.2011, 22:45   #6
glebast
Форумчанин
 
Аватар для glebast
 
Регистрация: 10.12.2011
Сообщений: 154
По умолчанию

Код:
uses crt;
const
 gl=['а','е','ё','и','о','у','ы','э','ю','я'];
var
    i,count:integer;
    s:string;
begin

read (s[i]);
count := 0;
for i := 1 to length(s) do
 begin
    if s[i] in gl then count:=count+1;
 end;
Writeln (count);
end.
так выводит все время 0
glebast вне форума Ответить с цитированием
Старый 28.12.2011, 22:47   #7
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Код:
read (s[i]);
меняйте на
Код:
readln (s);
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 28.12.2011, 22:56   #8
glebast
Форумчанин
 
Аватар для glebast
 
Регистрация: 10.12.2011
Сообщений: 154
По умолчанию

Точно! Супер! Спасибо!!!
glebast вне форума Ответить с цитированием
Старый 28.12.2011, 22:57   #9
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

glebast

решение в стиле C++ :D

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


Код:
#include <iostream>
#include <locale>

template <typename _Elem>
struct ci_char_traits : public std::char_traits<_Elem>
{
	static bool eq(_Elem c1, _Elem c2 )
	{ return std::toupper(c1, std::locale()) == std::toupper(c2, std::locale()); }

	static bool ne(_Elem c1, _Elem c2 )
	{ return std::toupper(c1, std::locale()) != std::toupper(c2, std::locale()); }

	static bool lt(_Elem c1, _Elem c2 )
	{ return std::toupper(c1, std::locale()) < std::toupper(c2, std::locale()); }

	static int compare(const _Elem* s1, const _Elem* s2, size_t n)
	{ return memicmp(s1, s2, n); }

	static const _Elem* find(const _Elem* s, int n, _Elem ch)
	{
		while (n-- > 0 && std::toupper(*s, std::locale()) != std::toupper(ch, std::locale()))
			++s;
		
		return s;
	}
};

typedef std::basic_string<char, ci_char_traits<char> > istring;


int main()
{
	std::locale::global(std::locale(""));

	const istring vowels = "аеёиоуыэюя";

	istring s = "АЕЁИОУЫЭЮЯ";

	size_t count = 0;
	for (istring::const_iterator it = s.begin(); it != s.end(); ++it)
	{
		if (vowels.find(*it) != istring::npos)
			count++;
	}

	std::cout << count << std::endl;
	
	return 0;
}
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
гласные буквы в richedit stanislav_ivanovic Общие вопросы Delphi 2 22.12.2011 18:42
из заданной строки текста вывести в алфавитном порядке все содержащиеся гласные буквы (Паскаль) zzz6 Помощь студентам 4 30.06.2011 13:46
напечатать все строчные русские гласные буквы Aimet Паскаль, Turbo Pascal, PascalABC.NET 0 16.06.2011 21:28
В предложении подсчитать количество слов. Delphi King21 Помощь студентам 4 16.03.2011 14:26
Гласные и согласные буквы artemavd Общие вопросы Delphi 7 22.06.2009 20:53