Важная информация
Показано с 1 по 9 из 9

Тема: Переделать под динамическую память

  1. #1 Переделать под динамическую память 
    Новичок
    Регистрация
    13.04.2011
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Здравствуйте, помогите пожалуйста, если сможете..

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

    Код pascal:
    Program lab_5;
    Uses CRT;
    {-----------------------------------------------------------------}
    {Процедура открывает файл,имя которого вводит пользователь,
    NameOpen - переменная файлового типа}
    Procedure OpenFile(var NameOpen_:text;fl:boolean);
    var name:string;   {имя файла,вводимое пользьзователем}
        res:integer;
    begin
          fl:=TRUE;
          repeat
          writeln('Введите имя файла с исходным текстом ');
          write('(должен быть с расшрением .txt): ');
          readln(name);
          if (name='exit') then fl:=FALSE
          else
          assign(NameOpen_,name + '.txt'); {связывание файловой переменной
                                                            с именем файла}
          {$I-}                 {откл.контроль ошибок ввода-вывода}
          reset(NameOpen_);     {файл инициируется для чтения}
          {$I+}                 {вкл.контроль ошибок ввода-вывода}
          res:=IOResult;
          if res<>0 then writeln('Ошибка.Такого файла не существует.');
          until ((res=0) or (fl=FALSE));
    end;
    {------------------------------------------------------------------}
    {Водится имя файла, в который будет записан текст после изменения
    NameNew_ - переменная файлового типа}
    Procedure NewFile(var NameNew_:text);
    var new:string;
    begin
       writeln('Введите имя файла с измененным текстом ');
       write('(при нажатии Enter результат будет записан в output.txt): ');
       readln(new);
       if (new='') then new:='output.txt'; {нажата клавиша Enter}
       assign(NameNew_,new);   {связывание файловой переменной
                                                            с именем файла}
    end;
    {-----------------------------------------------------}
    Procedure EntrySymbol(var symbl_:char);
    begin
       writeln('Введите знак,который нужно исключить: ');
       readln(symbl_);
    end;
    {-----------------------------------------------------}
    var NameOpen,NameNew:text;
        symbl,sy:char;
        i:integer;
        fl:boolean;
    begin
       clrscr;
       writeln('Данная программа заменяет в текстовом файле ');
       writeln('нужный знак на пробел, сохраняя исправленный файл как новый');
       writeln;
       OpenFile(NameOpen,fl);
       if fl=TRUE then
       begin
          NewFile(NameNew);
          EntrySymbol(symbl);
          reset(NameOpen);       {файл инициируется для чтения}
          rewrite(NameNew);      {инициирует запись информации в файл NameNew_}
          while not eof (NameOpen) do   {пока не достигнет конца файла}
          begin
             read(NameOpen,sy);         {считывается символ из файла}
             if sy=symbl then sy:=' ';  {замена требуемого символа на пробел}
             write(NameNew,sy);         {символ записывается в новый файл}
          end;
          close(NameNew);               {закрытие       }
          close(NameOpen);              {         файлов}
       end;
       write('Завершено');
       readkey;
    end.
    Последний раз редактировалось Kakos_nonos; 21.04.2011 в 22:00.
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,531
    Сказал(а) спасибо
    126
    Поблагодарили 428 раз(а) в 291 сообщениях
    Записей в блоге
    6
    Если нужно преодолеть предел памяти в 64 кб, то турбо паскаль не поможет, надо FreePascal.
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  3. #3  
    Новичок
    Регистрация
    13.04.2011
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    нет, памяти хватает, эта программа работает..
    просто теперь нужно переделать эту же задачу, но с выделением динамической памяти
    Ответить с цитированием  
     

  4. #4  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Задача программы - исключать требуемый знак из исходного файла после его чтения и результат помещать в другой файл. Не понимаю, причем тут динамическая память, стало быть что в нее нужно запихать? Может быть, использовать в качестве назначения не файл, а динамическую память?
    Дружба-магия-радость!
    Ответить с цитированием  
     

  5. #5  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,531
    Сказал(а) спасибо
    126
    Поблагодарили 428 раз(а) в 291 сообщениях
    Записей в блоге
    6
    Заданье такое наверное дали: только с динамической памятью.
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  6. #6  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Я в последнее время от некоторых заданий, которые мне присылали на решение, начинаю офигевать. Особенно от корректности их постановки.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  7. #7  
    Новичок
    Регистрация
    13.04.2011
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    да,это задание такое дали. я тоже не могу разобраться, подо что здесь нужна динамическая память
    Ответить с цитированием  
     

  8. #8  
    Новичок
    Регистрация
    13.04.2011
    Сообщений
    7
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от Абадябер Посмотреть сообщение
    Может быть, использовать в качестве назначения не файл, а динамическую память?
    данные так же берутся из файла, и в итоге результат тоже должен быть записан в новый файл
    Ответить с цитированием  
     

  9. #9  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Ну, вроде как есть вариант, когда нужно всего лишь заменить все переменные, объевленные простым способом, динамическими. Тогда программа будет использовать динамическую память. Другое дело, что она будет использована совсем не так, как в идеале должна. Я бы посоветовал обратиться за разъяснениями к одногруппникам, или преподам, если нет полной уверенности в чем то, а ее нет ни у вас, ни у нас =(
    Дружба-магия-радость!
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •