September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
|
|
@ -2,24 +2,21 @@ with Ada.Float_Text_Io; use Ada.Float_Text_Io;
|
|||
with Ada.Text_IO; use Ada.Text_IO;
|
||||
|
||||
procedure Mean_Main is
|
||||
type Vector is array(Positive range <>) of Float;
|
||||
function Mean(Item : Vector) return Float is
|
||||
type Vector is array (Positive range <>) of Float;
|
||||
function Mean (Item : Vector) return float with pre => Item'length > 0;
|
||||
function Mean (Item : Vector) return Float is
|
||||
Sum : Float := 0.0;
|
||||
Result : Float := 0.0;
|
||||
begin
|
||||
for I in Item'range loop
|
||||
Sum := Sum + Item(I);
|
||||
end loop;
|
||||
if Item'Length > 0 then
|
||||
Result := Sum / Float(Item'Length);
|
||||
end if;
|
||||
return Result;
|
||||
return Sum / Float(Item'Length);
|
||||
end Mean;
|
||||
A : Vector := (3.0, 1.0, 4.0, 1.0, 5.0, 9.0);
|
||||
begin
|
||||
Put(Item => Mean(A), Fore => 1, Exp => 0);
|
||||
Put(Item => Mean (A), Fore => 1, Exp => 0);
|
||||
New_Line;
|
||||
-- test for zero length vector
|
||||
Put(Item => Mean(A(1..0)), Fore => 1, Exp => 0);
|
||||
Put(Item => Mean(A (1..0)), Fore => 1, Exp => 0);
|
||||
New_Line;
|
||||
end Mean_Main;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
REM specific functions for the array/vector types
|
||||
|
||||
REM Byte Array
|
||||
DEF FN_Mean_Arithmetic&(n&())
|
||||
= SUM(n&()) / (DIM(n&(),1)+1)
|
||||
|
||||
REM Integer Array
|
||||
DEF FN_Mean_Arithmetic%(n%())
|
||||
= SUM(n%()) / (DIM(n%(),1)+1)
|
||||
|
||||
REM Float 40 array
|
||||
DEF FN_Mean_Arithmetic(n())
|
||||
= SUM(n()) / (DIM(n(),1)+1)
|
||||
|
||||
REM A String array
|
||||
DEF FN_Mean_Arithmetic$(n$())
|
||||
LOCAL I%, S%, sum, Q%
|
||||
S% = DIM(n$(),1)
|
||||
FOR I% = 0 TO S%
|
||||
Q% = TRUE
|
||||
ON ERROR LOCAL Q% = FALSE
|
||||
IF Q% sum += EVAL(n$(I%))
|
||||
NEXT
|
||||
= sum / (S%+1)
|
||||
|
||||
REM Float 64 array
|
||||
DEF FN_Mean_Arithmetic#(n#())
|
||||
= SUM(n#()) / (DIM(n#(),1)+1)
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
100 NUMERIC ARR(3 TO 8)
|
||||
110 LET ARR(3)=3:LET ARR(4)=1:LET ARR(5)=4:LET ARR(6)=1:LET ARR(7)=5:LET ARR(8)=9
|
||||
120 PRINT AM(ARR)
|
||||
130 DEF AM(REF A)
|
||||
140 LET T=0
|
||||
150 FOR I=LBOUND(A) TO UBOUND(A)
|
||||
160 LET T=T+A(I)
|
||||
170 NEXT
|
||||
180 LET AM=T/SIZE(A)
|
||||
190 END DEF
|
||||
|
|
@ -1,25 +1,28 @@
|
|||
import extensions.
|
||||
import extensions;
|
||||
|
||||
extension op
|
||||
{
|
||||
average
|
||||
[
|
||||
var aSum := Real new.
|
||||
var aCount := Integer new:0.
|
||||
average()
|
||||
{
|
||||
real sum := 0;
|
||||
int count := 0;
|
||||
|
||||
var anEnumerator := self enumerator.
|
||||
var enumerator := self.enumerator();
|
||||
|
||||
while (anEnumerator next)
|
||||
[
|
||||
aSum append(anEnumerator get).
|
||||
aCount append(1).
|
||||
].
|
||||
while (enumerator.next())
|
||||
{
|
||||
sum += enumerator.get();
|
||||
count += 1;
|
||||
};
|
||||
|
||||
^ aSum / aCount.
|
||||
]
|
||||
^ sum / count
|
||||
}
|
||||
}
|
||||
|
||||
public program()
|
||||
{
|
||||
var array := new int[]{1, 2, 3, 4, 5, 6, 7, 8};
|
||||
console.printLine(
|
||||
"Arithmetic mean of {",array.asEnumerable(),"} is ",
|
||||
array.average()).readChar()
|
||||
}
|
||||
public program
|
||||
[
|
||||
var anArray := (1, 2, 3, 4, 5, 6, 7, 8).
|
||||
console printLine("Arithmetic mean of {",anArray,"} is ",anArray average); readChar
|
||||
]
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
mean:{(sum x)%count x}
|
||||
|
|
@ -0,0 +1 @@
|
|||
select avg("datapoint") from "numbers";
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
Private Function mean(v() As Double, ByVal leng As Integer) As Variant
|
||||
Dim sum As Double, i As Integer
|
||||
sum = 0: i = 0
|
||||
For i = 0 To leng - 1
|
||||
sum = sum + vv
|
||||
Next i
|
||||
If leng = 0 Then
|
||||
mean = CVErr(xlErrDiv0)
|
||||
Else
|
||||
mean = sum / leng
|
||||
End If
|
||||
End Function
|
||||
Public Sub main()
|
||||
Dim v(4) As Double
|
||||
Dim i As Integer, leng As Integer
|
||||
v(0) = 1#
|
||||
v(1) = 2#
|
||||
v(2) = 2.178
|
||||
v(3) = 3#
|
||||
v(4) = 3.142
|
||||
For leng = 5 To 0 Step -1
|
||||
Debug.Print "mean[";
|
||||
For i = 0 To leng - 1
|
||||
Debug.Print IIf(i, "; " & v(i), "" & v(i));
|
||||
Next i
|
||||
Debug.Print "] = "; mean(v, leng)
|
||||
Next leng
|
||||
End Sub
|
||||
Loading…
Add table
Add a link
Reference in a new issue