![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Ребят, как посчитать количество символов в тексте? типа "а" = 31, "б" = 25 и тд.
|
|
#2
|
|||
|
|||
|
Взять текст как строку и в цикле идти по ней как по массиву.
Тут скорее вопрос - какие символы тебе надо считать - английские, русские, различать большие или маленькие. В принципе, можно сделать массив из 256 элементов и считать в них по коду символа. Код:
type
TSmb = Array [0..255] Of Integer;
procedure SumSymbols(AText : String; var S : TSmb);
var
I : Integer;
begin
For I := 1 To Length(AText) Do
Inc(S[Ord(AText[i])]);
end; |
|
#3
|
|||
|
|||
|
русский текст, нужно посчитать сколько раз символ встречается в тексте и составить их таблицу)
|
|
#4
|
|||
|
|||
|
А, например, символы "А" и "а" счиются разными?
|
|
#5
|
|||
|
|||
|
Если регистр не имеет значения и нужно считать только количество букв, не считая знаки препинания и т.д., отлично подойдет вот такой способ.
Код:
procedure CalculateSymbols(Text: string);
var
S: string;
M: array ['а'..'я'] of Integer;
I: Char;
J: Integer;
begin
S := AnsiLowerCase(Text);
for I := 'а' to 'я' do
M[i] := 0;
for J := 1 to Length(S) do
Inc(M[S[J]]);
for I := 'а' to 'я' do
Writeln(I + ': ' + IntToStr(M[i]));
end; |
|
#6
|
|||
|
|||
|
спасибо) ща попробую
|
|
#7
|
||||
|
||||
|
Код:
if S[J] in ['а'..'я'] then
Inc(M[S[J]]); |