September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
31
Task/Forward-difference/ALGOL-W/forward-difference.alg
Normal file
31
Task/Forward-difference/ALGOL-W/forward-difference.alg
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
begin
|
||||
% calculate forward differences %
|
||||
|
||||
% sets elements of B to the first order forward differences of A %
|
||||
% A should have bounds 1 :: n, B should have bounds 1 :: n - 1 %
|
||||
procedure FirstOrderFDifference ( integer array A( * )
|
||||
; integer array B( * )
|
||||
; integer value n
|
||||
) ;
|
||||
for i := 2 until n do B( i - 1 ) := A( i ) - A( i - 1 );
|
||||
|
||||
integer array v ( 1 :: 10 );
|
||||
integer array diff( 1 :: 9 );
|
||||
integer vPos, length;
|
||||
|
||||
% construct the initial values array %
|
||||
vPos := 1;
|
||||
for i := 90, 47, 58, 29, 22, 32, 55, 5, 55, 73 do begin
|
||||
v( vPos ) := i;
|
||||
vPos := vPos + 1
|
||||
end for_i ;
|
||||
% calculate and show the differences %
|
||||
i_w := 5; % set output format %
|
||||
length := 10;
|
||||
for order := 1 until length - 1 do begin
|
||||
FirstOrderFDifference( v, diff, length );
|
||||
length := length - 1;
|
||||
write( order, ": " ); for i := 1 until length do writeon( diff( i ) );
|
||||
for i := 1 until length do v( i ) := diff( i )
|
||||
end for_order
|
||||
end.
|
||||
17
Task/Forward-difference/Dart/forward-difference.dart
Normal file
17
Task/Forward-difference/Dart/forward-difference.dart
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
List forwardDifference(List _list) {
|
||||
for (int i = _list.length - 1; i > 0; i--) {
|
||||
_list[i] = _list[i] - _list[i - 1];
|
||||
}
|
||||
|
||||
_list.removeRange(0, 1);
|
||||
return _list;
|
||||
}
|
||||
|
||||
void mainAlgorithms() {
|
||||
List _intList = [90, 47, 58, 29, 22, 32, 55, 5, 55, 73];
|
||||
|
||||
for (int i = _intList.length - 1; i >= 0; i--) {
|
||||
List _list = forwardDifference(_intList);
|
||||
print(_list);
|
||||
}
|
||||
}
|
||||
20
Task/Forward-difference/Swift/forward-difference.swift
Normal file
20
Task/Forward-difference/Swift/forward-difference.swift
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
func forwardsDifference<T: SignedNumeric>(of arr: [T]) -> [T] {
|
||||
return zip(arr.dropFirst(), arr).map({ $0.0 - $0.1 })
|
||||
}
|
||||
|
||||
func nthForwardsDifference<T: SignedNumeric>(of arr: [T], n: Int) -> [T] {
|
||||
assert(n >= 0)
|
||||
|
||||
switch (arr, n) {
|
||||
case ([], _):
|
||||
return []
|
||||
case let (arr, 0):
|
||||
return arr
|
||||
case let (arr, i):
|
||||
return nthForwardsDifference(of: forwardsDifference(of: arr), n: i - 1)
|
||||
}
|
||||
}
|
||||
|
||||
for diff in (0...9).map({ nthForwardsDifference(of: [90, 47, 58, 29, 22, 32, 55, 5, 55, 73], n: $0) }) {
|
||||
print(diff)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue