Write float arrays to a text file: Difference between revisions

m
m (→‎{{header|R}}: not necessary to postprocess)
m (→‎{{header|Wren}}: Minor tidy)
 
(27 intermediate revisions by 20 users not shown)
Line 29:
 
=={{header|Ada}}==
<langsyntaxhighlight lang="ada">with Ada.Text_IO; use Ada.Text_IO;
with Ada.Float_Text_IO; use Ada.Float_Text_IO;
with Ada.Numerics.Elementary_Functions; use Ada.Numerics.Elementary_Functions;
Line 62:
Write_columns (File, X, Y);
Close (File);
end Write_Float_Array;</langsyntaxhighlight>
 
=={{header|ALGOL 68}}==
Line 69:
{{works with|ALGOL 68G|Any - tested with release [http://sourceforge.net/projects/algol68/files/algol68g/algol68g-1.18.0/algol68g-1.18.0-9h.tiny.el5.centos.fc11.i386.rpm/download 1.18.0-9h.tiny]}}
{{wont work with|ELLA ALGOL 68|Any (with appropriate job cards) - tested with release [http://sourceforge.net/projects/algol68/files/algol68toc/algol68toc-1.8.8d/algol68toc-1.8-8d.fc9.i386.rpm/download 1.8-8d] - due to extensive use of FORMATted transput}}
<langsyntaxhighlight lang="algol68">PROC writedat = (STRING filename, []REAL x, y, INT x width, y width)VOID: (
FILE f;
INT errno = open(f, filename, stand out channel);
Line 99:
print((line,new line))
OD
)</langsyntaxhighlight>
{{out}}
<pre>
Line 111:
</pre>
 
=={{header|Amazing Hopper}}==
Version hopper-FLOW:
<syntaxhighlight lang="amazing hopper">
#include <flow.h>
 
DEF-MAIN(argv,argc)
VOID( x ), MSET( y, f )
 
MEM(1,2,3,1.0e11), APND-LST(x), SET( y, x )
SET-ROUND(5), SQRT(y), MOVE-TO(y)
UNSET-ROUND
CAT-COLS( f, y, x )
TOK-SEP( TAB ), SAVE-MAT(f, "filename.txt" )
END
</syntaxhighlight>
{{out}}
<pre>
$ cat filename.txt
1 1
2 1.41421
3 1.73205
1e+11 316228
</pre>
 
=={{header|Applesoft BASIC}}==
<syntaxhighlight lang="gwbasic"> 100 D$ = CHR$ (4)
110 F$ = "FILENAME.TXT"
120 READ X(0),X(1),X(2),X(3),Y(0),Y(1),Y(2),Y(3)
130 DATA 1,2,3,1E11
140 DATA 1,1.4142135623730951,1.7320508075688772,316227.76601683791
150 XPRECISIO = 3
160 YPRECISIO = 5
170 PRINT D$"OPEN"F$
180 PRINT D$"CLOSE"F$
190 PRINT D$"DELETE"F$
200 PRINT D$"OPEN"F$
210 PRINT D$"WRITE"F$
220 FOR I = 0 TO 3
230 P = XPRECISIO:N = X(I): GOSUB 300
240 PRINT " ";
250 P = YPRECISIO:N = Y(I): GOSUB 300
260 PRINT
270 NEXT I
280 PRINT D$"CLOSE"F$
290 END
300 O = N
310 E = 0
320 IF O > = 10 THEN GOSUB 390
330 IF O < 1 THEN GOSUB 450
340 LET O = INT ( INT (O * (10 ^ P)) / 10 + .5) / (10 ^ (P - 1))
350 PRINT O;
360 IF E > 0 THEN PRINT "E+" RIGHT$ ("00" + STR$ (E),3);
370 IF E < 0 THEN PRINT "E-" RIGHT$ ("00" + STR$ ( - E),3);
380 RETURN
390 FOR Q = 0 TO 1
400 O = O / 10
410 E = E + 1
420 Q = NOT (O > = 10)
430 NEXT Q
440 RETURN
450 FOR Q = 0 TO 1
460 O = O * 10
470 E = E - 1
480 Q = NOT (O < 1)
490 NEXT Q
500 RETURN</syntaxhighlight>
=={{header|AWK}}==
As usual, the order of array traversal in AWK is not necessarily the same as the input had:
<langsyntaxhighlight lang="awk">$ awk 'BEGIN{split("1 2 3 1e11",x);
> split("1 1.4142135623730951 1.7320508075688772 316227.76601683791",y);
> for(i in x)printf("%6g %.5g\n",x[i],y[i])}'
Line 119 ⟶ 187:
1 1
2 1.4142
3 1.7321</langsyntaxhighlight>
For the text file part of the task, just redirect stdout to it.
 
=={{header|BASIC256}}==
<syntaxhighlight lang="basic256">x$ = "1 2 3 1e11"
x$ = explode(x$, " ")
 
f = freefile
open f, "filename.txt"
 
for i = 0 to x$[?]-1
writeline f, int(x$[i]) + chr(9) + round(sqrt(x$[i]),4)
next i
close f</syntaxhighlight>
 
=={{header|BBC BASIC}}==
{{works with|BBC BASIC for Windows}}
<langsyntaxhighlight lang="bbcbasic"> DIM x(3), y(3)
x() = 1, 2, 3, 1E11
FOR i% = 0 TO 3
Line 144 ⟶ 224:
NEXT
CLOSE #outfile%</langsyntaxhighlight>
{{out}}
<pre>
Line 154 ⟶ 234:
 
=={{header|C}}==
<langsyntaxhighlight lang="c">#include <stdio.h>
#include <math.h>
 
Line 171 ⟶ 251:
 
return 0;
}</langsyntaxhighlight>
 
The file <tt>"floatArray"</tt> then contains the following:
<syntaxhighlight lang="text">1 1
2 1.4142
3 1.7321
1e+11 3.1623e+05</langsyntaxhighlight>
 
=={{header|C sharp|C#}}==
<langsyntaxhighlight lang="csharp">using System.IO;
 
class Program
Line 198 ⟶ 278:
outf.WriteLine(formatString, x[i], y[i]);
}
}</langsyntaxhighlight>
 
{{out}}
Line 205 ⟶ 285:
3 1.7321
1E+11 3.1623E+05</pre>
 
 
=={{header|C++}}==
Function ''writedat()'':
<langsyntaxhighlight lang="cpp">template<class InputIterator, class InputIterator2>
void writedat(const char* filename,
InputIterator xbegin, InputIterator xend,
Line 221 ⟶ 300:
f << std::setprecision(xprecision) << *xbegin << '\t'
<< std::setprecision(yprecision) << *ybegin << '\n';
}</langsyntaxhighlight>
Example:
<langsyntaxhighlight lang="cpp">#include <algorithm>
#include <cmath> // ::sqrt()
#include <fstream>
Line 253 ⟶ 332:
}
return 0;
}</langsyntaxhighlight>
 
{{out|Result}}
Line 264 ⟶ 343:
 
=={{header|COBOL}}==
<syntaxhighlight lang="cobol">
<lang COBOL>
identification division.
program-id. wr-float.
Line 307 ⟶ 386:
.
end program wr-float.
</syntaxhighlight>
</lang>
{{out|Result}}
<pre>
Line 317 ⟶ 396:
 
=={{header|Common Lisp}}==
<langsyntaxhighlight lang="lisp">(with-open-file (stream (make-pathname :name "filename") :direction :output)
(let* ((x (make-array 4 :initial-contents '(1 2 3 1e11)))
(y (map 'vector 'sqrt x))
Line 324 ⟶ 403:
(fmt (format nil "~~,1,~d,,G~~12t~~,~dG~~%" xprecision yprecision)))
(map nil (lambda (a b)
(format stream fmt a b)) x y)))</langsyntaxhighlight>
Using [[CLISP]] I get
1. 1.0000
Line 332 ⟶ 411:
 
=={{header|D}}==
<langsyntaxhighlight lang="d">import std.file, std.conv, std.string;
 
void main() {
Line 347 ⟶ 426:
 
write("float_array.txt", tmp);
}</langsyntaxhighlight>
{{out}}
<pre>1 1
Line 353 ⟶ 432:
3 1.7321
1e+11 3.1623e+05</pre>
=={{header|Delphi}}==
{{libheader| System.SysUtils}}
{{libheader| System.IoUtils}}
<syntaxhighlight lang="delphi">
program Write_float_arrays_to_a_text_file;
 
{$APPTYPE CONSOLE}
 
uses
System.SysUtils,
System.IoUtils;
 
function ToString(v: TArray<Double>): TArray<string>;
var
fmt: TFormatSettings;
begin
fmt := TFormatSettings.Create('en-US');
SetLength(Result, length(v));
 
for var i := 0 to High(v) do
Result[i] := v[i].tostring(ffGeneral, 5, 3, fmt);
end;
 
function Merge(a, b: TArray<string>): TArray<string>;
begin
SetLength(Result, length(a));
for var i := 0 to High(a) do
Result[i] := a[i] + ^I + b[i];
end;
 
var
x, y: TArray<Double>;
 
begin
x := [1, 2, 3, 1e11];
y := [1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791];
 
TFile.WriteAllLines('FloatArrayColumns.txt', Merge(ToString(x), ToString(y)));
end.</syntaxhighlight>
{{out}}
<pre>1 1
2 1.4142
3 1.7321
1E011 3.1623E005</pre>
 
=={{header|Elixir}}==
<langsyntaxhighlight lang="elixir">defmodule Write_float_arrays do
def task(xs, ys, fname, precision\\[]) do
xprecision = Keyword.get(precision, :x, 2)
Line 376 ⟶ 499:
precision = [x: 3, y: 5]
Write_float_arrays.task(x, y, fname, precision)
IO.puts File.read!(fname)</langsyntaxhighlight>
 
{{out}}
Line 394 ⟶ 517:
Erlang thinks 1 is an integer. To persuade it otherwise I have to use 1.0.
 
<syntaxhighlight lang="erlang">
<lang Erlang>
-module( write_float_arrays ).
 
Line 417 ⟶ 540:
[ok = io:fwrite( IO, Format, [X, Y]) || {X, Y} <- lists:zip( Xs, Ys)],
file:close( IO ).
</syntaxhighlight>
</lang>
 
{{out}}
Line 426 ⟶ 549:
 
=={{header|Euphoria}}==
<langsyntaxhighlight lang="euphoria">constant x = {1, 2, 3, 1e11},
y = {1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791}
 
Line 435 ⟶ 558:
printf(fn,"%.3g\t%.5g\n",{x[n],y[n]})
end for
close(fn)</langsyntaxhighlight>
 
=={{header|F Sharp|F#}}==
<langsyntaxhighlight lang="fsharp">[<EntryPoint>]
let main argv =
let x = [ 1.; 2.; 3.; 1e11 ]
Line 449 ⟶ 572:
let line = sprintf "%.*g\t%.*g"
List.iter2 (fun x y -> file.WriteLine (line xprecision x yprecision y)) x y
0</langsyntaxhighlight>
Content of File, visualized with TAB=8
<pre>1 1
Line 459 ⟶ 582:
{{works with|GNU Forth}}
 
<langsyntaxhighlight lang="forth">create x 1e f, 2e f, 3e f, 1e11 f,
create y 1e f, 2e fsqrt f, 3e fsqrt f, 1e11 fsqrt f,
 
Line 473 ⟶ 596:
 
outfile-id stdout to outfile-id
close-file throw ;</langsyntaxhighlight>
 
=={{header|Fortran}}==
=== Fortran 90 ===
{{works with|Fortran|90 and later}}
<langsyntaxhighlight lang="fortran">program writefloats
implicit none
 
Line 503 ⟶ 626:
end subroutine writexy
 
end program writefloats</langsyntaxhighlight>
 
The arrays x and y should have same bounds (and size); this constraint is not checked.
 
=== Fortran 77 ===
<langsyntaxhighlight lang="fortran"> program writefloats
integer i
double precision x(4), y(4)
Line 519 ⟶ 642:
open(unit=15, file='two_cols.txt', status='new')
write(15, '(f20.3,f21.4)') (x(i), y(i), i = 1, 4)
end</langsyntaxhighlight>
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang="freebasic">' FB 1.05.0 Win64
 
Dim x(0 To 3) As Double = {1, 2, 3, 1e11}
Line 534 ⟶ 657:
Print #1, Using "#^^^^"; x(3);
Print #1, Spc(2); Using "##.####^^^^"; y(3)
Close #1</langsyntaxhighlight>
Contents of output.txt :
{{out}}
Line 543 ⟶ 666:
1E+11 3.1623E+05
</pre>
 
 
=={{header|FutureBasic}}==
<syntaxhighlight lang="futurebasic">
local fn DoIt
NSUInteger i
CFStringRef s
CFArrayRef x = @[@1, @2, @3, @1e11]
CFArrayRef y = @[@1, @1.4142135623730951, @1.7320508075688772, @316227.76601683791]
CFMutableStringRef mutStr = fn MutableStringWithCapacity(0)
CFURLRef desktopURL = fn FileManagerURLForDirectory( NSDesktopDirectory, NSUserDomainMask )
CFURLRef url = fn URLByAppendingPathComponent( desktopURL, @"Array_to_file.txt" )
for i = 0 to 3
if ( i < 3 )
s = fn StringWithFormat( @"%ld \t", fn NumberIntegerValue( x[i] ) )
MutableStringAppendString( mutStr, s )
s = fn StringWithFormat( @"%.4f\n", fn NumberFloatValue( y[i] ) )
MutableStringAppendString( mutStr, s )
else
s = fn StringWithFormat( @"%.e\t", fn NumberFloatValue( x[i] ) )
MutableStringAppendString( mutStr, s )
s = fn StringWithFormat( @"%.4e\n", fn NumberFloatValue( y[i] ) )
MutableStringAppendString( mutStr, s )
end if
next
fn StringWriteToURL( mutStr, url, YES, NSUTF8StringEncoding, NULL )
print mutStr
end fn
 
fn DoIt
 
HandleEven
</syntaxhighlight>
{{output}}
<pre>
1 1.0000
2 1.4142
3 1.7321
1e+11 3.1623e+05
</pre>
 
 
=={{header|Go}}==
<langsyntaxhighlight lang="go">package main
 
import (
Line 574 ⟶ 740:
}
f.Close()
}</langsyntaxhighlight>
File contents:
<pre>
Line 585 ⟶ 751:
=={{header|Haskell}}==
Probably not very idiomatic but oh well
<langsyntaxhighlight lang="haskell">import System.IO
import Text.Printf
import Control.Monad
Line 593 ⟶ 759:
-- Haskell's printf doesn't support a precision given as an argument for some reason, so we insert it into the format manually:
let writeLine = hPrintf h $ "%." ++ show xprec ++ "g\t%." ++ show yprec ++ "g\n" in
zipWithM_ writeLine x y</langsyntaxhighlight>
Example usage
Prelude> let x = [1, 2, 3, 1e11]
Line 607 ⟶ 773:
 
Alternative solution without Printf
<langsyntaxhighlight lang="haskell">import System.IO
import Control.Monad
import Numeric
Line 614 ⟶ 780:
withFile filename WriteMode $ \h ->
let writeLine a b = hPutStrLn h $ showGFloat (Just xprec) a "" ++ "\t" ++ showGFloat (Just yprec) b "" in
zipWithM_ writeLine x y</langsyntaxhighlight>
 
=={{header|HicEst}}==
<langsyntaxhighlight HicEstlang="hicest">REAL :: n=4, x(n), y(n)
CHARACTER :: outP = "Test.txt"
 
Line 625 ⟶ 791:
DO i = 1, n
WRITE(FIle=outP, Format='F5, F10.3') x(i), y(i)
ENDDO </langsyntaxhighlight>
Alternative: Display or Edit the formatted arrays in a [http://www.HicEst.com/MatrixExplorer spreadsheet-like dialog] with a common scroll bar.
The menu More - Export - File writes the formatted arrays to a file:
<langsyntaxhighlight HicEstlang="hicest">DLG(Text=x, Format='i12', Edit=y, Format='F10.2', Y=0)</langsyntaxhighlight>
 
=={{header|Icon}} and {{header|Unicon}}==
Line 634 ⟶ 800:
The following works in both languages.
 
<langsyntaxhighlight lang="unicon">link printf
 
procedure main()
Line 640 ⟶ 806:
every put(y := [], sqrt(!x))
every fprintf(open("filename","w"),"%10.2e %10.4e\n", x[i := 1 to *x], y[i])
end</langsyntaxhighlight>
 
Contents of <tt>filename</tt> after running:
Line 671 ⟶ 837:
The file <tt>"datafile.txt"</tt> then contains the following:
 
<langsyntaxhighlight lang="idl">1 1
2 1.4142
3 1.7321
1E+011 3.1623E+005</langsyntaxhighlight>
 
This is fairly ugly and un-IDLish.
Line 684 ⟶ 850:
 
=={{header|J}}==
<langsyntaxhighlight lang="j">require 'files' NB. for fwrites
 
x =. 1 2 3 1e11
Line 696 ⟶ 862:
data =. (0 j. xprecision,yprecision) ": x,.y
 
data fwrites filename</langsyntaxhighlight>
 
Or, more concisely:
 
<langsyntaxhighlight lang="j">((0 j. 3 5) ": (,.%:) 1 2 3 1e11) fwrites 'whatever.txt' [ require 'fwrites'</langsyntaxhighlight>
 
This loses all of the inline comments and names, and instead relies on the reader's understanding of the purpose of each of the names (for example: 3 is the precision of the first column, and 5 is the precision of the second column).
Line 706 ⟶ 872:
Note that J's idea of precision here is "positions after the decimal point":
 
<langsyntaxhighlight lang="j"> (0 j. 3 5) ": (,.%:) 1 2 3 1e11
1.000 1.00000
2.000 1.41421
3.000 1.73205
100000000000.000 316227.76602</langsyntaxhighlight>
 
=={{header|Java}}==
<langsyntaxhighlight lang="java5">import java.io.*;
 
public class FloatArray {
Line 745 ⟶ 911:
} catch (IOException e) { }
}
}</langsyntaxhighlight>
 
=={{header|Joy}}==
<syntaxhighlight lang="joy">
<lang Joy>
DEFINE write-floats ==
['g 0] [formatf] enconcat map rollup
Line 755 ⟶ 921:
[[fputchars] 9 fputch] step 10 fputch] step
fclose.
</syntaxhighlight>
</lang>
 
Using it:
Line 767 ⟶ 933:
=={{header|jq}}==
''' Program''':
<langsyntaxhighlight lang="jq">[1, 2, 3, 1e11] as $x
| $x | map(sqrt) as $y
| range(0; $x|length) as $i
| "\($x[$i]) \($y[$i])"</langsyntaxhighlight>
''' Execution''':
To write the output to "filename":
<langsyntaxhighlight lang="sh">$ jq -n -r -f Write_float_arrays_to_a_text_file.jq > filename</langsyntaxhighlight>
 
=={{header|Julia}}==
<langsyntaxhighlight lang="julia">xprecision = 3
yprecision = 5
x = round.([1, 2, 3, 1e11],xprecision)
y = round.([1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791],yprecision)
writedlm("filename", [x y], '\t')</langsyntaxhighlight>
 
=={{header|Kotlin}}==
<langsyntaxhighlight lang="scala">// version 1.1.2
 
import java.io.File
Line 800 ⟶ 966:
}
}
}</langsyntaxhighlight>
 
Contents of 'output.txt':
Line 811 ⟶ 977:
 
=={{header|Lingo}}==
<langsyntaxhighlight lang="lingo">on saveFloatLists (filename, x, y, xprecision, yprecision)
eol = numtochar(10) -- LF
fp = xtra("fileIO").new()
Line 825 ⟶ 991:
end repeat
fp.closeFile()
end</langsyntaxhighlight>
 
<langsyntaxhighlight lang="lingo">x = [1.0, PI, sqrt(2)]
y = [2.0, log(10), sqrt(3)]
saveFloatLists("floats.txt", x, y, 3, 5)</langsyntaxhighlight>
 
=={{header|Lua}}==
<langsyntaxhighlight lang="lua">filename = "file.txt"
 
x = { 1, 2, 3, 1e11 }
Line 847 ⟶ 1,013:
end
 
io.close( fp )</langsyntaxhighlight>
 
=={{header|MathematicaM2000 Interpreter}}==
Precision here is just Round (as school rounding)
<lang Mathematica>exportPrec[path_, data1_, data2_, prec1_, prec2_]:=Export[path,Transpose[{Map[ToString[NumberForm[#, prec2]] &, data2],Map[ToString[NumberForm[#, prec1]] &, data1]}], "Table"]</lang>
 
Print round(2.5,0)=3
 
Print round(1.5,0)=2
 
Print round(-2.5,0)=-3
 
Print round(-1.5,0)=-2
 
<syntaxhighlight lang="m2000 interpreter">
Module Test1 (filename$, x, xprecision, y, yprecision) {
locale 1033 // set decimal point symbol to "."
// using: for wide output // for UTF16LE
// here we use ANSI (8bit per character)
open filename$ for output as #f
for i=0 to len(x)-1
print #f, format$("{0} {1}", round(x#val(i),xprecision-1), round(y#val(i), yprecision-1))
next
close #f
win "notepad", dir$+filename$
}
Test1 "OutFloat.num", (1, 2, 3, 1.e11),3, (1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791), 5
</syntaxhighlight>
{{out}}
<pre>1 1
2 1.4142
3 1.7321
100000000000 316227.766</pre>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<syntaxhighlight lang="mathematica">exportPrec[path_, data1_, data2_, prec1_, prec2_] :=
Export[
path,
Transpose[{Map[ToString[NumberForm[#, prec2]] &, data2], Map[ToString[NumberForm[#, prec1]] &, data1]}],
"Table"
]</syntaxhighlight>
 
=={{header|MATLAB}} / {{header|Octave}}==
 
<langsyntaxhighlight Matlablang="matlab"> x = [1, 2, 3, 1e11];
y = [1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791];
fid = fopen('filename','w')
fprintf(fid,'%.3g\t%.5g\n',[x;y]);
fclose(fid); </langsyntaxhighlight>
 
{{out}}
Line 868 ⟶ 1,070:
 
=={{header|Mercury}}==
<langsyntaxhighlight Mercurylang="mercury">:- module write_float_arrays.
:- interface.
 
Line 896 ⟶ 1,098:
 
write_dat(File, XPrec, YPrec, X, Y, !IO) :-
io.format(File, "%.*g\t%.*g\n", [i(XPrec), f(X), i(YPrec), f(Y)], !IO).</langsyntaxhighlight>
 
File contents:
Line 908 ⟶ 1,110:
 
=={{header|NetRexx}}==
<langsyntaxhighlight NetRexxlang="netrexx">/* NetRexx */
 
options replace format comments java crossref savelog symbols nobinary
Line 924 ⟶ 1,126:
return
 
-- 08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- This function formats the input arrays.
-- It has defaults for the x & y precision values of 3 & 5
-- 08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)08:55, 27 August 2022 (UTC)~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
method formatArrays(outFile, xf = Rexx[], yf = Rexx[], xprecision = 3, yprecision = 5) -
public static signals IllegalArgumentException, FileNotFoundException, IOException
Line 943 ⟶ 1,145:
 
return
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 953 ⟶ 1,155:
 
=={{header|NewLISP}}==
<langsyntaxhighlight NewLISPlang="newlisp">; file: write-float-array.lsp
; url: http://rosettacode.org/wiki/Write_float_arrays_to_a_text_file
; author: oofoe 2012-01-30
Line 978 ⟶ 1,180:
(print (read-file "filename.chan"))
 
(exit)</langsyntaxhighlight>
 
{{out}}
Line 989 ⟶ 1,191:
 
=={{header|Nim}}==
<langsyntaxhighlight lang="nim">import strutils, math, sequtils
 
const OutFileName = "floatarr2file.txt"
const
outFileName = "floatarr2file.txt"
proc sqrt*(x: int64): float {.importc: "sqrt", header: "<math.h>".}
 
const
xprecisionXPrecision = 3
yprecisionYprecision = 5
 
varlet a: seq[int64] = @[int64(1).0, 2.0, 3.0, 100_000_000_000.0]
varlet b: seq[float] = @[sqrt(a[0]), sqrt(a[1]), sqrt(a[2]), sqrt(a[3])]
var cres = zip(a,b)""
for t in zip(a, b):
var res: string = ""
res.add formatFloat(t[0], ffDefault, Xprecision) & " " &
for t in c:
res.add($formatFloat(float(t.a),ffDefault,xprecision) & "\t" & $ formatFloat(t.b[1], ffDefault,yprecision Yprecision) & "\n")
 
OutFileName.writeFile(outFileName, res)
var res2 = OutFileName.readFile(outFileName)
echo( res2)</langsyntaxhighlight>
{{out}}
<pre>1.00 1.0000
2.00 1.4142
3.00 1.7321
1.00e+11 3.1623e+05</pre>
 
=={{header|OCaml}}==
<langsyntaxhighlight lang="ocaml">let write_dat filename x y ?(xprec=3) ?(yprec=5) () =
let oc = open_out filename in
let write_line a b = Printf.fprintf oc "%.*g\t%.*g\n" xprec a yprec b in
List.iter2 write_line x y;
close_out oc</langsyntaxhighlight>
Example usage
# let x = [1.0; 2.0; 3.0; 1e11];;
Line 1,045 ⟶ 1,244:
=={{header|PARI/GP}}==
{{works with|PARI/GP|2.5.0 and above}}
<langsyntaxhighlight lang="parigp">f(x,pr)={
Strprintf(if(x>=10^pr,
Str("%.",pr-1,"e")
Line 1,056 ⟶ 1,255:
write("filename",f(x[i],xprec),"\t",f(y[i],yprec))
)
};</langsyntaxhighlight>
 
=={{header|Pascal}}==
<langsyntaxhighlight lang="pascal">Program WriteNumbers;
 
const
Line 1,077 ⟶ 1,276:
writeln (filename, x[i]:baseDigits+xprecision, sqrt(x[i]):baseDigits+yprecision);
close (filename);
end.</langsyntaxhighlight>
File contents
<pre>
Line 1,087 ⟶ 1,286:
 
=={{header|Perl}}==
<langsyntaxhighlight lang="perl">use autodie;
 
sub writedat {
Line 1,104 ⟶ 1,303:
my @y = map sqrt, @x;
 
writedat("sqrt.dat", \@x, \@y);</langsyntaxhighlight>
File contents
<pre>
Line 1,115 ⟶ 1,314:
Alternatively, with the CPAN List::MoreUtils package:
 
<langsyntaxhighlight lang="perl">use autodie;
use List::MoreUtils qw(each_array);
 
Line 1,133 ⟶ 1,332:
my @y = map sqrt, @x;
 
writedat("sqrt.dat", \@x, \@y);</langsyntaxhighlight>
 
=={{header|Perl 6}}==
===Perl 5-ish===
Written in the style of the 2nd Perl 5 example.
<lang perl6>sub write float ( $filename, @x, @y, $x_precision = 3, $y_precision = 5 ) {
my $fh = open $filename, :w;
for flat @x Z @y -> $x, $y {
$fh.printf: "%.*g\t%.*g\n", $x_precision, $x, $y_precision, $y;
}
$fh.close;
}
my @x = 1, 2, 3, 1e11;
my @y = @x.map({.sqrt});
 
writefloat( 'sqrt.dat', @x, @y );</lang>
{{out}}
<pre>1 1
2 1.4142
3 1.7321
1e+11 3.1623e+05</pre>
===Idiomatic===
Written in a more idiomatic style.
<lang perl6>sub writefloat($filename, @x, @y, :$x-precision = 3, :$y-precision = 3) {
open($filename, :w).print:
join '', flat (@x>>.fmt("%.{$x-precision}g") X "\t") Z (@y>>.fmt("%.{$y-precision}g") X "\n");
}
my @x = 1, 2, 3, 1e11;
writefloat('sqrt.dat', @x, @x>>.sqrt, :y-precision(5));</lang>
{{out}}
<pre>1 1
2 1.4142
3 1.7321
1e+11 3.1623e+05</pre>
 
=={{header|Phix}}==
Copy of [[Write_float_arrays_to_a_text_file#Euphoria|Euphoria]]
<!--<syntaxhighlight lang="phix">-->
<lang Phix>constant x = {1, 2, 3, 1e11},
<span style="color: #008080;">constant</span> <span style="color: #000000;">x</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">1e11</span><span style="color: #0000FF;">},</span>
y = {1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791}
<span style="color: #000000;">y</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">1.4142135623730951</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">1.7320508075688772</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">316227.76601683791</span><span style="color: #0000FF;">}</span>
integer fn = open("filename","w")
<span style="color: #004080;">integer</span> <span style="color: #000000;">fn</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">open</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"filename"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"w"</span><span style="color: #0000FF;">)</span>
for i=1 to length(x) do
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">x</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
printf(fn,"%.3g\t%.5g\n",{x[i],y[i]})
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">fn</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%.3g\t%.5g\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">x</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">],</span><span style="color: #000000;">y</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]})</span>
end for
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
close(fn)</lang>
<span style="color: #7060A8;">close</span><span style="color: #0000FF;">(</span><span style="color: #000000;">fn</span><span style="color: #0000FF;">)</span>
<!--</syntaxhighlight>-->
File contents:
<pre>
Line 1,189 ⟶ 1,356:
=={{header|PicoLisp}}==
An exponential format like "1e11" is not supported
<langsyntaxhighlight PicoLisplang="picolisp">(setq *Xprecision 3 *Yprecision 5)
 
(scl 7)
Line 1,199 ⟶ 1,366:
(round Y *Yprecision) ) )
(1.0 2.0 3.0)
(1.0 1.414213562 1.732050807) )</langsyntaxhighlight>
{{out}}
<pre>1.000 1.00000
Line 1,206 ⟶ 1,373:
 
=={{header|PL/I}}==
<langsyntaxhighlight PLlang="pl/Ii">*Process source attributes xref;
aaa: Proc Options(main);
declare X(5) float (9) initial (1, 2, 3, 4, 5),
Line 1,218 ⟶ 1,385:
(skip,e(19,x_precision),
x(2),e(24,y_precision));
end;</langsyntaxhighlight>
{{out}}
<pre> 1.000000000E+0000 9.0000000000000000E+0000
Line 1,227 ⟶ 1,394:
 
=={{header|PowerShell}}==
<syntaxhighlight lang="powershell">$x = @(1, 2, 3, 1e11)
<lang PowerShell>
$x = @(1, 2, 3, 1e11)
$y = @(1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791)
$xprecision = 3
Line 1,235 ⟶ 1,401:
[pscustomobject]@{x = "{0:g$xprecision}" -f $x[$i]; y = "{0:g$yprecision}" -f $y[$i]}
}
($arr | format-table -HideTableHeaders | Out-String).Trim() > filename.txt
</syntaxhighlight>
</lang>
<b>Output:</b>
<pre>
Line 1,246 ⟶ 1,412:
 
=={{header|PureBasic}}==
<langsyntaxhighlight PureBasiclang="purebasic">#Size = 4
 
DataSection
Line 1,273 ⟶ 1,439:
CloseFile(fileID)
EndIf
EndIf</langsyntaxhighlight>
{{out}} to text file:
<pre>1.000 1.00000
Line 1,282 ⟶ 1,448:
=={{header|Python}}==
{{works with|Python|2.6}}
<langsyntaxhighlight lang="python">import itertools
def writedat(filename, x, y, xprecision=3, yprecision=5):
with open(filename,'w') as f:
for a, b in itertools.izip(x, y):
print >> f, "%.*g\t%.*g" % (xprecision, a, yprecision, b)</langsyntaxhighlight>
Example usage
<langsyntaxhighlight lang="python">>>> import math
>>> x = [1, 2, 3, 1e11]
>>> y = map(math.sqrt, x)
Line 1,302 ⟶ 1,468:
2 1.4142
3 1.7321
1e+011 3.1623e+005</langsyntaxhighlight>
 
{{works with|Python|3}}
<langsyntaxhighlight lang="python">def writedat(filename, x, y, xprecision=3, yprecision=5):
with open(filename,'w') as f:
for a, b in zip(x, y):
print("%.*g\t%.*g" % (xprecision, a, yprecision, b), file=f)
#or, using the new-style formatting:
#print("{1:.{0}g}\t{3:.{2}g}".format(xprecision, a, yprecision, b), file=f)</langsyntaxhighlight>
 
=={{header|R}}==
<langsyntaxhighlight Rlang="r">writexy <- function(file, x, y, xprecision=3, yprecision=3) {
fx <- formatC(x, digits=xprecision, format="g", flag="-")
fy <- formatC(y, digits=yprecision, format="g", flag="-")
Line 1,322 ⟶ 1,488:
x <- c(1, 2, 3, 1e11)
y <- sqrt(x)
writexy("test.txt", x, y, yp=5)</langsyntaxhighlight>
 
=={{header|Racket}}==
<syntaxhighlight lang="racket">
<lang Racket>
#lang racket
 
Line 1,349 ⟶ 1,515:
100000000000 316227.76602
|#
</syntaxhighlight>
</lang>
 
=={{header|Raku}}==
(formerly Perl 6)
===Perl 5-ish===
Written in the style of the 2nd Perl 5 example.
<syntaxhighlight lang="raku" line>sub writefloat ( $filename, @x, @y, $x_precision = 3, $y_precision = 5 ) {
my $fh = open $filename, :w;
for flat @x Z @y -> $x, $y {
$fh.printf: "%.*g\t%.*g\n", $x_precision, $x, $y_precision, $y;
}
$fh.close;
}
my @x = 1, 2, 3, 1e11;
my @y = @x.map({.sqrt});
 
writefloat( 'sqrt.dat', @x, @y );</syntaxhighlight>
{{out}}
<pre>1 1
2 1.4142
3 1.7321
1e+11 3.1623e+05</pre>
===Idiomatic===
Written in a more idiomatic style.
<syntaxhighlight lang="raku" line>sub writefloat($filename, @x, @y, :$x-precision = 3, :$y-precision = 3) {
open($filename, :w).print:
join '', flat (@x».fmt("%.{$x-precision}g") X "\t") Z (@y».fmt("%.{$y-precision}g") X "\n");
}
my @x = 1, 2, 3, 1e11;
writefloat('sqrt.dat', @x, @x».sqrt, :y-precision(5));</syntaxhighlight>
{{out}}
<pre>1 1
2 1.4142
3 1.7321
1e+11 3.1623e+05</pre>
 
=={{header|Raven}}==
<langsyntaxhighlight Ravenlang="raven">3 as $xprecision
5 as $yprecision
 
Line 1,371 ⟶ 1,572:
4 each as $i
$f $b $i get $a $i get print2
$results "" join "results.dat" write</langsyntaxhighlight>
{{out}}
results.dat file contains:
Line 1,380 ⟶ 1,581:
 
=={{header|REXX}}==
<langsyntaxhighlight lang="rexx">/*REXX program writes two arrays to a file with a specified (limited) precision. */
numeric digits 1000 /*allow use of a huge number of digits.*/
oFID= 'filename' /*name of the output File IDentifier.*/
Line 1,406 ⟶ 1,607:
z=int || fraction || exponent /*format # (as per rules)*/
if datatype(z,'W') then return format(oz/1,,0) /*is it a whole number ? */
return format(oz/1,,,3,0) /*3 dec. digs in exponent.*/</langsyntaxhighlight>
'''output''' &nbsp; when using the default (internal) data:
<pre>
Line 1,416 ⟶ 1,617:
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">
# Project : Write float arrays to a text file
 
Line 1,438 ⟶ 1,639:
end
fclose(fp)
</syntaxhighlight>
</lang>
Output:
<pre>
Line 1,452 ⟶ 1,653:
1. Direct writing of the numerical data to the file of an array using function ''writem''. Here the writing format
is specified using the global property that is accessible through function ''format''.
<syntaxhighlight lang="rlab">
<lang RLaB>
>> x = rand(10,1); y = rand(10,1);
>> writem("mytextfile.txt", [x,y]);
</syntaxhighlight>
</lang>
 
2. Converting the numerical data to text, and then writing the text to the file, using the same function ''writem''.
Here, the writing format is specified through ''text'' function, and the result is written as a plain string matrix.
<syntaxhighlight lang="rlab">
<lang RLaB>
>> x = rand(10,1); y = rand(10,1);
>> s = text( [x,y], "%10.8f" );
>> writem("mytextfile.txt", s);
</syntaxhighlight>
</lang>
 
Please note, ''writem'' function in RLaB can operate in two-fold fashion. RLaB keeps track of the open files that were created using the built-in function ''open''.
Line 1,472 ⟶ 1,673:
 
=={{header|Ruby}}==
<langsyntaxhighlight lang="ruby"># prepare test data
x = [1, 2, 3, 1e11]
y = x.collect { |xx| Math.sqrt xx }
Line 1,484 ⟶ 1,685:
 
# print the result file
open('sqrt.dat', 'r') { |f| puts f.read }</langsyntaxhighlight>
Result:
<pre>1 1
Line 1,492 ⟶ 1,693:
 
=={{header|Run BASIC}}==
<langsyntaxhighlight lang="runbasic">x$ = "1, 2, 3, 1e11"
y$ = "1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791"
 
Line 1,499 ⟶ 1,700:
print #f, using("##############.###",val(word$(x$,i,",")));"|";using("#######.#####",val(word$(y$,i,",")))
next i
close #f</langsyntaxhighlight>
{{out}}
<pre> 1.000| 1.00000
Line 1,507 ⟶ 1,708:
 
=={{header|SAS}}==
<langsyntaxhighlight lang="sas">data _null_;
input x y;
file "output.txt";
Line 1,517 ⟶ 1,718:
1e11 316227.76601683791
;
run;</langsyntaxhighlight>
 
=={{header|Scala}}==
{{libheader|Scala}}<langsyntaxhighlight lang="scala">import java.io.{File, FileWriter, IOException}
 
object FloatArray extends App {
Line 1,537 ⟶ 1,738:
case e: IOException => println(s"Running Example failed: ${e.getMessage}")
}
}</langsyntaxhighlight>
 
=={{header|Seed7}}==
The library [http://seed7.sourceforge.net/libraries/math.htm math.s7i] defines the function [http://seed7.sourceforge.net/libraries/math.htm#sqrt%28ref_float%29 sqrt]. The operators [http://seed7.sourceforge.net/libraries/float.htm#%28ref_float%29sci%28ref_integer%29 sci] and [http://seed7.sourceforge.net/libraries/float.htm#%28in_string%29exp%28in_integer%29 exp] (defined in [http://seed7.sourceforge.net/libraries/float.htm float.s7i]) support writing floating point numbers in scientific notation.<langsyntaxhighlight lang="seed7">$ include "seed7_05.s7i";
include "float.s7i";
include "math.s7i";
Line 1,555 ⟶ 1,756:
end for;
close(aFile);
end func;</langsyntaxhighlight>{{out|Result file ''filename''}}
1.000e+00 1.00000e+00
2.000e+00 1.41421e+00
Line 1,562 ⟶ 1,763:
 
=={{header|Sidef}}==
{{trans|Perl 6Raku}}
<langsyntaxhighlight lang="ruby">func writedat(filename, x, y, x_precision=3, y_precision=5) {
var fh = File(filename).open_w
 
Line 1,576 ⟶ 1,777:
var y = x.map{.sqrt}
 
writedat('sqrt.dat', x, y)</langsyntaxhighlight>
{{out}}
<pre>
Line 1,584 ⟶ 1,785:
1e+11 3.1623e+05
</pre>
=={{header|Smalltalk}}==
{{works with | Smalltalk/X}}
<syntaxhighlight lang="smalltalk">x := #( 1 2 3 1e11 ).
y := x collect:#sqrt.
xprecision := 3.
yprecision := 5.
 
'sqrt.dat' asFilename writingFileDo:[:fileStream |
x with:y do:[:xI :yI |
'%.*g\t%.*g\n' printf:{ xprecision . xI . yprecision . yI } on:fileStream
]
]</syntaxhighlight>
obviously, with fix precisions, the following printing expression is more readable:
<syntaxhighlight lang="smalltalk">'%.3g\t%.5g\n' printf:{ xI . yI } on:fileStream</syntaxhighlight>
 
=={{header|SPL}}==
<langsyntaxhighlight lang="spl">x = [1, 2, 3, 10^11]
y = [1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791]
xprecision = 3
Line 1,594 ⟶ 1,809:
s2 = #.str(y[i],"g"+yprecision)
#.writeline("file.txt",s1+#.tab+s2)
<</langsyntaxhighlight>
 
=={{header|Standard ML}}==
<langsyntaxhighlight lang="sml">fun writeDat (filename, x, y, xprec, yprec) = let
val os = TextIO.openOut filename
fun write_line (a, b) =
Line 1,605 ⟶ 1,820:
ListPair.appEq write_line (x, y);
TextIO.closeOut os
end;</langsyntaxhighlight>
Example usage
- val x = [1.0, 2.0, 3.0, 1e11];
Line 1,624 ⟶ 1,839:
=={{header|Stata}}==
 
<langsyntaxhighlight lang="stata">* Create the dataset
clear
mat x=1\2\3\1e11
Line 1,634 ⟶ 1,849:
 
* Save as text file
export delim file.txt, delim(" ") novar datafmt replace</langsyntaxhighlight>
 
{{out}}
Line 1,644 ⟶ 1,859:
 
=={{header|Tcl}}==
<langsyntaxhighlight lang="tcl">set x {1 2 3 1e11}
foreach a $x {lappend y [expr {sqrt($a)}]}
set fh [open sqrt.dat w]
Line 1,654 ⟶ 1,869:
set fh [open sqrt.dat]
puts [read $fh [file size sqrt.dat]]
close $fh</langsyntaxhighlight>
{{out}}
<pre>1 1
Line 1,662 ⟶ 1,877:
 
=={{header|VBA}}==
<langsyntaxhighlight lang="vb">Public Sub main()
x = [{1, 2, 3, 1e11}]
y = [{1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791}]
Line 1,672 ⟶ 1,887:
Next i
Close TextFile
End Sub</langsyntaxhighlight>{{out}}
<pre>1,000E000 1,00000E000
2,000E000 1,41421E000
Line 1,678 ⟶ 1,893:
1,000E011 3,16228E005
</pre>
 
=={{header|V (Vlang)}}==
{{incomplete|V (Vlang)|Formatting at least currently doesn't allow variables, floating point notation `g` seems to have bugs}}
<syntaxhighlight lang="v (vlang)">import os
const (
x = [1.0, 2, 3, 1e11]
y = [1.0, 1.4142135623730951, 1.7320508075688772, 316227.76601683791]
xprecision = 3
yprecision = 5
)
fn main() {
if x.len != y.len {
println("x, y different length")
return
}
mut f := os.create("filename")?
defer {
f.close()
}
for i,_ in x {
f.write_string('${x[i]:3}, ${y[i]:1G}\n')?
}
}</syntaxhighlight>
{{out}}
<pre> 1, 1
2, 1.414
3, 1.732
1e+11, 316227.766
</pre>
 
=={{header|Wren}}==
{{libheader|Wren-fmt}}
In the above module, 'precision' signifies the number of decimal places whereas for the purpose of this task it appears to mean the number of significant figures. We adjust for that by using a precision one less than the required figure.
 
In the final example, we need to force exponential format as numbers of this size would normally be printed in decimal format.
<syntaxhighlight lang="wren">import "io" for File
import "./fmt" for Fmt
 
var x = [1, 2, 3, 1e11]
var y = [1, 1.4142135623730951, 1.7320508075688772, 316227.76601683791]
var xprec = 3 - 1
var yprec = 5 - 1
File.create("filename.txt") { |file|
for (i in 0...x.count) {
var f = (i < x.count-1) ? "h" : "e"
var s = Fmt.swrite("$0.%(xprec)%(f)\t$0.%(yprec)%(f)\n", x[i], y[i])
file.writeBytes(s)
}
}</syntaxhighlight>
 
{{out}}
The contents of filename.txt:
<pre>
1 1
2 1.4142
3 1.7321
1e11 3.1623e05
</pre>
 
=={{header|XPL0}}==
Output is redirected to the file like this: writefloat > filename
 
Precision here refers to the size of the numeric field. A precision of 5
means a total of five digits, e.g: 1.2345. XPL0 translates this as one place
before the decimal point and four places after it.
 
<syntaxhighlight lang "XPL0">include xpllib; \for Print
real X, Y;
int N;
[X:= [1., 2., 3., 1e11];
Y:= [1., 1.4142135623730951, 1.7320508075688772, 316227.76601683791];
for N:= 0 to 3 do
Print("%1.2g\t%1.4g\n", X(N), Y(N));
]</syntaxhighlight>
{{out}}
<pre>
1 1
2 1.4142
3 1.7321
1e11 3.1623e5
</pre>
 
=={{header|Yabasic}}==
<langsyntaxhighlight Yabasiclang="yabasic">x$ = "1 2 3 1e11"
pr1 = 3 : pr2 = 5
 
Line 1,691 ⟶ 1,990:
next i
 
close #f</langsyntaxhighlight>
 
=={{header|zkl}}==
<langsyntaxhighlight lang="zkl">fcn writeFloatArraysToFile(filename, xs,xprecision, ys,yprecision){
f :=File(filename,"w");
fmt:="%%.%dg\t%%.%dg".fmt(xprecision,yprecision).fmt; // "%.3g\t%.5g".fmt
Line 1,703 ⟶ 2,002:
xs,ys := T(1.0, 2.0, 3.0, 1e11), xs.apply("sqrt");
xprecision,yprecision := 3,5;
writeFloatArraysToFile("floatArray.txt", xs,xprecision, ys,yprecision);</langsyntaxhighlight>
{{out}}
<pre>
Line 1,720 ⟶ 2,019:
Here we write the contents of the array g() to a file:
 
<langsyntaxhighlight lang="zxbasic">SAVE "myarray" DATA g()</langsyntaxhighlight>
9,476

edits