Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
 Аватар для Zela124
1 / 1 / 0
Регистрация: 30.11.2008
Сообщений: 48

Определить, сколько раз и какие символы встречаются в текстовом файле

26.05.2009, 21:47. Показов 1689. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Эта программка рассчитывает сколько раз и какие символы встречаются в текстовом файле.Нужно дополнить тем,что нет разделения между заглавными и прописными буквами+в конце вывести символы в порядке частоты их появления в слове.
Пожалуйста помогите.:'(
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
program fail;
uses crt;
type mas_tips=array [32..126] of integer;
var f1:text;
    f2:text;
    c:char;
    x,y,max,ymax:integer;
    var mas:mas_tips;
begin
clrscr;
     assign (f1,'C:\BP\Bin\f1.txt');
     assign (f2,'C:\BP\Bin\f1.txt');
     reset (f1);
     rewrite (f2);
     while not (eof(f1)) do begin
           while not (eoln(f1)) do begin
                                   read (f1,c);
                                   x:=ord(upcase(c));
                                   if (x>31) and (x<127) then mas[x]:=mas[x]+1
                                   end;
           readln (f1)
           end;
  for x:=32 to 126 do if mas[x]>0 then write (chr(x),'-',mas[x]);
 c:=readkey
end.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.05.2009, 21:47
Ответы с готовыми решениями:

Дана строка символов. Определить, какие символы и сколько раз встречаются в данной строке
Помогите пожалуйста:)))

Определить какие символы и сколько раз встречаются в заданной строке
Здравствуйте, товарищи программисты! Помогите, пожалуйста, вот три задачки, которые нужно написать: String Дана строка символов....

Определить какие символы и сколько раз встречаются в строке
Здравствуйте, товарищи программисты! Помогите, пожалуйста, вот задачка, которые нужно написать: Дана строка символов. Определить какие...

7
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
26.05.2009, 22:41
нет разделения между заглавными и прописными буквами+
Так сами их делаете все большими-x:=ord(upcase(c));-зачем upcase?
А что за диапазон 32-126, от пробела до ~, и при чем здесь буквы?
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
26.05.2009, 22:47
В 12-й строке кода ошибка. Передаётя то же самое имя файла, что и в первой. Замените имя файла на "C:\BP\Bin\f2.txt", например. И не стоило б пихать свои файлы в каталог BIN компилятора.
0
 Аватар для Zela124
1 / 1 / 0
Регистрация: 30.11.2008
Сообщений: 48
26.05.2009, 22:53  [ТС]
Про ошибку спасибо,Delphin_KKC.
Puporev,про upcase это я вероятно напутала,а всё остальное нам уже было дано.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
26.05.2009, 22:56
Вот посмотрите здесь коды символов и подумайте, что вы пытаетесь вывести.
Написать функцию, которая возвращает N правых символов в виде строки
1
 Аватар для Zela124
1 / 1 / 0
Регистрация: 30.11.2008
Сообщений: 48
26.05.2009, 23:10  [ТС]
Спасибо конечно,я посмотрю,но мне понятно-что надо вывести.Я не знаю как переделать.

Добавлено через 10 минут 27 секунд
Просто если в слове есть три А и два а,то он выводит их отдельно и считает отдельно.И нужно,чтобы выводил символы в убывающем порядке.
Например,
А-5
"-3
,-1
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
26.05.2009, 23:25
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Всё, что далее - добавить соответстующие разделы программы:
Pascal
1
2
3
4
5
6
7
8
type TMyRec = record
              sym:char;
              freq:integer;
              end;
var
recs:array[32..126] of TMyRec;
i,j,mx,nm:byte;
rec:TMyRec;
А следующий код вставить перед самым концом программы (перед readkey)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
for i:=32 to 126 do 
 begin
 recs[i].sym:=chr(i);
 recs[i].freq:=mas_tips[i];
 end;
 
for i:=32 to 125 do
 begin
 mx:=recs[i].freq;
 nm:=i;
 for j:=i+1 to 126 do
  begin
  if recs[j].freq > mx then begin mx:=recs[j].freq; nm:=j; end;
  end;
 if mx <> i then
  begin
  rec:=recs[i];
  recs[i]:=recs[nm];
  recs[nm]:=rec;
  end;
 end;
for x:=32 to 126 do if recs[x].freq>0 then write (recs[x].sym,'-',recs[x].freq);
Примечания:
1) Здесь уже индексы в массиве не всегда соответствуют коду символа.
2) Алгоритм сортировки не самый лучший, но должен работать.
З.Ы. Я в инете с ноута и для паскаля тут нету компилятора. Потому писал в обычном виндовом "блокноте". Возможны некоторые ошибки. Но вродь правильно.

Добавлено через 7 минут 0 секунд
Цитата Сообщение от Zela124 Посмотреть сообщение
Про ошибку спасибо,Delphin_KKC.
Puporev,про upcase это я вероятно напутала,а всё остальное нам уже было дано.
Хз. Мож и не напутала. UpCase приводит все символы к верхнему регистру. Т.е. как раз достигается неразличение программой прописных и строчных букв. Но только английских. Для русских букв надо самому такую функцию писать. В Паскале её нет.
1
 Аватар для Zela124
1 / 1 / 0
Регистрация: 30.11.2008
Сообщений: 48
26.05.2009, 23:33  [ТС]
Спасибо большущее!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2009, 23:33
Помогаю со студенческими работами здесь

Определить, какие символы и сколько раз встречаются в строке
Дана строка. Определить, какие символы и сколько раз встречаются в данной строке. Помогите пожалуйста

Определить, какие символы и сколько раз встречаются в тексте
1)Определить, какие символы и сколько раз встречаются в тексте. 2)Составить программу, вычёркивающую из слова X и Y те буквы, что...

Определить, какие символы и сколько раз встречаются в данной строке. C++
Дана строка. Определить, какие символы и сколько раз встречаются в данной строке.

Определить, какие символы и сколько раз встречаются в данной строке
Дана строка. Определить, какие символы и сколько раз встречаются в данной строке.

Определить, какие символы и сколько раз встречаются в тексте. Текст: ХОРОШО ТОГО УЧИТЬ, КТО ХОЧЕТ ВСЕ ЗНАТЬ
Определить, какие символы и сколько раз встречаются в тексте. Текст: ХОРОШО ТОГО УЧИТЬ, КТО ХОЧЕТ ВСЕ ЗНАТЬ.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru