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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2014, 00:26   #1
sanji2010
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 52
По умолчанию Динамические переменные PASCAL

Здравствуйте, помогите пожалуйста переделать программу, используя только динамические переменные. Заранее спасибо =)
Код:
uses crt;
type
  myarr = array ['a'..'z'] of integer;

{$I-}{$R-}
procedure FindFile(var f:text; way:string);
begin
repeat
    write('Введите путь к файлу: ');
    readln(way);
    assign(f, way);
    reset(f);
    if IOresult <> 0 then
      writeln('Файл не найден, повторите ввод');
      reset(f);
  until IOresult = 0;
end;

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 ch1:char;var maxch:integer);
var
  ch: char;

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, ' раз');
      ch1:=ch;
end;
  procedure Output(var f1:text; var ch1:char; var maxch:integer);
  begin
   write('Так де вывод выведен в файл с именем RESULT.TXT в дерриктории E:/');
   assign(f1,'E:/output.txt');
   rewrite(f1);
   writeln(f1,'Буква ', ch1, ' встретилась ', maxch, ' раз');
   close(f1);
  end;
var
  a: myarr;
  f,f1: text;
  way: string;
  ch1:char;
  maxch:integer;

begin
  clrscr;
  writeln('Данная программа определяет какая буква чаще всего встречается в файле');
  FindFile(f,way);
  WorkWithfile(f, a);
  close(f);
  FindCh(a,ch1,maxch  );
  Output(f1,ch1,maxch);
  writeln('Программа закончила свою работу, нажмите любую клавишу');
  readkey;
end.
Skype sanji-dim
Свою благодарность можно выразить на счёт R393628098492
sanji2010 вне форума Ответить с цитированием
Старый 27.04.2014, 15:12   #2
sanji2010
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 52
По умолчанию

Помогите пожалуйста
Skype sanji-dim
Свою благодарность можно выразить на счёт R393628098492
sanji2010 вне форума Ответить с цитированием
Старый 28.04.2014, 09:28   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так с чем помочь то?!
Чем (конкретно) не устраивает ваше решение?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.04.2014, 15:33   #4
reflexx
Пользователь
 
Регистрация: 27.04.2014
Сообщений: 21
По умолчанию

Serge_Bliznykov, +1.
ТС, с чем конкретно помочь?
Все ваши переменные объявляете как динамические, выделяете под них память, разыменовываете, когда нужно, в конце разрушаете.
На простом примере:
Код:
...
var
  i: ^Integer; //Типизированный указатель на тип Integer;
begin
  New(i); //Выделение памяти и адреса под значение переменной
  i^:=1; //Обращение к переменной через операцию разыменования 
  Write(i^); //Выводим на экран
  Dispose(i); //Разрушаем 
end.
reflexx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамические переменные (pascal) ryslan94 Помощь студентам 1 04.01.2013 01:18
Динамические переменные. Free Pascal Angelique Паскаль, Turbo Pascal, PascalABC.NET 7 14.12.2012 23:17
Динамические переменные Unique Паскаль, Turbo Pascal, PascalABC.NET 6 05.09.2010 14:19
Динамические переменные - Pascal cherr Помощь студентам 1 10.09.2009 20:28