{$codepage utf8} {$mode objfpc} Uses sysutils,classes; Type TTablaFrecuencias = class class var i:longint; var ni,hi,NiMenorQ:TList; Tni,Thi:double; cantidad:longint; Constructor Crear(n:longint;a,b,c:Tlist); Procedure Lectura; Procedure Calculos; Procedure Mostrar; End; Constructor TTablaFrecuencias.Crear(n:longint;a,b,c:Tlist); Begin ni:=a; hi:=b; NiMenorQ:=c; cantidad:=n End; Procedure TTablaFrecuencias.Lectura; var aux:^double; Begin for i:=0 to cantidad-1 do Begin new(aux); Write('ni[',i,'] '); readln(aux^); ni.add(aux); Tni:=Tni+double(ni[i]^); new(aux);aux^:=0;hi.add(aux); new(aux);aux^:=0;NiMenorQ.add(aux) End; End; Procedure TTablaFrecuencias.Calculos; var aux:pointer; Begin for i:= 0 to cantidad-1 do Begin double(hi[i]^):=double(ni[i]^)/Tni; Thi:=Thi+double(hi[i]^); End; double(NiMenorQ[0]^):=double(ni[0]^); for i:=1 to cantidad-1 do double(NiMenorQ[i]^):=double(NiMenorQ[i-1]^)+double(ni[i]^); End; Procedure TTablaFrecuencias.Mostrar; Begin Writeln(' ni hi Ni'); for i:=0 to cantidad-1 do Writeln(' ',double(ni[i]^):10:2,double(hi[i]^):10:2,double(NiMenorQ[i]^):10:2); Writeln; Writeln('Total ',tni:5:2,thi:10:2) End; Var TablaFrecuencias:TTablaFrecuencias; ni,hi,NiMenorQ:Tlist; n:longint; Begin Write('Ingrese numero de datos : ');readln(n); ni:=Tlist.Create; hi:=Tlist.Create; NiMenorQ:=Tlist.Create; TablaFrecuencias:=TTablaFrecuencias.Crear(n,ni,hi,NiMenorQ); TablaFrecuencias.Lectura; TablaFrecuencias.Calculos; TablaFrecuencias.Mostrar; ni.destroy; hi.destroy; NiMenorQ.destroy; TablaFrecuencias.destroy; End.