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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2014, 20:16   #1
sanji2010
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 52
По умолчанию Определить, какая буква чаще всего встречается в заданном тексте (Процедуры)

Здравствуйте, я написал программу, и преподаватель сказал переделать с процедурами, без процедур работала, если не трудно, помогите найти ошибки (Pascal)
Код:
uses crt;
{$I-}
procedure WorkWithFile(var f:text; a:array of integer;var c:integer);
begin
 while not eof(f) do
    begin
     read(f,c);
     inc(a[c]);
     end;
end;
procedure FindCh(var c:integer;var maxch:integer; ch:char;var a:array of integer);
begin
    for ch:='a' to 'z' do
     if a[c]>maxch then maxch:=a[c];
    for ch:='a' to 'z' do
     if a[c]=maxch then
      writeln(' Буква ',ch,' встретилась ',a[c],' раз');
end;
var a:array ['a'..'z'] of integer; f:text;s,way:string;
c,maxch:integer;ch:char;
begin
  clrscr;
  write(' Данная программа определяет какая буква чаще всего встречается в файле');
  writeln(' file.txtкоторый находится на диске Е, для продолжения нажмите любую клавишу');
  repeat
  write(' Введите путь к файлу: ');
  readln(way);
  assign(f,way);
  reset(f);
  if IOresult<>0 then writeln('Файл не найден, повторите ввод');
    assign(f,way);
    reset(f);
  until IOresult=0;
  WorkWithfile(f,a,c);
  close(f);
   readkey;
   writeln;
   FindCh(c,maxch,ch,a);
     write(' Программа закончила свою работу, нажмите любую клавишу ...');
     readkey;
end.
P.S. Не выводит результат, хотя без процедур всё работало на ура
Skype sanji-dim
Свою благодарность можно выразить на счёт R393628098492

Последний раз редактировалось sanji2010; 20.04.2014 в 20:25.
sanji2010 вне форума Ответить с цитированием
Старый 20.04.2014, 20:29   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Не проверял:
Код:
uses crt;

type
  myarr = array ['a'..'z'] of integer;

{$I-}

procedure WorkWithFile(var f: text; var a: myarr);
var
  c: char;
begin
  while not eof(f) do
  begin
    read(f, c);
    inc(a[c]);
  end;
end;

procedure FindCh(const a: myarr);
var
  ch: char;
  maxch: integer;
begin
  maxch := 0;
  for ch := 'a' to 'z' do
    if a[ch] > maxch then
      maxch := a[ch];
  for ch := 'a' to 'z' do
    if a[ch] = maxch then
      writeln('Буква ', ch, ' встретилась ', maxch, ' раз');
end;

var 
  a: myarr;
  f: text;
  way: string;

begin
  clrscr;
  write('Данная программа определяет какая буква чаще всего встречается в файле');
  repeat
    write('Введите путь к файлу: ');
    readln(way);
    assign(f, way);
    reset(f);
    if IOresult <> 0 then
      writeln('Файл не найден, повторите ввод');
  until IOresult = 0;
  WorkWithfile(f, a);
  close(f);
  FindCh(a);
  write('Программа закончила свою работу, нажмите любую клавишу');
  readkey;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 20.04.2014 в 20:54.
BDA на форуме Ответить с цитированием
Старый 20.04.2014, 20:49   #3
sanji2010
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 52
По умолчанию

Нет, программа так же не выводит результата, просто игнорируется процедура FindCh
Skype sanji-dim
Свою благодарность можно выразить на счёт R393628098492
sanji2010 вне форума Ответить с цитированием
Старый 20.04.2014, 20:55   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Проверьте еще раз - дописал 1 строчку.

UPD
Пожалуйста
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 20.04.2014 в 21:17.
BDA на форуме Ответить с цитированием
Старый 20.04.2014, 20:57   #5
sanji2010
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 52
По умолчанию

Да, теперь программа работает, спасибо большое, если кому понадобится, полностью рабочий код программы =)
PASCAL
Код:
uses crt;

type
  myarr = array ['a'..'z'] of integer;

{$I-}

procedure WorkWithFile(var f: text; var a: myarr);
var
  c: char;
begin
  while not eof(f) do
  begin
    read(f, c);
    inc(a[c]);
  end;
end;

procedure FindCh(const a: myarr);
var
  ch: char;
  maxch: integer;
begin
  maxch := 0;
  for ch := 'a' to 'z' do
    if a[ch] > maxch then
      maxch := a[ch];
  for ch := 'a' to 'z' do
    if a[ch] = maxch then
      writeln('Буква ', ch, ' встретилась ', maxch, ' раз');
end;

var 
  a: myarr;
  f: text;
  way: string;

begin
  clrscr;
  write('Данная программа определяет какая буква чаще всего встречается в файле');
  repeat
    write('Введите путь к файлу: ');
    readln(way);
    assign(f, way);
    reset(f);
    if IOresult <> 0 then
      writeln('Файл не найден, повторите ввод');
  until IOresult = 0;
  WorkWithfile(f, a);
  close(f);
  FindCh(a);
  write('Программа закончила свою работу, нажмите любую клавишу');
  readkey;
end.
Skype sanji-dim
Свою благодарность можно выразить на счёт R393628098492
sanji2010 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами: Определить, какая буква чаще всего встречается в заданном тексте sanji2010 Паскаль, Turbo Pascal, PascalABC.NET 1 06.04.2014 17:04
1 или последняя буква в веденном пр. встречается чаще? Максим 2013 Паскаль, Turbo Pascal, PascalABC.NET 10 12.05.2013 15:51
Oracle - вывести работников, в имени или фамилии которых какая-либо буква встречается 2 и более раз Кристина * SQL, базы данных 10 08.12.2012 20:32
Поиск элемента который чаще всего встречается Gerzs Microsoft Office Excel 6 08.11.2010 21:59
какая из букв встречается в данной строке чаще StudeHt Помощь студентам 8 12.04.2009 00:28