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

Pascal. Посчитать кол-во букв, цифр, разделителей в тексте

Помогите, кто врубается как это делать.

вот что я сумел написать, но тут вылетает ошибка на месте где 'if'
Program laba;
Const GL=['a','e','i','o','u','y','w','b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','x','z'];
CF=['0','1','2','3','4','5','6','7','8','9'];
RD=['.',',','/','?','!','\','|','(',')','[',']','{','}','-',';'];
Var T: string;
g,c,r: integer;
i:byte;
Begin
g:=0; c:=0; r:=0;
write('Введите текст (на английском): ');
readln(T);
for i:=length(T) downto 1 do
begin
if i=GL then g:=g+1;
if i=CF then c:=g+1;
if i=RD then r:=g+1;
end;
writeln('GL=',g,'; CF=',c,'; RD=',r);
End.
1  Murad Aliyev
1 Murad Aliyev
241
GL, CF, и RD это множества. .
в коле тебе нужно проверять символ на вхождение в каждое из множеств. .
а у тебя идет сравнение ЧИСЛА (счетчика цикла) с этими множествами. . Отсюда и ошибка. .

Правильно будет писать
if T[ i ] in GL Then ...
if T[ i ] in CF Then ...
if T[ i ] in RD Then ...
NL
Nikolai Lupascu
701
Лучший ответ
1. i - число от длинны T до 1. Тебе же нужно не числа сравнивать, а символы строки? Вот и сравнивай T[ i ]
2. GL,CF,RD - множества, а ты сравниваешь их с числами. Коробка с мячиками - не мячик, даже если в коробке только один мяч, так понятно? Операция проверки вхождения в множество записывается in:
if T[ i ] in GL then g:=g+1; и т. д.
Дмитрий Попов
Дмитрий Попов
73 612
if T[ i] in GL then g := g + 1;
if T[ i] in CF then c := c + 1;
if T[ i] in RD then r := r + 1;
XT
Xder Tgjm
66 543
вот вроде не то что равно, а даже нет встроенной функции для проверки вхождениея элемента в массив.
подсказа при сравнении - там можно воспользоваться тем, что ACSI коды идут подряд
Если у вас это множества ( и оно поддерживается, то операция вхождения - in )
Евгений О0
Евгений О0
10 290
if T[ i ] in GL then g:=g+1;
if T[ i ] in CF then c:=c+1;
if T[ i ] in RD then r:=r+1;

Похожие вопросы