Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2015, 13:55   #1
virus77724
 
Регистрация: 06.04.2014
Сообщений: 7
По умолчанию Подсчет повторений каждого символа

Доброго дня коллеги нужна ваша помощь в доработке кода. Нужно добавить в данную программу подсчет количества каждого символа и вывод, код прикладываю
Код:
uses crt;
var
f:text;
ws:unicodestring;
s,sc:string;
ksm,i:integer;
begin
assign(f, 'text.txt');
reset(f);
ksm:=0;
while not eof(f) do begin
readln(f,s);
ws:=UTF8Decode(s);
ksm:=ksm+length(ws);
for i:=1 to length(ws) do
begin
sc:=UTF8Encode(ws[i]);
writeln(sc,'=');
end;
end;
writeln('У вас в файле ',ksm,' символов');
end.

Последний раз редактировалось virus77724; 14.12.2015 в 13:57. Причина: ошибка в добавлении кода
virus77724 вне форума Ответить с цитированием
Старый 14.12.2015, 14:17   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а что, вашу предыдущую тему "Декодирование на паскаль" можно закрыть?


p.s. я бы воспользовался либо TStringList, куда добавлял найденные символы и счётчик,
либо, банально, динамическим массивом.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.12.2015, 14:20   #3
virus77724
 
Регистрация: 06.04.2014
Сообщений: 7
По умолчанию

да можно там проблемму не решил и как мне объяснил преподаватель это будет почти нереально с тем массивом который у меня был
virus77724 вне форума Ответить с цитированием
Старый 14.12.2015, 14:51   #4
TaLadno
Форумчанин
 
Регистрация: 03.06.2015
Сообщений: 393
По умолчанию

Код:
Program HelloWorld(output);
uses crt;

function GetUniqString(aSrc: string): string;
var i: integer;
Begin
    GetUniqString := '';
    for i:=1 to length(aSrc) do
        if pos(aSrc[i], GetUniqString) = 0 then
            GetUniqString := GetUniqString + aSrc[i];
End;

function GetCountOcc(aCh, aSrc: string): integer;
var i, tPos: integer;
    tempStr: string;
Begin
    GetCountOcc := 0;
    tempStr := aSrc;
    while pos(aCh, tempStr)<>0 do
    Begin
        tPos := pos(aCh, tempStr);
        delete(tempStr, tPos, 1);
        inc(GetCountOcc);
    End;
End;

var src: string;
    uniqStr: string;
    ch: string;
    count: integer;
    i: integer;
begin
    src := 'qwertyqwerty1';
    writeLn(src);
    uniqStr := GetUniqString(src);
    for i := 1 to length(uniqStr) do
    Begin
        ch := uniqStr[i];
        count := GetCountOcc(ch, src);
        writeLn(ch + ' = ', count);
    end;    
end.
работу с файлами и допиливание до "нужного" состояния доделаете уже и сами (та и ошибки если что, то тоже)
проверял только в онлайн-компиляторе
Вы там держитесь.
TaLadno вне форума Ответить с цитированием
Старый 15.12.2015, 16:21   #5
virus77724
 
Регистрация: 06.04.2014
Сообщений: 7
По умолчанию

Спасибо большое но мне нужно использование именно моего декодирование на русские символы, у меня есть программы которые делают подсчет но я не могу объеденить их в одну
virus77724 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить пробел в строку после каждого N символа Gover Общие вопросы Delphi 5 23.03.2015 19:44
Выводить на экран строку, состоящую из случайного (до 25) числа повторений заданного символа. Asya_Teddy Паскаль, Turbo Pascal, PascalABC.NET 6 17.05.2013 17:51
Подсчёт повторений каждого символа в строке sawyer1988 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 11.12.2012 22:54
Подсчет кол-ва повторений символов в одной ячейке. Hagen83 Microsoft Office Excel 13 24.09.2012 17:37
Подсчет повторений символа в строке. Sasha9307 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 16.12.2010 09:50