55
VISUAL BASIC 0.1

VISUAL BASIC - Проф. Д-р. Ирена Стојковска - … Visual Basic 5.0 Visual Basic 5.0 ˘ ˇ ˆ ... 4 *ˆ*ˆ ) Visual Basic ˇ ˛ Visual Basic˘ ˇ

Embed Size (px)

Citation preview

������ �� �������� � � VISUAL BASIC

������ 0.1

������ � ���������� ����� ����������

2

�������1

��� ��� 1. ���������� � ����� ����� ���� Visual Basic 5.0 ……………. 3 ��� ��� 2. �����������. ������ ����� �� Visual Basic.

������: ������ � ���� ����� ������ �� ���� ������ ���� …….. 10 ��� ��� 3. ��� ����� � ������� �� Visual Basic ........................................ 13 ��� ��� 4. �������� For…Next �

�������� ��������� If…Then � SelectCase ............................................ 20 ��� ��� 5. �������� Do…Loop ......................................................................... 26 ��� ��� 6. ��������� ��� (Strings) ................................................................ 33 ��� ��� 7. ���� �� �� ����� (Arrays) .......................................................... 40 ��� ��� 8. ������ �� �������� �� ������ � ��������� � ������� ........... 46

1 ���������� ��������� �� ���� ������� �� ��������� ������ �� ��� �������� ������ �� ���� �� ������� 2006-2007 � 2007-2008

3

����������������������� �������������Visual Basic 5.0 �������� ��� �� ���������� � ��� �������� ����� Visual Basic 5.0 � �����������������������������������������������������

����������������� ������������������� ���������������

� ���� ������� � ������� Start �� Microsoft Windows� ��������Programs��������������Microsoft Visual Basic 5.0 ���Visual Basic 5.0 CCE����������������� !�����"������������������������

�� ���� #������ � ������ Visual Basic 5.0 ��� Visual Basic 5.0 CCE�$�� ������������������������������������%��New Project��������������&'������ ������������������ �������������������������� �����������"�������(������������&'������������������� �����������

������ ������������ ����������������&'������ Standard EXE"������������� � ������� Open� �� ��� � ������ �� �� ������� �������� ����� �������� �� Visual Basic ����� �� ���� �� ������%��� � ������������$������������������������������ ���������

)������������ ��������

���������� �������������Visual Basic 5.0����������

4

*�*�)������������ ����������Visual Basic

�� ���� ��� �� ������ ������ ���� � �������� �� ��� �������� �� Visual Basic������������������������������������������!���������������&'��������)������������������ ������������������� ������������Visual Basic��������������������������������� ������������������� ���������������������������������������������(���������������������� �(�� ����������������������������������������������

+������������������������������� ����������� ��� � ���� ��� Menubar"� ���� ���� ������� �� ������ �� �������� ������� ��������� �����������, ��������������������������������������� ���� ������� Windows'������� ��� ���� � ��������� �� �� �� ��������� �� ��(�%����������������������-������ ���������������File, Edit, View�����

)����������� �(������������������������� ���������

������� ���� ������ Toolbar"���������.������������������������ ������� �� ���� ����( �� ����(����� ������ � �� ��������� �� ����� �������������� ���������

)��� ���� � � ������������ ����� (�� ��� ������ �� ���������� �� ����� ���������� �������� �� ���������� ��� ������ � �������� � ����� ���� �������������������� ����� ��������������"������������������������������ ���� �� �� �������� ���� (�� �� ��� ������ �� � �������� ����� View���������������Toolbar��������������%�����Standard�

��� ����� �� �� ������ Toolbox"� ���� ������ ������� �� ��� ��������������������!�����������(��������� Image"�������� Label"�������� Command Button"� ��������� ������ Text Box"� ���� �� ���������� Scroll Bar" �������

��������� �� ��� � � � ������ �� �� ������� �� � � ������ ������� �������� ���� ����� � ����

+������������������������������������� �������� ������������"�

�� ����������������� �� ��������� �� �������� �������Toolbox ��� ������������������������View��������������������Toolbox�

�� ��������� �� ���� Form Window"� ���� �� ������ �� ����� ����!�����" � �&'�������� �� ��������� � ���� �������� +����� �� ��������(�� � �������% � ��������� � �� �������� �� ������� � ������ Object �� View������ ������������������� Project Explorer Window"�������� ��������������������������������������������&'�������������������������%�������� ��������� ����� �� ����� ������ ��� �/��� �� ���" �� ��������� View

Code �View Object ���������

5

0���&'������ �� ���������������������� !������"��� ����������� �� �� ������� .vbp" ���� � ������ �� ���� �������� � ���� ������������������&'����������� ������� ��� ���������.frm"���������������� ��������� ����������������������������������������������������� ������� ��������� � ��� �� ������� .bas" ��� ������ �������%�� � ����������������������������%��������������������������������&'����������������� ���������������������%������ ��

+� �� �� ������� ���� �������% �� �������� �� ��� �������� ������� ����"������������������������������������������������Project Explorer

���������������������������View ������ ��������������Project Explorer�

������������� ��� � Properties Window"����������������������������������!���������������������������+�����������������������%���������� �� ��� �������� ������� � ���"� �� ������ ����� ������ ��

��������� �� ������� � ������� Properties Window ��� �� ��� ������ �������������View��������������������Properties Window�

�� ��������� �� ������� �� ���� Form Layout Window"� ��� �� �������������������!�������������������������(�������&'���������+��� �� ������� ���� �������% �� �������� �� ��� �������� ������� � ���"� ��

���������������������������������������������Form Layout Window ���������������������������View��������������������Form Layout Window�

*�1���Visual Basic��������(������� ������ )������������ �������������������������� ��������� ��������� ���������� ��� ���������� ������� � ���� ��� ������ ������ +� ��� %�� ����������������&'����������������������������������������� ������������������+������������ ������������Visual Basic �����������������������%��� !��%��� ������" �� ������ �� ���� �� ������� ���%��� �� ����������� ���������������������������������������������������

� ���� $������������ � �������%�� � ������ ����(�� �� �������� �

�������View Code �������.��� ��������������������%������������������������ ������������������������������������������ Code��View������

�� ���� )����� �� �� ������ �������%�� � ������ �������� � �������� �������� Object" ����������������������(���General � �������� ���������Form����������!���������(��������������������

6

�� ���� -� �(� ���������� �� �������� �� ����� Procedure" �� ������������Load����������%������������������������(�����������������������%�������Form_Load�������������� ������������

Private Sub Form_Load()

End Sub

,�.� �������� � ������� ��� ������ ��� � ��� ���%����� �� ������������ ��������������� ������������ ���� ��������

������(��������&'��������������������� �����!�������+���������� �� ������� � ������ �� ����� � �� �������� �� ����� �� � ��������������Activate�����(��������������������

�� ���� �� ������ ���� � ���%������� Form_Activate ���� �� ����(��� �� ��������%���!������������������ 2��%���������������2"�������� ����������� �������������

a = 2 b = 3 c = a + b Print c

$������������������%����������������� ���������

�� ���� +� �� � ���������� �&'��������� ������� � ������� Start �����������������������������Run��������������Start������������������F5�������������� -� �(������������������!������ Form1"���������������(����������������1�3�����������4�#���(�� �������

7

���������Print�����������������������&��������������Print�������������� �����������������%�������������

�� ���� +��� � ��������� �&'��������� ������� �� ��������� � �� ��

!������ � ������� Close ��� ������� � ������� End �� ������ ���������������������Run��������������End�

$������������������������������� ������������������� ��������Visual Basic���� ���������������������������������%���

923 − � 73 ⋅ � 5:45 � 52 �� ���� �� � ��������� ��(��� ��� �������� ��������� �������� ��� ���� ����(��������������������

)52(16 +− � )34()712( +⋅− � 23:7212 ⋅− � 5324 43 ⋅−⋅ � , �������(���(����������� ���������%�����������������������%��������������������(����������� ����������������Visual Basic�-�����+ �� ��������� - ����������� * ��������� / �������� � ^ �� ���������� �

������ 52 ���������Visual Basic�������(�2^5"��������������������

$�������&'����������� ��������� �������(������� �������������������5�������������� �����������������������������������������������������&'�������

�� �����������������������������&'������� ���������������������� ����������� ����� ��������������� ������������������������� ������"

1932 22221 +++++ � �

������ #�������File������������������������������������New Project�6������������(�������������� ����������������������������������� � ��� �� �� � ���������� )� ������� �� ������� � ������� No� $���������� �� � �������� ����� � �&'��������� ����� ���� � ��������� ��������������� � ��� �������� ������ )������� � ���������� ��� � �&'������ Standard EXE"����������������OK�

������ $������� � ������%���� ��*�1�3 ������� ���� ��������� ��������� �������%�� � ����� � � � � �� �� ������� ��������� � ������ ����%�������Form_Activate�������������� ������������

Private Sub Form_Activate()

End Sub

��.����������� ������������������ ������������

S = 1 '��� � �� ��� ���� � �� ����� ����� �� i = 1

1: i = i + 1 S = S + 2 ^ (i - 1) If i < 20 Then GoTo 1 Print S '��� � �� ��� ���� � �� ����� 20-���� ��

�������������������� ���������������������������� ��������������������� -�� ��������� Visual Basic � �� ���� �� ������� ��� ����(������� ���� ����������������������������������%���������������

8

�� ���������%������������������ ���������

�� ���� ����������� � �&'��������� ������ ������%���� �� 4 ����� � �!����������������������*7894:4�

$� ������ ��� ���������������� ���������5����������������������������� ������������������������������� ���������������� �����������������������(���� �����������

)1(^2 −+= iSS ���������������� i ��1��17����������������������������������������������������, �.���������� ������������������������������ ������������ �� � 2=i ��� �( 31^21 =+=S � �� � 3=i ��� �( 73^23 =+=S � ��� �� � 20=i ��� �( 104857519^2524287 =+=S �

������ ;����� ��� ������������&'�������&������������&'������ ���������������������������� �������������� ���������������� ������������������"�������������������Save Project As…��File�����������������(���������������������������������������� ��������$�������������

�� �������� ��� ����� �� ����( � ������� Create New Folder � �� ���� �� ��������������������������&'��������������������������� ����������������� �����������������������������Save��������� ��������������������Form1.frm�Project1.vbp���������Suma(��������������������

����� ������������������� �������������������&'�������-��������(�������������������Remove Project ��File������

-���� ����� �� ������ ������ ����� ����� �� ������� !��%�� � ������� ������ ������ �� ������� ���� �� ��������������� +� ������� ���%�� ������������������ ������������(������.����������������������*777���������� �������������������������������� ��

*�3���������&'��������)��������������&'������������ �������Visual Basic #� �������(���������������Visual Basic�������� �����������&'������ ���������������������������������������������������&'������������������ ��� ������� �� �������� ���������� � ��� �&'������� �� �( ��� ���������������������������Remove Project��File������"���������������� ���� ��������������

9

����������&'�������������������(���������������������������<������������������&'��������� I� ����� ;�� �&'�������� � ���� ���� � ��� ��� �������� ���� ����� ��������������������������������� ��������������������������������������������������������������������������������!����"��������������������������� .frm� .bas ��� ��� ���������"� �� �( �������� �� �������� ���� ��

������� � ������� Save Project �� ������ �� ��������� ��� �� ������� �����������������File������

II������;�����������������&'��������� �(����������������Save Project As…��File�����������������(���������������������������������������� ��������&'����������������������������������������������������&'������ ������������������ !�����"��������������������&'��������� ���� ������ ����� �� � ���������� ���������� � �������� � ���������������������������������� ���������������������������������������������������������&'�������� .vbp"�

III� ����� ;�� �&'�������� � ���� ���� � ��� ��� �������� ����� ��������� � ���� ������������������� � ��� �������� ��� �������� .frm� .bas ������ � ��������" ��� �������� ������ ������� ����� ���� �� ������������������� �� � �������� �� �� �&'������� �� �( �� ����� ������ �� � ���������������������� ����������� ����(�� ����������(�� ���������� ������� ������������� ����� �������%�� � ��������� ����� �� ������� � ������ Save .frm As… ��� Save .bas As… �� �������� �� ����� � ����������" �� File ������ ������������������������������������������������)�����������(������������� � ���� �������� �������� ���� �������� ���� .vbp ����������"����������.vbp����������������(�������������������Save Project As…��File��������(��������������������(������������������

#������������ �����������������&'����������������Suma=��File������ ��������� �� ������ Open Project ... � ������� � �� ��� ������� �

������� Open Project �� ������ �� ���������� ������� �� ������� Suma������������� �� ���������� Project1.vbp � ������� � ������� Open ��� �� ������������ � ���������� Project1.vbp �� � �������� �&'��������� �� ����( ���������� View Code � View Object ������ �� � ������ ����� ��� �������%�� �!������� $������ ���������� ������ �� 2���������������2� ���� ����������������������������������������������������������������������(������������

+���������� � ��� �������� ����� Visual Basic �� �������� �� �������� ���������Exit��File������

*�8&����������(

, ����� ��� �� �� � �� �� ����(� � ����� ��(�� �� ���������� ��� ���� ��������� �������������� ������� ����������������������������� ������������������������������������������� ���������� �������������+���� %��� �� ��.������� ���� �� �� ���� � � ������� �������� �� ������%�� ������������������� ������������-������������� ������Help� ���������������� Microsoft Visual Basic Help Topics� �� ������ �������%�� � ����(��� ������������������������������������Contents�������� Index���������������������������Project Explorer�� ��������������� Index �������������� ��

10

������� � ������� Display� �� ������ �� ��������� �(�� ������ ��������������������������%������������ �����������������������������������������������������(��(���������������������������������%����$�������������

���� ������ � ! � ��Start ������������Project ������New Project ��������Open ������View Code ���� ������View Object ���� ����������Close �������End ����Create New Folder ���������������Save �����������������������Remove �������Exit �����Help ����(

��� ��� 2. �����������. ������ ����� �� Visual Basic. ������: ������ � ���� ����� ������ �� ���� ������ ����

������ $������� �������%������*�1�3�������������� 1.2.���� ��������� �������%�� � ����� � � � � �� �� ������� ��������� � ������ ����%�������Form_Activate�������������� ������������

Private Sub Form_Activate()

End Sub

��.����������� ������������������ ������������

n = Val(InputBox("Vnesi priroden broj n, n=")) Print "Site prosti broevi do brojot "; n For m = 1 To n

b = 0 For j = 1 To m

If m Mod j = 0 Then b = b + 1 Next j If b = 2 Then Print m

Next m

�� ���� ����������� � VB'��������� ������ ������%���� �� 4 ����� � �������������(���� ������������������ n ���������������47����������������)#���������������!����������������(����������������������47������������1�3�4�:�**�*3�*:�*>�13�1>�3*�3:�8*�83�8:��������+�������� �VB'�������������(��������(����?����� �� ������� 1.2�

11

����� ;��� �� ��� � ����������VB'�������&�����������VB'������ ���������� ���� �� ������� ����� �������� �� ���� ������ ������� ���� ����������� � ������ Save Project As… �� File ����� ���� (�� � �������� ��������"�

������������(���������������������������������������� �������VB'���������$����������������������������������������(�����������������

����(��������Create New Folder ��������� �������������������������VB'��������������������������� ����������������� ���������������������� ������� Save� �������� � �������� � ���������� Form1.frm � Project1.vbp ���������Primer 2(��������������������

)����� ��������VB'������������������������������ ���������������(�� ����������������� ��� �������� �� ��������� ���� n � 6� ����������������� n � ������ �(�!���������������������������(������������������ �� � �� +����� �� � �������� ������� ����� �� %�� ����(������� ���������������������������%�����������4�����������

12

� ���� � �� ������ � ���%������� Form_Activate �������� � ���������� ������������

n = Val(InputBox("Vnesi priroden broj n, n=")) Print "Site prosti broevi do brojot "; n br = 0 For m = 1 To n

b = 0 For j = 1 To m If m Mod j = 0 Then b = b + 1 Next j If b = 2 Then Print m, br = br + 1 If br = 5 Then Print br = 0 End If End If Next m

��������������������������������������� ��������������������������������� ����� ���� �� �� ����(� �� ���������� � ����<������ ��� ��� ���� ������(������������������� (����������������������(���������� ����2�����2��*1'������*4'������� ���������"�-������ ��� �������������%��������������������������

������ ;��� �� ��� � �������������������VB'�����������������-�������������������� ������������������"�$����������������%�����Save Form1.frm As…��File�������������������(�������������������������������������������!�������#���������������������Primer 2_1������������� �����������������Save� ������������������Form1.frm �������������$����� ������������%�����Save Project As… ��File�����������������(�����������������������������������������������������������������������Project1.vbp���������Primer 2_1�

13

n = Val(InputBox("Vnesi priroden broj n, n=")) Print "Site prosti broevi do brojot "; n br = 0 For m = 1 To n

b = 0 For j = 1 To m If m Mod j = 0 Then b = b + 1 Next j If b = 2 Then Print m, br = br + 1 If br = 5 Then Print br = 0 End If End If Next m

!�"�#� 2.

������ ������������������� ������������������VB'�������-��������(�������������������Remove Project ��File������ #��� ������� �� � �������� ������� VB'�������� �� ������� Primer 2�Primer 2_1�Primer 3=��File�����������������������Open Project ...���������

��������������������Open Project ������������������������������������ � VB'�������� ��� ������ �� � ��������� ������������ �� ����������Project1.vbp � ������� � ������� Open ��� �� ����� ������� � ����������Project1.vbp�� ����������������VB'�������������(����������View Code�View Object ������ �� � ������ ����� ��� �������%�� � !������� $������������������������2���������������2���������������������������������������������������������������������������(������������

!� ����, �� � ��� � ����������� �� ���������� � ������ Visual Basic 5.0,

������������ �� ��������� ��� ��� � �������� �� ����� �����, �� ����� � "#-������ � �������� � ��, � "�$��� �" ���� ������� �� � �%�������&� '� (�������)� � �� ������� $�� ���. ����� �� ����������� � ������������ ����� � ������� � ���

������, �� ����� �� ������ �� �� ��� ��� �� ��� (������) 1932 2...2221 +++++ , � ������� ������ ������ �� �� ������ ���� ����� ������ �� ������ ������ ���� n , �� ��� ����� � �� � ���� � ���������� � ����� ����� ������ �� ���� ������. $ ��, � ����� � ���� � �� ��� ������ �� �� ������� � �� ��� ������� �� ���� ����� ��� �����.

�� ����� � ���� �� �������������� �� ���� ����� ��� �����, ���� �� ����%�� � �� � ��� ������, � ���� ������ �� � �� �������� ���� �� �%��� � �� ��� �� ������ ����� ��� ������� ��� ������ ������. &� �� ����� � �� �� � ��� � �� ���, ����� ��� ��� �)� ���� �� ���.

�� ��� ���, � ����� �� ��� � �� �� ������� � �� �������� �� (��'��)���&���.

��� ��� 3. ���)��$��� � �(��� �� �� Visual Basic

'���������� � �� ����� � ������� �� �������� � ����� � �� Visual Basic � ����� �����%�. ��� �� �������� � � �� ���������� � ���(����� ������. )��, �� �� ������ � ���� ���� � ����� ����� ������ � ��� ������:

S = 1 i = 1

1: i = i + 1 S = S + 2 ^ (i - 1) If i < 20 Then GoTo 1 Print S

!�"�#� 1.

14

����, �� �������� �� ��� ������� � �� ��� (����� ������) �� ����� ��� S � i, � �� �������� �� ����� ������ (������� ������) ��� ��� n, br, m, j � b (�� ����� ��������� � �� ������� �� ���(����� ��� ������, �� �� ����%��� � �� ���, ��������� �����). $ ��, ��� ����������� ��� ���� ���� �� ���������� � ������� �*�� ���� �� ������ � ��.

!� �)�����&� �� (��)��$����� ���%� "� �� �������� ������, ���������� � $���� �� (�)��&� �)�&�. ���� � �� �� S �� ��������� �� ���, n �� ��������� �������� ���� �� ��� �� ����� � ������� ������, m ���� �������� ���� ��� 1 � n ��� ���� � �������� �� ����� �, � �� b �� �������� � ������ � �������� � �������� ���� m. �����, �)��� �� ������ (��)��$��� ���%� "� ��(�#���� �� %���� (��� � ������ �� �� ��� ����� ��� ����� Visual Basic), �)��� �� (��)��$����� ���%� "� ��"�*� ���)��'� 256 ��� � � �� �)�� "� ��"�*� (����� )���� (���� ���� ������ �� �� ��� ����� ��� ����� Visual Basic).

'���������� � �� ����� �� Visual Basic � ���� ���� �������� � ��� �� ���� ����������, ����� �������. +�� �� � ��� �����, � �%� �� �� ��������� �� ����� ��� �, ���� � �������, � ������� (�� �� ���� ����� ������������, ��, ���� � ���������) � ���� ��� ���(��� ������� �����������. !� �� ������ � ������ ����� ��� � ����� ��� ������. $ �� ����� � �� ������� ������ �� �������� �� ����� (�����: " ��� �� ���������") �� ��� Visual Basic (�����: "�������������, ��, ���� � ���������") � ��� ����� �� � �*�� ���� (�����: "����") � ���������� (�����: "�����"), ���� � ����� ��� � ������ ������� (���� ������, ���� ��� ������) ��� �� � ����� ��������� ������� (�������, �������, ��������). �����, ��� ���� ����� �������� ���� �� ������� � ���������� �*�� ���� �� ���� Variant, ��� ���� ���� ��������� ��������� �� �� �%� �� �� �� ������� ��. ��� ���, �� ����� � ������ �� �� �������, Visual Basic �������� ���� �� ����� ��� � ������ ��� ��������� �� �����. ��, �� ��� ������ Visual Basic ��������� ����� � ���� �� � ������� �� �� ������� �� ���� Variant, ��� � � ����� �� �*�������� � ����� ��� (�����: "������� ���������� � ���������").

�����, (��(���#$��� � �"��(��" "� �� ��*� ����� ��( �� ��+��)� �� ,� ��$�"����� (��)��$�����, ����� �� ������� ������ ����� �� �� �����������, ������ ����� �� �� ��������� ���� �� �� �� � �������. ������ ���� Variant, � �� ������ � � �� ������� Integer, Long, Single, Double � String. "� ������� ������ �� ����� ��� ��� �������, �*�� ���� �������� �� ����� �� ����� �� ������� ����� �������:

Integer ���� ������ �� -32768 �� 32767 Long ���� ������ �� -2147483648 �� 2147483647 Single ���� ��� ������ �� -3,402823-1038 �� 3,402823-1038

Double ���� ��� ������ �� -1.79769313486232-10308 �� 1.79769313486232-10308

String �������� �� 0 �� 65535 ���� (���� ��� ���, ���� � ���� ����)

Variant ���� ����� � ������� !������������ � ��� �� ����� � �� �������� Dim (������� �� dimension), �� ����� (General) (Declarations), �� ��� �� �������� ������ �� ������� � ������� �� ������, �� ����� � (General), ����� ���� ����� �� ������� �� ����� �� ������, �� ������� (Declarations). !� �� ��������� � ��� � ����� ������:

15

"� ���� ������, �� ������� S � i �� ��� ��������� ��������, �� ��� i �� � �������� �� 1 �� 20, � ������ ��� ������� ���� �� �� � S � ������� ��������, ����� ������ 1048575. ��, ����� ������ ������ � ��������, �j��� ��� � �� ������� i �� �� ��������� � ���� Integer �� �����, � S ���� Long �� �����. �� ��� ���, �� ����� (General) (Declarations) �� ������� � ������� ����� ��� ������: Dim i As Integer Dim S As Long � �����, ������� ����� � ����� ������ � �������:

!�"�#� �� ��*%�: .������ �� �� ��� �� �� ����������� �� ������� �� ������� ������. /������: ���� �� ����� �� ��� �������� ���� ������.

"�� � � �� �� �� � � �������� � ��� ������� ��� ������ ������, �� ���

� �� ��������� � �� ������� ��� � �� ������� � � � �� ����� � (����$��� �� �������&� �� �(��� ���� �� Visual Basic.

!�"�#� 3. ��������� �� ������� �� ������

baab

bababa ⋅

+−+ −++ 22 ,

�� a b ��� ���� . #���� � � �� ���� ���� a � b �� ���� ������, ����� ����� ���� �� ����� ��

����� ����� ��� �%� � ������� �� �� �� ��������� � ����: Dim a, b As Integer � �� ���, �� ������� �� �� � ���� ������, ������ � �� �������� � �� ��� �� ��� �������� �� � ����� ����� � ���� ������ �.�. Integer, � � Long.

�����, � � �� ������ � � ��� izraz � �� ������� ���� � �� ����%� �������� � ������� ��� ����� �� �� ��� ��� � (������, ���� � ���� �� � ����� � � � �� �����). 0��� � ���� izraz �%� �� �� � � ���� ��� ��������, � ����� ��� �� ����� � �� ��������� � ����: Dim izraz As Double

16

� ������ � �� ������� izraz �� � ���� ��� �������, ��� �� ���� ��� ���� � ����%�� �� ����� � ��������, � ��� � ���� ���, � ����� �� ��������� � �� ���� �� ���� Double, � � �� ���� Single. !� �� ������ � ���� ����� ��� �� ����� � �� ���������� Form_Activate, � �� ���� ������, ������ � ��� �������� � �������:

�����, ������������� ����� �� ������ � ���������� Form_Activate, �� ���� ������

������� ����:

.��� �� � �� ����% � � ��� ���� � ��� ���� �������� � �������, ����� ���

������� � ���� �� ��������. $��� �� ����� ������� �� ���%�� � � ���� �� ��������� ��� �� �������� �� Visual

Basic, ���� � �� ������ � ������ � � ������ � ���� ��� � �� �� � �� ��������� �������. ����,

a = Val(InputBox("a=")) b = Val(InputBox("b=")) If a - b <> 0 And a * b <> 0 Then Print "a="; a Print "b="; b izraz = a ^ 2 + b ^ 2 + (a + b) / (a - b) - (b + a) / (a * b) Print "izraz="; izraz Else Print "Izrazot ne e definiran za a="; a; " i b="; b End If

!�"�#� 3.

������� �(��� �� + �������� - ���� ��� * �%��� / ������

���$�*��� �(��� �� ^ ��������� \ ��������� ������

Mod ������� �� ������ & ��������

17

$ � �� � �� �� ������ (����������, (���������� �� ����-���&� �� �(��� ����, ����� �� ������� ������:

���� � ���� ������� baab

bababa ⋅

+−+ −++ 22 ��� �� ����� � Visual Basic �� �� ����� ���� a ̂

2 + b ^ 2 + (a + b) / (a - b) - (b + a) / (a * b), ��� ���� ����, � �� ��, �� a = 1 � b = 2, ��������� �� ��� ������� � �������� � �� ������� izraz, Visual Basic � �� �������� �� ������� ����: izraz = 1 ^ 2 + 2 ^ 2 + (1 + 2) / (1 - 2) - (2 + 1) / (1 * 2) izraz = 1 ^ 2 + 2 ^ 2 + 3 / (-1) - 3 / 2 izraz = 1 + 4 + 3 / (-1) - 3 / 2 izraz = 1 + 4 + (-3) - 1.5 izraz = 0.5 � ��� ��� � �� ����%� � *�� ��� ������ ��� ���� �������� 1 �� a � 2 �� b � �������:

!������ ������ �������� �� a � b ����� �� a - b = 0 ��� a * b = 0, �����

��� ��������� � ������� � � � � ����, � � *�� ���, � �� �� ��� ������ 2 �� a � 2 �� b � �� ����%� �������:

&� �� ������ � �� ���� ��� ( ��� ��%�) ������ �� ����������� � ��������� �� Visual Basic.

�����$� 1. $����������� � ��������� * � / (����� � �� �� ��� ���������), ������� � � �������, � ������������. ���� � �� ��, 2 * 6 / 4 * 2 = 12 / 4 * 2 = 3 * 2 = 6, ������ (2 * 6) / (4 * 2) = 12 / 8 = 1.5.

��������� �� ����-���&� �� �(��� ���� ( ) �������� �� ������� ������� ��� �� ��� ����� ^ �������� � ���� � ����� � �������� - ����������� � ������� ���� � �����

* / �%����� � �������� �� ������� \ ����������� ������ � ����

Mod ��������� �� ������ � ����� + - ���������� � ���� ����� �� ������

18

$����� ��%� � �� ������������ � ��������� + � - (����� � � ��� �� �� ��� ��������). ��, �� ��� ������ � � �, 2 + 6 - 4 + 2 = 8 - 4 + 2 = 4 + 2 = 6 � (2 + 6) - (4 + 2) = 8 - 6 = 2. �����$� 2. (��%� �� � �� ������ Visual Basic 5.0, ���� ���� ��������� � ������� �� ���������� ������ � ���� ����� ��� �����, � �� �� Visual Basic 6.0) +�� �� ����� ��� ����� ��� ���� �� ������� � ����������� � *�������� Val, ����� ��� � ��������� � ������� ��� a = InputBox("a=") b = InputBox("b=") � ��� ���� �� �������� � ����� ���, � �� ��� ������ ���� � 1 �� a � 2 �� b, �%� �� �� ����� �� �� ����� � ���������� izraz = -17.5. 1 �� �� �������? $ ��, ���� �� � � � ��*����� a � b ���� �� ����� ��� � ���������� � ������ ��������, ����� ���� ������, ���� ���� �� ������ � ����� �������� �� � �� � *�������� InputBox, �� ���������� � ���������� �������� (+), ������� �����. �����, Visual Basic ������ �� �� ���� �� �� ��������, � ���������� �������� (+) ������ ���� ���� �(��� ����� �$�(���&� (&), �� ������ ���������� � ��� ��� �� �����. !�����, ��������� ������� �� �������� ���� ���� ���(���. �� ��� ���� Visual Basic, �� ��� ������ ����� �� ���������� -17.5, izraz = 1 ^ 2 + 2 ^ 2 + (1 + 2) / (1 - 2) - (2 + 1) / (1 * 2) izraz = 1 ^ 2 + 2 ^ 2 + 12 / (-1) - 21 / 2 izraz = 1 + 4 + 12 / (-1) - 21 / 2 izraz = 1 + 4 + (-12) - 10.5 izraz = -17.5 ��� ������ �� � )���)���#�� ��(�����!!

�����, �� ��%�������� ��'� "�"�$����� ���"����� �� (��)��$����� �� (�)�- �� InputBox, "� �� ��������� +��� ����� Val.

!�"�#� �� ��*%�: �� a , b � c �������� ������, ��� ���� �� �������� � �������

)()1(

)()1(222

222

baccab

baccab

−+−

+++ .

.���� ���� �� ������ � ���� ��� � �� �(��� ���� �$�%����� "�$�&� (\) � ������� (�� "�$�&� (Mod). ��������� ��������, �� � �� �������� � �� ������� ������, ���� �� ��� �� ����� ����� ������ �������� � ���� j � ������� � m, ����� ���� ��������� �� ������ � m �� j � ��� (If m Mod j = 0 …). .��� ��� ������� �� ����� ������� ������. $ ��, ����� �� ���� �������� � ����������� ������� �� ������ � ��� ���� �����, � ������� ��������� �� �� ������. ���� � �� ��,

17 \ 3 = 5, 17 Mod 3 = 2,

����� ��� 17 : 3 = 5 (������� 2). (B��)������! 2��� �%� �� ����� �� ����� �� ��������� � ����� �� ������ (/) � ����� �� ��������� ������ (\), ����� ��� � ����� �� ���� ���� �� � �� ������ �����) ���������� ������� � ���� �������, � �� ��������� �� ���������� � ������� ������.

19

!�"�#� 4. ��� � � �� �� � ���� ���� �� �� 7 ��� ������� � �� ��� �� ����� �� �� �� �� � �� . '��� �� ���� �� �� ����� � ����� ��� �� ���� ������? +��� �� ��� � �� ������! �� �� ��, ��� �� ��� ������ � ������ 917, ����� ��� 7 * (9 ^ 2 + 1 ^ 2 + 7 ^ 2) = 7 * (81 + 1 + 49) = 7 * 131 = 917. ��, ����������� � ������� � ������� � �����, �%� � ��� ���� �� �� ����� � ���� �����*��� ������ (�� 100 �� 999), �� ����� ������� �� ������ � ���� �� ���������� ������� ����� (�� � 7 ��� ����� �� ������ � ���������� � ������ ��*��) � ������� ���� � ����� ���� �� �� ����%� � � *�� ���. ��, ������ ��� ����� � ���� ���� � �� �������� � ��� �����*�� ���� �� �� ����� � ���������� � ������� ��*��? ���� � ���� *���������� ��������� ��������� ������ (\) � ������� �� ������ (Mod), � � ����� �� ������� � ���� ��*���� 9, 1, 7 � ������ 917, �%� �� ����� ������� � ������� ���, 9 = 917 \ 100, 1 = (917 Mod 100) \ 10 ��� 1 = (917 \ 10) Mod 10, 7 = (917 Mod 100) Mod 10 ��� 7 = 917 Mod 10, ��������, �� 917 : 100 = 9 (������� 17), ��������� � ���� 917 \ 100 = 9 � 917 Mod 100 = 17, � ������������� � ��*���� � �������� 9 � �� ���. ����� �, �� 17 : 10 = 1 (������� 7), ��������� � ���� 17 \ 10 = 1 � 17 Mod 10 = 7, � ���������� � ��*���� � ��������� 1 � ��*���� � �������� 7 � ���� ���� �� ���. ���� �� � � �����. �� �� ������� ���� ��� �� � �� �������� �������� � ���� �����*�� ����, � � �� ������ � � ��� n, �� a � �� ����� � ��*���� � ������, �� b ��*���� � ������� � �� c ��*���� � ������ � �����*����� ���� n, � �� zbir �� ������� � � ��� � �� ������� ���� � �� �������� �������� � ������ � ���������� � ��*���� a, b � c. $ ���� ���� ���� �� ����� � �� ��� ��������� ��������, �� �%� � ������� �� �� �� ��������� � �� ����� (General) (Declarations) ����: Dim n, a, b, c, zbir As Integer � �� ������ � ���������� Form_Activate � �� � ��� � ������� ����� ��� ������:

�����, ������������� ����� �� ������ � ���������� Form_Activate, �� ���� ������

������� ����:

For n = 100 To 999 a = n \ 100 b = (n Mod 100) \ 10 c = (n Mod 100) Mod 10 zbir = a ^ 2 + b ^ 2 + c ^ 2 If n = 7 * zbir Then Print n; "= 7 * ("; a; "^2 + "; b; "^2 + "; c; "^2)" End If Next n

!�"�#� 4.

20

����������� �� ����� ��� (�� �� ������ �, � �� ��, �� ������ F5 �� �����������), � � *�� ��� � �� �� ����%� �������:

�����, ��������� � �������� � ���� �������� 133, 917 � 973 �� ���������� �����*��� ������ ��� �� 7 ��� ����� � �� ������ � ���������� � ������ ��*��. ���%���� ��'�, ���� ��"�#� "� �� ��-��� %�� (�)�- �� Visual Basic. � $ �� ����, ������� �� ���������� � ��� �������� ������ ��� ����� �� ������ ��"�#� ���� �� (��"������$� ��-����� (� ����� ������ ����� "�������", ���� ��� ������� � � �� ���� ������� ��� ��������), ������ � ��, ����� � ([email protected]), � �� � ���� � ���� Visual Basic )�*� "� (�)�'��.

������%��� � �� �� ������� � �� �������� �� (��'��)���&���. ������� ��� �������� � ���� �� �������� For…Next, If…Then � SelectCase, � ������ ������� �� �������� � ��� ������� ��� ������ ������.

��� ��� 4. ���$���� For…Next � ��$������ ��������� If…Then � SelectCase

������ ��� ������ For…Next � If…Then ����� � �� �� �����%� ��

����� �������. ����, �� �� ���� �� �������� � ����� �� ������ �� ����� ��� ��� �� �� ����%�� �. �� �� �%��� � �� ��� �� �� ��������� �� ���������� � ��� ����� �, � �� ����� � �� �� �� �����%� � ����� ������ ��������� � �� ����� ������� (����� � ��������) � ���������.

21

��������� � �������� For…Next � �������: For ������=������� To ���� [Step �����]

[����� ] [Exit For] [����� ]

Next [������] .��������� � �������� �� �������� For…Next: 1) ������ � � ������ �� ����� ���� �� ������� ���� ������ � ���������, ����� ����� ��� � �� ������� �������� ��� For � Next 2) ������� � ������� ������� � �������� 3) ���� � ������� ������� � �������� 4) ����� ���%��� �� ����� �� ����� ������ �� ���� �������� � ��������, ��� ���������� ������� �� ��������� ���� � 1 5) �������� Exit For �%� �� �� ������ ���� ���� ��� For � Next � ������� ���������� ��� �� ����� �� �������� For…Next, ����� �����%����� � ���������� � ������� ���� Next

!� ������%� � ����, �������� ��� �� �� ����� ������� � �� �����%�����, ����� � ��� �� � ���� *������� �������� For…Next. ��, ���� �� ��������� ����� �� Next �� ���� ����� �� ������� ���� �� ������� ���� ������ �� ��� ������, �� �� � ����� ����� �� ��������� � ��� � ������� ��� � ��� ������� ������� � �� � ����� ��� �� ����.

/������� ��������� If…Then �� ��� ��� �� ����� � ���%�� *�� �. ��������� � ������� ������ ��������� If…Then �:

If ���� Then ������1 [Else ������2] � ������� � �������� � ������� ������ � �� �������: ���� � � ������ ��� ��������� ����� ��� �� � �������� True (����) ��� False (�����) ���� ������� ���� � ������ ��� �, � ������� ��� � ������ �� �������� ������1, � ��� � � ������ ����� �� �������� ������2.

��������� �� � ���%���� ������ ��������� If…Then �: If ���� Then

[����� ] [ElseIf ����-1 Then

[����� -1]] [ElseIf ����-2 Then

[����� -2]] ... [ElseIf ����-n Then

[����� -n]] [Else

[������� ����� ]] End If

�������� ������ �� �������� � ������� ���: ������� � ������ ������� ����, �� �� ���� � ���������� � �������� ����� , � ���� � �������� ���� End If. +�� � � ������ ������� ����, ������������ �� �������� ���� � ������ ���� �� �������� ����-1, ����-2, �� �� ����-n, � ��� �� ����� �� ���� �� ��� ������ � ������ (� �� � � ��� �������� �� ���� ���������), ����� �� ���������� �������� ���� ���������� Then, � �� �� ���� � �������� ���� End If. $ ��� ���� �� �������� ����, ����-1, ����-2, �� �� ����-n, � � ������, ����� �� �� ���� � ���������� � �������� ���� Else. �� *�� ����� � �������� ��� ������ � ������ �� ����, ����-1, ����-2, �� �� ����-n, �� �������� $�'�#���� ��$� �� � �(��� ��. ��� �� �������:

22

!� �� ����� � ������ �� �� �� �� � ���� ��� ������ �� ���������� � ������� ������: !�"�#� 5. ��� � � �� ���� ������ �� � �� �� a b , �� �� ��� ���� �� ���� �� 54a 63 1b � �� �� 12. ������ � ���� �������� ������ (���� ������ �� ��� � ����������� �������� ������� � ��� ����� �� �������� �� ������� ����������), �� � ���� �� Visual Basic � �� ������� � �� �������� ������ ��� ��� �� ������� ������. ��, ������ �� �� ���� ����� � �������� � �� �����%� � ��� �� ����� �������� �� Visual Basic, � ���� � �� �� �������� � � ����� ���. #���� � a � b �� ��*��, ���� ���� , {0,1,2,3,4,5,6,7,8,9}a b ∈ . �� Visual Basic �

�������� �� �� �������� ���� �%� ���� �� *�� ����� � �������� 54a � 63 1b (� ��

�� � � 102 1024= ) � �� ����� �� �� �� �� ������ ���� ����� ������� � ����� �� 12. �� � �� � ��� ������� For…Next ��� �� a , � ������� �� b , ��� � ����� ��� �� ����, � �� ����� � ���� �%� ������, � �� ����� �� ��� ������ �� If…Then � ���� � ������� � ������� �� �������� � ��������� �� 12. ����, �� ������ � ������� ����� �:

����, � ������������� � ����� ��� � *�� ��� � �� ����%� ������� ��������:

��'�#�� ��$� �� = ������ �

<> ������� �� < � ��� �� > ����� � ��

<= � ��� ��� ������ � >= ����� � ��� ������ �

��'�#�� �(��� ��

Not � And � Or ���

Xor ���...���

Dim a, b, prvbroj, vtorbroj As Integer Dim proizvod As Long Private Sub Form_Activate() Print "Broevite od oblik 54a i 63b1" Print "cij proizvod e deliv so 12 se:" For a = 0 To 9 For b = 0 To 9 prvbroj = 540 + a vtorbroj = 6301 + 10 * b proizvod = prvbroj * vtorbroj If proizvod Mod 12 = 0 Then Print prvbroj; " i "; vtorbroj End If Next b Next a End Sub

!�"�#� 5.

23

!�"�#� 6. ��������� �� ������� �� y , ���

1 2 1 2

1 2 1 2

1 2 1 2 2

,,

/ , 0

x x ���x xy x x ���x x

x x ���x x x

+ >��= ⋅ =�� < ≠�

��� 1x 2x �� ������ ������ ���� . .��� ������ � ����� �� ����������� � ���%���� ������ ��������� If…Then. $ ��, � � � ���� �� �������� �� ���������� ��� 1x � 2x , �������� � y �� ��� ����� �������. !� ������%� � ���� �� �������� ���� 1 2x x< � 2 0x = , �������� � y � � ��*�����. ����, �� *�� ��� � ������� ����� �:

Dim x1, x2, y As Double Private Sub Form_Activate() x1 = Val(InputBox("x1=")) x2 = Val(InputBox("x2=")) Print "Za x1="; x1; " i x2="; x2; ", "; If x1 > x2 Then y = x1 + x2 Print "y=x1+x2="; y ElseIf x1 = x2 Then y = x1 * x2 Print "y=x1*x2="; y ElseIf x1 < x2 And x2 <> 0 Then y = x1 / x2 Print "y=x1/x2="; y Else Print "y ne e definiran." End If End Sub

!�"�#� 6.

24

!�"�#� 7. ����� � ���� �� ab

cd

, ��� , , ,a b c d �� ��� ���� �� ��� , 0b d ≠ .

���������� �� ��� �� � ��� � �� �������� � �����. ������� �������� � ���� �� ���������� � �������� , , ,a b c d , ����� � �� b ��� �� d ���. +�� � ����, �� �� ����� ����� (�� *�������� MsgBox) � �� ���� ����� ��� (�� �������� End). ����� �, �������� � �� ���������� a c ad bc

b d bd++ = , �� ��

������� ����� ������� �����, ���������� �� ��� �����, � ���� � � �������� ���� � ���� ����������. �����, � ����� ���� ��������� br ad bc= + � � ������� im bd= �� �� ����� � �� ����� ������ �������� ������� �� �� ���������� ���� ���������� �����. ������ � ��� � ���� � ��! � ��� ����� � ��� �� ������ � �� � ����� �� ��, � ���%�� � �� � ���� �� 1, �� ���������� ���� � � � ������� � � ����� �����, ����� �������� ������� (zd), ��� ��, �������� � �� ��������, � ��� � ����� �� � ����� � ������� �� 1. ����, �� ������ � ������� ����� �:

+�� � ������������ � ����� ��� ���� � a=3, b=5, c=2, d=8, �� ������ � ������� �����:

Dim a, b, c, d, br, im, nzd, zd, br1, im1 As Integer Private Sub Form_Activate() a = Val(InputBox("a=")) b = Val(InputBox("b<>0, b=")) c = Val(InputBox("c=")) d = Val(InputBox("d<>0, d=")) If b = 0 Or d = 0 Then MsgBox ("Ne moze imenitelot na dropka da e nula") End End If Print a; "/"; b; "+"; c; "/"; d; "="; br = a * d + b * c im = b * d Print br; "/"; im; If br < im Then nzd = br Else nzd = im For zd = nzd To 1 Step -1 If br Mod zd = 0 And im Mod zd = 0 Then Exit For Next zd nzd = zd If zd <> 1 Then br1 = br / nzd im1 = im / nzd Print "="; br1; "/"; im1 End If End Sub

!�"�#� 7.

25

������� ���� � a=7, b=3, c=2, d=5, ����� � ���������� � ������� ����� ������ �������� �� ������ ���������� �����, ����� �� � � � ������� �����:

+ ����, �������� �� ��� ����� � ������ ��� �����, �$ ��� VISUAL BASIC. /������� ��������� SelectCase �� ������� ���� �� �������� �� �������� � ���� ����� �� �� ���������� ������� ������. �������� ������� �: Select Case ���� ����

[Case ������( ) �� ������-1 [����� -1]]

... [Case ������( ) �� ������-n [����� -n]] [Case Else [����� ]]

End Select .����������� � ������ ������: 1) ���� ����-�� �%� �� ���� � ������ ��� ��������� 2) ������( ) �� ������ �%� �� ���� �� � ��� ������� ������� (� �� ��, Case 5) ��� ��� � �������� (� �� ��, Case 2, 6, 8 ��� Case Is<5 ��� Case 3 To 7)

�������� � ���� ������ ��������� �� ������ �� ��� ��� �� �������� ������ ���� ���� ����-�� �� � ������� ������ � ������ �� ������-1 ��� ������� ������� � ����� �� ������ �� ������-1 � ��� � ���� �� ���������� ����� -1 � ���� �����%��� ������������ � �������� ���� End Select. +�� �, ������� ������� ���� ���� ����-�� �� � ������� ������ � ������ �� ������-2 ��� ������� ������� � ����� �� ������ �� ������-2, � ���� ��� �. +�� ���� ����-�� � � ������� ������ � ����� �� ���������� ������ � ����� Case, ����� �� ���������� �������� ���� Case Else.

&� �� ��������� � ���� ������ � �������� �� ��. ���� � �� �� ����� � ��������� �� ������ � ���� ������ ���� n �� 3. �� ��� ��� �� ����� � ������� ����� �:

Dim n, ostatok As Integer Private Sub Form_Activate() n = Val(InputBox("n=")) ostatok = n Mod 3 Select Case ostatok Case 1 Print n; " dava ostatok 1 pri delenje so 3" Case 2 Print n; " dava ostatok 2 pri delenje so 3" Case Else Print n; " e deliv so 3" End Select End Sub

������� (�� "�$�&� �� 3

26

�� ����� � ���� � ���� �� ����� � �� �� ����%� � ������ �� ���, ������� � ���� ��� ������ ������. ����� ���, �� �%��� � ��� �� ��� �� �� ������� �� ���� ��� ������ ����� . ��)&�.!

������%��� � � ���� ����� ����� �� �� ���%� � �� ����� ����� ����� Visual Basic � �� ����� � �� �� ������ � ���� ��� ������ ������. ������ �������� ������ �� ������������ � ������ � ����������� �� �������� � ����� �����, �� ������ � �� �� ������� � ��������� �� Visual Basic, �������� For…Next � �������� ��������� If…Then � Select Case. "� ���� ���� � �� ������ � �� �������� Do…Loop. ��� ��� 5. ���$���� Do…Loop �� ������� �� ���(��� ���������� ������ For..Next ���� ������ ������ �� �������� ����� ���� ���, �������� Do…Loop �%� �� �� �������� ������ ������ ���� ����� ���� � �������� ��� ���. �������� ������ ������ � �������� Do…Loop, � ����� �� �� *�������� ���� ��� �� �������� ������� � ���� ����� � �� �������� �� ��� �����%��� ��� � �� �� �������� ������ ������. ��������� � ������� ���������� ����� � �������� Do…Loop �: Do While ���� [����� ] Loop ��� ������������ � ���� ����� � �������� Do…Loop, ������ �� �������� ���� � ������ ������� ���� � ��� ��� �� � ��(�$��� ����� �� ��������� ������ ����� � �� �����%��� �� ���������� � ����� ��� ���� ����� ����� ��� Loop, ������� �� ������� ���� � ��(�$��� ����� �� �������� ������ ����� � ����� ��� ������ �� ��� � � ����� ����� ��� Do While � ������ �� �������� ������� � ������� ����.

��� � ������ ������ ��%���� �%� � ������ ����� �� �� �������� �������� ��� ��� � ������� ������ �� ������� %������� ��$��. ��, %���������� �$��� ���%� "� �� ��%�'���. ��������� �� �� �� ������� ������ � ����������� � “����” ������ ������, ��� “ �%�” �� �� ����� �� ������� ����� ��� ������:

Dim n As Long Private Sub Form_Activate() n = 1 Do While n >= 1 Print n n = n + 1 Loop End Sub

���� (����"�� %�����

27

!������ �� ������� �� �� ���������� ���� ����� � (�� ������ Start �� ������ �� ����� ��� ��� �� ��������� � F5 �� �����������) � ������%��� ���� � *�� ��� Form1 ��� ���� �� ����� �� ������� ������ ��� ������ ������ (����� ��� ����� � ��� ���� � *�� ���), � ����� ��� ����� �� ������ �� ��������. ��� � ����� ��� ��� ������ �� �� ������ ������� ������. $ ���� ���� �? $������ ���� Visual Basic �� �������, ���� � � ����� �� ������������ ���������, � ���� �%��� � ����� �� �� ������������ � ������? ��, ��� �������� ����� �� �� ������� ������������ � ����� ���. ����-���&��� �� (��'��)��� �� (�������� �� (�������&� �� Ctrl+Break �" �����������, � (���� �� (�������&� �� ��(#��� End �" $������ �� ������)����. ���� ����� �� �� ����� �� �� �� ����� �� �� �� ������� ���������� ������. ���� � ���� ������� �������� ��� ������ ������, ������ � �������� � �������� �� �� ��*�� ����� �, ����� �� ���� � �� �� ������ ���� ������ ������ �� ������ k. .����,

�� ���� ���, �� �������� �� ������� ������� �� ������ k � ���� ���� � *�� ��� Form1, �� �%��� ��� � �� �� ����� ������ ���� ������ ������ �� ������ k, ����� �������� 1, 2, 3, …, k, � ����%� � ��� ��� ���� �������� � �����, � ����� ��� � � �� �� ������ (���� ��� � ������ �� k ���� ����� �� ������� � ���� Long). .��� ����� � �������� Do…Loop ���� �%��� ������ ����� ������ �� � �� ������ ��� �� �� �������� ��� � ���. $��� *������ � � � ������� ����� � �������� Do…Loop ���� ������� �: Do Until ���� [����� ] Loop �� ������� �� ���(����� �����, ���� ������� � ��(�$��� ������� ���� �� ��������� ������ ����� � �� �����%��� �� ���������� � ����� ��� ���� ����� ����� ��� Loop, ������� �� ������� ���� �� � ��(�$��� ����� �� �������� ������ ����� � ����� ��� ������ �� ��� � � ����� ����� ��� Do Until �� �� �� ������ ������� � ������� ����. ���� �������� ��� ������ ������ �� � �� � ������� ����� � �������� Do…Loop ������� ����:

Dim k, n As Long Private Sub Form_Activate() k = Val(InputBox("Vnesi priroden broj, k=")) n = 1 Do While n <= k Print n n = n + 1 Loop End Sub

���� (����"�� %����� "� k ((�� �%$��)

28

������ ���� � � �������. !�%�$�*��� �� (��)����� �� ��$���� �����! $ ��, ������

��$�� � ��'� ��� �� (���.�"����. ������� ��� ������ � �������� Do…Loop ���� �%����� ������ ����� �� �� ������ �� ���� ����. ��������� � ������� ����� �: Do [����� ] Loop While ���� "� ���� ������ ��� �� �������� ������ ����� , � ���� �� �������� ���� � ������ ������� ����, ��� ��� �� � ��(�$��� ����� �� �����%��� �� ���������� � ����� ��� ���� ����� ����� ��� Loop While, ������� �� ������� ���� � ��(�$��� ����� �� �������� ������ ����� � ����� ��� ������ �� ��� � � ����� ����� ��� Loop While � ������ �� �������� ������� � ������� ����. ������ ������ ������ �� � �� � ������� ����� � �������� Do…Loop � �������:

!������ �� ������ � ����� ��� ������ �� � �� � ����� � ������� ����� � �������� Do…Loop �%� �� �� ����� �� ����� �������� ���� � � ������� �� ��������� � ����� � ������� �����, ����� ���� � � ��%� ���� � �� ����� While ����, ���� ���� Do ��� ���� Loop. 3���� ��������! $ �� ������� � ������ �� k ������ ���� ��� � � ������, � �� �� 0 ��� ���� ������� ����, �� ����� �� ��� ������ � *�� ��� � �� ����%� ������ 1, ��� � � ���� ������ � ��������. �����, ���� ����� � � ����� �� �������� � ���� ������ ��� ��� �� ������� � ��� �� �� ����� � ������� ���:

Dim k, n As Long Private Sub Form_Activate() k = Val(InputBox("Vnesi priroden broj, k=")) n = 1 Do Until n > k Print n n = n + 1 Loop End Sub

���� (����"�� %����� "� k (���� �%$��)

Dim k, n As Long Private Sub Form_Activate() k = Val(InputBox("Vnesi priroden broj, k=")) n = 1 Do Print n n = n + 1 Loop While n<=k End Sub

���� (����"�� %����� "� k (���� �%$��)

29

$ ��������� � ��������� ����� �: Do [����� ] Loop Until ���� $ �� ���� ����� ��� �� �������� ������ ����� , � ���� �� �������� ���� � ������ ������� ����, ��� ��� � ��(�$��� ����� �� �����%��� �� ���������� � ����� ��� ���� ����� ����� ��� Loop Until, ������� �� ������� ���� �� � ��(�$��� ����� �� �������� ������ ����� � ����� ��� ������ �� ��� � � ����� ����� ��� Loop Until �� �� �� ������ ������� � ������� ����. �������� �� �� � ����� ��� �� �������� ���� ��������� ����� � �������� Do..Loop � �� � �� �� ������ ���� ���(��� ��������. '��� �������� � ���������� �������� � ���� �%$���� �� ��$���� Do…Loop ��� ,� �� ������� �� (��'��)��� ������ �" (����"��� �� ��"�#��� ���� ����)� "� �� ��-�)�. .����� �� �� ������� � ��������� � ��������� � �������� Do…Loop ��� � � �� �� ������� � ��'����� (��)��� �� ��-���&��� �� ����� )���)���#�� ��"�#�. ���������� �� �� � ���� ������ � �� ��� ��������� � ������ � ��*�� � ���� ���� � ������ � ������ �������� ������� � ��� �����. ���������� �� ������� ������.

!�"�#� 8. ��� � ����� � �� � ������� ������ n . $������ � �������� � ���� ������ � ��*���� �� �� ������ �� ����, ����� ������ � �� ��*���� � ������. ��� �%� �� �� ����� ���� ��� ������ n ��������� �� ���� (\) �� 10 �� ������ � �� ����� �� �������� 0. ��, �� �� �� ������� n �� �� ����%� ������� ����� �������, �� �������� ��� �� ����� m ���� �� ���� �� ����� ���������� � ������ ������ �� �������� Do…Loop. ���� �� ������ � ������� ����� �:

Dim k, n As Long Private Sub Form_Activate() k = Val(InputBox("Vnesi priroden broj, k=")) n = 1 If k >= 1 Then Do Print n n = n + 1 Loop While n <= k End If End Sub

���� (����"�� %����� "� k (���� �%$�� - "�(�$���)

30

!� �� ������ � ���� ���� ���� ���� ���������� ��������� ������? .��� �������� �� �������� �� ���� ��������� �� �������� � ��� �����. '��� � ������ ����� ���? �� �� ��, ��� 583n = , ����� ������� �������� �� m � br �� 583m = �

0br = , � �� ����� ���������� � ������ ������ �� �������� � �� ������� ������� �������� 583 \10 58m = = � 0 1 1br = + = . ����� �� �������� ������� 0m <> , ����� ���� m � ������� �� 0? #���� � ��� ����� � ������ �� �� ���� � ������ ���������� � ������ ������ �� ��������, � ���� �� �������� ������� �������� 58 \10 5m = = �

1 1 2br = + = . #���� � ������ � ������ ������� 0m <> , �� �� �������� ������ ������ �� �������� � �� �������� ���������� 5 \10 0m = = � 2 1 3br = + = . �� �� ���� � ������ ������� � ������� 0m <> . ��, ���� �� ��� � � ������ � ����� �� ����������� ������ ������ �� �������� � �� �������� �������� ���� Loop, � ��� � ������� � *�� ��� ���� ������ n , �.�. ������ 583 � � br , �.�. 3 ��*��. �� ������ ������� �����:

�������������� � ��*���� � ���� ��� � ���� �%��� ������ � �� �� ��������� �. $������������ � ��*���� � � ������ �� ������� ������. !�"�#� 9. ��� ���� � �������, ��� � ����� �� ������ ��� ��� �� �� �� � �� �� � ������� ������. ����� �� ����� ���� n � ��� ����? �� ������ �������� ������� � �������� � �������. 3� ��������� � ��*���� � ������ n ������ � �� ���� ���� �������� �� ������ (Mod) �� 10, � �� ��� �������� ���� � ������ n �� *�� ��� � ���� �� �� ����� ���������� � ������ ������ �� �������� �������� ���� �� �%� � �� 10 � � �� ������ � ��������� ��*��. ������ ��� ��� �� ������ � �������:

Dim n, m As Long Dim br As Integer Private Sub Form_Activate() n = Val(InputBox("Vnesi priroden broj, n=")) br = 0 m = n Do While m <> 0 m = m \ 10 br = br + 1 Loop Print "Brojot "; n; " ima "; br; " cifri." End Sub

!�"�#� 8.

31

"� ���� ����� � �� �������� � �� ������� ����� � �������� Do…Loop. 1 �� ������ �����? ������� ���� � ������ ��������� ��*�� �� �� ������ � �������� ���� ��� �� ������� m �� ����� ������� 0 �� ��� �� ����� � ���� � ��������. + ��� � ��� ��� �� �� ������ �� ����� ������� ������ �� n ���� ������ 583, � ���� �� ������ 29492:

��������� �� ���� � �������� 8 � 9 � ���� �� ����� ��� � ���� ������, � ������ �� While 0m <> �%� �� �� ��������� � ������� Until 0m = . '��� ��� �� ������� � � ��������, ������� ������� �� �� � �������� Do…Loop � �� �������� � ������ ��� �������� ������� � ��� �����. !�"�#� 10. ��� �� �������� �� ���� �� �� ��� �� ���� �� a b . ������ �� �� ����� ���� �� ������ �� ������ � ������ �������� ������� � ��� �����, ���� �� � ��� ���� ���������� �������� ��� )���������� �������� . ����� �� ���� ���� ��� �� ���%��� �� ���� ��� ������� ���� � �*�����, ����� ��� ������� � �� �� ���� �� �������. �"���������� (��'��)� �� %������� �� �"�������� �"��. �� ���� ������, �������� � ������� �� �� ��������� ���� ������ � ���� ������ � �� � ����� �� �������� a � b �� ������ � �� ����� �� ���� ��� �� ���� ������� �� � ����� ����� a � b . �� �� ��, ��� 45a = � 18b = , ����� �� ���������� � �������� �������� 18, 17, 16, 15, ... �� ������ � �� ����� �� ������ 9 ��� � ����� ���� �� ��� ��� ������ ��� �� ���� ������� �� �������� 45 � 18. ������ ��� ������� ����:

Dim n, m, obraten As Long Dim cifra As Integer Private Sub Form_Activate() n = Val(InputBox("Vnesi priroden broj")) obraten = 0 m = n Do cifra = m Mod 10 obraten = obraten * 10 + cifra m = m \ 10 Loop While m <> 0 Print "Obraten broj na brojot "; n; " e brojot "; obraten; "." If n = obraten Then Print "Brojot "; n; " e palindrom." Else Print "Brojot "; n; " ne e palindrom." End If End Sub

!�"�#� 9.

32

.������ �� �� ��� �� ������� ����� � ���� ����� �, � ���� �� �� ������ � �� ����� �������� ����%����. /������: �� ����� ������� �� nzs �� ��� �� ����� ��� �� �������� � ���� ����� ������ �� �� 1 �� ������ � ������� ���� ��� �� ���� ������� �� � �� ����� �����. $�� �� ������ ��� �� ���� ������ ��� �������� ������� ���������� �� ��� �������� �������� ���� ( , ) ( , )nzd a b nzs a b a b⋅ = ⋅ . ��� �! '��� �� ���� � ���� ��� �������� �� � ������� ������. !�"�#� 11. ����� � ���� �� a

b c

d, ��� , , ,a b c d �� ��� ���� �� ��� , 0b d ≠ .

���������� �� ��� �� � ��� � �� �������� � �����. ������� �������� � ���� �� ���������� � �������� , , ,a b c d , ����� � �� b ��� �� d ���. +�� � ����, �� �� ����� ����� (�� *�������� MsgBox) � �� ���� ����� ��� (�� �������� End). ����� �, �������� � �� ���������� a c a d b c

b d b d⋅ + ⋅

⋅+ = , �� ��

������� ����� ������� �����, ���������� �� ��� �����, � ���� � � �������� ���� � ���� ����������. �����, � ����� ���� ��������� br a d b c= ⋅ + ⋅ � � ������� im b d= ⋅ �� �� ����� � �� ����� ������ �������� ������� �� �� ���������� ���� ���������� �����. ����, �� ������ � ������� ����� �:

Dim a, b, nzd As Integer Private Sub Form_Activate() a = Val(InputBox("Vnesi go prviot broj, a=")) b = Val(InputBox("Vnesi go vtoriot broj, b=")) If a <= b Then nzd = a Else nzd = b Do While a Mod nzd <> 0 Or b Mod nzd <> 0 nzd = nzd - 1 Loop Print "NZD("; a; ","; b; ")="; nzd End Sub

!�"�#� 10.

Dim a, b, c, d, br, im, nzd, zd, br1, im1 As Integer Private Sub Form_Activate() a = Val(InputBox("a=")) b = Val(InputBox("b<>0, b=")) c = Val(InputBox("c=")) d = Val(InputBox("d<>0, d=")) If b = 0 Or d = 0 Then MsgBox ("Ne moze imenitelot na dropka da e nula") End End If Print a; "/"; b; "+"; c; "/"; d; "="; br = a * d + b * c : im = b * d Print br; "/"; im; If br <= im Then nzd = br Else nzd = im Do While br Mod nzd <> 0 Or im Mod nzd <> 0 nzd = nzd - 1 Loop If nzd <> 1 Then br1 = br / nzd im1 = im / nzd Print "="; br1; "/"; im1 End If End Sub

!�"�#� 11.

33

+�� � ����� ���������� � ����� ��� ���� � a=3, b=5, c=2, d=8, � �� ������ ���������� � ����� ��� ���� � a=7, b=3, c=2, d=5, � �� ����� � ������� ������:

+ ����, �������� �� ��� ����� � ������ ��� �����, �$ ��� VISUAL BASIC. �

"� ������� ������� “������� ������ � Visual Basic”, ���� �� ������� � �� ������� ���� � �� ���� �� ������ ����� ����� (�� ���� XXXII-3), �� �� ��� � ���� � �� ����� String, ��� �� ������� � �� ����� ��� ���������� ��������, ����� ��������� ���. "� ���� ���� � �� ������ � ��� � �� ���� �� � �� �����, �� ��������� � �� ���� �� *������� ��� �������� � ��.

��� ��� 6. /������$�� ���� (Strings)

�� ����������, ����� ����������� ���, � � �� �� �� �� ��� ��� �. ������ �� ���� �� ��������� � *�������� �� ���� InputBox, � �� �� �� ������� ����� k = Val(InputBox(""��� ������ ����, k=")) ���� � �� �� ����������� ������� � ���� *������ �� �� ����� ������� �� ���������, ����� ������� �������

����� �, ������ �� ���� ����� �� ����� � ����������� �� ����� ���, � �� � ������ �� �� �������� Print ����� � ���� � *�� ���, ���� � �� �� Print ""�� �� ������� ������ "; k; "." ��, ��� ���(����� ��� ����� ��� ���� �� ������ ��� � �����, � ��� � ������������ �� ���� � ������ 462, � �� ����� � ������� ����� � *�� ���

34

��� ���� ���� � *�� ��� �� ������ ������� �� ��������� (�� ����� ��� �������$�� ���� ��������� � ��� �� ���� ��� ��� �����, ���� ����, ����������� � �������� ����) ����� �� �������� � �� ������� k. $����� ����� �%� �� �� ����� � ��� � ���� �������� ����� ��� ��� �� ����� � ������� ����� ��� ������ izlez = ""�� �� ������� ������ " & Str(k) & "." Print izlez � �� �� ���� ��? ����, �� ������%� � ���� �������� � ��� *������ Str, ���� � ������ � *�������� Val (*������ ���� ������� �� ������� ����� �� *�������� �� ���� InputBox, �� �� ����������� ������� ����� �� ����������� ���� ��� � �� ����������� ������� � *�������� InputBox, �� ������� �� � ������ �������). .������� ����� �� ���������� *�������� Str, ����� ���� �� ����� �� ��, � �������� ������� � �� ������� k �� ������� �� ��������� �������. ������������� �� ����� izlez � *�� ���� ���� ��� ����� ��������� �������� ""�� �� ������� ������ ", Str(k) � "." �� �������� ��� �� ����� �� � �� � �(��� ����� �$�(���&� (&). "������, �� ������� �������, ������ �� ������� �������, ���� ���� �������� �� ��������, � �(��� ����� ��%���&� (+) ���� ���� ������ � ����������� �������� � �� ����� � �� ��� �� ���� ������ �������� ���� ���������� �� ��������. !� ������%� � � ��� ���� ��� ���� � ������� � *�� ��� �� ���� � �������� ��������, � ����� ��� ��������� � ����� ����� ������ ��� ����%�� ����� �� ������� �� �� � �� � ��������� ������� (EN) �� �������� �������� (MK). +�� ���� ��� ������ �� ��������� � � ������, ����� � �������� ��� �� ALT+SHIFT (��� �� ������� ������ ALT �� ����������� � ������ ��� � �������� �� ������� ������ SHIFT �� �����������) �� �� ���� �� ��� �� ����� ��������� ������. '��� ������ � ������ �� � ���� � ����%�� �� ������ ���� �� ������ � ������ � Windows.

"� ������ ���� � �� ���� (XXXII-3), ��� �� �� �� � �����, ������ � � �� ���� � ����������� � �� �������, �� � �� � �������� Dim �� ����� General Declarations. ����������� �� ����� �� ����������� � ��� ����: 1) Dim ����������� � As String * n 2) Dim ����������� � As String

������ ��� � ����������� ��������� ���� �� ������� � � *���� ���%�� n ������� �� ����� � ����� ����, � �� �� ��� �� �� ������� ime ���� � �� �������� � ���� �� 5 ����, � ���� � Dim ime As String * 5 .�� ���� ����, �� �������� � ���� ��� �������� �� �� ������� ime, � �� ���������� �� � ����� 5 ����. !������ �� ����� � ���� �� 5 ����, ����� ��������� ���� � �� ����� �� ���� ���� (��� ���� ���� ���������� ���, ���� ��� �� �����, ����� ��������� ���). !� ������%� � ���� ���� ����� ���%�� ���� �%� ����� ���� �� ��

�������� �� ����������� � ����������� �� ����� �� *���� ���%�� � 162 ����. '�� ������� ��� � ����������� � � ����������� �� ����� � ����� ���� �� ������ � ����, ����� ���%���� � �������, ���� ������� ����� ��� �����������

�� �����%� 2 ������ (����� 312 ) ����. �� ������� �� �� � �� ������� � ��������� �� ������������� � ����������� �� �����, � ����� � � �� �� �� � ���������� �������� (&), �� ��������� � ����� �� �� ����������� ������� � *�������� InputBox � ����� � *�� ���. ������� �� ������� ����� ��� ������ �� ����� �� �����

35

�� ������������ � "#-�������, ������ �� � � +��������, �� ���� � +���������, �� ����*���� ���� 5533553. ����� �� �� ������� ������� �����:

+�� �� ������ �� � � +�, �� ���� � '�����, �� ����*���� ���� 3355335, ����� �� �� ������� ������� �����:

!��� �� ���������� ��������� �� ������������� � �� ������� ime � �� ������� prezime ���� ������� � *�� ��� �� ����� � ������� ����?

���������: '��� � ��� ������ �� ���%���� � ����������� �� �����, ������������ �� ����������� �� ����� �� ������� ���, ����� � �������� ����������� � ������ � ���� �� �������� � ����������� �� �����! 6.1. ASCII ������������ )��*�����, +�� ���� Chr � Asc '��� ������� � �� ��������, ����� ��������� ���, ���� ��� ����� � �����, ��������� � ��� �� ����. ����� ��� (�����, ����������� ���, � ���� � ���� ����)

36

� � ���� ASCII ��" (American Standard Code for Information Interchange), �.�. ���� �� 0 �� 255. ���� � �� ��, ������� “A” � � ASCII ��� 65, ������ ������� “a” � � ASCII ��� 97, ������ ���� “ “ � � ASCII ��� 32. ASCII �������� � ���� ����, ����� ASCII ������������ )��*�����, �� ���� �� Help-�� � Visual Basic. 4������� Chr � Asc � ���� �%����� �� � �� ASCII ��� �� ��� � ������. ���� � �� ��, Chr(65) �� � ������� “A”, Chr(97) �� � ������� “a”, Chr(32) �� � ������� “ ”, ������ Asc(“A”) �� � ������� 65, Asc(“a”) �� � ������� 97, Asc(“ “) �� � ������� 32. "����� �� ������� ����� ��� ������ �� ��������� � �����, �� �� ������� "#-����� �� ����������� � ASCII ������ �� ���� � ������:

.����� � ������ ������� 87 �� kod � ������� “)” �� ��� (�� � ��� ���������, ���� �� ��� � ����� �� �� �� � ������ �������), ����� �� �� ������� ������� �����:

���������� �� ����� ��� � �� ��������� ASCII ������ � ����. 6.2. 0��� ���� UCase, LCase, LTrim, RTrim � Trim �������� ���� �� ����������� �� ����� � � � ��������� *���� ���� � ����, ��� ������� �� ���� ������ � ��� ���� �� � �������, ���������� ���� ��� ������� �� �� �� ��� �� �%��� �� ����� �� ��� � �� ���� � ����. ���� � �� ��, ��� �� �� ������� ime �������� � ���� �� 20 ����, ���� ������� � ����� �� �� � ���� �� 10 ����. "� ���� ������ �� ���� ��� ������� � ���������� �� ������� �� �����, ���������� � �� �� ����������� ������ ���� � ��������, � ������ ��� � � �������� � � ������ �� �������� � ����������� �� �����. $ ��, ������� ���� ���� � �������� �%� �� �� ����� �� �������� � �������� �� ����������� ��� �� �� ����������� ������ � *�������� InputBox. .������������ � ������ ���� � ��������, � ������ ��� � � �������� � � ������ �� ���� �� *������� LTrim, RTrim � Trim ��������. &� �� ����� � ����� �� �� �� ������� "#-�����. "����� �� ������� ����� ��� ������ �� ��������� � �����:

37

+�� � ������������ � "#-������� ������ ���� ������� � ����� ������ +�, � ���� ������� � ������� ������ ��� ����� ��� � �� ����, ����� ����� �� �� ������� ������� �����:

������ ������%���� ���� �� ����������� � � ��� +� ���� �� ��� ��� ��������� 20 ����, � ��� ����%� �� � 3 ���� � �� ������� ��������� ���� �� ����� ���� ����, ���� �� ����������� � � ��� � *�� ���, ����� � ��� �� ������ ����� “!” (�� � ��� ������� ������), ��� ���� ���� *�������� Trim �� ����� ����� ��� izlez1 = "������ " & Trim(ime) & "!" �� ��������� ������ ���� � �� ���� � �� ���� � � ��� �� ������� ����� ����� ��� � � �� ����.

�� ������� �� ���, � ��� � � ������ ������ �� ����� � �� ���� � ����� ����� � ��������� ���, � � *�� ��� ��� �� ����� �� ���� ���� � �����. � �� �� ���� ��? ��������� �� ����� ����� ��� izlez2 = "������ � ���� ������ � " & UCase(Trim(spisanie)) & "." .��� ��, ����� ������������� � ������ ���� �� Trim(spisanie), �� � �� � *�������� UCase, ����� �� UCase(Trim(spisanie)) ���� ����� �� ��������� �� ���� � �����. �� ����� ��� ������ � *�������� LCase, ���� ���� ����� �� ������� �� ��� �����. ��������: ������� ���� ��� �� ������ �� ���������� �� )�*� �� �� �������� �� ���� �� *������� LTrim, RTrim � Trim, � �� ��

LTrim(“ a b c ”) ���� ������� “a b c ”, RTrim(“ a b c ”) ���� ������� “ a b c”, Trim(“ a b c ”) ���� ������� “a b c”.

4������� UCase (�� ��������� ���� “upper case” ��� ���� “���� � �����”) � LCase (�� ��������� ���� “lower case” ��� ���� “ ��� �����”) �������� �� � � �������, ��� ���� ���� ��������� ���� ��������� ��� ����, � �� �� UCase(“Abc*Def+ k”) ���� ������� “ABC*DEF+ K”, LCase(“Abc*Def+ k”) ���� ������� “abc*def+ k”.

38

6.3. 0��� ���� Len, Left, Right � Mid ����������� *����� �� ��������� ��� �� �������� � ����%�� ����� � �� *������� Len, Left, Right � Mid. ������� � �� ������ � ��������� � ���� *�����, � ���� � �� �� �� � ������ �� ������� ������. �� � �� � *�������� Len (�� ��������� ���� “length” ��� ���� “���%��”) �� ��� ����� ������ ���� � ���� �� ����������� ��� �� ����. �������� ������� � Len (�����), ���� ����� � � � � ����� ��������� �� ����� ��� ���� �����. �� *������� Left (�� ��������� ���� “left” ��� ���� “����”) � Right (�� ��������� ���� “right” ��� ���� “����”) �� ����������� k ������������ ���� �� ��������, ����� �� ������ � ����������� �� ����� ��� ������� �����, ��������� �� Left (�����, k), Right (�����, k). !����� ��, �� *�������� Mid (�� ��������� ���� “middle” ��� ���� “������”) �� ����������� k ������������ ���� �� ����������� �� ����� ��� ������� ����� ������ � �� i-���� ���, ��������� � Mid (�����, i, k). !�"�#� 12. ��� ����� ��� ���� ���� �� ���!�� � ��� ����. '��� ��������� � ����� ��� �� ��� ��� ����� �����, � � ��%� ���� � ��� ��� ��� ���� � �����. �� �� ��, �� � ��� +�������� ������� “�” �� ��� ��� ��� ���, ������ ����� “�” �� ��� ��� �� � ��� ���. �� �� �� ������� � � ��%��� ����� � ���� ��� ����� �� ���� ����, � �� ������� � *�������� Ucase, ����� � ���������� � ������, ����� ����� ��� � ������� ����:

������%��� �� ������� ����� ����� ������ Print "�� ������ "; zbor; " ���� "; _

bukva; " �� ��� "; br; " ���."

��� �� ���� �� ���� �� ��������� �� ��� ��� �� ����%� ����� “_” (������ ��� ���������) � ������ �� ����� ���. $ ��, ����� “_” �� ������ ����� ���� � ����� ��� �� �� ��*� � ���� ��� ����� ��� ���. .��� ��� � ������� � ����� � ����� �� ����� ����� ��� ������. ��, ����� �� �� � � �� ������ ���� ����� “_” �� ������� �� � ���� ������� �����, ����� � �%� �� �� ������� ����� �� ���� ����� �� ������� �� ����� ��������� �� ���� ���, ��� � �%� �� �� ������� �� �� ���� � ���� ����� ��� *�� ���.

Dim zbor, bukva, zbor1 As String Dim bukva1 As String * 1 Dim br, n, i As Integer Private Sub Form_Activate() zbor = InputBox("Vnesi zbor") bukva = InputBox("Vnesi bukva") zbor1 = UCase(Trim(zbor)) bukva1 = UCase(Trim(bukva)) br = 0 n = Len(zbor1) For i = 1 To n If Mid(zbor1, i, 1) = bukva1 Then br = br + 1 End If Next i Print "�� ������ "; zbor; " ���� "; _ bukva; " �� ��� "; br; " ���." End Sub

!�"�#� 12.

39

!�"�#� 13. ��� ����� ����� �� � ��� ����� ��. ���� ������ � �� ������� � ������ ���� �� ������ � �� ������ ����� � ���������, �� *�������� Trim, � �� �� � � ����������� � ��������� ���� ����, � � �������, ���� �� ���� (��� ���� ���� ���� ��������� ������������ ���� �� ���� ����), ����� ��� ��� � ���� ��������� �� ��� ������� �� ������� �� ���� ����. !� �� ������ � ���� � ��� ���� ASCII ����� � ������ ���� � 32, � Chr(32) � �� ������� ���������� ���� ����. $ �� � �� �� ������ ��������, ������ ���� ���� �� ��������� � ���� ��� �� ���� � ������ � ������������ ���� ���� ���� � ����� ���� (Mid(rec,i,1)=Chr(32) And Mid(rec,i+1,1)<>Chr(32)), � ���� ������ � ������� � �� ��� ����� (br + 1) �� ������ � ���� �� ���� ����. ����, �� ������ � ������� ���:

���������� �� ����� ��� ���� �� � ������ “�������” ������� ���� � � ���� ���� � � ������ � � ����, � ��� ��� ������������ ����� � � ��� � �� ��� ���� ����, � �� �� ��������� “ 0�� �� ���� ��� �������. ”.

!�"�#� 14. ����� �� ��� ���� � ��� ����, ������ �� � ����� �� ������ ��� ��� �� �� �� ��� �� � ������� ������.

.������� ���� � �� *�� ��� � ���� ��� �� ������� ���� � �� ��������� � ������� ��� � ��� �� ������ � � �� ������ � � �������� ����. .����, �� ������ ����� ���:

Dim rec As String Dim br, n, i As Integer Private Sub Form_Activate() rec = InputBox("����� �������") rec = Trim(rec) br = 0 n = Len(rec) For i = 1 To n - 1 If Mid(rec, i, 1) = Chr(32) And _ Mid(rec, i + 1, 1) <> Chr(32) Then br = br + 1 Next i Print "�� ��������:" Print rec Print "�� "; br + 1; " ������." End Sub

!�"�#� 13.

Dim zbor, obraten As String Dim n, i As Integer Private Sub Form_Activate() zbor = InputBox("����� ����") zbor = UCase(Trim(zbor)) obraten = "" n = Len(zbor) For i = n To 1 Step -1 obraten = obraten & Mid(zbor, i, 1) Next i If obraten = zbor Then Print "������ "; zbor; " � ��������." Else Print "������ "; zbor; " �� � ��������." End If End Sub

!�"�#� 14.

40

Visual Basic ���� ���� � �%���� �� ������ �� ��������. ��� �� �� ������� � ��������� � ������������ *�����, ��� � ���� ���� ��������� �� � ���� ������. “5���� �” � Help-�� �%� �� �� ����� � ��������� *�����, ��� ��� �� ���������� ����� �%� �� ������� �� ������� ������� � ��������. ���� � �� ��, ����� *������ StrReverse �� ������� StrReverse (�����), ���� ������� �� ���� �������� ���� � ����������� ��� ��� ������� �����. �� ������, ����� ������ � ��������! ����, �������� “�������” ������ �� �������� �� ��������� ���, � ���������� �%� ��� ������� ����:

����, � Help-�� ��� �� ������ ������! �

.� ������� �� �������, �� ������� � ������ ������� � ����� ����� ����� Visual Basic �� �� ������� � �� � ����� ��� ����%��. ����� �� �� ������� � �� ��� ������, ���� ��� �� � ����� ��� ������ ��� ����� ��� �� �����, �� ���� �� �������� ��� ����� � ������ ��� �� � ������� ������ �� �������� � ������ ���. ����, ���� �� � �� ���%� � �� ����� �� �� ����� � �� ��� � �� ����� � ���� � ������ ��� ������.

��� ��� 7. ���� �" (��)��$��� (Arrays)

5���� ��� �� ���������� � �������� � � � ������ �� ������ � �� ����� ���� � �� ����� � ����� ���*����� � ��� �� ����� �� �� � ���� � �� ���.

������ �� �� �����, ���� ���� � � �������� � ����������� �� �����, �� ����������� �� ����� General Declarations �� ����� � "#-�������. ������ ��� � ����������� �� ��������� �� �������� �� ����� � �����, ����� ���� �� ��� ���� �� +����� '�$�)��� ��� "���)�#�� ����.

'��� ���� � �������� �� ��� � ���� �� � ����, � ��� �� ���� � �� ������� , ���� ���� ���� �� � ������ �� ������� � ������ � ���� ��, ����� ������� ��� �� ������� � ���� �� +����� '�$�)��� � �%� �� �� ��������� � �����. �� �� ��, �� �������������

Dim broj(1 To 4) As Integer �� � ������� ���������� � ���� �� ����� broj (��� � ������� � �) ��� ��� ��� broj(1), broj(2), broj(3) � broj(4) �� �� ���� Integer, ����� ���� ������, ������� �� ����� � ��� (��� ����� ������� �� � �� ��� �����, ��� � ������ �� ���������) � ������ � ��� ��� �� �� ���� � ��� �� ����� � 4 (�� ������ �� 1 �� 4).

Dim zbor As String Private Sub Form_Activate() zbor = InputBox("����� ����") zbor = UCase(Trim(zbor)) If StrReverse(zbor) = zbor Then Print "������ "; zbor; " � ��������." Else Print "������ "; zbor; " �� � ��������." End If End Sub

!�"�#� 14’.

41

��������. "� ���� ������� � ������ � �� � �� ����� ��������� ��� ������ ���� � �������� ��� ���� � �� �� �� ����%� �. ������ �� *���� ���� �� �� ����� ������ �� �������� ����� ��� � ������� �� �� ��� ������ ��� � �� ������ ���� � �� ����� ����� �� ������ �, ��� ������� �� ������ � �� ��� ������� � ����� ��� �� �� ����. �� �� �� ����� � ����� ��� ������������ � ��������� ����� �� ������� � "���)�#�� ���� ��� ��� � �������� �� General Declarations �� ��������� � �� � ���� � ��� �� ������� ��, � �� �� Dim broj() As Integer � ����� �� ������ � ���������� ������ � �� "����� �" ���� ���� ���� �� ������ �� ������� � ������ � ���� ��, ��� ������ ��� �� ����������� �. �� �� ��, ������ � � �� "������" ��������� ����� ������ ������ ���� �� ���� � ������� ������� � � �� ���������� �� �� ������� n, �� ����������� � ����� broj � ������� ��� ReDim broj(1 To n) As Integer. &� �� �������� � ��������� � ��� ������ ��� � ������ ����� �� �� ����� �� ������ ���� ������� ������.

!�"�#� 15. ��� � ������ �� �������� �� ���� ��"� n ����� ���� .

������� ������ �� � ������ � �� ����� �� �� ����� a(1), a(2), …, a(n). ��� ������� min � max � �� ��������� �������� �� ����� � ������ ��� ��� �� �� �����, � indexmin � indexmax �� �� ����� ��� � �� ��������� ������� � �� ����� ����� ������ ��� ��� �� �� �����. $������ � �� � ���������� � ��� ����� �� �����, ��������� � ���� ����� ���� ��� �� � �� ��, ����� ������ , � ���� �� ���������� � min, ����� max �� ��������� ��� ��� �� ���� � ���������� �� ��, ����� ������ ��� ��. ���� �� ������ � ������� ����� �:

+�� � ������������ � ����� ��� ������ �� ������ � ����� ������ 7, � ���� �� ������ ��� � ��� 7-�� ����� ������ 8, -4, 2, 1.5, -5.5, 10, 1 � ��� �������� (�� ������ �

Dim a() As Double Dim n, i, indexmin, indexmax As Integer Dim min, max As Double Private Sub Form_Activate() n = Val(InputBox("����� �� ������ � ����� �����, n=")) ReDim a(1 To n) As Double Print "���� �������" For i = 1 To n a(i) = Val(InputBox("a(" & i & ")=")) Print a(i); ", "; Next i Print min = a(1): indexmin = 1 max = a(1): indexmax = 1 For i = 2 To n If a(i) < min Then min = a(i) indexmin = i End If If a(i) > max Then max = a(i) indexmax = i End If Next i Print "���� � ������ "; min; " ��� �� ��� � "; _ indexmin; "-���� �����," Print "������� � ������ "; max; " ��� �� ��� � "; _ indexmax; "-���� �����." End Sub

!�"�#� 15.

42

��� �� ���� ����� ������ �� �������� �� ����� � ������ �� ���� ����� ������ ���� ����� ��� �� ����%��� ���� ������), ����� �� �� ������� ������� �����:

.��� ������ �� � �� ���� � � ����� ���� � ������, � �������� � � �� � ������ ��� �� �� ����� ��� � � ������ � �� �� �� ������� �� �� ���������� � ������ � ���� �� ��� � ��� �� �� ��� �������� �� ������� ������.

!�"�#� 16. ���� � �� ����� �� � ������� ������ (� ������ �� ��� �������� ��) ����� �� ����� ���� .

+������ �� ��� � �� ������� � � �������. "� ����� ����� �� ���� �� ����� ���� ��� ���� ������ � ��� ���� �� ����� � � ��� ���� �� �����, � � ������� ���� �� ����� � ������ ��� ��� � ����� ����. �����, �� ������� ����� �� ���� � �� ����� ���� ������ � �� ������� � �� �������� � ������ �� �� ���� � ������ ���� � ������� � �� ����� ����. .��� ������ �� �������� � �� �� �������� ����. +��� �� �� ����� � ���(����� ��� ������ �� �� ����%� � �� ��� � � i-�� �����, ��� � � � ��� �� ������� � ����� � ����� ���. ����, �� i-���� ����� �� ���� � �� ����� ���� ������ � �� i-���� � �� �������� n-�� ���� (��� �� ������� n � �� ������� ������ ���� � ����� ����� ��� ���� � �� �� ������ �), � ��� ���� �� � ����� ������ 15, � ���� �� �� ���� � ������ � i-���� ���� �� �� ����� ���� min ���� �� ��� �����. ������ ����� ������ � ���� �������� �� �������:

Dim a() As Double Dim b() As Double Dim n, i, j, indexmin As Integer Dim min, pb As Double Private Sub Form_Activate() n = Val(InputBox("����� �� ������ � ����� �����, n=")) ReDim a(1 To n) As Double ReDim b(1 To n) As Double Print "��������� �����" For i = 1 To n a(i) = Val(InputBox("a(" & i & ")=")) b(i) = a(i) Print a(i); ", "; Next i Print For i = 1 To n min = b(i): indexmin = i For j = i + 1 To n If b(j) < min Then min = b(j) indexmin = j End If Next j pb = b(i): b(i) = min: b(indexmin) = pb Next i Print "��������� � ������� �������� ��" For i = 1 To n Print b(i); ", "; Next i End Sub

!�"�#� 16.

43

/�������� � ����� ��� �� �� ����� b � �� �� �� ������ ������� ��� a, ������ ����� b ������� �� ���� �� �� � ������ ��� �� �������� �� ������� � ���� �� � ������� ����%�� � ��� ��� �� ����� �. ��� ������� pb � � ��� �� ����� ���� ����� �� �� ���� �� �������� �������� � i-���� ��� �� b(i) �� �� ���� ��� ������� �� ������ � ��� ���� �� ����� b ��� �� ���� � ������ ���� � ���� �� ����� ��� ��, ����� ��� ���� b(indexmin) �� ����� � �������� �� pb, � ������ � i-���� ���� b(i) ����� �������� � �� ����� ��� �� min ��� b(indexmin). ���������� �� ����� ��� � 7-�� ������ �� ����������� � ���(����� ������ � ����� �� �� ������� ������� �����:

+ ����, ������� �� �� ��� �� �� ���������� ���� ����� � �� ���������� � ���� �� n ����� ����� ������, � �� ������� �������� (������ � �� ������ ��� �� �� �����). +�� �� ��������� ���(��� ����%���� �������� , � �� ����� � ���� � ����, � � �� �� ���� �����. &� �� �� � � �������� � ������� ��� ������ ������ �� � �� � �������� – ��� �� �� �����.

!�"�#� 17. ��� �� �������� �� ���� �� �� ��� (� #) �� n �� ��� ���� .

"� �������� 10 �� 2�������� 5 �� �� ������� XXXIII-1 �� ����%�� � ������� �� ������ � ������ ��� �������� ������� � ��� �����. $����� ����� � �� ������� � � ���� �� �������� a(1), a(2), …, a(n). ������� �� ���� � �� ����� �� ���� ������ � ��� �� �� � � �� ����� ������� � �� ������� nzd. ����� � �������� � nzd �� � ����� � �� ����� ������ �� ��� �� ������ � ����� � ���� ����� �� �������� a(1), a(2), …, a(n) � ����� �� nzd. ���� � � �� ������ ������ ��� �������� �������. ������ ��� � �������:

Dim a() As Integer Dim n, i, p, nzd, min As Integer Private Sub Form_Activate() n = Val(InputBox("����� �� ������ � �������� �����, n=")) ReDim a(1 To n) As Integer Print "���("; For i = 1 To n a(i) = Val(InputBox("a(" & i & ")=")) Print a(i); ", "; Next i min = a(1) For i = 2 To n If a(i) < min Then min = a(i) Next i nzd = min p = 1 Do While p = 1 p = 0 For i = 1 To n If a(i) Mod nzd <> 0 Then p = 1 Next i If p = 1 Then nzd = nzd - 1 End If Loop Print ")="; nzd End Sub

!�"�#� 17.

44

"� ����� ��� �� ������� p ���%� ���� "���%����". $ �� ��� ��� � � ������� 1 ����� �� ��������� � ��������� � �������� � nzd ����� ��� �� ���� ���� ��� ���� �� ����� a(1), a(2), …, a(n) ��� � � ����� �� nzd. +�� �������� � "���%������" p ����� 0 � ������ � �������� Do…Loop ����� ��� ���� ���� ������ ��� �������� ������� � ����. +�� �� ��������� ����� ��� �� 4-�� ������ ������ 60, 24, 144 � 72, ����� �� �� ������� ������� �����:

��� �� �� ��������� �� �� ������� �� � ����� ��� �� ������ � �� ����� �������� ����%���� (���) � n ������ ������. �� ����� ���, �� ��� ��� ���� � ����� �� ������ ��� �� �������� a(1), a(2), …, a(n) � � �� ����� ����� �� 1 �� ������ � ������� ���� ��� � ����� �� ����� �� �������� a(1), a(2), …, a(n). 2���, ���?

"� �� ������ XXXII-2 �� �� ����%��� � �������� �� ������ � ���� ����� ������ �� �������� ���� n � ��� ��� ��� �� ����� � ���������� � ����� ���� �� 1 �� n � ��� ������ � � ���� 2 ��������, ����� ��� � ���� � �� ������ � � *�� ���. .��� �� � �� ���� � ������ ������, � � ������ ���. !�"�#� 18. ��� � � �� ����� ���� � �� ��� �� ���� n �� ����� �� ����������� � ��. ��������� (276 ..� – 194 ..�) ��� ����� ��� ������, ���, ���������, ������* � ������ . 6��� ������ ����� ���� ��� ���� �� ��� ���� "����" (������� ���� ���) ����� ��� �� ��� ������� �� � ����� �� ���� ����� � 6���������. �� � � �� ������� ����� �� � �� ����� ��������� �� ������*����� ����� � ���%��, � ����� ��� � � ����� ���� ����� ��� �� ��� ���� ���������� � �� ���� � ��� �������� ���.

6��� ��������� ��������� )������� �� � ����� � ������ �� ����������� � ������� ������ ��� �������� ������, ���� ���� ������������ ����. .��� ���� �� ������ �� ��� ��� ��� �� ��������� ���� ������ �� 2 �� ������ n (� �� ����� ������ 1 ����� ��� ��� � � ��� ���� ��� ���%�). "� ����� ����� �� ������� ������ 2 ���� � ���� � �� ���������� ���� ������ ����� � �� 2 � ������ �� 2. "� ������� ����� �� ������� ������ 3 ���� � ���� � �� ���������� ���� ������ ����� � �� 3 � ������ �� 3. ������� ������� ���� � 5, �� ������� ���� � ���� � �� ���������� ���� ������ ����� � �� 5 � ������ �� 5. .��� ������ �� �������� ������� �� ������ ][ n (��� ���

�� n ), ����� ��� ���� ��� ���� ������ �� ������ n ��� ������� ��������� ������ �� �����. �� �� ��, �� �� ���� � ���� ����� ������ �� �������� ���� 50. ��������� �� ����������� � ���� �%� �� �� �� �� � � �� ��������� 0 � ������� ����. #���� �

7...]07106781,7[]50[ == , � � � � 4 ������ � "�����������" �� ���� � �������� �� �������� 2, 3, 5 � 7 ���������, � �� �������� 5-�� ����� �� ������� � � ����������� "���������" ������ ���� �� �����. ����, ������ � ���� ���� ����� ������ �� ������ 50 ��: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 35, 27, 41, 43 � 47.

45

"��������������" �� ����� ��� � �� ������ � ��� � � ���� ���, �� ���������� � 0 � ����� � ����� ��� � ����� �� ������ �� ��� ������� � �������� �� �������� ����� (����� �� ������� ������� ����). ���� �� ������ � ������� ����� �:

!� �� �������� � ������ ���� �� *������� � �� ������� ��� �� �������� � �� ����� ���. 4�������� Sqr � *������ �� �������� ����, � *�������� Int � *������ �� ��� ���. ���� ][ n �� ����� � Visual Basic � Int(Sqr(n)). ��� ������� br �� ������� � �� �� ���� �������� ����� ������ �� ��� ��� ��� � *�� ���, ���� ��� ��� ������� ������� 10, ����� ��� � � ������� �� � 10 ����� �� ��� ������, ����� �� ���� � � �� ��� �� ���� ������ Print, � � �������� br � �������� � ������� 0. ���������� �� ����� ��� �� 50=n � � �� ������� ������� �����:

Dim a() As Integer Dim n, i, j, br As Integer Private Sub Form_Activate() n = Val(InputBox("����� �������� ���� n=")) ReDim a(2 To n) As Integer For i = 2 To n a(i) = i Next i For i = 2 To Int(Sqr(n)) If a(i) <> 0 Then For j = i + 1 To n If a(j) Mod a(i) = 0 Then a(j) = 0 Next j End If Next i Print "������ ����� <= "; n; " ��:" br = 0 For i = 2 To n If a(i) <> 0 Then Print a(i); ", "; br = br + 1 If br = 10 Then br = 0 Print End If End If Next i End Sub

!�"�#� 18.

46

!������� ��� �� ������ � ������� ������, ���? + ����� �� � ����� ����������� ��� � ��� )������� �� ��� ���� ���������� � �� ����? 1 �� ������ ���? ������ � ����� � �� ����� ������. �

"� ���(����� ������� 7 �� �� ����%�� � ���������� �� ��� �� �� �����

(Arrays), � �� ����%�� � �� � � ����� ��������� ���. ���� � �� ��������� ��� ������ ������ �� ���������� � ��� � �������� � ��� � ��� ����������. �� ����� 1 ����%�� � ����� ��������� ��� � ���� � � 5 ������, � � ����� 2 ����%�� � ����� ��������� ��� b ���� � � 5 3 15⋅ = ������ ��������� ����� ���������� � ����� ������, � �� �� ��� ���� (4, 2)b �� ���� �� 4-���� ������ �� 2-���� �����. �������� �� ����� �� �� ����� � ��� ��� ����� ��� ��� ��������� �� � ������� �� ��� ��, � �� �� ��� ���� ��� ��� � ����� b �� ������, ����� �� ���� �� ������� ������� Integer, Long, Double, Single, ��� �� ���� ��� ��� �� �������, ������ �� ���� � ������� String, � �����. �� ����� �� ������ �������� ������� ������� �� ������� �� �� �� � ����� �� ����� ����� ������� ���. �� �� ��, ����� �� ����� 2 ���� � �� �� ��������� � �� ��

������ � � �����, ������� � ��� ����� � �������� ���( � 5 ������. ��� � �� ����� � ��� ��������� �� ����� ����� �� ����� � �� ��� ������, ���� ��� �� ����� ����� � ����� � �����, �� ������� ������� � ��� ����� � �� �������� ����� ����� �������� ���( � �������. '�� ������ ����� � �� ����%� ��� ���� (4, 2)b ? �� � ����� �� �� ������� ���� ��� � ���� ������� � ��� ���� � 4-���� �����. ��� ����������� � ��������� � ���� ��� ��������� �� ����� ����� ����� �� ����� �� ���� String, �� ������� �� ���� Integer, � �� ������� �� ���� Double. '�� ����� �� �� ����� � � �������� ���, � ������� �� ������� � �� �� ���� ����� � ����� �� �� ��*���� � ���� ������� �� �� �� ���� Variant, � �� ��� ������ �� �� � ����� �� �� �������� ����� � ���� �� � �������, � � �������� � ����� �������� ����� ����� ������� �� ��� ����� � � �� ���� ����� �������. ���������� � �������� ��� �� �������� � ������� “������” �� ������� � �������� �� �������� �� ������ � ��������� � ������� �� Visual Basic.

(1)(2)

(3)

(4)(5)

aa

a

aa

����� 1

(1,1) (1, 2) (1,3)(2,1) (2, 2) (2,3)

(3,1) (3,2) (3,3)

(4,1) (4, 2) (4,3)(5,1) (5, 2) (5,3)

b b bb b b

b b b

b b bb b b

2-�� �����

4-�� ������

����� 2

47

��� ��� 8. ��%��� �� "������� �� #���&� � ��(�-���&� �� (�"��� �

!��������� �� ������ � ��������� � ������� �������� �� ���������� � ������� ��� ����� �%� �� �� ����������. ����������� � ��������� �� ���������� � ����� ���� ��� ����� ��������� ��� ����%�� � ����� 2. $ ��, ��������� �� ��������� �� ������ ������ ��(��� ��� �����"�, � �� ��� ������ ������ ����%� ������ ���� � (�$�&�, ���� ��� � ����%�� � ����� 3.

�������� �� ��� ���� ����� ����%�� ������� �� ��� ��. �� ��� ��� ����� ���� �� ���������� � �� ��� �� �������#�� "�+������ ��( �� (�"��� �. ������ ��������� ��*���� �� � ������� �� ��*���� �� ����"%��� Type, ������� �� ��� �������� ������ ����"��"�� )�"�$ ���� � �� ������� .bas � ���� �� ������ � "#-������� ���� ���� Project ���� � �� ������ �������� Add Module. �� ���������� ����� ���� ������� ��� �� ��� "#-����� ������ � �� 2������� 1 � 2. ��������� � ���� ������ �

[Private | Public] Type ��� � ����������� As � � ����������� As � �

... End Type ���� ��� � � � ��� � ����� ��������� ��*���� �� � �������, ����������� � � ��� � ��� ���� ��� �� ������ � � ��� � �� ������� �� ����� ��������� ��*���� �� � �������, � � � ���� �� � �������� �� � �������. !��������� � ���������� Private ��� Public ��� ������ Type � � �����%�����, � ������ �� ��� ���� ����� �� ������� �� ��*���� �� ����� � *�� ���, �� �������� ���� � ���� ��� � �� ������� �� ������ �� *�� ��� ���� ������� ��� �� "#-�������.

#���� � ��� � ����� ������� �� ������ �� �������� �� ������ � ��������� � �������, � �� ����%� � � ��� � �%� � ���� ��� �� � � ���� � ������. &� �� �� ������ � �� � ����(����� �� �, ������, ����� �� ��� �%� �� �� ������%� ��������� � ����������. �����, ��*�������� � ����� �� � ������� � �� ���� � �� ����� General Declarations �� ����� � *�� ��� Form1 �� �������� � �������� Private ��� ������ Type (���� Visual Basic � � �� �� ��*��� ����� ��������� ��*���� �� � �������). �� �� ��, ��� ���� � �� ������ � �������� �� ���� � �� ������� � ������� �� ������ (� � � ���� �, ����� � ��� �����), ����� � ��� ������ �� �� ��*���� � ����� �� � ������� Ucenik � ����� �� ������� ���� Private Type Ucenik ime As String*30 ocenka As Integer End Type

����

���

����� 3

48

�����, ������� �� ������� zapis � �� ����� �� ����� �� � ������� Ucenik, ��� � � �� ��������� ���� �����, ����� Dim zapis As Ucenik � ����� �� ������� zapis.ime � zapis.ocenka � �� ����%�� ��������� �� � ��� � ������� � ��� ����� � ������� ��������.

����� ����� � ��������� ��� �� ����%� � ����� � ��� �� �������� �� ��, �� Visual Basic ��������� � ��� ���� � �������� �� ������ � ��������� � �������: ������ ����$�� "������� (������� �� �������� �� ��������, ����� ��� ��� �� ��������� �� ������ �� ��������� �������), "������� �� �$�#��� (�����( (���� ������� � ��������� �� �� *���� ���%�� � � � ������� ����� �� ����� �� �������) � %������ "�������. �������� �������� ������� � ���������� �� ������ � ��������� � ������� �� ��������� .txt � .dat. ��, �� �� ������ �%� �� �� ������ �� ���� ��� ��� �� ���������� �� ������ � ��������� � ������� ����� ���������� �� �� "������", ����� �� �� ������ �� ��. ��� �� ���� �� ����"%��� Open, ���� ������� � Open ������ For �� As #������������� [Len = ��� ������� �] ���� ������ � ��������� ����� ��� �� ���%��� ���� ���� �� ���� ���������� �� ���� �������� � ���� � ������� � � (� �� �� "c:\spisok.dat" ���� �������� � �� ���������� spisok.dat ���� �� ���� � c:), �� � ����� � ����� �� ���������� � ��� �%� �� ���� ��� �� �������� Append, Binary, Input, Output ��� Random (������� ���������� � ����� ��� � �� ������ �� � ��� � ������� �� ��� �� �������� Append, Binary, Output ��� Random), ������������� � ���� ���� �� 1 �� 511 � �� ��� ���� ���� � �� ����� � ����� ��� �� ������� ���������� �� �� �� ����� ��� �� �� ������ ���� ���� �� �� � ��� ������� � � ���� ���� � �� ��� ������ � 32767 (�����), � ���� ��� �� ��������� � �����%����� ��� ���������� �� ������ ����� ���� �� ��� ������� � �� �� �, ���� ��� ���� � �� ��� � �, ���%���� � �� ������� ���� �� �������� �� ���� ������. .����� � �� ������ �� �������� �� ��������� ��������, ��� ����� �� �� "�������" �� ����"%��� Close ���� � � ������� Close [#�������������] ���� ������������� � ������ �� ��� � ������� ���������� � ������� ��� �� �������� �� ��������� ���� ������� ��������. ������ ���������� � ����� � ��� �� �������� �� ����� �� �������, � �� ����%� � � "��������� �� �$�#��� (�����(. '� ���� �������� �� �������� �� �� Random ����� �� ������� ����� �� �� � ���� �� ���������� ����� �� ��. !� �� �������� � ���� ����"%��� Put � Get ��� ���%�� �� ���������, ����� ������ � ���� ����� �� ��������� ��������. ������ ������� �� Put #�������������, ��������� �, ����������� � � Get #�������������, ��������� �, ����������� � ���� ������������� � ������ �� ��� � ������� ����������, ��������� � � ������ ���� �� ��� � ����� �� �� ����� ������ (��� �������� Put) ��� �� ��� � ����� (��� �������� Get) � ����������� � � � ��� � �� ������� (���� ����� �� ���� ���������� �� ���� � ������� ��� �������� � ����� �� �������) ���� ����%�� �� ������� �� ���������� ��� �� ��� ���� (�� �������� Put) ��� � ���� � �� �������� �������� �� ���������� ���� (�� �������� Get). �� �� ��, �� Put #1, br + 1, zapis �� ���������� ������� �� ���� 1 �� ����� br+1 �� ������� �������� �� �� ������� zapis, ���� � �� ���� ��������� ��*���� �� � ������� � ����%� ����� ��� ��� ����� ��� � � ����� �� ����� ����, ����� �������� � ������� �� ��������� ��������.

49

!�����, �� Get #1, i, zapis �� ���������� ������� �� ���� 1 �� ����� i �� ���� ������ � ������� ������� �� �������� � �� ������� zapis, ���� ���� ���� ����� �� ���� �� ����������� �� � ������� ��� �������� � ������� �� ��������� ��������.

.���������� � ������ � ��� �� ������ �� ���������� �� ������ ����� � �� ������� � ���� ������ ������� ������.

!�"�#� 19. '������ �������� �� ���� � �� ����� � ����� � 9 ������ �� ��� ���� �������� � ����� ����� � ��� �����, ����� ��������� ����� �� ������ 1.

� � � ���� � ����� 1 +� ��������� 5 2 4��� ���������� 3 3 +��� #�%������ 4 4 6���� 0������ 3 5 6����� +�������� 5 6 #����� #��%����� 3 7 �� �� 6������� 5 8 ) �� ���������� 2 9 ������ ��������� 4 ������ 1

������ �� �� "#-����� �� ��� ������ � �� ������ ����� �� ���� ������, ������� ������� *������ � �� �������� (�� ���) �� � ����� vnesuvanje.frm � vnesuvanje.vbp, ����� � ���� "#-����� � ���%� �� � �� �������� � ��� ����� �� ���������� spisok.dat ���� �� ����� ����� �������� � �� ������. .��������� � ���������� � �� ����� � �� ����� ����� ��� Open "c:\spisok.dat" For Random As #1 Len = Len(zapis) ����� ���������� spisok.dat � �� ������ � �� ������ (Random) ����� �� ���� 1 (#1) �� ��� ���%���� � ����� ���� � ���� ����� � ���%���� � �� ������� zapis ���� ���(��� � �� ��*���� � �� ���� �� ����������� ��*���� �� � ������ Ucenik ��� ����%� ��� ��� ��� ime � ocenka (�� ��� �����). '�� ���������� �� ������ ����� �� ��������� � �� ���� ����� �� �� ����� � ������ � ����� ���� �� ������� ����� ����. �� ��� ��� ������, ����� � ���������� � ���������� �� ��������� ����� ����� � � �� �� �� br = LOF(1) / Len(zapis) ���� LOF(1) �� ������� ���%���� � ���������� ������� �� ���� 1 (Length Of File = ���%�� � ��������), ������ Len(zapis) � ���%���� � ��� ����, � ����� ��������� � ���� ��� ����� �� �������� ������ br � ����� �� ����������. �����, ������� ���� �� ������� � � ����� ������� ���, ��� � ����� �� ���� ���� br+1. ����� ����������� � ��� ����, ���������� �� ������� � �� ������ � ��������� ���� � ������ ������� �� �� ����� nov = Val(InputBox("��� �����? (1-!+, 0-�))")) � ������� ��� �� ������ �� �������� � ���� �������, ����� �� ���� 1, � ���������� ������ �� ������ �, � ������� �, ����� �� ���� 0, � ����� �� ������� ������ "#-����� �� ����"%��� End. ��� � ����� ����� ��� If nov = 1 Then GoTo 100 Else End ���� Go To 100 � ��� � ������ �������� � ����������. ���� �� ������ � ����� ���:

50

�� ������������ � ����, ������� �� ���������� � � ����� � ������� �

�������� ����� ������� �� ������ 1, �� ��� ������ ������ �� ��� ����� � � �� ��� �����. �� ���������� � ��������� �� ����� �����:

� ������ ������� ���� � �������� ������� �� �� �����, ���������� �� !+, ����� �� 1:

.����� � �� ������ ��������� �� ���� 9 ������ (��������� � ������� �� 1 � �������� ��� �����? ��� ���������� � ��������� �� �� �����), � ������ ���������� � ��� ������ �� 0 � ����� ��� � �� �������, � ��������� � ������ ������ �� ���������� spisok.dat.

��� $%-������ �� �����&� ���� � �� ��������� ������� ���� !� ������ � �� ����� �� �� ����� �� �� ���� � � � �� ����� �� ������� ��. !�"�#� 20. $������� �� ��������� �� ���������� ������� �� ������ 19. $ ���� �� ����� �� �� "#-����� ��� ������� *������ � �� �� ��� �� � ����� listanje.frm � listanje.vbp. #���� �, ���������� spisok.dat � ������� �� "#-������� �� ��������, �� �� �� ����� �� ������� ������� ����� �� � �� �� ����� ������ ����� �� �� (����� �� ���������� � ���� ������ �� ������ � ������� "c:\spisok.dat", ����� ������� � c:).

Private Type Ucenik ime As String * 30 ocenka As Integer End Type Dim zapis As Ucenik Dim br, nov As Integer Private Sub Form_Activate() 100: Open "c:\spisok.dat" For Random As #1 Len = Len(zapis) br = LOF(1) / Len(zapis) zapis.ime = InputBox("����� �� ����� � �������� ��� ���� " & br+1) zapis.ocenka = Val(InputBox("����� � ������ � �������� ��� ���� " & br+1)) Put #1, br + 1, zapis Close #1 nov = Val(InputBox("�� ������? (1-��, 0-��)")) If nov = 1 Then GoTo 100 Else End End Sub

!�"�#� 19.

51

2�������� � ��������� �� ���������� � �� ����� � ������ �� ������ � ���� � ���� �� ����������, ������ ������� �� ���� 1 � ����� ��������� � �� ��� *�� �, �� ��� � ����� �� ���� ���� ��� � ��� � ������� (������ ���� � ������ � ������), ���� � ��� � ������� (zapis.ime) � � ������ ������� ����� (zapis.ocenka). ������ ����� ������ �� ���� "#-����� �� �������:

�� ������������ � ����� ���, ������� ������ ��� �� ���� ��������� �� ������ 1 �� ���������� spisok.dat, ����� �� �� ������� ������� �����:

'�� �� ��� �� �� �� ��� ����, ����� ��� � ��� � �� � �� ���� �� �������� � � ������� �� � ���. ���� ��������� �� *����� spisok.dat, ��������� � ������� �� ��� ���� My Computer ��� Windows Explorer, � ���� ������ ����������� �� "#-������� �� ��������, � "#-������� �� �������, � ��� ��������. .��� ��� �� �������� � �������� ������ � ������, � ��� �����. ������, �� ������� ��� � �� �����&� �� ����� �� ������� �� �����&� �� ������ ��. ��� � �� �� ��� � �� �� ��������, ������ �� ����� � �� ��������� ��� ��� �, � ����� � �� ������ ���� ����� � ��� &��� � ��������� ��� �. '���� �� ���� "#-����� �� ������� �� ������� � �� ������ � ������ ���� ����� �� �� ������ ������� � ������ �� �������, ����� ��� ��� �� �� ���� ������ ���� � ������ ���� ����� �� �� ������ ���������, ����� ��� �� �� ������� ������ ��������, �� �� � � ���� � ���������� � ������� �� ��. 1 �� �%� �� �� ������ �� ��������� �� ��� ��������, ����� �� ����� ������ �� ������� � ������ � ����� ����� � ��� �����?

Private Type Ucenik ime As String * 30 ocenka As Integer End Type Dim zapis As Ucenik Dim br, i As Integer Private Sub Form_Activate() Print " ����� � ������� � ������ ������ �� �������:" Open "c:\spisok.dat" For Random As #1 Len = Len(zapis) br = LOF(1) / Len(zapis) For i = 1 To br Get #1, i, zapis Print i; ". "; zapis.ime, zapis.ocenka Next i Close #1 End Sub

!�"�#� 20.

52

!�"�#� 21. �) ���� ���� �� �������� ���( � ��� ����� ��� �������� �� ���������� ������� �� ������ 19.

�) $������� �� �������� �� ���������� ������� �� ������ 19 ��� � ��� ����� 5 � ��� �����. .��� ��� ������ � �� ������ � � ����� �� "#-������� �� ������� � ���� ������� �� ����������, ����� � ���� � �� ����� �������� �����. ��������� ���( (�� ������� uspeh) �� ��� ����� � ���� ��� ������ ��� � �� ������ � ���� ����� �� ��������, �������� ���� (�� ������� suma) � �� ����� � �� ������ � �������� (�� ������� br). ��� ������� � �������� � �� ������� uspeh �� �� �� ����%� �������� ���( � ��� ���� ��� �� ������� � +��� ����� Format � �� � �� � *�� ���� "##0.00" ������� � ���� ����%� � ��� ���� ���. !����� ��, �� ��������� � �������� ��� � ��� ����� 5 � ��� �����, �� ������� redbr ���%� �� ������ ����� ������ � � �� ����� 5 � ��� �����. ���� �� ������ � ������� ������ � �� ��� ���:

Private Type Ucenik ime As String * 30 ocenka As Integer End Type Dim zapis As Ucenik Dim br, i, suma, redbr As Integer Dim uspeh As Double Private Sub Form_Activate() Print " ����� � ������� � ������ ������ �� �������:" suma = 0 Open "c:\spisok.dat" For Random As #1 Len = Len(zapis) br = LOF(1) / Len(zapis) For i = 1 To br Get #1, i, zapis Print i; ". "; zapis.ime, zapis.ocenka suma = suma + zapis.ocenka Next i Close #1 uspeh = suma / br Print Print "a) ���������� ����! �: "; Format(uspeh, "##0.00") Print Print "�) "������ ��� ��� ����� 5 �� �������:" redbr = 0 Open "c:\spisok.dat" For Random As #1 Len = Len(zapis) br = LOF(1) / Len(zapis) For i = 1 To br Get #1, i, zapis If zapis.ocenka = 5 Then redbr = redbr + 1 Print redbr; ". "; zapis.ime, zapis.ocenka End If Next i Close #1 End Sub

!�"�#� 21.

53

�� ������������ � �� ������ � ������ ��� � "#-������� �� ������� ����� �� ��

������� ������� �����:

��, �������� ���( � ��� ����� � ���� ������ � � � ���� ���, ���? 1 �� ������ ���?

"� ������ 16 �� ���(����� ������� 7 �� ������� � ������ �� �� ���������� �

���� �� � ��� ��� �� ����� ��� ����� ������. &� �� ��������� � ��� �������� �� ������� ������. !�"�#� 22. �������� �� ������� � �������� �� ���������� ������� �� ������ 19 �� ������� �������� ����� ������� (������ � �� �������� �� �������� �� �������� �� ������ �����).

������ �� �� "#-����� ��� ������� *������ � �� �� ��� �� � ����� sortiranje.frm � sortiranje.vbp. "� ��� �� �������� ��� ������� �� �� ���������� � ���� �� (���������) � � �� �� � ���� � ��� ��� ��� �� ��� �� � �� � � ��� �� �����. ����� � ���, ���� �� ����� � � ��� �� ����� � ����� zapis1 � zapis2 ��� � �� ����� �� ������� �� ����� i � ����� maxindex ��������, � ���� � �� �� �� ��� ������, ����� �������� � zapis2 � �� ����� �� ����� i, ������ �������� � zapis1 � �� ����� �� ����� maxindex. "�%� � ������������� � �� ������� �� ����� �� � ������� Ucenik �� ���� �������. ���, �� ������ ������� ��� � ��������:

54

�� ������������ � ����� ��� ����� �� �� ������� ������� ����� � �������

����� � �������� ����� ����� ����� � ��� ����� �� ������� ��������:

�� ��������� ��������� � ������� �� ���������� spisok.dat, � �� � ��� ������� � ���� �������, ���� � ����� �� �� ��� �������� ������� � ������ ��������, ��������� spisok.dat !� ������ ������ . �� ���� ���� � ����� ���� ������� �� �� �� ����%� � �������� �� �������� �� ������ � ��������� � �������. "� �� ����%�� � ������� ������ � ���� �� ������ �� ���������� � ������ �� ����� � ���� �%��� �� �����%��� ���� � �� ���. ����� �� �� ������� � ������ ������ �� �� ������ ������:

Private Type Ucenik ime As String * 30 ocenka As Integer End Type Dim zapis As Ucenik Dim zapis1 As Ucenik Dim zapis2 As Ucenik Dim br, i, j, maxocenka, maxindex As Integer Private Sub Form_Activate() Print " ������ ������ � ������� � ������ ������ �� �������:" Open "c:\spisok.dat" For Random As #1 Len = Len(zapis) br = LOF(1) / Len(zapis) For i = 1 To br Get #1, i, zapis maxocenka = zapis.ocenka maxindex = i For j = i + 1 To br Get #1, j, zapis If zapis.ocenka > maxocenka Then maxocenka = zapis.ocenka maxindex = j End If Next j Get #1, i, zapis1 Get #1, maxindex, zapis2 Put #1, i, zapis2 Put #1, maxindex, zapis1 Get #1, i, zapis Print i; ". "; zapis.ime, zapis.ocenka Next i Close #1 End Sub

!�"�#� 22.

55

!�"�#� 23. ������ �� �� � ��������� ��� ���� �� �������� � ������� �� ������ � ����� ����� � ��� �����. (� �� ��, ������� 4��� ���������� ���� ���� ������ �� ������ ������� � ��� ����� � ���� � � ����� 5, �� �� ���� ����� �� �� ���� �� �������)

(������: �� ��������� � �� ���� � ������ (������ ����) � ������ ��� ����� �� ����� �� ��. !�"�#� 24. .������ �� ������ ��������� �� ���� �� �������� � ������� �� ������ � ����� ����� � ��� �����. (� �� ��, ��������� ������ ��������� �� ����� 4 � ������ ���� ����� � ���� �����, ����� ������ ���� ��� �� ����%� ��������� �� �� �� �� �������) (������: �� ������� �� ������ �� ��� ������� ��������, �� ��� ����� � spisok.dat, � ������� � � ��� ��������, � �� �� pomos.dat. ���� ��%���� ����� �� ��*����� �� spisok.dat � pomos.dat. �� ��������� ���������� �� ����"%��� Kill �� ����� ���������� spisok.dat. �� ����"%��� Name �� ��� ���� pomos.dat �� spisok.dat.

"� ������� � ���( �� ��������.