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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2013, 22:27   #1
SOWAA
Пользователь
 
Регистрация: 13.08.2013
Сообщений: 11
По умолчанию паскаль. удаление чисел из типизированного файла.

паскаль.помогите пожалуйста решить.
Создан типизированный файл, содержащий целые числа.
нужно удалить эти числа,но я к сожалению не знаю как.
я их просто умножила на минус один.
Код:
 
var
  f: file of integer;
  i, n, m, q, s, k, j: integer;
  x, y: integer;
  w: string;

begin
  write('Введите кол-во элементов: ');readln(n);
  Assign(f, 'in.dat');Rewrite(f);
  for i := 1 to n do
  begin
    write('Введите  элемент: ');
    readln(m);
    write(f, m);
  end;
  Close(f);
  writeln('Файл создан');
  write('Введите  элемент x: ');
  readln(x);
  write('Введите  элемент y: ');
  readln(y);
  readln;
    //=========== вторая часть.===================
  begin
    Assign(f, 'in.dat');Reset(f);
    i := 0; s := 0;
    writeln('Исходный файл');
    
    while not Eof(f) do
    begin
      read(f, m);
      write(m, ' ');
    end;
    writeln;
    Reset(f);
    
    while not Eof(f) do 
    begin
      read(f, m);
      
      if (m >= x) and (m <= y) then  
      begin
        Seek(f, i);
        write(f, m * (-1));  s := s + m; inc(k);
      end;
      inc(i);
    end;
    Reset(f);
    writeln('Полученный файл');  
    while not Eof(f) do
    begin
      read(f, m);
      write(m, ' ');
    end;
    writeln('сумма', s);writeln('количество', k);
    readln;
  end;
end.

Последний раз редактировалось SOWAA; 19.08.2013 в 12:01.
SOWAA вне форума Ответить с цитированием
Старый 18.08.2013, 23:01   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Попробуйте:
Код:
var
  f: file of integer;
  i, n, m, a, b, s, k: integer;

begin
  Assign(f, 'in.dat');
  Rewrite(f);
  write('Введите  количество элементов: ');
  readln(n);
  for i := 1 to n do
  begin
    write('Введите ', i, ' элемент: ');
    readln(m);
    write(f, m);
  end;
  writeln('Файл создан');
  write('Введите нижнюю границу: ');
  readln(a);
  write('Введите верхнюю границу: ');
  readln(b);
  writeln('Исходный файл:');
  Reset(f);
  while not Eof(f) do
  begin
    read(f, m);
    write(m, ' ');
  end;
  writeln;
  i := 0;
  k := 0;
  n := 0;
  s := 0;
  Reset(f);
  while not Eof(f) do
  begin
    read(f, m);
    if (m >= a) and (m <= b) then
    begin
      inc(s, m);
      inc(n);
    end
    else if (i <> k) then
    begin
      Seek(f, k);
      inc(k);
      write(f, m);
      Seek(f, i + 1);
    end
    else
      inc(k);
    inc(i);
  end;
  Seek(f, k);
  truncate(f);
  Reset(f);
  writeln('Полученный файл:');
  while not Eof(f) do
  begin
    read(f, m);
    write(m, ' ');
  end;
  writeln;
  writeln('сумма: ', s);
  writeln('количество: ', n);
  Close(f);
  readln;
end.
UPD
Пожалуйста. Потестируйте хорошенько.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 18.08.2013 в 23:26.
BDA вне форума Ответить с цитированием
Старый 18.08.2013, 23:17   #3
SOWAA
Пользователь
 
Регистрация: 13.08.2013
Сообщений: 11
По умолчанию

круто,спасибо большое
SOWAA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами(дозаписывание чисел и создания и просмотр типизированного файла) danil663 Паскаль, Turbo Pascal, PascalABC.NET 10 24.06.2013 22:36
Удаление записей из типизированного файла whiskey Общие вопросы Delphi 6 30.10.2010 15:05
Типизированные файлы.Создание, удаление, редактирование, сортировка записей типизированного файла.Паскаль Студент Шиза Помощь студентам 6 08.12.2007 13:41