Stream merge: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Minor tidy) |
(Added FreeBASIC) |
||
Line 1,057: | Line 1,057: | ||
The source for subroutine GRAB is within subroutine FILEMERGE for the convenience in sharing and messing with variables important to both, but not to outsiders. This facility is standard in Algol-following languages but often omitted and was not added to Fortran until F90. In its absence, either more parameters are required for the separate routines, or there will be messing with COMMON storage areas. |
The source for subroutine GRAB is within subroutine FILEMERGE for the convenience in sharing and messing with variables important to both, but not to outsiders. This facility is standard in Algol-following languages but often omitted and was not added to Fortran until F90. In its absence, either more parameters are required for the separate routines, or there will be messing with COMMON storage areas. |
||
=={{header|FreeBASIC}}== |
|||
{{trans|C++}} |
|||
<syntaxhighlight lang="vbnet">Sub Merge2(c1() As Integer, c2() As Integer) |
|||
Dim As Integer i1 = Lbound(c1) |
|||
Dim As Integer i2 = Lbound(c2) |
|||
While i1 <= Ubound(c1) And i2 <= Ubound(c2) |
|||
If c1(i1) <= c2(i2) Then |
|||
Print c1(i1); |
|||
i1 += 1 |
|||
Else |
|||
Print c2(i2); |
|||
i2 += 1 |
|||
End If |
|||
Wend |
|||
While i1 <= Ubound(c1) |
|||
Print c1(i1); |
|||
i1 += 1 |
|||
Wend |
|||
While i2 <= Ubound(c2) |
|||
Print c2(i2); |
|||
i2 += 1 |
|||
Wend |
|||
Print |
|||
End Sub |
|||
Sub MergeN(all() As Integer) |
|||
Dim As Integer i = Lbound(all) |
|||
While i <= Ubound(all) |
|||
Print all(i); |
|||
i += 1 |
|||
Wend |
|||
Print |
|||
End Sub |
|||
Dim As Integer v1(2) = {0, 3, 6} |
|||
Dim As Integer v2(2) = {1, 4, 7} |
|||
Dim As Integer v3(2) = {2, 5, 8} |
|||
Merge2(v2(), v1()) |
|||
MergeN(v1()) |
|||
Dim As Integer all(8) = {v1(0), v2(0), v3(0), v1(1), v2(1), v3(1), v1(2), v2(2), v3(2)} |
|||
MergeN(all()) |
|||
Sleep</syntaxhighlight> |
|||
{{out}} |
|||
<pre> 0 1 3 4 6 7 |
|||
0 3 6 |
|||
0 1 2 3 4 5 6 7 8</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |