Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ] > Код на шару!
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.06.2013, 21:28
Sergio1985 Sergio1985 вне форума
Прохожий
 
Регистрация: 02.06.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
Стрелка Работа со строками в txt

Здравствуйте уважаемые программисты!
Вновь обращаюсь к вам с вопросом.
У меня поставлена следующая задача:
Нужно обработать текстовой файл, состоящий из 2-х столбцов чисел. Первый столбик аргумент, второй функция. Эти значения нужно раскидать по корзинам, в зависимости от значения аргумента, в первую попадают только те значения для которых значение аргумента лежит в условии 0,0<=x<0.5, во вторую 0.5<=x<1.0 в третью 1.0<=x<1.5 и так далее с шагом 0,5.

Строки аргумента не упорядочены по значениям. В каждой корзине нужно найти среднее значение функции. После этого софрмировать выходной файл, содержащие средние вычисленные значения:
В каждой строке файла должно быть два числа:
-первое (1 знак после запятой) - начало интверала аргумента (0,5;1,0;1,5;2,0)
- второе -вычисленное среднее значение функции.
Интервалы должны выводиться в порядке возрастания.

Но сейчас появилась необходимость, дополнить некоторые функции к этой программе ( а я не знаю как ):

- возможность сделать шаг не только через 0,5 , а через 1 или 2, чтобы шаг можно было вбивать вручную в edit`e...
т.е. чтобы внутри программы задавалось условие в зависимости от указанного шага
1.0<=x<2.0, 2<=x<3, и так далее шаг 1;
2.0<=x<4.0, 4<=x<6, и так далее шаг 2.

- возможность для обработки еще двух дополнительных столбиков (третьего и четвёртого), которые расчитываются по таким же правилам как и 2-ой, т.е. средние значения...


Если открыть файл с третьим и четвёртым столбиком, то подсчёт будет не верный... ПОэтому я прикрепил для образца файлы, (Образец (2 столбика)), и файлы где 4 столбика.

Прошу помочь,что в коде исправить, спасибо!

У меня есть код (программу прикреплю):

Она расчитывает всё как положено. Шаг 0,5 первый столбик, Средние значения во втором.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    procedure Button2Click(Sender: TObject);



  private
    { Private declarations }
  public
    { Public declarations }
  end;



var
  Form1: TForm1;




implementation

{$R *.dfm}




procedure TForm1.Button2Click(Sender: TObject);
const NumBackets=2048; // максимально количество
type
  tBacket=record
  summ:extended; //накопление значений функций
  numb: longint; //количество значений в корзине
  end;

var
  t:textfile;
  i,n:longint;
  a:array[0 .. NumBackets-1] of tBacket;
  x,y:extended;
  F,Str:string;
begin
  if OpenDialog1.execute then
  begin
    fillchar(a,sizeof(a),0);
    F:=OpenDialog1.FileName; 
    assignfile (t, F);
    Delete(Str,0,32);
    reset (t);
    readln(t,F);
    end;
    while not eof(t) do begin
      readln(t,x,y);
      if (x>=0.0) and(x<(NumBackets/2)) then begin
        n:=trunc(x*2.0);
        a[n].summ:=a[n].summ+y;
        inc(a[n].numb);
      end else begin
        closefile(t);
        writeln('It isn`t enough backets');
        halt(1);
      end;
    end;
  closefile(t);
  F:=FormatDateTime(' ddddd_hh.nn',Now)+'.txt';
  showmessage('complete!');
  assignfile(t,F);
  rewrite(t);
  for i:=0 to Numbackets-1 do
    if a[i].numb>0 then
      if odd(i) then
        writeln(t,i/2:1:1,#9,a[i].summ/a[i].numb:1:2)
      else
        writeln(t,i/2:1:0,#9,a[i].summ/a[i].numb:1:2);
      closefile(t);
      end;
end.
Вложения
Тип файла: txt Обработанные данные(2 столбика)_шаг_0.5.txt (14.5 Кбайт, 1 просмотров)
Тип файла: txt Обработанные данные(4 столбика)_шаг_2.txt (3.7 Кбайт, 1 просмотров)
Тип файла: txt Образец(сырые данные 2 столбика)_шаг 0,5.txt (11.9 Кбайт, 1 просмотров)
Тип файла: txt Образец(сырые данные 4 столбика)_шаг_2.txt (16.2 Кбайт, 1 просмотров)
Тип файла: rar Bin.rar (174.6 Кбайт, 1 просмотров)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:33.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter