Variables: Difference between revisions

4,202 bytes added ,  2 years ago
Variables en FreeBASIC
(Variables en FreeBASIC)
Line 1,658:
end program test
</lang>
 
=={{header|FreeBASIC}}==
 
<br>'''Variable declaration'''<br>
<lang freebasic>Dim [Shared] As DataType <i>vble1</i> [, <i>vble2</i>, ...]</lang>
or
<lang freebasic>Dim [Shared] <i>vble1</i> As DataType [, <i>vble2</i> As DataType, ...]</lang>
example:
<lang freebasic>Dim As Integer n1, n2
Dim x As Double
Dim isRaining As Boolean
Dim As String greeting</lang>
 
<br>'''Initialization'''<br>
<lang freebasic>Dim variable As datatype = value
Dim var1,var2,... As datatype</lang>
example:
<lang freebasic>Dim wholeNumber1,wholeNumber2 as Integer = 3
Dim realNumber as Double = 3.0
Dim isRaining as Boolean = False
Dim greeting as String = "Hello, this is World speaking."
Dim longArray() As Long = {0, 1, 2, 3}
Dim twoDimensions (1 To 2, 1 To 5) As Integer => {{1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}}</lang>
 
<br>'''Assignment'''<br>
<lang freebasic>variable = expression</lang>
<lang freebasic> v = a or v => a
d = b^2 - 4*a*c
s3 = s1 & mid(s2,3,2)</lang>
<lang freebasic>variable <operator>= expression2</lang>
<lang freebasic> c += a
c -= a
c *= a
c /= a
c \= a
c ^= a
c Mod= a
c Shl= n
c Shr= n
c &amp;= a
c And= n
c Eqv= n
c Imp= n
c Or= n
c Xor= n </lang>
 
<br>'''Standard data types and limits.'''<br>
<br>''Numeric Types''<br>
<table border>
<tr bgcolor="#C0C0C0">
<th>Type<th>Size (bits)<th>Format<th>Minimum Value<th>Maximum Value
<tr><td>Byte <td> 8<td>signed integer<td>-128<td>+127
<tr><td>Ubyte <td> 8<td>unsigned integer<td>0<td>+255
<tr><td>Short <td> 16<td>signed integer<td>-32768<td>+32767
<tr><td>Ushort <td> 16<td>unsigned integer<td>0<td>65535
<tr><td>Long <td> 32<td>signed integer<td>-2147483648<td>+2147483647
<tr><td>Ulong <td> 32<td>unsigned integer<td>0<td>+4294967295
<tr><td>Integer <td>32/64<td>signed integer<td>32bit: -2147483648,<br>64bit: -9223372036854775808<td> 32bit: +2147483647,<br>64bit: +9223372036854775807
<tr><td>Uinteger <td>32/64<td>unsigned integer<td>0<td> 32bit: +4294967295,<br>64bit: +18446744073709551615
<tr><td>Longint <td> 64<td>signed integer<td>-9223372036854775808<td>+9223372036854775807
<tr><td>Ulongint <td> 64<td>unsigned integer<td>0<td>+18446744073709551615
<tr><td>Single <td> 32<td>floating point<td>+/-1.401 298 E-45<td> +/-3.402 823 E+38
<tr><td>Double <td> 64<td>floating point<td>+/-4.940 656 458 412 465 E-324<td> +/-1.797 693 134 862 316 E+308
<tr><td>enums <td>32/64 <td>signed integer<td>32bit: -2147483648,<br>64bit: -9223372036854775808<td>32bit: +2147483647,<br>64bit: +9223372036854775807
</table>
 
<br>''String Types''<br>
<table border>
<tr bgcolor="#C0C0C0">
<th>Type<th>Character<br>Size (bytes)<th>Minimum Size<br>(in characters)<th>Maximum Size<br>(in characters)
<tr><td>String <td> 1 <td> 0<td>32bit: +2147483647,<br>64bit: +9223372036854775807
<tr><td>Zstring <td> 1 <td> 0<td>32bit: +2147483647,<br>64bit: +9223372036854775807
<tr><td>Wstring <td> <td> 0<td>32bit: +2147483647,<br>64bit: +9223372036854775807
</table>
 
<br>'''Scope'''<br>
By default the scope of a variable is local to the <code> sub</code>, <code> function</code> or <code> module</code>. Attribute Shared can modify these scopes.
 
<tt> Shared </tt> makes module-level variables visible inside Subs and Functions.
If <tt> Shared </tt> is not used on a module-level variable's declaration, the variable is only visible to the module-level code in that file.
<br>'''Common'''<br>
Declares a variable which is shared between code modules. A matching <tt> Common</tt> statement must appear in all other code modules using the variable.
<lang FreeBASIC>Common [Shared] <i>symbolname</i>[()] [AS DataType] [, ...]</lang>
<br>'''Var'''<br>
Declares a variable whose type is implied from the initializer expression.
<lang freebasic>Var [Shared] variable = expression
Var variable As datatype
Var var1,var2,... As datatype</lang>
example:
<lang freebasic>Var s2 = "hello" '' var-len string
Var ii = 6728 '' implicit integer
Var id = 6728.0 '' implicit double</lang>
 
=={{header|GAP}}==
2,122

edits