<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net_Tutorial%2FOperator%2FOperator</id>
		<title>VB.Net Tutorial/Operator/Operator - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net_Tutorial%2FOperator%2FOperator"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Operator/Operator&amp;action=history"/>
		<updated>2026-04-06T10:56:32Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Operator/Operator&amp;diff=3015&amp;oldid=prev</id>
		<title> в 16:40, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Operator/Operator&amp;diff=3015&amp;oldid=prev"/>
				<updated>2010-05-26T16:40:30Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:40, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Operator/Operator&amp;diff=3016&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net_Tutorial/Operator/Operator&amp;diff=3016&amp;oldid=prev"/>
				<updated>2010-05-26T12:54:01Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Calculate PI==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&amp;quot; Quote from&lt;br /&gt;
&amp;quot;Visual Basic 2005 Cookbook Solutions for VB 2005 Programmers&lt;br /&gt;
&amp;quot;by Tim Patrick (Author), John Craig (Author)&lt;br /&gt;
&amp;quot;# Publisher: O&amp;quot;Reilly Media, Inc. (September 21, 2006)&lt;br /&gt;
&amp;quot;# Language: English&lt;br /&gt;
&amp;quot;# ISBN-10: 0596101775&lt;br /&gt;
&amp;quot;# ISBN-13: 978-0596101770&lt;br /&gt;
&lt;br /&gt;
Public Class Tester&lt;br /&gt;
&lt;br /&gt;
    Public Shared Sub Main&lt;br /&gt;
      Console.WriteLine(FindPi(500))&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Shared NumberDigits As Integer&lt;br /&gt;
    Public Shared Function FindPi(ByVal digits As Integer) As String&lt;br /&gt;
        &amp;quot; ----- Calculate Pi to the specified number of digits,&lt;br /&gt;
        &amp;quot;       based on the formula:&lt;br /&gt;
        &amp;quot;          Pi/4 = arctan(1/2) + arctan(1/3)&lt;br /&gt;
        Dim result As New System.Text.StringBuilder(&amp;quot;PI=3.&amp;quot;)&lt;br /&gt;
        Dim digitIndex As Integer&lt;br /&gt;
        Dim divFactor As Integer&lt;br /&gt;
        &amp;quot; ----- Build an array that will hold manual calculations.&lt;br /&gt;
        NumberDigits = digits + 2&lt;br /&gt;
        Dim targetValue(NumberDigits) As Integer&lt;br /&gt;
        Dim sourceValue(NumberDigits) As Integer&lt;br /&gt;
        &amp;quot; ---- Perform the calculation.&lt;br /&gt;
        divFactor = 2&lt;br /&gt;
        ArcTangent(targetValue, sourceValue, divFactor)&lt;br /&gt;
        divFactor = 3&lt;br /&gt;
        ArcTangent(targetValue, sourceValue, divFactor)&lt;br /&gt;
        ArrayMult(targetValue, 4)&lt;br /&gt;
        &amp;quot; ----- Return a string version of the calculation.&lt;br /&gt;
        For digitIndex = 1 To NumberDigits - 3&lt;br /&gt;
            result.Append(Chr(targetValue(digitIndex) + Asc(&amp;quot;0&amp;quot;c)))&lt;br /&gt;
        Next digitIndex&lt;br /&gt;
        Return result.ToString&lt;br /&gt;
    End Function&lt;br /&gt;
    Private Shared Sub ArrayMult(ByRef baseNumber() As Integer, _&lt;br /&gt;
            ByRef multiplier As Integer)&lt;br /&gt;
        &amp;quot; ----- Multiply an array number by another number by hand.&lt;br /&gt;
        &amp;quot;       The product remains in the array number.&lt;br /&gt;
        Dim carry As Integer&lt;br /&gt;
        Dim position As Integer&lt;br /&gt;
        Dim holdDigit As Integer&lt;br /&gt;
        &amp;quot; ----- Multiple each base digit, from right to left.&lt;br /&gt;
        For position = NumberDigits To 0 Step -1&lt;br /&gt;
            &amp;quot; ----- If the multiplication went past 9, carry the&lt;br /&gt;
            &amp;quot;       tens value to the next column.&lt;br /&gt;
            holdDigit = (baseNumber(position) * multiplier) + carry&lt;br /&gt;
            carry = holdDigit \ 10&lt;br /&gt;
            baseNumber(position) = holdDigit Mod 10&lt;br /&gt;
        Next position&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Shared Sub ArrayDivide(ByRef dividend() As Integer, ByRef divisor As Integer)&lt;br /&gt;
        &amp;quot; ----- Divide an array number by another number by hand.&lt;br /&gt;
        &amp;quot;       The quotient remains in the array number.&lt;br /&gt;
        Dim borrow As Integer&lt;br /&gt;
        Dim position As Integer&lt;br /&gt;
        Dim holdDigit As Integer&lt;br /&gt;
        &amp;quot; ----- Process division for each digit.&lt;br /&gt;
        For position = 0 To NumberDigits&lt;br /&gt;
            &amp;quot; ----- If the division can&amp;quot;t happen directly, borrow from&lt;br /&gt;
            &amp;quot;       the previous position.&lt;br /&gt;
            holdDigit = dividend(position) + borrow * 10&lt;br /&gt;
            dividend(position) = holdDigit \ divisor&lt;br /&gt;
            borrow = holdDigit Mod divisor&lt;br /&gt;
        Next position&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Shared Sub ArrayAdd(ByRef baseNumber() As Integer, ByRef addend() As Integer)&lt;br /&gt;
        &amp;quot; ----- Add two array numbers together.&lt;br /&gt;
        &amp;quot;       The sum remains in the first array number.&lt;br /&gt;
        Dim carry As Integer&lt;br /&gt;
        Dim position As Integer&lt;br /&gt;
        Dim holdDigit As Integer&lt;br /&gt;
        &amp;quot; ----- Add each digit from right to left.&lt;br /&gt;
        For position = NumberDigits To 0 Step -1&lt;br /&gt;
            &amp;quot; ----- If the sum goes beyond 9, carry the tens&lt;br /&gt;
            &amp;quot;       value to the next column.&lt;br /&gt;
            holdDigit = baseNumber(position) + addend(position) + carry&lt;br /&gt;
            carry = holdDigit \ 10&lt;br /&gt;
            baseNumber(position) = holdDigit Mod 10&lt;br /&gt;
        Next position&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Shared Sub ArraySub(ByRef minuend() As Integer, ByRef subtrahend() As Integer)&lt;br /&gt;
        &amp;quot; ----- Subtract one array number from another.&lt;br /&gt;
        &amp;quot;       The difference remains in the first array number.&lt;br /&gt;
        Dim borrow As Integer&lt;br /&gt;
        Dim position As Integer&lt;br /&gt;
        Dim holdDigit As Integer&lt;br /&gt;
        &amp;quot; ---- Subtract the digits from right to left.&lt;br /&gt;
        For position = NumberDigits To 0 Step -1&lt;br /&gt;
            &amp;quot; ----- If the subtraction would give a negative value&lt;br /&gt;
            &amp;quot;       for a column, we will have to borrow.&lt;br /&gt;
            holdDigit = minuend(position) - subtrahend(position) + 10&lt;br /&gt;
            borrow = holdDigit \ 10&lt;br /&gt;
            minuend(position) = holdDigit Mod 10&lt;br /&gt;
            If (borrow = 0) Then minuend(position - 1) -= 1&lt;br /&gt;
        Next position&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private Shared Function ArrayZero(ByRef baseNumber() As Integer) As Boolean&lt;br /&gt;
        &amp;quot; ----- Report whether an array number is all zero.&lt;br /&gt;
        Dim position As Integer&lt;br /&gt;
        &amp;quot; ----- Examine each digit.&lt;br /&gt;
        For position = 0 To NumberDigits&lt;br /&gt;
            If (baseNumber(position) &amp;lt;&amp;gt; 0) Then&lt;br /&gt;
                &amp;quot; ----- The number is nonzero.&lt;br /&gt;
                Return False&lt;br /&gt;
            End If&lt;br /&gt;
        Next position&lt;br /&gt;
        &amp;quot; ----- The number is zero.&lt;br /&gt;
        Return True&lt;br /&gt;
    End Function&lt;br /&gt;
    Private Shared Sub ArcTangent(ByRef targetValue() As Integer, _&lt;br /&gt;
            ByRef sourceValue() As Integer, _&lt;br /&gt;
            ByVal divFactor As Integer)&lt;br /&gt;
        &amp;quot; ----- Calculate an arctangent of a fraction, 1/divFactor.&lt;br /&gt;
        &amp;quot;       This routine performs a modified Maclaurin series to &lt;br /&gt;
        &amp;quot;       calculate the arctangent. The base formula is:&lt;br /&gt;
        &amp;quot;          arctan(x) = x - x^3/3 + x^5/5 - x^7/7 + x^9/9 - ...&lt;br /&gt;
        &amp;quot;       where -1 &amp;lt; x &amp;lt; 1 (it&amp;quot;s 1/divFactor in this case).&lt;br /&gt;
        Dim workingFactor As Integer&lt;br /&gt;
        Dim incremental As Integer&lt;br /&gt;
        &amp;quot; ----- Figure out the &amp;quot;x&amp;quot; part, 1/divFactor.&lt;br /&gt;
        sourceValue(0) = 1&lt;br /&gt;
        incremental = 1&lt;br /&gt;
        workingFactor = divFactor&lt;br /&gt;
        ArrayDivide(sourceValue, workingFactor)&lt;br /&gt;
        &amp;quot; ----- Add &amp;quot;x&amp;quot; to the total.&lt;br /&gt;
        ArrayAdd(targetValue, sourceValue)&lt;br /&gt;
        Do&lt;br /&gt;
            &amp;quot; ----- Perform the &amp;quot;- (xy)/y&amp;quot; part.&lt;br /&gt;
            ArrayMult(sourceValue, incremental)&lt;br /&gt;
            workingFactor = divFactor * divFactor&lt;br /&gt;
            ArrayDivide(sourceValue, workingFactor)&lt;br /&gt;
            incremental += 2&lt;br /&gt;
            workingFactor = incremental&lt;br /&gt;
            ArrayDivide(sourceValue, workingFactor)&lt;br /&gt;
            ArraySub(targetValue, sourceValue)&lt;br /&gt;
            &amp;quot; ----- Perform the &amp;quot;+ (xy)/y&amp;quot; part.&lt;br /&gt;
            ArrayMult(sourceValue, incremental)&lt;br /&gt;
            workingFactor = divFactor * divFactor&lt;br /&gt;
            ArrayDivide(sourceValue, workingFactor)&lt;br /&gt;
            incremental += 2&lt;br /&gt;
            workingFactor = incremental&lt;br /&gt;
            ArrayDivide(sourceValue, workingFactor)&lt;br /&gt;
            ArrayAdd(targetValue, sourceValue)&lt;br /&gt;
        Loop Until ArrayZero(sourceValue)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;PI=3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211&lt;br /&gt;
7067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930&lt;br /&gt;
3819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491&lt;br /&gt;
4127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151&lt;br /&gt;
1609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011&lt;br /&gt;
9491&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compact operators==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;Public Class Tester&lt;br /&gt;
&lt;br /&gt;
    Public Shared Sub Main&lt;br /&gt;
        Dim result As New System.Text.StringBuilder&lt;br /&gt;
        Dim testDouble As Double = Math.PI&lt;br /&gt;
        result.Append(&amp;quot;Double &amp;quot;).AppendLine(testDouble)&lt;br /&gt;
        testDouble += Math.PI&lt;br /&gt;
        result.Append(&amp;quot;+= &amp;quot;).AppendLine(testDouble)&lt;br /&gt;
        testDouble *= Math.PI&lt;br /&gt;
        result.Append(&amp;quot;*= &amp;quot;).AppendLine(testDouble)&lt;br /&gt;
        testDouble -= Math.PI&lt;br /&gt;
        result.Append(&amp;quot;-= &amp;quot;).AppendLine(testDouble)&lt;br /&gt;
        testDouble /= Math.PI&lt;br /&gt;
        result.Append(&amp;quot;/= &amp;quot;).AppendLine(testDouble)&lt;br /&gt;
        testDouble ^= Math.PI&lt;br /&gt;
        result.Append(&amp;quot;^= &amp;quot;).AppendLine(testDouble)&lt;br /&gt;
        result.AppendLine()&lt;br /&gt;
        Dim testInteger As Integer = 17&lt;br /&gt;
        result.Append(&amp;quot;Integer &amp;quot;).AppendLine(testInteger)&lt;br /&gt;
        testInteger \= 2&lt;br /&gt;
        result.Append(&amp;quot;\= 2 ... &amp;quot;).AppendLine(testInteger)&lt;br /&gt;
        testInteger += 1&lt;br /&gt;
        result.Append(&amp;quot;+= 1 ... &amp;quot;).AppendLine(testInteger)&lt;br /&gt;
        testInteger &amp;lt;&amp;lt;= 1&lt;br /&gt;
        result.Append(&amp;quot;&amp;lt;&amp;lt;= 1 ... &amp;quot;).AppendLine(testInteger)&lt;br /&gt;
        testInteger &amp;gt;&amp;gt;= 3&lt;br /&gt;
        result.Append(&amp;quot;&amp;gt;&amp;gt;= 3 ... &amp;quot;).AppendLine(testInteger)&lt;br /&gt;
        result.AppendLine()&lt;br /&gt;
        Dim testString As String = &amp;quot;Abcdef&amp;quot;&lt;br /&gt;
        result.Append(&amp;quot;String &amp;quot;).AppendLine(testString)&lt;br /&gt;
        testString &amp;amp;= &amp;quot;ghi&amp;quot;&lt;br /&gt;
        result.Append(&amp;quot;&amp;amp;= ghi ... &amp;quot;).AppendLine(testString)&lt;br /&gt;
        testString += &amp;quot;jkl&amp;quot;&lt;br /&gt;
        result.Append(&amp;quot;+= jkl ... &amp;quot;).AppendLine(testString)&lt;br /&gt;
        Console.WriteLine(result.ToString())&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Double 3.14159265358979&lt;br /&gt;
+= 6.28318530717959&lt;br /&gt;
*= 19.7392088021787&lt;br /&gt;
-= 16.5976161485889&lt;br /&gt;
/= 5.28318530717959&lt;br /&gt;
^= 186.656996003562&lt;br /&gt;
Integer 17&lt;br /&gt;
\= 2 ... 8&lt;br /&gt;
+= 1 ... 9&lt;br /&gt;
&amp;lt;&amp;lt;= 1 ... 18&lt;br /&gt;
&amp;gt;&amp;gt;= 3 ... 2&lt;br /&gt;
String Abcdef&lt;br /&gt;
&amp;amp;= ghi ... Abcdefghi&lt;br /&gt;
+= jkl ... Abcdefghijkl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Prime numbers using the Sieve of Eratosthenes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;Imports System.Drawing&lt;br /&gt;
Imports System.Drawing.Drawing2D&lt;br /&gt;
Imports System.Collections&lt;br /&gt;
Public Class Tester&lt;br /&gt;
    Public Shared Sub Main&lt;br /&gt;
        Dim needBreak As Boolean = True&lt;br /&gt;
        Console.WriteLine(&amp;quot;Prime numbers using the &amp;quot;&amp;quot;Sieve of Eratosthenes&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
        Dim index As Integer = 1&lt;br /&gt;
        Dim counter As Integer&lt;br /&gt;
        Do While (index &amp;lt; (MaxNumber - 1))&lt;br /&gt;
            index += 1&lt;br /&gt;
            If (PrimeStorage(index) = True) Then&lt;br /&gt;
                For counter = index * 2 To MaxNumber - 1 Step index&lt;br /&gt;
                    PrimeStorage(counter) = False&lt;br /&gt;
                Next counter&lt;br /&gt;
            End If&lt;br /&gt;
        Loop&lt;br /&gt;
        For counter = 2 To 7999999&lt;br /&gt;
            If (GetBit(counter) = 1) Then&lt;br /&gt;
                If (counter &amp;lt; 50) Or (counter &amp;gt; 7999800) Then&lt;br /&gt;
                    Console.WriteLine(counter)&lt;br /&gt;
                ElseIf (needBreak = True) Then&lt;br /&gt;
                    Console.WriteLine(&amp;quot;...&amp;quot;)&lt;br /&gt;
                    needBreak = False&lt;br /&gt;
                End If&lt;br /&gt;
            End If&lt;br /&gt;
        Next counter&lt;br /&gt;
    End Sub&lt;br /&gt;
    &lt;br /&gt;
    Private  Const MaxNumber As Integer = 8000000&lt;br /&gt;
    Private Shared PrimeStorage As New BitArray(MaxNumber, True)&lt;br /&gt;
    Public Shared Function GetBit(ByVal index As Integer) As Integer&lt;br /&gt;
        If (PrimeStorage(index) = True) Then Return 1 Else Return 0&lt;br /&gt;
    End Function&lt;br /&gt;
    &lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Prime numbers using the &amp;quot;Sieve of Eratosthenes&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
5&lt;br /&gt;
7&lt;br /&gt;
11&lt;br /&gt;
13&lt;br /&gt;
17&lt;br /&gt;
19&lt;br /&gt;
23&lt;br /&gt;
29&lt;br /&gt;
31&lt;br /&gt;
37&lt;br /&gt;
41&lt;br /&gt;
43&lt;br /&gt;
47&lt;br /&gt;
...&lt;br /&gt;
7999811&lt;br /&gt;
7999813&lt;br /&gt;
7999847&lt;br /&gt;
7999909&lt;br /&gt;
7999913&lt;br /&gt;
7999919&lt;br /&gt;
7999921&lt;br /&gt;
7999963&lt;br /&gt;
7999993&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using an assignment operator to calculate a power of 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;Module Tester&lt;br /&gt;
   Sub Main()&lt;br /&gt;
      Dim exponent As Integer &amp;quot; power input by user&lt;br /&gt;
      Dim result As Integer = 2 &amp;quot; number to raise to a power&lt;br /&gt;
      exponent = 12&lt;br /&gt;
      result ^= exponent &amp;quot; same as result = result ^ exponent&lt;br /&gt;
      Console.WriteLine(&amp;quot;result = exponent: {0}&amp;quot;, result)&lt;br /&gt;
      result = 2 &amp;quot; reset result to 2&lt;br /&gt;
      result = result ^ exponent&lt;br /&gt;
      Console.WriteLine(&amp;quot;result = result  exponent: {0}&amp;quot;, result)&lt;br /&gt;
   End Sub &lt;br /&gt;
End Module&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;result ^= exponent: 4096&lt;br /&gt;
result = result ^ exponent: 4096&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>