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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2009, 19:09   #1
sir566
Новичок
Джуниор
 
Регистрация: 02.06.2009
Сообщений: 2
По умолчанию GHJDTHMNT RJL GJ;FKEQCNF

ЗАДАЧА-Дан файл вещественных чисел. Получить новый файл, записав в него сначала все положительные, а затем все отрицательные компоненты.
ПРОГРАММА
Код:
program pr7;

var
  SrcFile, DestFile: File of real; {файл-источник и файл-результат}
  SrcFileName, DestFileName: string; {имена файлов}
  nextelem: real; {следующий компонент файла}
  ask: char;
 
procedure CreateFileOfReal;
var
  i, num: word;
  min, max, value, sign: real;
begin
  Rewrite(SrcFile); {открываем файл на запись}
  writeln('Введите количество компонентов файла '); readln(num);
  writeln('Введите нижнюю границу значений '); readln(min);
  writeln('Введите верхнюю границу значений '); readln(max);
  {если перепутаны границы, меняем их}
  if min>max then begin
    value:= min;
    min:= max;
    max:= value;
  end;
  {заполняем файл значениями}
for i:=1 to num do begin
    value := random*(max-min)+min;
    sign := random;
    if sign<=0.5 then
      value := -value;
    write (SrcFile, value); {запись компонента в файл}
  end;
  Close(SrcFile); {закрываем файл - все данные сохранены}
end;

  for i:=1 to num do begin
    value := random*(max-min)+min;
    sign := random;
    if sign>=0.5 then
      value := -value;
    write (SrcFile, value); {запись компонента в файл}
  end;
  Close(SrcFile); {закрываем файл - все данные сохранены}
end;
 
begin
  writeln('Введите имя исходного файла '); readln(SrcFileName);
  Assign(SrcFile, SrcFileName);
  writeln('Нужно ли предварительно заполнить его? (д/н)'); readln(ask);
  if (ask='y')or(ask='Y')or(ask='д')or(ask='Д') then
    CreateFileOfReal;
  writeln('Введите имя файла-результата '); readln(DestFileName);
  Assign(DestFile, DestFileName);
  {открываем файлы}
  {$I-}
  Reset(SrcFile);
  {$I+}
  if IOResult<>0 then begin
    writeln('Ошибка: невозможно открыть исходный файл.');
    exit;
  end;
  Rewrite(DestFile);
  {собственно копирование значений}
  while not EOF(SrcFile) do begin
    read (SrcFile, nextelem);
    write ('Следующее значение = ',nextelem:8:3);
    if nextelem<0 then begin
      write (DestFile, nextelem);
      writeln (' - копируем');
      end
    else
      writeln(' - не копируем');
  end;
  {закрываем оба файла - сохраняем данные}
  Close (SrcFile);
  Close (DestFile);
end.
sir566 вне форума Ответить с цитированием
Ответ


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