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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2013, 17:02   #1
kotophei999
Новичок
Джуниор
 
Регистрация: 27.05.2013
Сообщений: 1
По умолчанию Задача PascalABC.NET на работу со строками

Для каждого символа текста указать, сколько раз он встречается в тексте и вывести в текстовый файл слово, в котором этот символ встречается наиболее часто. Если таких слов несколько, вывести первое встретившееся, последнее встретившееся, все слова.
В программе используйте подпрограммы.

Нашёл такое решение, но оно не то...и без процедур, помогите:
Код:
const
  p = [' ', '.', ',', '!', '?'];
 
 
var
  t, g: text;
  a: array [192..255] of integer;
  s, sl, slmax: string;
  i, j, k, ch, imax: byte;
 
begin
  assign(t, 'in.txt');
  assign(g, 'out.txt');
  reset(t);
  while not (eof(t)) do
  begin
    readln(t, s);
    for i := 1 to length(s) do
      if ord(s[i]) > 191 then inc(a[ord(s[i])]);
  end;
  imax := 192;
  writeln('Частота повторений символов в тексте');
  for i := 192 to 255 do
  begin
    write(chr(i):3, '-', a[i]:3, '         ');
    if a[i] > a[imax] then imax := i;
  end;
  writeln;
  writeln('Чаще всего (', a[imax], ') встречается ', chr(imax));
  reset(t);
  ch := 0;
  while not (eof(t)) do
  begin
    readln(t, s);
    s := s + ' ';
    sl := '';
    for i := 1 to length(s) do
      if not (s[i] in p) then sl := sl + s[i] else
      if length(sl) > 0 then
      begin
        k := 0;
        for j := 1 to length(sl) do
          if sl[j] = chr(imax) then inc(k);
        if k > ch then
        begin
          slmax := sl;
          ch := k;
        end;
        sl := '';
      end;
  end;
  rewrite(g);
  writeln('Символ ', chr(imax), ' чаще всего встретился в слове ', slmax);
  writeln(g, 'Символ ', chr(imax), ' чаще всего встретился в слове ', slmax);
  close(t);
  close(g);
end.

Последний раз редактировалось Stilet; 27.05.2013 в 17:47.
kotophei999 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на работу со строками Toxi Помощь студентам 9 20.03.2012 22:37
задача на работу со строками Евгений77777 Помощь студентам 10 09.03.2012 22:08
Задача в PascalABC.NET с Random (только подсказать) AntoshkaK Паскаль, Turbo Pascal, PascalABC.NET 2 16.11.2011 18:47
Задача в PascalABC.NET с Integer AntoshkaK Паскаль, Turbo Pascal, PascalABC.NET 4 09.11.2011 18:00
Задача на работу со строками в С# OnlySergio Помощь студентам 1 29.11.2009 17:45