program interval;

uses
  Wincrt;

const
slut = 1000;
var
  skriv : array[1..slut] of integer;
  i,antal : integer;
  indfil,udfil : text;
  start,int,vardi : real;
  procent,total : boolean;
  key : char;

begin
  assign(indfil,'e:\junk\projekt\pascal\filer\indfil.txt');
  reset(indfil);
  assign(udfil,'e:\junk\projekt\pascal\filer\udfil.txt');
  rewrite(udfil);
  gotoxy(10,5);
  write('Hvad er den mindste værdi? : ');
  readln(start);
  gotoxy(10,7);
  write('Hvor stort er intervallet? : ');
  readln(int);
  repeat
    gotoxy(10,9);
    write('Ønskes værdierne udskrevet i relative værdier? (Ja/Nej) : ');
    key:=readkey;
  until ((key='j') or (key='n'));
  if key='j' then
    procent:=true;
  if key='n' then
    procent:=false;

  repeat
    gotoxy(10,11);
    write('Ønskes værdierne udskrevet i totale værdier? (Ja/Nej) : ');
    key:=readkey;
  until ((key='j') or (key='n'));
  if key='j' then
    total:=true;
  if key='n' then
    total:=false;
  clrscr;
  while EOF(indfil)=false do
  begin
    readln(indfil,vardi);

    for i:=1 to slut do
    begin
      if ((vardi>=start+(i-1)*int) and (vardi<start+i*int)) then
      begin
        skriv[i]:=skriv[i]+1;
        antal:=antal+1;
      end;
    end;
  end;

  writeln(udfil,' Det totale antal punkter er : ',antal);
  if procent=true then
  begin
    for i:=1 to slut do
    begin
      writeln(udfil,0.5*((i-1)*int+start)+0.5*(i*int+start),'   ',skriv[i]/antal);
    end;
  end;
  if total=true then
  begin
    for i:=1 to slut do
    begin
      writeln(udfil,0.5*((i-1)*int+start)+0.5*(i*int+start),'   ',skriv[i]);
      gotoxy(10,10);
      writeln(100*i/slut:3:2,'  %');
    end;
  end;

  close(udfil);
  clrscr;
  gotoxy(10,20);
  writeln('Programmet kan nu lukkes.');


end.
