Jump to content

ABC problem: Difference between revisions

(Updated to conform with FB 7.0.23 and newer)
Line 4,752:
 
=={{header|FutureBasic}}==
Here are two FutureBasic solutions for the "ABC Problem" task. The first is a straightforward function based on CFStrings, giving the standard YES or NO response.
 
The second is based on Pascal Strings, and offers a unique graphic presentation of the results, all in 18 lines of code. It accepts a word list delimited by spaces, commas, and/or semicolons.
 
'''FIRST SOLUTION:'''
 
Requires FB 7.0.23 or later
<syntaxhighlight lang="futurebasic">
include "NSLog.incl"
 
local fn CanBlocksSpell( w as CFStringRef ) as CFStringRef
NSUInteger i, j
Line 4,780 ⟶ 4,788:
 
NSLog( @"%@", fn WindowPrintViewString( 1 ) )
 
 
HandleEvents
Line 4,797 ⟶ 4,804:
Can blocks spell aUtO : YES
</pre>
 
'''SECOND SOLUTION:'''
<syntaxhighlight lang="futurebasic">
 
local fn blocks( wordList as str255 )
sint16 found, r, x = 3, y = -9 : str63 ch, blocks : ch = " " : blocks = " "
for r = 1 to len$( wordList ) +1
found = instr$( 1, blocks, ch )
select found
case > 3: mid$( blocks, found and -2, 2 ) = "__" : text , , fn Colorblue
rect fill ( x, y + 5.5, 15, 15 ), fn ColorWithRGB( .98, .85, .52, .75 )
case 0: text , , fn ColorWithRGB( 0, 0, .4, .3 )
case < 4: blocks=" ,;BOXKDQCPNAGTRETGQDFSJWHUVIANOBERFSLYPCZM": x=3: y+=26: ch=""
end select
text @"Courier New Bold", 16 : print %( x + 2.5, y ) ch : x += 17
ch = ucase$( mid$( wordList, r, 1 ) )
next
end fn
 
window 1, @"ABC problem in FutureBasic", ( 0, 0, 300, 300 )
fn blocks( "a baRk booK;treat;COMMON;squad;Confused;comparable,incomparable,nondeductibles" )
handleevents
 
</syntaxhighlight>
{{output}}
[[File:FB output for ABC problem.png]]
 
=={{header|Gambas}}==
68

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.