Нужно составить программу на Delphi, чтоб она вычисляла процентное соотношение символов в тексте. При моем подходе необходимо сначала узнать общее число символов в тексте, за тем узнать какие символы содержатся в тексте и по сколько их. Но для этого каждый символ должен содержаться в отдельной переменной и так как мы не знаем какое кол-во символов изначально то получается заморочка. исправьте меня или предложите свой вариант пожалуйста.
Заранее спасибо.
Другие языки программирования и технологии
Как выриант
Нужно составить программу на Delphi.
var
a: array [#0..#255] of integer;
n: integer;
f: text;
c: char;
s: string;
begin
Assign(f, 'input.txt');
Reset(f);
while not eof(f) do begin
Read(f, c);
Inc(a[c]);
Inc(n);
end;
Close(f);
for c := #0 to #255 do
if a[c] <> 0 then begin
case c of
#13: s := 'CR';
#10: s := 'LF';
else
s := c;
end;
writeln('''', s, ''' -- ', a[c] / n * 100:0:2, '%');
end;
end.
a: array [#0..#255] of integer;
n: integer;
f: text;
c: char;
s: string;
begin
Assign(f, 'input.txt');
Reset(f);
while not eof(f) do begin
Read(f, c);
Inc(a[c]);
Inc(n);
end;
Close(f);
for c := #0 to #255 do
if a[c] <> 0 then begin
case c of
#13: s := 'CR';
#10: s := 'LF';
else
s := c;
end;
writeln('''', s, ''' -- ', a[c] / n * 100:0:2, '%');
end;
end.
Берем текст, в цикле проходим его, смотрим если текущий элемент символ (вначале задаем массив символов, которые нам нужны) , то увеличиваем переменную счетчика. В конце делим значение переменной счетчика на длину текста и умножаем на 100 - получаем процент символов в тексте.
UPD: тогда проверяй что элемент не буква.
UPD: тогда проверяй что элемент не буква.
любой символ - байт. Т. е. получается не так уж много символов - 256.
Задай массив на 256 элементов Integer, и подсчитывай число элементов.
Все правильно тебе сказали выше.
Задай массив на 256 элементов Integer, и подсчитывай число элементов.
Все правильно тебе сказали выше.
Гасан, в предыдущем ответе есть все что вам нужно, читайте внимательнее. Сделайте, наконец, два цикла. В первом выясните какие символы, во втором займитесь обработкой.
Ну символ может быть и не байтом. Обычно есть способы определить кодировку файла. Если юникод то символ может занимать и 2 байта.
Зачем тебе на каждый символ переменную-то заводить? Ассоциативный массив построй, структуру определи ( символ => количество букв в тексте) , это можно хотя бы ввиде двунаправленного связанного списка с указателями реализовать с помощью динамической структуры, чтобы оверхеда по памяти не было. Один раз по тексту проходишь и сразу все считаешь. Если диапазон алфавита известен, можно и массивом обойтись, как Imobilazer написал.
Как вариант:
Или нужно посчитать сколько каждый символ раз встречается? Может я не так понял.
Или нужно посчитать сколько каждый символ раз встречается? Может я не так понял.

создаете таблицу переменных и прозодите текст от начала и до конца.... каждый элемент можно записать в отдельную переменную и вести запись о колличестве их в тексте - потом провести анализ и выдать результат - при желание можно написать - цену вопроса на почту
Люди вы шо серьёзно? Это задача состоит из одного цикла одного константного массива символов и одного двумерного выходного массива + оператора if... И вы ему всё решили.. . Смешно)))

Другой вариант, в цикле проверить код аскии для каждого символа.
Все символьные знаки входят в один диапазон.
Или проверить числа: если да, то не увеличивать счетчик. Числа ттоже в одном диапазоне кодов аскии - от 48 для 0 до 57 для 9 - и это покороче, чем символьный ряд :) Точное значение кода аскии лучше проверить: пишешь прогу вывести аскии ("1") - точно увидишь значение кода аскии...
Все символьные знаки входят в один диапазон.
Или проверить числа: если да, то не увеличивать счетчик. Числа ттоже в одном диапазоне кодов аскии - от 48 для 0 до 57 для 9 - и это покороче, чем символьный ряд :) Точное значение кода аскии лучше проверить: пишешь прогу вывести аскии ("1") - точно увидишь значение кода аскии...
Похожие вопросы
- помогите пожалуйста составить программу на Delphi/
- Помогите составить программу в Delphi 7!
- Нужно составить программу на ассемблере
- Нужно составить программу в паскале!!
- Помогите пожалуйста я вас о4ень прошу !нужно составить программу в паскале....
- Нужно составить программу на Pascal.
- помогите пожалуйста, нужно составить программу на языке Паскаль
- Нужно составить программу
- Как написать программу на Delphi программа которая бы постоянно висело в памяти и через определенное
- Программа на Delphi работает не совсем так...