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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2010, 19:07   #1
Юляшко
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 24
По умолчанию

Дан типизированный файл целых чисел. Переписать все отрицательные числа в начало файла.

ответьте кто нибудь! я даже не имею предстовления как это сделать

Код:
uses crt;
var f:file of integer;
    n,i,j,p:integer;
    c,d,x:integer;
    k:byte;
begin
clrscr;
randomize;
assign(f,'file1');
rewrite(f);
write('Введите количество чисел в файле n=');
readln(n);
for i:=1 to n do
 begin
  c:=random(20)-9;
  write(f,c);
 end;
reset(f);
writeln('Содержание исходного файла:');
while not eof(f) do
 begin
  read(f,c);
  write(c,' ');
 end;
writeln;
close(f);
reset(f);
p:=0;
for i:=0 to filesize(f)-1 do
 begin
  seek(f,i);
  read(f,c);
  if c<0 then{если отрицательное}
   begin
    p:=p+1;{считаем}
    x:=c;{запоминаем}
    for j:=i downto p do{идем назад}
     begin
      seek(f,j-1);{читаем предыдущее число }
      read(f,d);
      seek(f,j);{вставляем вперед}
      write(f,d);
     end;
    seek(f,p-1);{вставляем на место которое нашли}
    write(f,x);
   end
 end;
if (p=0)or(p=filesize(f)) then
  begin
   write('Перестановок не было!');
   close(f);
  end
else
 begin
  writeln('Содержание нового файла:');
  reset(f);
  while not eof(f) do
   begin
    read(f,c);
    write(c,' ');
   end;
  close(f);
 end;
readln
end.
что нужно поменять чтоб я вручную вводила числа?

Последний раз редактировалось Stilet; 28.04.2010 в 16:47.
Юляшко вне форума Ответить с цитированием
Старый 28.04.2010, 16:15   #2
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
for i:=1 to n do 
 begin 
  c:=random(20)-9; 
  write(f,c); 
 end;
в этой части вот эту строку c:=random(20)-9; на read(c); и randomize впереди убрать.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типизированный файл. Paskal BSS Помощь студентам 2 19.04.2010 08:57
Delphi - Типизированный файл honest Помощь студентам 3 10.06.2009 23:52
Текстовый и типизированный файл Пушистик Паскаль, Turbo Pascal, PascalABC.NET 0 15.04.2009 20:19
Типизированный файл aleksandrdss Помощь студентам 0 08.04.2009 05:01
Типизированный файл Лубышев Помощь студентам 2 11.10.2008 11:08