Compare length of two strings: Difference between revisions
Content added Content deleted
(→{{header|Vlang}}: Rename "Vlang" in "V (Vlang)") |
Jazzedpineda (talk | contribs) (Added EasyLang implementation and moved BASIC) |
||
Line 200: | Line 200: | ||
5 hello |
5 hello |
||
</pre> |
</pre> |
||
=={{header|BASIC}}== |
|||
==={{header|Applesoft BASIC}}=== |
|||
Printing CHR$(14) does nothing by default in Applesoft BASIC. Commodore BASIC appends spaces to numbers, but otherwise the [[Compare_length_of_two_strings#Commodore_BASIC]] code works the same in Applesoft BASIC. |
|||
{{out}} |
|||
<pre>*** (1) TWO STRINGS *** |
|||
LONGER STRING (13) |
|||
SHORT STRING (12) |
|||
*** (2) MORE THAN 2 STRINGS*** |
|||
SHE DOESN'T STUDY GERMAN ON MONDAY (34) |
|||
EVERY CHILD LIKES AN ICE CREAM (30) |
|||
THE COURSE STARTS NEXT SUNDAY (29) |
|||
DOES SHE LIVE IN PARIS? (23) |
|||
SHE SWIMS EVERY MORNING (23) |
|||
THE EARTH IS SPHERICAL (22) |
|||
WE SEE THEM EVERY WEEK (22) |
|||
HE DOESN'T TEACH MATH (21) |
|||
CATS HATE WATER (15) |
|||
I LIKE TEA (10) |
|||
</pre> |
|||
==={{header|Commodore BASIC}}=== |
|||
{{works with|Applesoft BASIC}} |
|||
{{works with|Commodore BASIC|2.0}} |
|||
{{works with|Commodore BASIC|3.5}} |
|||
<syntaxhighlight lang="gwbasic">0 REM ROSETTACODE.ORG |
|||
1 REM COMPARE LENGTH OF TWO STRINGS |
|||
2 REM GIVEN TWO STRINGS OF DIFFERENT |
|||
3 REM LENGTH, DETERMINE WHICH STRING IS |
|||
4 REM LONGER OR SHORTER. |
|||
5 REM PRINT BOTH STRINGS AND THEIR |
|||
6 REM LENGTH, ONE ON EACH LINE. PRINT |
|||
7 REM THE LONGER ONE FIRST. |
|||
8 REM |
|||
9 REM ******************************** |
|||
10 REM |
|||
20 REM PRINT CHR$(14): REM CHANGE TO LOWER/UPPER CASE CHAR SET |
|||
30 GOSUB 200: REM 1 - COMPARE LENGTH OF 2 STRINGS |
|||
40 GOSUB 300: REM 2- MORE THAN 2 STRINGS |
|||
50 END |
|||
200 PRINT"*** (1) TWO STRINGS ***" |
|||
210 A$ = "SHORT STRING" |
|||
220 B$ = "LONGER STRING" |
|||
230 A = LEN(A$) |
|||
240 B = LEN(B$) |
|||
250 IF A>B THEN PRINT A$;" (";A;")": PRINT B$;" (";B;")" |
|||
260 IF A<=B THEN PRINT B$;" (";B;")": PRINT A$;" (";A;")" |
|||
270 PRINT: PRINT |
|||
280 RETURN |
|||
300 PRINT"*** (2) MORE THAN 2 STRINGS***" |
|||
310 DIM C$(100) |
|||
320 N = 0 |
|||
330 READ A$ |
|||
340 IF A$ = "$$$" THEN 400 |
|||
350 N = N+1 |
|||
360 C$(N) = A$ |
|||
370 IF N = 100 THEN 400 |
|||
380 GOTO 330 |
|||
390 REM SORT THE STRINGS |
|||
400 FOR J=1 TO N-1 |
|||
410 FOR I=1 TO N-J |
|||
420 IF LEN(C$(I)) < LEN(C$(I+1)) THEN A$=C$(I): C$(I)=C$(I+1): C$(I+1)=A$ |
|||
430 NEXT |
|||
440 NEXT |
|||
450 REM PRINT OUT THE STRINGS |
|||
460 FOR I=1 TO N |
|||
470 PRINT C$(I);" (";LEN(C$(I));")" |
|||
480 NEXT |
|||
490 PRINT: PRINT |
|||
500 RETURN |
|||
1000 DATA "DOES SHE LIVE IN PARIS?" |
|||
1010 DATA "HE DOESN'T TEACH MATH" |
|||
1020 DATA "CATS HATE WATER" |
|||
1030 DATA "SHE DOESN'T STUDY GERMAN ON MONDAY" |
|||
1040 DATA "EVERY CHILD LIKES AN ICE CREAM" |
|||
1050 DATA "THE EARTH IS SPHERICAL" |
|||
1060 DATA "THE COURSE STARTS NEXT SUNDAY" |
|||
1070 DATA "SHE SWIMS EVERY MORNING" |
|||
1080 DATA "I LIKE TEA" |
|||
1090 DATA "WE SEE THEM EVERY WEEK" |
|||
1100 DATA "$$$"</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
*** (1) TWO STRINGS *** |
|||
LONGER STRING ( 13 ) |
|||
SHORT STRING ( 12 ) |
|||
*** (2) MORE THAN 2 STRINGS*** |
|||
SHE DOESN'T STUDY GERMAN ON MONDAY ( 34 |
|||
) |
|||
EVERY CHILD LIKES AN ICE CREAM ( 30 ) |
|||
THE COURSE STARTS NEXT SUNDAY ( 29 ) |
|||
DOES SHE LIVE IN PARIS? ( 23 ) |
|||
SHE SWIMS EVERY MORNING ( 23 ) |
|||
THE EARTH IS SPHERICAL ( 22 ) |
|||
WE SEE THEM EVERY WEEK ( 22 ) |
|||
HE DOESN'T TEACH MATH ( 21 ) |
|||
CATS HATE WATER ( 15 ) |
|||
I LIKE TEA ( 10 ) |
|||
</pre> |
|||
==={{header|BASIC256}}=== |
|||
<syntaxhighlight lang="basic256">subroutine comp(A$, B$) |
|||
if length(A$) >= length(B$) then |
|||
print A$, length(A$) |
|||
print B$, length(B$) |
|||
else |
|||
print B$, length(B$) |
|||
print A$, length(A$) |
|||
end if |
|||
end subroutine |
|||
call comp("abcd", "123456789")</syntaxhighlight> |
|||
==={{header|PureBasic}}=== |
|||
<syntaxhighlight lang="purebasic">Procedure comp(A.s, B.s) |
|||
If Len(A) >= Len(B) |
|||
PrintN(A + #TAB$ + Str(Len(A))) |
|||
PrintN(B + #TAB$ + Str(Len(B))) |
|||
Else |
|||
PrintN(B + #TAB$ + Str(Len(B))) |
|||
PrintN(A + #TAB$ + Str(Len(A))) |
|||
EndIf |
|||
EndProcedure |
|||
OpenConsole() |
|||
comp("abcd", "123456789") |
|||
Input() |
|||
CloseConsole()</syntaxhighlight> |
|||
==={{header|QBasic}}=== |
|||
{{works with|QBasic|1.1}} |
|||
{{works with|QuickBasic|4.5}} |
|||
{{works with|True BASIC}} |
|||
<syntaxhighlight lang="qbasic">SUB comp(A$, B$) |
|||
IF LEN(A$) >= LEN(B$) THEN |
|||
PRINT A$, LEN(A$) |
|||
PRINT B$, LEN(B$) |
|||
ELSE |
|||
PRINT B$, LEN(B$) |
|||
PRINT A$, LEN(A$) |
|||
END IF |
|||
END SUB |
|||
CALL comp("abcd", "123456789") |
|||
END</syntaxhighlight> |
|||
==={{header|Run BASIC}}=== |
|||
<syntaxhighlight lang="runbasic">sub comp A$, B$ |
|||
if len(A$) >= len(B$) then |
|||
print A$; chr$(9); len(A$) |
|||
print B$; chr$(9); len(B$) |
|||
else |
|||
print B$; chr$(9); len(B$) |
|||
print A$; chr$(9); len(A$) |
|||
end if |
|||
end sub |
|||
call comp "abcd", "123456789"</syntaxhighlight> |
|||
==={{header|True BASIC}}=== |
|||
{{works with|QBasic}} |
|||
<syntaxhighlight lang="qbasic">SUB comp(A$, B$) |
|||
IF LEN(A$) >= LEN(B$) THEN |
|||
PRINT A$, LEN(A$) |
|||
PRINT B$, LEN(B$) |
|||
ELSE |
|||
PRINT B$, LEN(B$) |
|||
PRINT A$, LEN(A$) |
|||
END IF |
|||
END SUB |
|||
CALL comp("abcd", "123456789") |
|||
END</syntaxhighlight> |
|||
{{out}} |
|||
<pre>Igual que la entrada de FreeBASIC. |
|||
</pre> |
|||
==={{header|Yabasic}}=== |
|||
<syntaxhighlight lang="yabasic">sub comp(A$, B$) |
|||
if len(A$) >= len(B$) then |
|||
print A$, chr$(9), len(A$) |
|||
print B$, chr$(9), len(B$) |
|||
else |
|||
print B$, chr$(9), len(B$) |
|||
print A$, chr$(9), len(A$) |
|||
end if |
|||
end sub |
|||
comp("abcd", "123456789")</syntaxhighlight> |
|||
==={{header|FreeBASIC}}=== |
|||
<syntaxhighlight lang="freebasic">sub comp( A as string, B as string ) |
|||
if len(A)>=len(B) then |
|||
print A, len(A) |
|||
print B, len(B) |
|||
else |
|||
print B, len(B) |
|||
print A, len(A) |
|||
end if |
|||
end sub |
|||
comp( "abcd", "123456789" )</syntaxhighlight> |
|||
{{out}}<pre>123456789 9 |
|||
abcd 4</pre> |
|||
=={{header|BQN}}== |
=={{header|BQN}}== |
||
Line 434: | Line 643: | ||
</pre> |
</pre> |
||
=={{header| |
=={{header|EasyLang}}== |
||
<syntaxhighlight lang="easylang"> |
|||
==={{header|Applesoft BASIC}}=== |
|||
func stringLength a$ b$ . . |
|||
Printing CHR$(14) does nothing by default in Applesoft BASIC. Commodore BASIC appends spaces to numbers, but otherwise the [[Compare_length_of_two_strings#Commodore_BASIC]] code works the same in Applesoft BASIC. |
|||
lineA$ = "\"" & a$ & "\" (length: " & len a$ & ")" |
|||
{{out}} |
|||
lineB$ = "\"" & b$ & "\" (length: " & len b$ & ")" |
|||
<pre>*** (1) TWO STRINGS *** |
|||
if len a$ >= len b$ |
|||
LONGER STRING (13) |
|||
print lineA$ ; print lineB$ |
|||
SHORT STRING (12) |
|||
else |
|||
print lineB$ ; print lineA$ |
|||
. |
|||
*** (2) MORE THAN 2 STRINGS*** |
|||
. |
|||
SHE DOESN'T STUDY GERMAN ON MONDAY (34) |
|||
call stringLength "Easy" "Language" |
|||
EVERY CHILD LIKES AN ICE CREAM (30) |
|||
call stringLength "Rosetta" "Code" |
|||
THE COURSE STARTS NEXT SUNDAY (29) |
|||
</syntaxhighlight> |
|||
DOES SHE LIVE IN PARIS? (23) |
|||
SHE SWIMS EVERY MORNING (23) |
|||
THE EARTH IS SPHERICAL (22) |
|||
WE SEE THEM EVERY WEEK (22) |
|||
HE DOESN'T TEACH MATH (21) |
|||
CATS HATE WATER (15) |
|||
I LIKE TEA (10) |
|||
</pre> |
|||
==={{header|Commodore BASIC}}=== |
|||
{{works with|Applesoft BASIC}} |
|||
{{works with|Commodore BASIC|2.0}} |
|||
{{works with|Commodore BASIC|3.5}} |
|||
<syntaxhighlight lang="gwbasic">0 REM ROSETTACODE.ORG |
|||
1 REM COMPARE LENGTH OF TWO STRINGS |
|||
2 REM GIVEN TWO STRINGS OF DIFFERENT |
|||
3 REM LENGTH, DETERMINE WHICH STRING IS |
|||
4 REM LONGER OR SHORTER. |
|||
5 REM PRINT BOTH STRINGS AND THEIR |
|||
6 REM LENGTH, ONE ON EACH LINE. PRINT |
|||
7 REM THE LONGER ONE FIRST. |
|||
8 REM |
|||
9 REM ******************************** |
|||
10 REM |
|||
20 REM PRINT CHR$(14): REM CHANGE TO LOWER/UPPER CASE CHAR SET |
|||
30 GOSUB 200: REM 1 - COMPARE LENGTH OF 2 STRINGS |
|||
40 GOSUB 300: REM 2- MORE THAN 2 STRINGS |
|||
50 END |
|||
200 PRINT"*** (1) TWO STRINGS ***" |
|||
210 A$ = "SHORT STRING" |
|||
220 B$ = "LONGER STRING" |
|||
230 A = LEN(A$) |
|||
240 B = LEN(B$) |
|||
250 IF A>B THEN PRINT A$;" (";A;")": PRINT B$;" (";B;")" |
|||
260 IF A<=B THEN PRINT B$;" (";B;")": PRINT A$;" (";A;")" |
|||
270 PRINT: PRINT |
|||
280 RETURN |
|||
300 PRINT"*** (2) MORE THAN 2 STRINGS***" |
|||
310 DIM C$(100) |
|||
320 N = 0 |
|||
330 READ A$ |
|||
340 IF A$ = "$$$" THEN 400 |
|||
350 N = N+1 |
|||
360 C$(N) = A$ |
|||
370 IF N = 100 THEN 400 |
|||
380 GOTO 330 |
|||
390 REM SORT THE STRINGS |
|||
400 FOR J=1 TO N-1 |
|||
410 FOR I=1 TO N-J |
|||
420 IF LEN(C$(I)) < LEN(C$(I+1)) THEN A$=C$(I): C$(I)=C$(I+1): C$(I+1)=A$ |
|||
430 NEXT |
|||
440 NEXT |
|||
450 REM PRINT OUT THE STRINGS |
|||
460 FOR I=1 TO N |
|||
470 PRINT C$(I);" (";LEN(C$(I));")" |
|||
480 NEXT |
|||
490 PRINT: PRINT |
|||
500 RETURN |
|||
1000 DATA "DOES SHE LIVE IN PARIS?" |
|||
1010 DATA "HE DOESN'T TEACH MATH" |
|||
1020 DATA "CATS HATE WATER" |
|||
1030 DATA "SHE DOESN'T STUDY GERMAN ON MONDAY" |
|||
1040 DATA "EVERY CHILD LIKES AN ICE CREAM" |
|||
1050 DATA "THE EARTH IS SPHERICAL" |
|||
1060 DATA "THE COURSE STARTS NEXT SUNDAY" |
|||
1070 DATA "SHE SWIMS EVERY MORNING" |
|||
1080 DATA "I LIKE TEA" |
|||
1090 DATA "WE SEE THEM EVERY WEEK" |
|||
1100 DATA "$$$"</syntaxhighlight> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
"Language" (length: 8) |
|||
*** (1) TWO STRINGS *** |
|||
"Easy" (length: 4) |
|||
LONGER STRING ( 13 ) |
|||
"Rosetta" (length: 7) |
|||
SHORT STRING ( 12 ) |
|||
"Code" (length: 4) |
|||
*** (2) MORE THAN 2 STRINGS*** |
|||
SHE DOESN'T STUDY GERMAN ON MONDAY ( 34 |
|||
) |
|||
EVERY CHILD LIKES AN ICE CREAM ( 30 ) |
|||
THE COURSE STARTS NEXT SUNDAY ( 29 ) |
|||
DOES SHE LIVE IN PARIS? ( 23 ) |
|||
SHE SWIMS EVERY MORNING ( 23 ) |
|||
THE EARTH IS SPHERICAL ( 22 ) |
|||
WE SEE THEM EVERY WEEK ( 22 ) |
|||
HE DOESN'T TEACH MATH ( 21 ) |
|||
CATS HATE WATER ( 15 ) |
|||
I LIKE TEA ( 10 ) |
|||
</pre> |
</pre> |
||
==={{header|BASIC256}}=== |
|||
<syntaxhighlight lang="basic256">subroutine comp(A$, B$) |
|||
if length(A$) >= length(B$) then |
|||
print A$, length(A$) |
|||
print B$, length(B$) |
|||
else |
|||
print B$, length(B$) |
|||
print A$, length(A$) |
|||
end if |
|||
end subroutine |
|||
call comp("abcd", "123456789")</syntaxhighlight> |
|||
==={{header|PureBasic}}=== |
|||
<syntaxhighlight lang="purebasic">Procedure comp(A.s, B.s) |
|||
If Len(A) >= Len(B) |
|||
PrintN(A + #TAB$ + Str(Len(A))) |
|||
PrintN(B + #TAB$ + Str(Len(B))) |
|||
Else |
|||
PrintN(B + #TAB$ + Str(Len(B))) |
|||
PrintN(A + #TAB$ + Str(Len(A))) |
|||
EndIf |
|||
EndProcedure |
|||
OpenConsole() |
|||
comp("abcd", "123456789") |
|||
Input() |
|||
CloseConsole()</syntaxhighlight> |
|||
==={{header|QBasic}}=== |
|||
{{works with|QBasic|1.1}} |
|||
{{works with|QuickBasic|4.5}} |
|||
{{works with|True BASIC}} |
|||
<syntaxhighlight lang="qbasic">SUB comp(A$, B$) |
|||
IF LEN(A$) >= LEN(B$) THEN |
|||
PRINT A$, LEN(A$) |
|||
PRINT B$, LEN(B$) |
|||
ELSE |
|||
PRINT B$, LEN(B$) |
|||
PRINT A$, LEN(A$) |
|||
END IF |
|||
END SUB |
|||
CALL comp("abcd", "123456789") |
|||
END</syntaxhighlight> |
|||
==={{header|Run BASIC}}=== |
|||
<syntaxhighlight lang="runbasic">sub comp A$, B$ |
|||
if len(A$) >= len(B$) then |
|||
print A$; chr$(9); len(A$) |
|||
print B$; chr$(9); len(B$) |
|||
else |
|||
print B$; chr$(9); len(B$) |
|||
print A$; chr$(9); len(A$) |
|||
end if |
|||
end sub |
|||
call comp "abcd", "123456789"</syntaxhighlight> |
|||
==={{header|True BASIC}}=== |
|||
{{works with|QBasic}} |
|||
<syntaxhighlight lang="qbasic">SUB comp(A$, B$) |
|||
IF LEN(A$) >= LEN(B$) THEN |
|||
PRINT A$, LEN(A$) |
|||
PRINT B$, LEN(B$) |
|||
ELSE |
|||
PRINT B$, LEN(B$) |
|||
PRINT A$, LEN(A$) |
|||
END IF |
|||
END SUB |
|||
CALL comp("abcd", "123456789") |
|||
END</syntaxhighlight> |
|||
{{out}} |
|||
<pre>Igual que la entrada de FreeBASIC. |
|||
</pre> |
|||
==={{header|Yabasic}}=== |
|||
<syntaxhighlight lang="yabasic">sub comp(A$, B$) |
|||
if len(A$) >= len(B$) then |
|||
print A$, chr$(9), len(A$) |
|||
print B$, chr$(9), len(B$) |
|||
else |
|||
print B$, chr$(9), len(B$) |
|||
print A$, chr$(9), len(A$) |
|||
end if |
|||
end sub |
|||
comp("abcd", "123456789")</syntaxhighlight> |
|||
==={{header|FreeBASIC}}=== |
|||
<syntaxhighlight lang="freebasic">sub comp( A as string, B as string ) |
|||
if len(A)>=len(B) then |
|||
print A, len(A) |
|||
print B, len(B) |
|||
else |
|||
print B, len(B) |
|||
print A, len(A) |
|||
end if |
|||
end sub |
|||
comp( "abcd", "123456789" )</syntaxhighlight> |
|||
{{out}}<pre>123456789 9 |
|||
abcd 4</pre> |
|||
=={{header|Fortran}}== |
=={{header|Fortran}}== |