uses sysutils,crt; type CostoArrayRow = array[1..3] of double; CantidadArrayRow = array[1..4] of Int64; CostoArray = array[1..3] of CostoArrayRow; CantidadArray = array[1..3] of CantidadArrayRow; const ESTACIONES : array[1..4] of string = ('Verano', 'OtoƱo', 'Invierno', 'Primavera'); ARTICULOS : array[1..3] of string = ('A', 'B', 'C'); COSTES : array[1..3] of string = ('Costo de materiales', 'Mano de obra', 'Otros gastos'); procedure printCantidad(cantidad: CantidadArray); var i, j: Int64; begin for i := 1 to Length(ESTACIONES) do write(' ' + ESTACIONES[i]); writeln(''); for i := 1 to Length(cantidad) do begin write(ARTICULOS[i]); for j := 1 to Length(cantidad[i]) do begin write(' ' + IntToStr(cantidad[i][j])); end; writeln(''); end; end; procedure printCosto(costo: CostoArray); var i, j: Int64; begin for i := 1 to Length(ARTICULOS) do write(' ' + ARTICULOS[i]); writeln(''); for i := 1 to Length(costo) do begin write(COSTES[i]); for j := 1 to Length(costo[i]) do begin write(' ' + FloatToStr(costo[i][j])); end; writeln(''); end; end; procedure printCostoPorEstacion(costo: CostoArray; cantidad: CantidadArray); var i, j, k: Int64; precio_por_cantidad: double; begin for i := 1 to Length(ESTACIONES) do write(' ' + ESTACIONES[i]); writeln(''); for i := 1 to Length(COSTES) do begin write(COSTES[i]); for j := 1 to Length(ESTACIONES) do begin precio_por_cantidad := 0; for k := 1 to Length(ARTICULOS) do precio_por_cantidad += cantidad[k][j] * costo[i][k]; write(' ' + FloatToStr(precio_por_cantidad)); end; writeln(''); end; end; procedure printTables(costo: CostoArray; cantidad: CantidadArray); begin printCosto(costo); writeln(''); printCantidad(cantidad); writeln(''); printCostoPorEstacion(costo, cantidad); writeln(''); end; var costo: CostoArray; cantidad: CantidadArray; i, j: Int64; begin ClrScr; Randomize; for i := 1 to 3 do for j := 1 to 3 do { No argument generates a double Random number. } costo[i][j] := Random() * 10; for i := 1 to 3 do for j := 1 to 4 do { Argument generates a int64 Random number lesser than the argument. } cantidad[i][j] := Random(2000) + 500; printTables(costo, cantidad); ReadKey; end.