Другие языки программирования и технологии
Туплю в паскале
задание тупое : В строке, состоящей из русских букв, подсчитайте количество гласных прописных и строчных букв.Вроде все элементарноprogram stroka;var str : string; i,n : integer;beginwriteln('Введите что нить умное');readln(str);n:=0;for i:=1 to length(str) do if str='У', 'у', 'Е','е','Ы','ы','А','а','О','о','Э','э','Я','я','И','и','Ю', 'ю' thenbeginn:=n+1; end; writeln('n=',n);end.Однако ругается на первую запятую перечисления букв, если писать через case будет ругатся препод так кода до фига будет, у кого какие идеи?
попробуй написать if str[ i] in ['У','у', ну и остальные] then
тогда ты будешь использовать множество
а иначе тут никак
тогда ты будешь использовать множество
а иначе тут никак
Антон Кофанов
Красиво и коротко, а то на 10 or препод меня задушит)) спасибо
Иван Семчук
удивительно, что операторы OR он не догадался поставить, а вариант с использованием множества проглотил
Доброго времени суток.
Есть более элегантное решение. Объявляете строковую константу, состоящую из гласных букв.
const Vocalic = 'УуЕеЫыАаОоЭэЯяИиЮю';
А дальше в программе просматриваете свою строку и ищете очередной символ строки в этой константе. Если находите, то увеличивете счетчик.
for j:=1 to Length(str) do
if Pos(str[j], Vocalic) > 0 then n:=n+1;
И далее по тексту.
Для повышения скорости есть смысл просматривать строку от конца к началу, чтобы ее длина вычислялась один раз при инициализации упрапвляющей переменной цикла.
for j:=Length(str) downto 1 do
Удачи!
Есть более элегантное решение. Объявляете строковую константу, состоящую из гласных букв.
const Vocalic = 'УуЕеЫыАаОоЭэЯяИиЮю';
А дальше в программе просматриваете свою строку и ищете очередной символ строки в этой константе. Если находите, то увеличивете счетчик.
for j:=1 to Length(str) do
if Pos(str[j], Vocalic) > 0 then n:=n+1;
И далее по тексту.
Для повышения скорости есть смысл просматривать строку от конца к началу, чтобы ее длина вычислялась один раз при инициализации упрапвляющей переменной цикла.
for j:=Length(str) downto 1 do
Удачи!
тогда уж так пиши
for i:=1 to length(str) do if (str [ i ] ='У') or (str [ i ] ='у') or (str [ i ] ='Е') or (str [ i ] ='е') ну и так все перечисли через OR
for i:=1 to length(str) do if (str [ i ] ='У') or (str [ i ] ='у') or (str [ i ] ='Е') or (str [ i ] ='е') ну и так все перечисли через OR
немного оффтопа, таксказать типс унд трикс:
если все элементы в перебираемой строке брать в лоу-кейсе, то вариантов сравнения будет в два раза меньше, а время отводимую на эту операцию сократится.. .
афтор, а чем не устраивает вариант от Denis Bessonov ???
если все элементы в перебираемой строке брать в лоу-кейсе, то вариантов сравнения будет в два раза меньше, а время отводимую на эту операцию сократится.. .
афтор, а чем не устраивает вариант от Denis Bessonov ???
if str='У', 'у', 'Е','е','Ы','ы','А','а','О','о','Э','э','Я','я','И','и','Ю', 'ю'
так делать нельзя!! !
if (str='у' )or(str='е')or... then
так делать нельзя!! !
if (str='у' )or(str='е')or... then
блин сам долго с паскалем парился но слава богу он у нас закончился неделу назад а так почти год с лищним изучали
Похожие вопросы
- Помогите, пожалуйста с задачей :( Сижу, туплю уже какой день, вообще не соображу - чтокуда. Задача на Паскале
- Аналог ассоциативного массива в Паскале.
- Я внутри написал, что я знаю про паскаль не то что решать и все такое а так теоретический в общем, смысл проги, я прав?
- ПАСКАЛЬ и ГРАФИКА
- Товарищи программисты на Delphi и Pascal помогите девушке!!!)) вопрос глупый..насчет паскаля..
- Проблема с оператором random в паскале
- С++, блин, легче Паскаля.
- Нужны программы на языке Паскаль
- Вопрос про ЯП Паскаль.
- Объясните зачем учить ЯП Паскаль для обучения программированию?