Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
77
Task/Function-prototype/PureBasic/function-prototype.basic
Normal file
77
Task/Function-prototype/PureBasic/function-prototype.basic
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
;Forward procedure declare defined with no arguments and that returns a string
|
||||
Declare.s booTwo()
|
||||
;Forward procedure declare defined with two arguments and that returns a float
|
||||
Declare.f moo(x.f, y.f)
|
||||
;Forward procedure declare with two arguments and an optional argument and that returns a float
|
||||
Declare.f cmoo(x.f, y.f, m.f = 0)
|
||||
|
||||
;*** The following three procedures are defined before their first use.
|
||||
;Procedure defined with no arguments and that returns a string
|
||||
Procedure.s boo(): ProcedureReturn "boo": EndProcedure
|
||||
;Procedure defined with two arguments and that returns an float
|
||||
Procedure.f aoo(x.f, y.f): ProcedureReturn x + y: EndProcedure
|
||||
;Procedure defined with two arguments and an optional argument and that returns a float
|
||||
Procedure.f caoo(x.f, y.f, m.f = 1): ProcedureReturn (x + y) * m: EndProcedure
|
||||
|
||||
;ProtoType defined for any function with no arguments and that returns a string
|
||||
Prototype.s showString()
|
||||
;Prototype defined for any function with two float arguments and that returns a float
|
||||
Prototype.f doMath(x.f, y.f)
|
||||
;ProtoType defined for any function with two float arguments and an optional float argument and that returns a float
|
||||
Prototype.f doMathWithOpt(x.f, y.f, m.f = 0)
|
||||
|
||||
Define a.f = 12, b.f = 5, c.f = 9
|
||||
Define proc_1.showString, proc_2.doMath, proc_3.doMathWithOpt ;using defined ProtoTypes
|
||||
If OpenConsole("ProtoTypes and Forward Declarations")
|
||||
|
||||
PrintN("Forward Declared procedures:")
|
||||
PrintN(boo())
|
||||
PrintN(StrF(a, 2) + " * " + StrF(b, 2) + " = " + StrF(moo(a, b), 2))
|
||||
PrintN(StrF(a, 2) + " * " + StrF(b, 2) + " + " + StrF(c, 2) + " = " + StrF(cmoo(a, b, c), 2))
|
||||
PrintN(StrF(a, 2) + " * " + StrF(b, 2) + " = " + StrF(cmoo(a, b), 2))
|
||||
|
||||
;set pointers to second set of functions
|
||||
proc_1 = @boo()
|
||||
proc_2 = @aoo()
|
||||
proc_3 = @caoo()
|
||||
|
||||
PrintN("ProtoTyped procedures (set 1):")
|
||||
PrintN(proc_1())
|
||||
PrintN(StrF(a, 2) + " ? " + StrF(b, 2) + " = " + StrF(proc_2(a, b), 2))
|
||||
PrintN(StrF(a, 2) + " ? " + StrF(b, 2) + " ? " + StrF(c, 2) + " = " + StrF(proc_3(a, b, c), 2))
|
||||
PrintN(StrF(a, 2) + " ? " + StrF(b, 2) + " = " + StrF(proc_3(a, b), 2))
|
||||
|
||||
;set pointers to second set of functions
|
||||
proc_1 = @booTwo()
|
||||
proc_2 = @moo()
|
||||
proc_3 = @cmoo()
|
||||
|
||||
PrintN("ProtoTyped procedures (set 2):")
|
||||
PrintN(proc_1())
|
||||
PrintN(StrF(a, 2) + " ? " + StrF(b, 2) + " = " + StrF(proc_2(a, b), 2))
|
||||
PrintN(StrF(a, 2) + " ? " + StrF(b, 2) + " ? " + StrF(c, 2) + " = " + StrF(proc_3(a, b, c), 2))
|
||||
PrintN(StrF(a, 2) + " ? " + StrF(b, 2) + " = " + StrF(proc_3(a, b), 2))
|
||||
|
||||
|
||||
Print(#CRLF$ + #CRLF$ + "Press ENTER to exit"): Input()
|
||||
CloseConsole()
|
||||
EndIf
|
||||
|
||||
|
||||
;*** If the forward Declaration above are not used then the following Procedure
|
||||
;definitions each have to be placed before the call to the respective procedure.
|
||||
|
||||
;Procedure defined with no arguments and that returns a string
|
||||
Procedure.s booTwo()
|
||||
ProcedureReturn "booTwo"
|
||||
EndProcedure
|
||||
|
||||
;Procedure defined with two arguments and that returns an float
|
||||
Procedure.f moo(x.f, y.f)
|
||||
ProcedureReturn x * y
|
||||
EndProcedure
|
||||
|
||||
;Procedure defined with two arguments and an optional argument and that returns an float
|
||||
Procedure.f cmoo(x.f, y.f, m.f = 0)
|
||||
ProcedureReturn (x * y) + m
|
||||
EndProcedure
|
||||
Loading…
Add table
Add a link
Reference in a new issue