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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2016, 13:25   #1
Susana
 
Регистрация: 08.05.2016
Сообщений: 2
По умолчанию Delphi-Работа с файлами

Помогите,пожалуйста, вывести числа большие среднего арифметического.
Создать типизированный файл, в который записать n целых чисел. Найти среднее арифметическое. Из файла переписать все числа, большие среднего арифметического, в новый файл.
Составить две программы. Первая должна формировать файл. Вторая-считать данные из этого файла, выполнить соответствующие вычисления

код второй программы:

Код:
procedure TForm1.btn1Click(Sender: TObject);
const
  Fn = 'test.txt';
var
  F : file of Integer;
  Num,i,s : Integer;
  result:real;
begin
  AssignFile(F, Fn);
  Mmo1.Lines.Add( 'Содержимое файла:' );
  Reset(F);
  i:=0;
  s:=0;
  while not Eof(F) do begin
    Read(F, Num);
    i:=i+1;
    Mmo1.Lines.Add( IntToStr(Num) );
  end;
  Reset(F);
  while not Eof(F) do begin
    Read(F, Num);
      s:=s+Num;
  end;
  CloseFile(F);
    result:=s/i;
     Mmo1.Lines.Add( 'Cреднее арифметическое:' );
     Mmo1.Lines.Add(floattostr(result));
end;
Susana вне форума Ответить с цитированием
Старый 04.06.2016, 15:51   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Создать типизированный файл
вместо file of Integer я б сделал потомка от TFileStream или TMemoryStream, добавив пару свойств и методов.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 04.06.2016, 21:13   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Susana, я бы написал так:

Код:
procedure TForm1.btn1Click(Sender: TObject);
const
  F1Name = 'test.bin';
  FOutName = 'bigger.bin';
var
  F, F2 : file of Integer;
  Num,i,sum : Integer;
  aver:real;
begin
  AssignFile(F, F1Name);
  Mmo1.Lines.Add( 'Содержимое файла '+F1Name+' :' );
  Reset(F);
  i:=0;
  sum:=0;
  while not Eof(F) do begin
    Read(F, Num);
    i:=i+1;
    sum:=sum+Num;
    Mmo1.Lines.Add( IntToStr(Num) );
  end;
  CloseFile(F);
  if i=0 then Mmo1.Lines.Add('Файл пуст, среднеарифметическое посчитать нельзя!')
  else begin
     aver:=sum/i;
     Mmo1.Lines.Add( 'Cреднее арифметическое: ' + floattostr(aver) );
     
     // теперь запишем все числа больше среднеарифметического в новый файл
     AssignFile(F2, FOutName);
     Rewrite(F2);
     Mmo1.Lines.Add( 'Создаём новый файл '+FOutName );

     // откроем входной файл на чтение
     Reset(F);
     while not Eof(F) do begin
        Read(F, Num);
        if Num> aver then begin
           Mmo1.Lines.Add( 'Записываем число '+IntToStr(Num) );
           Write(F2, Num)
        end;
     end;
     Mmo1.Lines.Add( 'Закончили запись во второй файл.');
     CloseFile(F2) 
  end;
end;

А первую часть - программу для создания исходного файла Вы написали?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами(delphi) Egor2402 Помощь студентам 2 18.01.2015 16:05
Работа с файлами в Delphi Деми Помощь студентам 1 18.05.2014 15:43
Работа с файлами в Delphi Деми Помощь студентам 1 18.05.2014 15:43
Работа с файлами (delphi) Nina Sheremet Помощь студентам 2 18.02.2013 15:17
Работа с файлами(Delphi) Fifoni Помощь студентам 2 10.10.2012 21:11