Другие языки программирования и технологии

помогите написать програму в Паскале по задаче

Осознанные сновидения — состояние сознания, при котором человек осознает,что видит сон и может в той или иной степени управлять им. Они являются предметом научных исследований, их существование научно подтверждено. Высоким уровнем владения техники осознанных сновидений является умение засыпать во сне.
Андрюша очень увлекся осознанными сновидениями и через месяцы упорных тренировок научился мастерски управлять своим сном. Теперь он тренируется многократно засыпать во сне. Но во время одной из таких тренировок что-то пошло не так Андрюша не запомнил, сколько раз он засыпал, и теперь после каждой попытки проснуться он постоянно просыпается возле загадочной каменной плиты с непонятным текстом. Но наш герой не отчаивается Он убежден, что если ему удастся посчитать количество согласных и гласных букв в тексте, а так же количество цифр и пробелов, то он обязательно проснется. Вот только беда — во сне никак не получается сосредоточиться. Вас, как опытного программиста, просят написать программу, которая вернет Андрюшу в реальный мир.
Формат входных данных:
Задан обычный текстовый файл, размер которого не превосходит 100 КБ.
Формат выходных данных:
В выходной файл выведите 4 числа: количество английских гласных, английских согласных, цифр и пробелов в тексте соответственно. В английском алфавите гласными считаются буквы: e, y, u, i, o, a.
тут за сегодня эта задача много раз уже мелькала... нет мозгов - не суйтесь на олимпиаду
Дмитрий Грозенок
Дмитрий Грозенок
7 972
Лучший ответ
Читаем по очереди все строки, считаем, выводим.
Могу сделать, пиши в личку
RR
Ruslan Rustamov
6 852
Вам как "опытному программисту" должно быть стыдно с такой задачей просить шары.
ой-ой-ой!
какие задачи, какие условия!!!

текстовый... текстовый....наф нам текстовый? будем работать напрямую! :)

***** но, сразу предупреждаю: пишу "на живо", без компилятора под рукой - проверять мелкие огрехи сами будете!

const
ZnachType : array [0..255] of char =
'00000000000000000000000000000000' + {0-31 спец-символы}
'1' + {space-пробел}
'000000000000000' + {33-47}
'2222222222' + {0..9 цифры}
'0000000' + {58-64}
'43334333433333433333433343' + {A-Z, гласные - 4, согласные - 3}
'000000' + {91-96}
'43334333433333433333433343' + {a-z}
'00000'+ {123-127}
'0000000000000000' + {это вторая половина таблицы с псевдографикой и русскими - нам не нужная}
'0000000000000000' +
'0000000000000000' +
'0000000000000000' +
'0000000000000000' +
'0000000000000000' +
'0000000000000000' +
'0000000000000000' ; {всего 256 символов - вся таблица ASCII}

Var
Fin : File;
NumRead : Word;
Buf : Array[1..2048] of byte;
ii : integer;
Sum_ : array [0..4] of integer ;

begin
for ii:=0 to 4 do Sum_ [ ii ] :=0 ;

Assign (Fin, Paramstr(1));
Reset (Fin,1);
Repeat
BlockRead (Fin,buf,Sizeof(buf),NumRead);

for ii:=1 to NumRead do inc(Sum_[ Ord(ZnachType[buf [ ii ]) - 48 ] ) ;

Until (NumRead=0);
close(fin);

WriteLn('Кол-во пробелов =', Sum_[1]) ;
WriteLn('Кол-во цифр =', Sum_[2]) ;
WriteLn('Кол-во согласных =', Sum_[3]) ;
WriteLn('Кол-во гласных =', Sum_[4]) ;

{в Sum_[0] находится кол-во всех остальных символов}

end.

вот таким образом извратился :)