Permalink
Cannot retrieve contributors at this time
| title | keywords | f1_keywords | ms.prod | ms.assetid | ms.date | ms.localizationpriority |
|---|---|---|---|---|---|---|
|
Statement invalid outside Type block |
vblr6.chm1040053 |
vblr6.chm1040053 |
office |
287d4cf7-257a-2cc4-2e5d-42e578c8b862 |
06/08/2017 |
medium |
The syntax for declaring variables outside a Type…End Type statement block is different from the syntax for declaring the elements of the user-defined type. This error has the following causes and solutions:
- You tried to declare a variable outside a Type…End Type block or outside a statement. When declaring a variable with an As clause outside a Type…End Type block, use one of the declaration statements, Dim, ReDim, Static, Public, or Private. For example, the first declaration of
MyVarin the following code generates this error; the second and third declarations ofMyVarare valid:
MyVar As Double ' Invalid declaration syntax. Dim MyVar As Double Type AType MyVar As Double ' This is valid declaration syntax End Type ' because it's inside a Type block.
- You used an End Type statement without a corresponding Type statement. Check for an unmatched End Type, and either precede its block with a Type statement, or delete the End Type statement if it isn’t needed.
For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).
[!includeSupport and feedback]
This repository has been archived by the owner on Aug 31, 2018. It is now read-only.
Permalink
Cannot retrieve contributors at this time
| title | keywords | f1_keywords | ms.prod | ms.assetid | ms.date |
|---|---|---|---|---|---|
|
Statement invalid outside Type block |
vblr6.chm1040053 |
vblr6.chm1040053 |
office |
287d4cf7-257a-2cc4-2e5d-42e578c8b862 |
06/08/2017 |
The syntax for declaring variables outside a Type…End Type statement block is different from the syntax for declaring the elements of theuser-defined type. This error has the following causes and solutions:
- You tried to declare a variable outside a Type…End Type block or outside a statement. When declaring a variable with an As clause outside a Type…End Type block, use one of the declaration statements, Dim, ReDim, Static, Public, or Private. For example, the first declaration of
MyVarin the following code generates this error; the second and third declarations ofMyVarare valid:
MyVar As Double ' Invalid declaration syntax. Dim MyVar As Double Type AType MyVar As Double ' This is valid declaration syntax End Type ' because it's inside a Type block.
- You used an End Type statement without a corresponding Type statement. Check for an unmatched End Type, and either precede its block with a Type statement, or delete the End Type statement if it isn’t needed.
For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).
This repository has been archived by the owner on Aug 31, 2018. It is now read-only.
Permalink
Cannot retrieve contributors at this time
| title | keywords | f1_keywords | ms.prod | ms.assetid | ms.date |
|---|---|---|---|---|---|
|
Statement invalid outside Type block |
vblr6.chm1040053 |
vblr6.chm1040053 |
office |
287d4cf7-257a-2cc4-2e5d-42e578c8b862 |
06/08/2017 |
The syntax for declaring variables outside a Type…End Type statement block is different from the syntax for declaring the elements of theuser-defined type. This error has the following causes and solutions:
- You tried to declare a variable outside a Type…End Type block or outside a statement. When declaring a variable with an As clause outside a Type…End Type block, use one of the declaration statements, Dim, ReDim, Static, Public, or Private. For example, the first declaration of
MyVarin the following code generates this error; the second and third declarations ofMyVarare valid:
MyVar As Double ' Invalid declaration syntax. Dim MyVar As Double Type AType MyVar As Double ' This is valid declaration syntax End Type ' because it's inside a Type block.
- You used an End Type statement without a corresponding Type statement. Check for an unmatched End Type, and either precede its block with a Type statement, or delete the End Type statement if it isn’t needed.
For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).
|
|
Установить в форме
объект Label
— метка, он нужен для создания надписей
в форме, находится в наборе инструментов
general
(см. рис. 1 и
3). Метка имеет свойство name
(см. выше), а также свойство caption,
содержащее надпись, которую видит
пользователь. Задать для метки
значение
свойства caption
– введите
число.
Другие свойства
метки (доступны в окне properties):
-
Alignment
– выравнивание надписи по левому,
правому краю или центру. -
Font
и
Forecolor
— шрифт и цвет символов метки. -
Backcolor
— цвет фона метки. -
А

utosize
– автоматическая установка необходимого
размера метки, определяемого надписью.
Установить
самостоятельно в форму метку
результат
(см. рис. 3).
Метка может выводить
числовые и символьные значения в процессе
выполнения программы, для этого в тексте
соответствующей процедуры ее свойству
сaption
должно быть присвоено нужное значение.
Установить самостоятельно в форму
«пустую»
метку. Установить для этой метки: name
– result,
caption
– «пусто»,
для этого удалить все содержимое этого
свойства и нажать клавишу enter.
(см. рис. 3)
-
Установить в форме
объект Textbox
— текстовое поле (см. рис. 3). Этот объект
предназначен для ввода с клавиатуры
символьной информации, которая
присваивается его свойству text.
Оформление цвета и шрифта также, как и
у метки. -
Установить в форме
объект CommandButton
– командная кнопка (см. рис. 3). Надпись
на командной кнопке задается свойством
Caption.
Установить
для кнопки это свойство: вычислить.
Оформление цвета и шрифта также, как и
у метки.
Другие свойства
командной кнопки (доступны в окне
properties):
-
Appearance
— внешний
вид (объемный или плоский), принимает
значения true
или
falsе;
(или 0
– flat
плоский; 1
– 3D
объемный). -
Default
— позволяет
сделать кнопку доступной для нажатия
клавишей Enter,
принимает значения true
или
false. -
Cancel
— позволяет
сделать командную кнопку доступной
для нажатия клавишей
Esc,
принимает значения true
или
false.
Установленный на
форму объект может быть изменен в
размерах, перемещен и удален после его
активизации щелчком мыши. В каждый
момент активным является какой-либо
объект в форме, либо сама форма. Активный
объект окружен маркерами. Для удаления
объекта нужно нажать клавишу Delete,
либо выбрать команду cut
из контекстного меню вызванного на этом
объекте. Для активизации самой формы
нужно щелкнуть по ее «пустому»
месту. Для выделения нескольких объектов
сразу: щелкать по ним при нажатой клавише
ctrl
, либо выделить
их пунктирной рамкой, растягивая ее по
диагонали мышью, нажатие затем клавиши
delete
позволяет удалить сразу все выделенные
объекты.
-
Н

аписание
программного кода необходимо произвести
для кнопки вычислить,
т.к. этот объект будет реагировать на
воздействие пользователя. Для вывода
окна редактора кодов программы нужно
2-ды щелкнуть по кнопке вычислить
в окне формы. Появится окно редактора,
в котором курсор будет автоматически
установлен в нужном месте процедуры,
а именно, после строки Private
Sub
Command1_Click(),
где
Command1
– свойство name
командной кнопки.
(Можно
также использовать кнопку viewcode
на панели инструментов в окне project
explorer;
для возврата – кнопку viewobject
).
Ввести следующий
текст программного кода:
Private
Sub Command1_Click()
{ появляется
автоматически
}
result.caption=Val(chislo.Text)^2
End
Sub
{ появляется
автоматически
}
Каждый раздел
программного кода для того или иного
объекта всегда начинается строкой
Private
Sub
Name
объекта
_Click(),
где Name
объекта
– имя
объекта, для которого записан программный
код, а Click()
– событие
(воздействие), в данном случае одинарный
щелчок мыши, на которое реагирует объект;
и
заканчивается строкой End
Sub.
Строка программного кода
result.caption=Val(chislo.Text)^2
означает,
что свойству caption
объекта со свойством name=result
присваивается следующее значение: число
(Val),
хранящееся в свойстве text
объекта со свойством name=chislo,
возведенное во 2-ю степень (^2).
-
Запуск и остановка
программ осуществляется с помощью
кнопок Start
и End
на панели инструментов, а также с помощью
одноименных команд из меню run.
Остановить работу проекта можно также
кнопкой Х
в окне приложения. Если в ходе работы
появляется ошибка, нужно остановить
работу приложения, исправить ошибку,
а затем снова проверить работу приложения. -
Сохранить проект
и форму с именами Example1_1
или Lab1_1
соответствующими командами (save
project1
as
и save
form1
as)
из меню file.
При обнаружении
ошибки в программном коде компилятор
Visual
Basic
6.0 выдает
стандартное окно сообщения, которое
содержит информацию о коде (Run—time
error
‘438’) и
названии (Object
doesn’t
support
this
property
or
method)
ошибки (рис.5). Ошибки, связанные с
процедурами и объектами, выделяются
желтым
«маркером»
(рис.6). Ошибки, связанные с методами или
свойствами самих объектов, выделяются
синим
«маркером»
(рис.7). Для исправления ошибки следует
приостановить работу проекта, ввести
верный программный код, а затем снова
запустить проект.
Некоторые наиболее
часто встречающиеся ошибки:
-
I

nvalid
outside procedure
– неверная внешняя процедура; -
Type
mismatch –
несоответствие типов; -
Sub
or
Function
not
defined
– процедура или функция не определена; -
Next/For
without For/Next
– Next/For без
For/Next: неправильная
организация
цикла; -
If/EndIf
without
EndIf/If
– If/EndIf
без EndIf/If
: неправильная запись условного
оператора;
-
Select
Case / (End Select) without End Select / (Select Case) — Select
Case
/ (End
Select) без
End Select / (Select Case): неверная
запись
оператора
выбора; -
Object
required –
требуется объект; -
Overflow
– переполнение; -
Subscript
out of range –
значение
вне
диапазона; -
Duplicate
declaration in current scope –
двойное
объявление
в
текущем
диапазоне; -
Division
by zero –
деление на ноль; -
Statements
and Labels invalid between Select Case and First Case – записи
и
метки
неверны
между
Select Case и
First Case; -
Method
or
Data
member
not
found
– метод или часть данных не найдена; -
Variable
not
defined
– переменная не определена; -
Invalid
procedure call or argument
– неправильный
вызов
процедуры
или
аргумент; -
User—defined
type
not
defined
– пользовательский тип не определен; -
Object
doesn’t support this property or method
– объект не поддерживает это свойство
ли метод; -
Ambiguous
name
detected:
nameобъекта
_событие
– обнаружено неоднозначное имя; -
Only
comments may appear after End Sub, End Function, or End Property –
только
комментарии
могут
появляться
после
End Sub, End Function, или
End Property; -
Statement
invalid outside Type Block –
неверная
запись
вне
блока.
Практическая работа № 1.2 – вычисление куба числа
-
Открыть проект,
созданный в ходе выполнения работы №
1.1. -
Внести необходимые
изменения в форму:
-
Изменить заголовок
окна формы: куб
числа; -
Изменить свойство
name
формы: example1_2; -
Изменить программный
код: возведение в 3-ю степень – ^3;
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму с именами
Example1_2
или Lab1_2
соответствующими командами из меню
file.
Практическая работа № 1.3 – вычисление квадратного корня числа
-
Открыть проект,
созданный в ходе выполнения работы №
1.1 или № 1.2. -
Внести необходимые
изменения в форму:
-
Изменить заголовок
окна формы: корень
квадратный числа; -
Изменить свойство
name
формы: example1_3; -
Изменить программный
код: вычисление квадратного корня –
функция SQR;
программный код запишется в виде:
result.Caption=Sqr(Val(chislo.Text))
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму с именами
Example1_3
или Lab1_3
соответствующими командами из меню
file.
П рактическая работа № 1.4 – вычисление суммы, разности, произведения и частного 2-х чисел
-
Открыть один из
проектов, созданных в ходе выполнения
работ №№ 1.1 – 1.3. -
Внести необходимые
изменения в форму (см. рис. 8):
-
Изменить заголовок
окна формы: сумма,
разность, произведение, частное 2-х
чисел; -
Изменить свойство
name
формы: example1_4; -
Добавить на форму
объекты: текстовое поле и 8 меток; внести
остальные изменения; -
Задать меткам,
отображающим результаты вычислений
свойства name
соответственно: results,
resultr,
resultp,
resultch; -
Задать текстовым
полям свойства name
chislo1
и chislo2
соответственно; -
Изменить программный
код:
results.Caption=Val(chislo1.Text)+Val(chislo2.Text)
resultr.Caption=Val(chislo1.Text)-Val(chislo2.Text)
resultp.Caption=Val(chislo1.Text)*Val(chislo2.Text)
resultch.Caption=Val(chislo1.Text)/Val(chislo2.Text)
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму с именами
Example1_4
или Lab1_4
соответствующими командами из меню
file.
Выполните самостоятельно!
П
рактическая
работа № 1.5 – вычисление значения по
формуле
1. Создать новый
проект и вычислить: 8*А+(12*В)^5/С
. Макет
формы показан на рис. 9.
2. Программный код
для кнопки вычислить
приведен на следующей странице:
rеsult.Caption=8*Val(chislo1.Text)
{в
одну
строку
!}
+(12*(Val(chislo2.Text)))^(5/Val(chislo3.Text))
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму с именами
Example1_5
или Lab1_5
соответствующими командами из меню
file.
Практическая работа № 1.6 – вычисление длины гипотенузы
1
.
Создать новый проект и вычислить длину
гипотенузы по 2-м катетам. Макет формы
показан на рис. 10.
2. Программный код
для кнопки вычислить
приведен ниже:
Dim
a, b, c As Single
a=Val(Text1.Text)
b=Val(Text2.Text)
c=Sqr(a^2+b^2)
Label1.Caption=c
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму с именами
Example1_6
или Lab1_6
соответствующими командами из меню
file.
Форма отчета:
cd-диск,
флэш или иной носитель с файлами форм
и проектов работы № 1; текстовый файл с
изображениями форм и текстами программных
кодов.
Тема 2. Условный оператор и кнопка выбора Практическая работа № 2.1
-
О

ткрыть
новый проект. Внешний вид формы показан
на рис. 11. Задать свойство name
формы Example2_1. -
Установить на
форме объект Frame
– рамка (из набора инструментов
general).
Рамка
Frame
– это объект–контейнер, предназначенный
для объединения нескольких объектов
в группу. Он имеет свойство name,
свойство caption
(установить
это свойство – фигуры),
которое задает надпись в заголовке
рамки, цвет и шрифт устанавливаются
как у метки. -
Установить в рамке
три объекта Option
button
– кнопка
выбора (см. рис. 11). Этот объект используется
в группе не менее 2-х, иначе не будет
выбора. Т.к. кнопки используются в
группе, удобно для каждой из них
устанавливать одно и тоже свойство
Name.
Установить
в проекте для кнопок выбора это свойство:
vibor.
Положение
кнопки относительно надписи справа
или слева задается свойством Alignment,
объемный или плоский вид свойством
Appearance,
установка шрифта и цвета как у метки.
Будьте внимательны!
При задании
такого же значения свойства name
у 2-ой кнопки, появится сообщение о
создании контрольного
массива объектов
– control
array,
на которое следует ответить – yes/да.
Чтобы различать кнопки между собой,
необходимо для них устанавливать
различные значения свойства Index,
для удобства написания текста программы.
После установки
всех объектов Option
button
следует убедиться, что свойства Index
этих объектов
принимают
значения от 0
до 2.
Значение объекта Option
Button
(т.е. состояние – нажата кнопка или нет)
сохраняется в его свойстве Value,
которое
принимает значения true/истина
или false/ложь.
К этому свойству можно обращаться в
текстах программы. Свойства caption
для этих кнопок: треугольник,
прямоугольник,
круг
соответственно.
-
Установить
остальные элементы формы в соответствие
с рис. 11, свойства name
для объектов указаны на рисунке рядом
с ними. -
Вызвать окно
редактора для кнопки вычислить,
ввести следующий текст программного
кода:
Private
Sub
vichislit_Click()
{появляется
автоматически}
Dim
h,
w,
r
As
Single
‘описание
переменных типа Single
h=val(visota.Text)
‘перем.
h
присваиваем знач. из текст. поля visota
w=val(osnovanie.Text)
‘w
присваиваем знач. из текст. поля osnovsnie
If
vibor(0).Value
Then
‘условный
оператор – нажата 1-ая кнопка
r=h*w/2
‘площадь
треугольника
ElseIf
vibor(1).Value
Then
‘условный
оператор – нажата 2-ая кнопка
r=h*w
‘площадь
прямоугольника
Else
‘условный
оператор – иначе
r=3.14*h*h
‘площадь
круга
End
If
‘конец
условного оператора
result.Caption=r
‘метке
result
присваиваем вычисленное значение
End
Sub
{появляется
автоматически}
-
Вызвать окно
редактора для кнопки закрыть,
ввести следующий текст процедуры:
Private
Sub
Command2_Click()
{появляется
автоматически}
End
‘конец
End
Sub
{появляется
автоматически}
-
При запуске
программы необходимо, чтобы одна из
кнопок выбора была бы «нажата»
по умолчанию. Для этого необходимо
свойству Value
одной из кнопок присвоить значение
True.
Это необходимо задать в процедуре
загрузки той формы, где находятся эти
кнопки. Для этого вызвать окно редактора
для формы 2-м щелчком по «пустому»
месту на форме, и записать следующую
процедуру:
Private
Sub
Form_Load()
{появляется
автоматически}
vibor(0).Value=True
‘нажата
1-ая
кнопка
End
Sub
{появляется
автоматически}
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму.
Практическая работа № 2.2
-
О

ткрыть
проект, созданный в ходе выполнения
работы № 2.1. Задать свойство name
формы Example2_2. -
Создать проект
для вычисления площади треугольника:
либо по формуле ½*(h*w),
либо по формуле Герона. Выбор способа
вычисления должен осуществляться с
помощью кнопок Option
button. -
Изменить вид формы
(см. рис. 12), добавив или удалив необходимые
объекты. -
В программный
код кнопки вычислить
внести необходимые изменения:
Dim
a, b, c, p, s As Single ‘описание
переменных
типа
Single
a=Val(visota.Text)
‘a
присваиваем
знач.
из
текст.
поля
visota
b=Val(osnovanie.Text)
‘b
присваиваем
знач.
из
текст.
поля
osnovsnie
c=Val(storona3.Text)
‘c
присваиваем
знач.
из
текст.
поля
storona3
If
vibor(0).Value
Then
‘условный
оператор – нажата 1-ая кнопка
s=a*b/2
‘площадь
треугольника
Else
‘условный
оператор – иначе
p=(a+b+c)/2
‘полупериметр
s=Sqr(p*(p—a)*(p—b)*(p—c))
‘площадь
треугольника по ф-ле Герона
End
If ‘конец
условного оператора
result.Caption=s
‘метке
result
присваиваем вычисленное значение
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму.
Выполните самостоятельно! Практическая работа № 2.3
1. Создать новый
проект и программу для вывода на форму
результатов умножения и деления двух
чисел. Макет формы показан на рис. 13.
2. Программный код
для кнопки ОК
приведен ниже.
Private
Sub command1_Click()
If
Option1.Value=True Then
Text3.Text=Val(Text1.Text)*Val(Text2.Text)
ElseIf
Option2.Value=True Then
Text3.Text=Val(Text1.Text)/Val(Text2.Text)
E
nd
If
End
Sub
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить проект и форму.
Практическая работа № 2.4
1. Создать новый
проект и программу для вывода на форму
результатов сложения и вычитания двух
чисел. Макет формы показан на рис. 13.
Изменить значения свойств caption
кнопок выбора на «сложение»
и «вычитание».
2. Программный код
для кнопки ОК
приведен ниже.
If
Option1.Value=True Then
Text3.Text=Val(Text1.Text)+Val(Text2.Text)
ElseIf
Option2.Value=True Then
Text3.Text=Val(Text1.Text)-Val(Text2.Text)
End
If
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить проект и форму.
Форма отчета:
cd-диск,
флэш или иной носитель с файлами форм
и проектов работы № 2; текстовый файл с
изображениями форм и текстами программных
кодов.
Тема 3. Операторы цикла и списки Практическая работа № 3.1
-
О

ткрыть
новый проект. Задать свойство name
формы Example3_1.
Внешний вид формы показан на рис. 14. -
Установить в форме
объект ListBox
– список.
Установить для него свойство name
— spisok.
Объект ListBox
изначально пуст и показывает что-либо
только после заполнения его данными.
Заполнить список данными можно как при
разработке формы, так и во время работы
программы. Все содержимое списка –
массив строковых данных, которые
размещены в его свойстве List.
При заполнении
списка через свойство List
ввод каждой
строки завершается нажатием клавиш
Ctrl
+ Enter.
По мере
заполнения списка линейки прокрутки
появляются автоматически. Выбор позиции
из списка выполняется щелчком мыши по
ней. Содержимое выбранной (маркированной)
позиции списка помещается в его свойство
Text.
Список также
может заполняться и при работе программы.
Для этого используется метод заполнения
списка ADDITEM,
который имеет синтаксис (в общем виде):
name
формы.name
списка.additem
<строка>, N
позиции
Если номер позиции
не указан, то новая строка добавляется
в конец списка. Добавляемая строка может
быть в виде строковой константы или
переменной, а также свойства text
текстового
поля. Однократный вызов этого метода
добавляет одну позицию.
Удаление из списка
произвольной строки выполняется методом
REMOVEITEM,
который имеет синтаксис (в общем виде):
name
формы.name
списка.removeitem
N
позиции
-
Установить
остальные элементы формы в соответствие
с рис. 14, свойства name
для объектов указаны на рисунке рядом
с ними. -
Записать
процедуру описания переменных: chisarr
(весь массив чисел)
и kolich
(количество вводимых чисел) в раздел
программного кода «general
declarations»,
выбрав
соответствующие позиции в левом
(general)
и правом
(declarations)
списках в окне редактора.
Dim
chisarr (1 To 50) As Single ‘массив
чисел
не
более
50 шт.
Dim
kolich
As
Integer
‘кол-во чисел
в массиве
-
В
процедуре для кнопки добавить
записать следующее:
(setfocus
– метод установки «фокуса»
на каком-либо объекте или форме)
spisok.additem
chislo.text
‘в
список добавить число из текст. поля
kolich=kolich+1
‘кол-во чисел
в массиве увеличилось на 1
chisarr(kolich)=chislo.text
‘в
массив добавить число из текст. поля
chislo.text=””
‘очистить
текстовое поле
chislo.setfocus
‘поставить
курсор в текстовое поле
-
В
процедуре для кнопки
найти
записать
следующее:
dim
max
as
single
‘переменная
– максимум
dim
i as integer ‘переменная
цикла
max=chisarr(1)
‘максимум –
1-ый элемент
for
i=2
to
kolich
‘цикл:
начиная со 2-ого эл-та до конца массива
if
max<chisarr(i) then max=chisarr(i) ‘если
текущий
эл-т
больше
максимума тогда текущий эл-т есть
максимум
next
i
‘следующий
шаг цикла
result.caption=max
-
Записать
самостоятельно процедуру для кнопки
закрыть. -
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму.
Практическая работа № 3.2
-

Открыть
проект, созданный в ходе выполнения
работы № 3.1. Задать свойство name
формы Example3_2. -
Изменить
форму по образцу (рис. 15). Для этого
добавить в форму метку «буква»
и текстовое поле со свойством name
– “bukva”.
Изменить остальные объекты формы по
образцу. -
Изменить
в кодах программы в разделе «general
declarations»
тип переменной
chisarr
с single
на string. -
Исправить
программный код для кнопки найти
следующим образом: удалить строку
max=chisarr(1),
изменить
начальное значение переменной цикла:
i=1. -
Вместо
строки
if
max<chisarr(i) then max=chisarr(i)
ввести
строку
If
Left$(chisarr(i),1)=bukva.Text Then max=max+1
где
функция Left$
– есть
строковая функция, возвращающая заданное
число символов, начиная с первого символа
строки.
Другие строковые
функции:
-
Right$
– функция, возвращающая заданное число
символов, начиная с последнего символа
строки; -
Mid$
– функция, возвращающая заданное число
символов, начиная с заданной позиции
в строке: синтаксис функции – Mid$
(строка,
Nпоз,
nсимв); -
Len
– функция,
возвращающая длину строки; -
Str
– функция, преобразующая числовые
данные в строковые; -
Trim
– функция,
возвращающая строку без пробелов; -
InStr
– функция, возвращающая номер позиции,
содержащей указанный фрагмент;
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму.
Практическая работа № 3.3
-
Открыть новый
проект. Задать свойство name
формы Example3_3.
Создать программу для перевода любого
целого числа в 10СС в произвольную
систему счисления (от 2 до 9). Система
счисления выбирается из раскрывающегося
списка. -
Внешний вид формы
показан на рис. 16. Установить на форме
объект ComboBox
– раскрывающийся
список (находится в наборе инструментов
General).
Этот объект предназначен для выбора
какого-либо значения из заданного
списка. Раскрывающийся список можно
заполнить как во время работы программы,
так и в листе свойств или в тексте
программы. Содержимое выбранной позиции
раскрывающегося списка хранится в его
свойстве Text. -

Установить
на форме остальные необходимые объекты,
задать свойство Name,
указанное
на рисунке для «пустой»
метки. -
Записать для формы
и командной кнопки следующие программные
коды: (перед записью кодов для формы
следует изменить событие формы с load
на activate
в правом списке в окне редактора кодов,
см. рис. 2)
Private
Sub Form_Activate()
Combo1.AddItem
(«2»)
Combo1.AddItem
(«3»)
Combo1.AddItem
(«4»)
Combo1.AddItem
(«5»)
Combo1.AddItem
(«6»)
Combo1.AddItem
(«7»)
Combo1.AddItem
(«8»)
Combo1.AddItem
(«9»)
End
Sub
Private
Sub Command1_Click()
Dim
s As String
Dim
l, c, r As Single
Dim
i As Integer
s=»»
c=Val(Text1.Text)
‘введенное
число
l=Val(Combo1.Text)
‘система
счисления
r=Int(c/l)
‘первое
частное
i=c-r*l
‘первый
остаток
s=s+Str(i)
‘результат
Do
While r>=1 ‘цикл
c=r
‘новое
делимое равно последнему частному
r=Int(c/l)
i=c-r*l
‘новый
остаток деления
s=Str(i)+s
‘результат
в обратном порядке
Loop
Rez.Caption=s
End
Sub
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму.
Выполните самостоятельно! Практическая работа № 3.4
-
Создать новый
проект и программу для нахождения
кол-ва слов, заканчивающихся на заданное
сочетание из 2-х букв. Открыть проект,
созданный в ходе выполнения работы №
3.2. Макет формы на рис. 15. -
Изменить строковую
функцию с Left$(chisarr(i),1)
на
Right$(chisarr(i),2). -
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму.
Практическая работа № 3.5
-
Создать новый
проект и программу для нахождения
кол-ва чисел, содержащих заданное
сочетание из 3-х цифр начиная с 3-й
позиции. Открыть проект, созданный в
ходе выполнения работы № 3.2. Макет формы
показан на рис. 15. -
Изменить строковую
функцию с Left$(chisarr(i),1)
на
Mid$(chisarr(i),3,
3). -
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму.
Практическая работа № 3.6
-
С

оздать
новый проект и программу для вычисления
факториала. Макет формы показан на рис.
17. -
Программный код
для кнопки вычислить
приведен ниже.
Dim
f, n, i As Integer
n=Val(Chislo.Text)
f=1
For
i=2 To n
f=f*i
Next
i
Result.Caption=f
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму.

Практическая работа № 3.7
-
Создать новый
проект и программу для сложения
произвольного целого положительного
числа в 10СС с числом, представленным в
3СС. Макет формы показан на рис. 18. -
Программный код
для кнопки суммировать:
Dim
a10, a3, i, b As Integer
Dim
s As String
a10=Text1.text
a3=Text2.text
s=Str(a3)
For
i=Len(s) To 1 Step -1
b=b+Val(Mid(s,
i, 1))*3^(Len(s)-i)
Next
Text3.text=a10+b
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму.
Практическая работа № 3.8
-
Создать новый
проект и программу для перевода
положительного целого десятичного
числа в 5СС. Макет формы показан на рис.
19. -
П

рограммный
код для кнопки перевести:
Dim
a10, ost As Integer
Dim
s As String
a10=Val(Text1.text)
If
a10>4 Then
Do
ost=a10
Mod 5
s=ost
& s
a10=a105
Loop
While a10>=5
s=a10
& s
Else
s=a10
End
If
Text2.Text=s
-
З

апустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить проект и
форму.
Практическая работа № 3.9
1. Создать новый
проект и программу. Программа создает
список чисел. Заполнение списка
осуществляется кнопкой добавить.
При добавлении числа автоматически в
форме отображаются максимальное и
минимальное из чисел списка. При выделении
числа в списке оно автоматически
отображается меткой текущее
число.
Выделенное в списке число можно удалить
одноименной кнопкой. Кнопка переопределить
предназначена для отображения на форме
новых максимального и минимального из
чисел списка после удаления позиций
списка. Кнопка очистить
список
удаляет все содержимое списка.
2. Внешний вид формы
показан на рис. 20. Установить на форме
все необходимые объекты, свойства Name
указаны на рисунке рядом с объектами.
Записать для проекта и объектов формы
следующие программные коды:
Программный код
для раздела General
Declarations:
Dim
lngMaxNum
As
Single
Dim
lngMinNum As Single
Dim
strList(100) As Single
Dim
intListElem As Integer
Программный код
для кнопки добавить:
Private
Sub dobav_Click()
If
newchis.Text<>»» Then
spisok.AddItem
newchis.Text
strList(intListElem)=newchis.Text
intListElem=intListElem+1
If
lngMaxNum<=newchis.Text Then
lngMaxNum=newchis.Text
End
If
If
lngMinNum>=newchis.Text Then
lngMinNum=newchis.Text
End
If
newchis.Text=»»
maxnum.Caption=lngMaxNum
minnum.Caption=lngMinNum
End
If
newchis.SetFocus
End
Sub
Программный код
для кнопки удалить:
Private
Sub udal_Click()
Dim
i As Integer
For
i=spisok.ListIndex To 99
strList(i)=strList(i+1)
Next
i
intListElem=intListElem-1
spisok.RemoveItem
spisok.ListIndex
tekchis.Caption=»»
spisok.Refresh
newchis.SetFocus
End
Sub
Программный код
для кнопки переопределить:
Private
Sub opred_Click()
Dim
i As Integer
lngMaxNum=-14000000000#
lngMinNum=14000000000#
For
i=0 To intListElem-1
If
lngMaxNum<=strList(i) Then
lngMaxNum=strList(i)
End
If
If
lngMinNum>=strList(i) Then
lngMinNum=strList(i)
End
If
Next
i
maxnum.Caption=lngMaxNum
minnum.Caption=lngMinNum
newchis.SetFocus
End
Sub
Программный код
для кнопки очистить:
Private
Sub ochis_Click()
Dim
i As Integer
spisok.Clear
For
i=1 To intListElem
strList(i)=0
Next
i
newchis.SetFocus
maxnum.Caption=»»
minnum.Caption=»»
End
Sub
Программный код
для формы:
Private
Sub Form_Activate()
newchis.SetFocus
lngMaxNum=-14000000000#
lngMinNum=14000000000#
End
Sub
Программный код
для списка:
Private
Sub spisok_Click()
tekchis.Caption=spisok.Text
End
Sub
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить проект и форму.
Практическая работа № 3.10
1. Создать новый
проект и программу. Программа создает
список строк. Заполнение списка
осуществляется кнопкой добавить.
При добавлении строки автоматически в
форме отображаются максимальная и
минимальная по длине из строк списка.
При выделении строки в списке она
автоматически отображается меткой
текущая
строка.
Выделенную в списке строку можно удалить
одноименной кнопкой. Кнопка переопределить
предназначена для отображения на форме
новых максимальной и минимальной из
строк списка после удаления позиций
списка. Все содержимое списка удаляется
кнопкой очистить
список.
2. Внешний вид формы
показан на рис. 21. Установить на форме
все необходимые объекты, свойства Name
указаны на рисунке рядом с объектами.
Записать для проекта и объектов на форме
следующие программные коды:
Программный код
для раздела General
Declarations:
Dim
maxl As String
Dim
minl As String
Dim
stl(100) As String
D
im
ilem As Integer
Программный код
для кнопки добавить:
Private
Sub dobav_Click()
If
nst.Text<>»» Then
sp.AddItem
nst.Text
stl(ilem)=nst.Text
ilem=ilem+1
If
Len(maxl)<=Len(nst.Text) Then
maxl=nst.Text
End
If
If
Len(minl)>=Len(nst.Text) Then
minl=nst.Text
End
If
nst.Text=»»
max.Caption=maxl
min.Caption=minl
End
If
nst.SetFocus
End
Sub
Программный код
для кнопки удалить:
Private
Sub udal_Click()
Dim
i As Integer
For
i=sp.ListIndex To 99
stl(i)=stl(i+1)
Next
i
ilem=ilem-1
sp.RemoveItem
sp.ListIndex
tekstr.Caption=»»
sp.Refresh
End
Sub
Программный код
для списка:
Private
Sub
sp_Click()
tekstr.Caption=sp.Text
End
Sub
Программный код
для кнопки очистить:
Private
Sub ochis_Click()
sp.Clear
nst.SetFocus
End
Sub
Программный
код
для
формы:
Private
Sub Form_Activate()
nst.SetFocus
maxl=»*»
minl=Space(256)
End
Sub
Программный код
для кнопки переопределить:
Private
Sub opred_Click()
Dim
i As Integer
maxl=»*»
minl=Space(256)
For
i=0 To ilem-1
If
Len(maxl)<=Len(stl(i)) Then
maxl=stl(i)
End
If
If
Len(minl)>=Len(stl(i)) Then
minl=stl(i)
End
If
Next
i
max.Caption=maxl
min.Caption=minl
nst.SetFocus
End
Sub
Форма отчета:
дискета или иной носитель с файлами
форм и проектов работы № 3; текстовый
файл с изображениями форм и текстами
программных кодов.
Тема 4. Метод print и стандартные окна сообщений Практическая работа № 4.1
Visual
Basic
6.0 позволяет
вывести текстовую информацию в рабочую
область формы или в зону объекта
PictureBox
методом PRINT,
синтаксис
которого в общем виде выглядит следующим
образом: name
формы или
PictureBox.print
<список вывода>.
В списке вывода может быть произвольное
количество констант, переменных и
выражений, разделенных ,
или ;.
При выводе в форму каждое обращение к
методу PRINT
начинает вывод данных с координат,
определяемых значениями свойств CurrentX
и CurrentY
формы.
Э
ти
свойства недоступны при проектировании,
начальные значения их нулевые (верхний
левый угол),
но им можно придать нужные значения в
тексте программы. Единица измерения
этих свойств задается свойством ScaleMode
формы. Метод PRINT
выводит
данные шрифтом и цветом, установленными
свойствами ForeColor
(цвет)
и Font
(шрифт)
формы.
Т.к. положение
каждого объекта в форме определяется
значением свойств
top
и left,
то эти
значения можно использовать для привязки
координат вывода информации к этому
объекту. Если часть данных при выводе
не умещается в форму, то они пропадают
без возможности восстановления. Для
удаления данных из формы существует
метод Cls,
синтаксис
которого
в общем виде
записывается следующим образом:
name
формы
или
PictureBox.Cls
-
Открыть
новый проект. Внешний вид формы показан
на рис. 22. Установить для формы свойства:
Scale
mode
= 2 Point,
ForeColor
– зелёный, Font
– Comic
Sans,
12, жирный курсив, name
– example4_1.
Установить
в форме объекты согласно рис. 22, свойства
name
указаны рядом с объектами. Для рисования
линий на форме воспользоваться объектом
линия –
Line
из набора инструментов general. -
Записать
самостоятельно программный код для
кнопки закрыть.
-
Записать
программный код для текстовых полей,
обеспечивающий их очистку для ввода
последующих данных при щелчке мыши по
ним, для этого нужно 2-ды щелкнуть по
текстовому полю в форме, затем изменить
событие в правом списке в окне редактора
кодов с change
на click.
Записать для текстового поля следующий
программный код:
nachkod.Text=””
Аналогичным
образом записать программный код для
второго тестового поля.
-
Встроенная
функция CHR$
позволяет
получить (увидеть) символ по номеру его
кода. Записать следующий программный
код для кнопки ОК:
Dim
i As Integer
example4_1.Cls
example4_1.CurrentY=kod.Top+30
For
i = 1 To Val(kolkod.Text)
example4_1.CurrentX=kod.Left
Dim
intvar As Integer
intvar=Val(nachkod.Text)+i-1
example4_1.Print
intvar;
example4_1.CurrentX=simvol.Left
example4_1.Print
Chr$(intvar)
Next
i
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить на дискете проект и
форму с именами lab4_1
или example4_1
соответствующими командами из меню
file.
Практическая работа № 4.2
Visual
Basic
6.0 позволяет
вывести стандартные окна сообщений на
экран в нужном месте программы. Окна
могут содержать пиктограмму, з
аголовок
и текст сообщения, а также кнопки: ОК
YES
NO
CANCEL
RETRY.
Описание вывода окна сообщения на экран
выглядит следующим образом: MsgBox
«текст сообщения», код пиктограммы,
«заголовок» или
Msgbox
«текст сообщения», код вида ошибки,
«текст заголовка»,
где код
вида ошибки
– есть сумма значений кодов, определяемых
набором кнопок и пиктограммой. Если
заголовок не указан, то выводится
стандартный системный заголовок (как
правило, соответствующий имени проекта).
Коды пиктограмм: см. рис. 23. Коды наборов
кнопок указаны в таблице 1.
Для обеспечения
диалога с пользователем существуют
функции, которые возвращают целое число,
соответствующее любой нажатой из
имеющихся в окне кнопок (см. таб. 2).
Табл.
1
|
Набор кнопок |
OK |
OK+ CANCEL |
YES+NO+ CANCEL |
YES +NO |
|
Код |
0 |
1 |
3 |
4 |
Табл.
2
|
Нажатая |
OK |
CANCEL |
YES |
NO |
|
Возвращаемое |
1 |
2 |
6 |
7 |
-
Загрузить
проект, созданный в работе № 4.1. -
Предусмотреть
в программе вывод стандартного окна
сообщения в том случае, если пользователем
не введен начальный код. Окно сообщения
должно содержать пиктограмму
«перекрестье»
и кнопки YES
и
NO.
В этом случае код вида ошибки будет
равен 20
– сумма значений набора кнопок (4)
и пиктограммы (16).
Для этого в процедуре для кнопки ОК
после строки Form1.Cls
добавить
следующий программный код:
If
Val(nachkod.text)=0 Then
MsgBox
«Введите начальный код!», 20, «Ошибка!»
Exit
Sub
End
If
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить на дискете проект и
форму с именами lab4_2
или example4_2
соответствующими командами из меню
file.
Практическая работа № 4.3
Visual
Basic
6.0 позволяет
вывести стандартное окно InputBox
на экран для ввода исходных данных в
нужном месте программы. Окно содержит
заголовок, текст сообщения и текстовое
поле для ввода данных.
-
Загрузить
проект, созданный в работе № 4.1 или №
4.2. Изменить форму согласно рис. 24. Задать
свойство
name
формы –
example4_3. -
Предусмотреть в
программе вывод окон InputBox
для ввода начального кода и количества
кодов. Для этого удалить из программного
кода для кнопки ОК
все строки, ввести новый программный
код:
Dim
i, nachkod, kolkod As Integer
example4_3.Cls
nachkod=InputBox(«Введите
начальный
код«)
kolkod=InputBox(«Введите
количество кодов»)
example4_3.CurrentY=kod.Top+30
For
i=1 To kolkod
example4_3.CurrentX=kod.Left
Dim
intvar As Integer
intvar=nachkod+i-1
e
xample4_3.Print
intvar;
example4_3.CurrentX=simvol.Left
example4_3.Print
Chr$(intvar)
Next
i
-
Предусмотреть
в программе вывод стандартного окна
сообщения о подтверждении завершения
программы в том случае, если пользователь
нажал кнопку закрыть.
Выход из программы должен осуществляться
только при подтверждении выхода. Для
этого удалить прежний программный код
для кнопки закрыть
и записать следующий:
Dim
a As String
a=MsgBox(«Выход?»,
vbYesNo, «выход«)
If
a=vbYes
Then
End
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки, а
затем сохранить на дискете проект и
форму с именами lab4_3
или example4_3
соответствующими командами из меню
file.
Выполните самостоятельно! Практическая работа № 4.4
1. Создать новые
проекты для печати в верхнем левом углу
формы последовательности чисел [1 …
10].
Форма
должна
содержать
одну
командную
кнопку.
Программный
код для кнопки для печати:
-
в
строку:
Dim
i as Integer
Form1.Cls
For
i=1 to 10
Form1.Print
i;
Next
i
-
в
столбец:
Dim
i as Integer
Form1.Cls
For
i=1 to 10
Form1.Print
i
Next
i
2. Сохранить на
дискете проекты и формы с именами lab4_4
или example4_4.
Практическая работа № 4.5
1. Создать новый
проект и программу. Программа создает
список строк. Заполнение списка
осуществляется кнопкой добавить.
Кнопка искать
предназначена для определения количества
и средней длины строк списка, содержащих
букву или сочетание букв, указанное в
поле искать
строки с.
Если строки, удовлетворяющие критерию
поиска, отсутствуют в списке, программа
выдает стандартное сообщение. Кнопка
очистить
удаляет все содержимое списка.
2. Внешний вид
формы показан на рис. 25. Установить на
форме все необходимые объекты, свойства
Name
указаны на рисунке рядом с объектами.
Записать для проекта и объектов на
форме следующие программные коды:
Программный код
для раздела General
Declarations:
D
im
sarr(1 To 100) As String
Dim
snm As Integer
Dim
sln As Single
Dim
lcn As Integer
Программный код
для кнопки добавить:
Private
Sub dobav_Click()
If
nst.Text<>»» Then
sp.AddItem
nst.Text
lcn=lcn+1
sarr(lcn)=nst.Text
nst.Text=»»
End
If
nst.SetFocus
End
Sub
Программный код
для кнопки очистить:
Private
Sub ochis_Click()
Dim
i As Integer
sp.Clear
For
i=1 To lcn
sarr(i)=»»
Next
i
nst.SetFocus
sred.Caption=»»
fst.Caption=»»
End
Sub
Программный код
для кнопки искать:
Private
Sub isk_Click()
Dim
i As Integer
snm=0
sln=0
For
i=1 To lcn
If
InStr(sarr(i), fin.Text) Then
snm=snm+1
sln=sln+Len(sarr(i))
End
If
Next
i
fst.Caption=snm
If
snm>0 Then
sred.Caption=sln/snm
Else
MsgBox
«Нет строк!», 48
End
If
nst.SetFocus
fin=»»
End
Sub
-
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки,
а затем сохранить на дискете проект и
форму.
Практическая работа № 4.6
-
С

оздать
новый проект и программу для вывода
на форму сведений о трех студентах:
по запрашиваемой фамилии — курс и номер
группы. Макет формы показан на рис.
26. -
Программный код
для кнопки пуск:
Dim
familia As String
familia=InputBox(«введите
фамилию«,
«ввод
фамилии«)
If
familia=»Иванов»
Then
Text1.Text=»1
курс,
13 группа«
Else
If
familia=»Петров»
Then
Text2.Text=»2
курс,
21 группа«
Else
If
familia=»Чёрный»
Then
Text3.Text=»5
курс,
52 группа«
Else
MsgBox
«Данной фамилии нет в списке», 64,
«Ошибка»
End
If
End
If
End
If
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.7
-
Создать новый
проект и программу: даны стороны N
кубиков. Вычислить объем каждого. Форма
должна содержать одну кнопку пуск. -
Программный код
для кнопки пуск:
Dim
N, X As Integer, A, V As Single
Form1.Cls
N=InputBox(«Введите
число кубиков», «количество
кубиков»)
For
X=1 To N Step 1
A=InputBox(«Введите
длину стороны кубика», «ввод длины»)
V=A^3
P
rint
«объем
кубика«;
X; «=»; V
Next
X
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.8
-
Создать новый
проект и программу: в квартире 4 комнаты.
Известны длина и ширина каждой комнаты.
Вычислить площадь пола всей квартиры.
Макет формы показан на рис. 27. -
Программный код
для кнопки пуск:
Form1.Cls
Dim
S, A, B, C, D As Long
Dim
X1, X2, X3, X4 As Single
Dim
Y1, Y2, Y3, Y4 As Single
X1=InputBox(«Введите
длину 1 комнаты»)
Y1=InputBox(«Введите
ширину 1 комнаты»)
X2=InputBox(«Введите
длину 2 комнаты»)
Y2=InputBox(«Введите
ширину 2 комнаты»)
X3=InputBox(«Введите
длину 3 комнаты»)
Y3=InputBox(«Введите
ширину 3 комнаты»)
X4=InputBox(«Введите
длину 4 комнаты»)
Y4=InputBox(«Введите
ширину 4 комнаты»)
A=X1*Y1:
B=X2*Y2: C=X3*Y3: D=X4*Y4
S=A+B+C+D
Text1.Text=S
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.9
-
Создать новый
проект и программу: в классе 10 учеников.
Вычислить средний балл учеников класса
по физике. Макет формы показан на рис.
28. -
П

рограммный
код для кнопки пуск:
Dim
X, A As Integer, B As Single
For
X=1 To 10 Step 1
A=InputBox(«Введите
балл ученика», «ввод баллов»)
B=B+A
Next
X
B=B/10
Text1.Text=B
3
.
Запустить программу и убедиться в
правильности ее работы, при необходимости
исправить ошибки, а затем сохранить на
дискете проект и форму.
Практическая работа № 4.10
-
Создать новый
проект и программу, которая позволить
создать список чисел, а затем выполнить
со списком одно из 2-х действий: поиск
минимального числа в списке, либо
подсчет количества отрицательных
чисел в списке. Макет формы показан на
рис. 29. -
Программный код
для кнопки найти:
Dim
chismin As Single
Dim
i, n As Integer
If
vibor(0).Value Then
chismin=chisarr(1)
For
i=2 To chiskol
If
chisarr(i)<chismin Then chismin=chisarr(i)
Next
i
result.Caption=chismin
ElseIf
vibor(1).Value Then
For
i=1 To chiskol
If
chisarr(i)<0 Then n=n+1
Next
i
result.Caption=n
End
If
-
Программный код
для кнопки добавить,
а также описание глобальных переменных
записать аналогично работе № 3.1, пп. 4
и 5. Запустить программу и убедиться в
правильности ее работы, при необходимости
исправить ошибки, а затем сохранить
на дискете проект и форму.
Практическая работа № 4.11
1. Создать новый
проект и программу для вывода на форму
двух списков: в первый поместить названия
книг, рекомендуемых для чтения, а во
второй во время работы программы
поместить список прочитанных книг.
Макет формы показан на рис. 30.
2. Программный код
для кнопки пуск:
D
im
NazKn1(1 To 3) As String, NazKn2(1 To 5) As String
NazKn1(1)=»Программирование
на VB«
NazKn1(2)=»Информатика»
NazKn1(3)=»Основы
программирования«
Dim
x, y As Integer
For
x=1 To 3
List1.AddItem
NazKn1(x)
Next
x
For
y=1 To 5
NazKn2(y)=InputBox(«Введите,
пожалуйста, название книги», «Ввод
названий прочитанных книг»)
List2.AddItem
NazKn2(y)
Next
y
3.
Программные
коды
для
списков:
Private
Sub List1_Click()
Label1.Caption=List1.Text
End
Sub
Private
Sub List2_Click()
Label2.Caption=List2.Text
End
Sub
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.12
1. Создать новый
проект и программу для вычисления длины
окружности 
и
площади круга по введенному радиусу.
Результат напечатать оператором Print.
Макет формы показан на рис. 31.
2. Программный код
для кнопки пуск:
pi=3.14159
Dim
R As Single, C, S As Double
R=Text1.Text:
C=2*pi*R: S=pi*(R^2)
Print
Chr(13),
Chr(13),
«Длина окружности=»; C,
Chr(13),
Chr(10),
«Площадь круга=»; S
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.13
1. Создать новый
проект и программу для решения задачи:
в компьютер 
вводятся
2 числа. Если первое больше второго, то
напечатать их сумму, иначе – произведение.
После этого компьютер должен напечатать
текст – ЗАДАЧА
РЕШЕНА.
Макет формы показан на рис. 32.
2. Программный код
для кнопки пуск:
Dim
A, B As Long
A=Val(Text1.Text)
B=Val(Text2.Text)
If
A>B Then
Text3.Text=A+B
Else
Text3.Text=A*B
End
If
MsgBox
«ЗАДАЧА
РЕШЕНА«,
64, «ПОЗДРАВЛЕНИЕ!»
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.14
1. Создать новый
проект и программу для решения задачи:
-
Бесконечно
печатать букву А: ААААААААААА… -
Бесконечно
печатать 10000 9999 9998 9997 9996… -
Б

есконечно
печатать 100 50 25 12.5… с восьмью десятичными
знака
Макет формы показан
на рис. 33.
2. Программный код
для кнопки печатать
А:
Do
Print
«A«;
Loop
3. Программный код
для кнопки печатать
10000:
Dim
A As Long
A=10000
Do
A=A-1
Print
A;
Loop
4. Программный код
для кнопки печатать
100:
S#=100
Do
Print
S;
S=S/2
Loop
5. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.15
1. Создать новый
проект и программу для решения задачи:
-
Напечатать 1 2 3 4
… 50 … 99 100 -
Напечатать 100
99… 50 … 3 2 1 -
Напечатать 1 2 3 4
… 50 … 99 100 99 … 50 … 3 2 1
Макет формы показан
на рис. 34.
2. Программный код
для кнопки пуск
1:
D
im
i, j As Integer
Form1.Cls
For
a=1 To 100 Step 1
Print
a;
Next
a
3. Программный код
для кнопки пуск
2:
Dim
j As Integer
Form1.Cls
For
j=100 To 1 Step -1
Print
j;
Next
j
4. Программный код
для кнопки пуск
3:
Dim
a, b As Integer
Form1.Cls
For
a=1 To 100 Step 1
Print
a;
Next
a
For
b=100 To 1 Step -1
Print
b;
Next
b
5. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.16
1
.
Создать новый проект и программу для
решения задачи: вычислить и напечатать
с шестью десятичными знаками квадраты
чисел 0,000; 0.001; 0.002; 0.003; … 0.999; 1.000. Макет
формы
показан
на
рис.
35.
2. Программный код
для кнопки пуск
1:
A=0:
B=A^2: Print B
For
A=0.001 To 1 Step 0.001
B=A^2
Print
B
Next
A
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на диске
проект и форму.
Практическая работа № 4.17
1. Создать новый
проект и программу для решения задачи:
для х=2700, 900, 300, 100 вычислять и печатать
у = х/4 + 20 и z
= 2*у + 0.23 до тех пор, пока y*z
не станет меньше 1/х. Макет формы показан
на рис. 35.
2. Программный код
для кнопки пуск
1:
Dim
X, Y, Z As Double
X=2700
X=X*3
Y=X/4+20
Z=2*Y+0.23
Do
Until Y*Z<1/X
X=X/3
Y=X/4+20
Z=2*Y+0.23
Print
«Y=»; Y, «Z=»; Z
Loop
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.18
1. Создать новый
проект и программу для решения задачи:
печатать с помощью оператора For:
Прямой счет:
-3 -2 -1 0 1 2 3 Обратный счет: 3 2 1 0 -1 -2 -3 Конец
счета. Макет
формы показан на рис. 35.
2. Программный код
для кнопки пуск
1:
Dim
i, j As Integer
Form1.Cls
Print
«Прямой
счёт:»
For
i=-3 To 3 Step 1
Print
i;
Next
i
Print
«Обратный
счёт:»
For
j=3 To -3 Step -1
Print
j;
Next
j
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.19
1. Создать новый
проект и программу для решения задачи:
в компьютер вводится N чисел. Подсчитать
из них количество положительных,
отрицательных и тех, что превышают
число 10. Макет формы показан на рис. 35.
2. Программный код
для кнопки пуск
1:
Form1.Cls
Dim
N, X, Y1, Y2, Y3 As Integer
Dim
A As Single
N=InputBox(«Укажите,
пожалуйста, количество чисел, которое
вы хотите ввести», «Ввод количества
чисел»)
For
X=1 To N Step 1
A=InputBox(«Введите,
пожалуйста, число», «ввод чисел»)
If
A>0 Then
Y1=Y1+1
If
A>10 Then Y2=Y2+1
Else
Y3=Y3+1
End
If
Next
X
Print
«Количество положительных чисел =»;
Y1
Print
«Количество отрицательных чисел =»;
Y3
Print
«Количество чисел, превышающих 10 =»;
Y2
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.20
1. Создать новый
проект и программу для решения задачи:
в компьютер вводится N чисел. Вычислить
и напечатать их сумму. Макет формы
показан на рис. 35.
2. Программный код
для кнопки пуск
1:
Form1.Cls
Dim
N, X As Integer
Dim
A, B As Single
N=InputBox(«Укажите,
пожалуйста, количество чисел, которое
вы хотите ввести», «Ввод количества
чисел»)
For
X=1 To N Step 1
A=InputBox(«Введите,
пожалуйста, число», «ввод чисел»)
B=B+A
Next
X
Print
«Сумма
чисел =»;
B
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.21
1. Создать новый
проект и программу для решения задачи:
найти максимальное из 10 вводимых в
компьютер чисел. Макет формы показан
на рис. 36.
2. Программный код
для кнопки старт:
D
im
X As Integer, A, Y As Single
A=InputBox(«Введите,
пожалуйста, число», «ввод числа»)
Y=A
For
X=1 To 9
A=InputBox(«Введите,
пожалуйста, число», «ввод числа»)
If
A>Y Then Y=A
Next
X
Text1.Text=Y
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.22
1. Создать новый
проект и программу для решения задачи:
найти из N чис
ел
минимальное. Каким по порядку было
введено минимальное число? Макет формы
показан на рис. 37.
2. Программный код
для кнопки пуск:
Dim
X, N As Integer
Dim
A, Y, B As Single
N=InputBox(«Укажите,
пожалуйста, количество чисел, которое
вы хотите ввести», «Ввод количества
чисел»)
A=InputBox(«Введите,
пожалуйста, число», «ввод числа»)
Y=A:
B=1
For
X=1 To N-1
A=InputBox(«Введите,
пожалуйста, число», «ввод числа»)
If
A<Y Then
Y=A:
B=X+1
End
If
Next
X
Text1.Text=Y
Label4.Caption=B
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.23
1
.
Создать новый проект и программу для
решения задачи: в каком случае сумма
на вкладе в банке будет больше: при 14%
годовых через 10 лет или при 10% годовых
через 14 лет. Проценты начисляются на
остаток на счете и добавляются к вкладу
ежегодно. Макет формы показан на рис.
38.
2. Программный код
для кнопки пуск:
Dim
i As Integer
Dim
s1, s2 As Double
s1=1
s2=2
For
i=1 To 10
s1=s1*1.14
Next
For
i=1 To 14
s2=s2*1.1
Next
If
s1>s2 Then
MsgBox
«1 путь
лучше«
Else
MsgBox
«2 путь
лучше«
End
If
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.24
1. Создать новый
проект и программу для решения задачи:
через сколько лет средства, положенные
в банк под 12% годовых, возрастут не
менее, чем в 2 раза. Проценты начисляются
на остаток на счете и добавляются к
вкладу ежегодно? Макет формы показан
на рис. 38.
2. Программный код
для кнопки пуск:
Dim
n As Integer
Dim
s As Double
s=1
Do
s=s*1.12
n=n+1
Loop
While s<2
MsgBox
(«через
» & n & » лет«)
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.25
1. Создать новый
проект и программу для решения задачи:
автомобиль 3 часа ехал со скоростью 80
км/ч и 2 часа со скоростью 90 км/ч. Вычислить
среднюю скорость автомобиля. Результат
напечатать методом Print.
Макет формы показан на рис. 35.
2. Программный код
для кнопки пуск1:
Dim
S As Single
V1%=80:
T1%=3
V2%=90:
T2%=2
S=(V1*T1+V2*T2)/(T1+T2)
Print
«средняя
скорость=»;
S
Dim
S As Single
V1%=80:
T1%=3
V2%=90:
T2%=2
S=(V1*T1+V2*T2)/(T1+T2)
Print
«средняя скорость=»; S
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.26
1. Создать новый
проект и программу для решения задачи:
в компьютер вводится слово. Компьютер
должен просто распечатать его. Однако
если введенным словом будет «колхозник»,
то компьютер должен напечатать вместо
него слово «фермер». Макет формы
показан на рис. 35.
2. Программный код
для кнопки пуск1:
Form1.Cls
Dim
slovo As String
slovo=InputBox(«введите
слово”, “ввод слова»)
If
slovo=»колхозник»
Then
Print
«фермер»
Else
Print
slovo
End
If
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.27
1. Создать новый
проект и программу для решения задачи:
компьютер спрашивает пользователя,
как его зовут, а затем приветствует его
в соответствии с именем: Колю –
Привет, Васю –
Здорово, Джона –
Hi,
а остальных –
Здравствуйте. Для Васи, кроме того, он
красит форму в зеленый цвет. Макет формы
показан на рис. 35.
2. Программный код
для кнопки пуск1:
Form1.Cls
Form1.BackColor=&HC0C0FF
Dim
ИМЯ
As String
ИМЯ=InputBox(«Введите
имя», «Ввод имени»)
If
ИМЯ=»Коля»
Then
Print
«Привет!»
Else
If
ИМЯ=»Вася»
Then
Form1.BackColor=vbGreen:
Print «Здорово!»
Else
If
ИМЯ=»Джон»
Then
Print
«Hi!»
Else
Print
«Здравствуйте!»
End
If
End
If
End
If
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.28
1. Создать новый
проект и программу для решения задачи:
компьютер спрашивает пользователя,
сколько ему лет? Узнав возраст человека,
дальн
ейшую
беседу он ведет по двум вариантам. Если
возраст больше 17, то компьютер должен
задать вопрос: «В каком институте
ты учишься?» и, получив ответ,
заметить: «Хороший институт». Если же
возраст меньше или равен 17, то
соответственно –
«В какой школе ты учишься?» и «Неплохая
школа». После этого, каков бы ни был
вариант, компьютер должен попрощаться:
«До следующей встречи!» Макет формы
показан на рис. 39.
2. Программный код
для кнопки пуск:
Dim
ВОЗРАСТ As
Single
Dim
ИНСТИТУТ, ШКОЛА As
String
ВОЗРАСТ=InputBox(«Сколько
вам лет?», «Введение возраста»)
If
ВОЗРАСТ>17 Then
ИНСТИТУТ=InputBox(«В
каком институте ты учишься?»,
«введение названия института»):
Text1.Text=»
Хороший институт!»
Else
ШКОЛА=InputBox(«В
какой школе ты учишься?»,
«введение названия школы»):
Text1.Text
= «Неплохая
школа«
End
If
MsgBox
«До
следующей встречи!»,
64, «Прощание»
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.29
1. Создать новый
проект и программу для решения задачи:
человек вводит в компьютер число. Если
оно находится в интервале от 28 до 30, то
нужно напечатать текст –
ПОПАЛ, если оно больше или равно 30, то
– ПЕРЕЛЕТ,
если оно находится на отрезке от 0 до
28, то –
НЕДОЛЕТ, если число меньше нуля, то –
НЕ БЕЙ ПО СВОИМ. Макет формы показан на
рис. 39.
2. Программный код
для кнопки пуск:
Dim
A As Single
A=InputBox(«Введите
число», «Ввод числа»)
If
A<0 Then
Text1.Text=»Не
бей по своим!»
Else
If
A<=28 Then
Text1.Text=»Недолет»
Else
If
A<30 Then
Text1.Text=»Попал!»
Else
Text1.Text=»Перелет»
End
If
End
If
End
If
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.30
1. Создать новый
проект и программу для решения задачи:
пользователь в
водит
радиусы 2-х кругов и сторону квадрата.
С помощью процедуры MsgBox
вывести результат сравнения площадей
этих фигур: меньше, больше или одинаковы.
Расположить на форме кнопку выхода из
проекта. С помощью процедуры MsgBox
перед выходом переспросить, уверен ли
пользователь в выходе, выход только по
ответу – да. Макет формы показан на
рис. 40.
2. Программный код
для кнопки пуск:
Dim
a, r1, r2, s, s1, s2 As Double
Const
pi=3.1416
r1=InputBox(«введите
1 радиус«)
r2=InputBox(«введите
2 радиус
«)
a=InputBox(«введите
сторону квадрата»)
s1=pi*r1^2
s2=pi*r2^2
s=a^2
If
s1>s2 And s1>s Then
MsgBox
«круг
1 больше«
ElseIf
s1<s2 And s<s2 Then
MsgBox
«круг
2 больше«
ElseIf
s1>s And s1=s2 Then
MsgBox
«круги равны, квадрат меньше»
ElseIf
s1<s And s1=s2 Then
MsgBox
«круги равны, квадрат больше»
ElseIf
s1<s And s>s2 Then
MsgBox
«квадрат
больше«
End
If
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.31
1. Создать новый
проект и программу для решения задачи:
пользователь вводит произвольное
число. Вывести с помощью процедуры
MsgBox
результат сравнения суммы 1-й и 3-й цифры
с суммой 2-й и 4-й цифры. Если введенное
число имеет меньше 4-х разрядов, сообщить
об этом пользователю и сравнение не
производить. Макет формы показан на
рис. 40.
2. Программный код
для кнопки пуск:
Dim
i, a1, a2 As Integer
Dim
b As String
b=InputBox(«введите
число«)
If
Len(b)<4 Then
MsgBox
«недостаточно цифр», 48, «стоп»
Else
a1=Val(Mid(b,
1, 1))+Val(Mid(b, 3, 1))
a2=Val(Mid(b,
2, 1))+Val(Mid(b, 4, 1))
If
a1>a2 Then
MsgBox
«1 и 3 больше», 64, «результат»
ElseIf
a1<a2 Then
MsgBox
«2 и 4 больше», 64, «результат»
Else
MsgBox
«одинаково», 64, «результат»
End
If
End
If
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.32
1. Создать новый
проект и программу для решения задачи:
пользователь вводит произвольное
число. Вывести с помощью процедуры
MsgBox
результат сравнения суммы цифр,
расположенных на четных местах в числе
с суммой цифр, расположенных на нечетных
местах: меньше, больше или одинаковы.
Расположить на форме кнопку выхода из
проекта. С помощью процедуры MsgBox
перед выходом переспросить, уверен ли
пользователь в выходе, выход только по
ответу – да. Макет формы показан на
рис. 40.
2. Программный код
для кнопки пуск:
Dim
i, a1, a2 As Integer
Dim
b As String
b=InputBox(«enter
number»)
For
i=1 To Len(b) Step 2
a1=a1+Val(Mid(b,
i, 1))
a2=a2+Val(Mid(b,
i+1, 1))
Next
If
a1>a2 Then
MsgBox
«сумма нечетных больше», 64,
«результат»
ElseIf
a1<a2 Then
MsgBox
«сумма четных больше», 64, «результат»
Else
MsgBox
«равны», 64, «результат»
End
If
3. Программный код
для кнопки выход:
Dim
a As String
a=MsgBox(«выход?»,
vbYesNo, «выход«)
If
a=vbYes Then End
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 4.33
1
.
Создать новый проект и программу для
поиска нужного товара в списке. Заполнить
список 5 – 7 наименованиями товаров.
Разместить на форме текстовое поле для
ввода названия нужного товара. Для
клавиши «найти»
написать код, который с помощью функции
MsgBox выводит информацию: есть такой
товар в списке или нет. В этом же сообщении
предложить выбор: продолжить поиск
товаров или завершить работу. Макет
формы показан на рис. 41. Заполнить список
данными (см. рис. 41) в свойстве List
(см. практ. р. № 3.1) в окне properties
window.
2.
Программный
код
для
кнопки
пуск:
Dim
i, n As Integer
Dim
a As String
For
i=0 To List1.ListCount
If
List1.List(i)=Text1.Text Then n=1
Next
If
n=1 Then
a=MsgBox(«есть
товар»
& vbCrLf & «продолжить?»,
vbYesNo)
Else
a=MsgBox(«нет
товара»
& vbCrLf & » продолжить?»,
vbYesNo)
End
If
If
a=vbNo Then End
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Форма отчета:
дискета или иной носитель с файлами
форм и проектов работы № 4; текстовый
файл с изображениями форм и текстами
программных кодов.
Тема 5. Операционное меню и графика Практическая работа № 5.1
О
перационное
меню
создается в главной форме (рис. 42) проекта
с помощью служебной программы MENU
EDITOR,
вызываемой одноименной командой из
меню TOOLS.
(См. рис. 43)
В
окне MENU
EDITOR
название позиции меню вводится в поле
Name,
а содержание
команды меню – в поле
Caption.
Удобно все позиции одного выпадающего
меню снабжать одинаковым именем Name,
но различными индексами, которые
вводятся в поле Index.
Команды
меню могут содержать так называемые
«горячие»
символы, с помощью которых можно
обращаться к командам меню, используя
функциональные клавиши. Для этого
соответствующий символ в поле Caption
должен быть обозначен знаком &
(см. рис.
44).
Если позиция меню должна работать как
«флажок»,
то необходимо для нее включить флажок
Checked,
если позиция должна быть недоступна
при запуске программы, для нее нужно
включить флажок Enabled.
Если позиция должна быть невидима, то
выключить флажок Visible.
Если следующая вводимая позиция меню
должна быть на уровень ниже (например,
для команд выпадающего меню) или выше
(например, для команд основного меню),
то для перехода на другой уровень
следует нажать кнопку
(понизить уровень) или
(повысить уровень). Переход на следующую
строку для ввода следующей позиции
меню выполняется кнопкой NEXT
и щелчком по полю Caption.
Для того, чтобы
открыть окно редактора кодов программы
для той или иной команды меню, нужно
2-ды щелкнуть по этой команде в окне
формы.
-
Открыть
новый проект. Внешний вид формы показан
на рис. 42. Оформить форму по образцу.
Установить в форме метку. Установить
для формы свойство Name
– menu. -
Выбрать
команду MENU
EDITOR
из меню TOOLS.
Заполнить окно MENU
EDITOR
по образцу (см. рис. 42 и 43) и нажать кнопку
ОК.
(Будьте
внимательны! Точки …. перед содержанием
позиций меню в окне MENU
EDITOR
не набирать!)
&программа
(name=prog)
нажать кнопки
NEXT
и
&звезда
(name=zvez,
index=0)
нажать кнопку
NEXT
&выход
(name=zvez,
index=1)
нажать кнопки
NEXT
и
&справка
(name=spr)
нажать кнопки
NEXT
и
&о
программе (name=spravka,
index=0)
нажать кнопку
NEXT
&разработчик
(name=spravka,
index=1)
-
Вызвать
окно редактора для команды меню о
программе,
записать в процедуру для этой команды
следующий программный код:
Private
Sub spravka_Click(Index As Integer)
Select
Case Index
Case
0
menu.Enabled=False
o
prog.Show
Case
1
menu.Enabled=False
razrab.Show
End
Select
End
Sub
-
Диалоговое
окно
(рис. 44) – это модальное окно, которое
не позволяет переключаться на
родительское (исходное) окно, прежде
чем будет завершена работа с модальным.
Для обеспечения этого свойства
необходимо форме этого окна задать
свойство Border
Style
= 3 –
Fixed
Dialog.
Кроме того, в тексте программы должны
быть строки, которые обеспечивают
состояние недоступности родительского
окна перед выводом диалогового окна
на экран (свойство Enabled
формы).
После
закрытия диалогового окна нужно
восстановить доступность родительского
окна и установить на нем «фокус».
Для того, чтобы любое не главное окно,
в т.ч. и диалоговое, появилось на экране
при работе программы, необходимо в
нужном месте программного кода
предусмотреть строку с оператором
загрузки формы и методом показа ее,
т.к. при запуске программы автоматически
появляется только главное окно
программы. Синтаксисы оператора
загрузки и метода показа формы следующие:
-
Оператор
загрузки: LOAD
Name
формы
-
Метод
показа: Name
формы.Show
Оператор
LOAD
только
загружает форму из файла в память, но
не показывает на экране. Метод Show
предназначен для показа уже загруженной
формы на экране, если форма еще не
загружена, то он также может и загрузить
ее. Если какое-либо окно при работе с
программой используется часто, то
целесообразно в начале программы
загрузить его оператором LOAD,
а затем в нужный момент показывать на
экране методом Show.
По
окончании работы с диалоговым окном
его необходимо скрыть и выгрузить.
Оператор и метод, обеспечивающие
выгрузку и скрытие формы имеют синтаксисы:
-
Оператор
выгрузки:
UNLOAD
Name
формы -
Метод
скрытия:
Name
формы.Hide
Обычно
диалоговые окна вызываются командами
меню, поэтому оператор LOAD
и метод Show
должны
находиться в соответствующей процедуре
выпадающего меню. Так как принято все
позиции одного выпадающего меню
именовать одинаковым Name,
то в проекте
Visual
Basic
6.0 создается
одна процедура с оператором Select
case
Index,
который передает в эту процедуру
значение свойства Index
выбранной
позиции
меню.
Придав
однажды диалоговому окну свойство
модальности, нужно добавить аналогичную
строку, которая возвращает доступность
главной формы. В каждый момент времени
какая-либо форма или объект в ней
является активной, это означает, что –
она «в
фокусе»!
По умолчанию,
при вызове формы на экран в фокус
попадает ее первый управляющий элемент.
В некоторых случаях бывает нужно
предусмотреть в тексте программы
установку фокуса на какой-либо форме
или объекте в ней, чтобы он был виден
на экране. Для этого предназначен
следующий метод:
Name
объекта
.
SetFocus
-
Нажать
кнопку добавить
форму
(Add
Form)
на панели инструментов или выбрать
команду Add
Form
из меню Project.
В проекте появится еще одна форма. Эта
форма – будущее диалоговое окно,
содержащее сведения о программе. (См.
рис. 44) Если форма добавлена в проект
ошибочно, то для ее удаления нужно
вызвать на ее значке в окне проводника
проекта контекстное меню и выбрать
команду Remove
Form.
При выборе этой команды появляется
запрос на сохранение удаляемой формы
в отдельном файле, на который необходимо
ответить.
Рисунок
в форму может быть вставлен объектами
Image
и PictureBox,
которые
находятся в наборе инструментов General.
Эти объекты
«показывают»
рисунки, если их свойству Picture
присвоено
как значение имя файла рисунка.
Установить
в форме объект Image,
присвоить
свойству Picture
этого объекта
имя файла, содержащего рисунок (файл с
рисунком должен быть предварительно
создан с помощью какого-либо графического
пакета и сохранен на диске или дискете;
либо можно использовать любой имеющийся
готовый файл рисунка).
Следует
иметь в виду, что объект
Image
не может «сжать»
или «растянуть»
большой или маленький по размерам
рисунок до своих размеров, поэтому
рекомендуется использовать рисунки,
соизмеримые с размерами объекта Image
и формы. В противном случае следует
установить значение свойства Stretch
объекта Image
равным True
– в этом случае «растяжение»
или «сжатие»
рисунков будет возможно.
У
становить
также в форме метку и командную кнопку
ОК.
Установить необходимые значения свойств
этих объектов. Задать для формы свойство
Name
– oprog.
Установить для этой формы значения
свойств Minbutton
– False
и Maxbutton
– False.
Записать для кнопки ОК
следующий программный код:
oprog.Hide
menu.Enabled=True
m
enu.SetFocus
-
Аналогичным
образом подготовить второе диалоговое
окно «сведения
о разработчике»
(см. п.п. 4, 5). Установить в окне метки, в
свойствах Caption
которых записать сведения о разработчике
(рис. 45); а также кнопку закрыть.
Задать для формы свойство Name
– razrab.
Записать для кнопки закрыть
следующий программный код:
razrab.Hide
menu.Enabled=True
menu.SetFocus
-
Добавить к проекту
еще одну форму (см. рис. 46) с заголовком
окна «звезда»
и свойством Name
– zvezda.
Установить на форме 2 командные кнопки
со свойствами Caption:
построить звезду
и ОК
соответственно.
(Будьте
внимательны! Звезду на форме не
рисовать!)
Записать следующий программный код
для кнопки ОК:
zvezda.Hide
menu.Enabled=True
menu.SetFocus
-
Создать
процедуру–функцию для построения
правильной звезды с помощью метода
формы Line
и с использованием тригонометрических
функций. Для этого следует открыть
раздел программного кода General
Declarations
в окне редактора кодов программы для
формы «звезда»,
где описать эту процедуру–функцию:
Private
Function Postr_Zvezda()
Dim
Pi, L, al, x0, y0, X1, Y1 as Single
Dim
X2, Y2, x3, y3, x4, y4, x5, y5 as Single
ForeColor=&HFF
‘
цвет
красный
Pi=3.1416:x0=1500:y0=1000:L=2000:al=36/180*Pi
X1=x0:Y1=y0
X2=X1+L:Y2=Y1:Line(X1,Y1)-(X2,Y2)
x3=X2-L*Cos(al):y3=Y2+L*Sin(al)
Line
(X2,Y2)-(x3,y3)
x4=x3+L*Sin(al/2):y4=y3-L*Cos(al/2)
Line
(x3,y3)-(x4,y4)
x5=x4+L*Sin(al/2):y5=y3
Line
(x4,y4)-(x5,y5)
Line
(x5,y5)-(X1,Y1)
End
Function
Записать для
кнопки построить
звезду
следующий программный код:
Dim
zvezd As Double
zvezd=Postr_Zvezda()
-
Вернуться в
главную форму «разработка
меню».
Вызвать окно редактора для команды
меню звезда
и записать следующий программный код:
Private
Sub zvez_Click(Index As Integer)
Select
Case Index
Case
0
menu.Enabled=False
zvezda.Show
Case
1
End
End
Select
End
Sub
-
В

любом проекте, имеющем более 1-й формы,
одна из форм должна быть стартовой. По
умолчанию стартовой является та форма,
которая была первой создана в проекте.
В том случае, если компилятор Visual
Basic
6.0 не
может определить стартовую форму, или
требуется указать стартовую форму
самостоятельно, следует воспользоваться
командой Project
Properties
из меню Project.
В диалоговом окне команды Project
Properties
на вкладке General
(рис. 47) следует определить стартовую
форму, выбрав ее по значению свойства
Name
в раскрывающемся списке Startup
Object,
затем нажать кнопку ОК. -
Запустить программу
и убедиться в правильности ее работы,
при необходимости исправить ошибки,
а затем сохранить на дискете файл
проекта с именем lab5_1
или example5_1
командой Save
Project
As
из меню file.
Также сохранить на дискете каждую
форму с именами lab5_1_1…(2,
3, 4) или
example5_1_1…(2,
3, 4). Можно
сохранить формы и с именами, совпадающими
со свойствами Name
форм проекта.
Для сохранения
нескольких форм одного проекта нужно
последовательно выделять значки этих
форм в окне проводника проекта, выбирая
при этом каждый раз команду Save
<name
формы>
As
в меню File.
Каждый раз эта команда будет отображать
свойство Name
той формы, которая в данный момент
выделена в окне проводника проекта.
Практическая работа № 5.2
1. Создать новый
проект и программу для вывода на форму
результатов редактирования фрагмента
текста путем изменения типа, цвета и
размера шрифта, начертания (курсив или
полужирный). Макет формы показан на
рис.
48.
2. Программный код
для кнопки пуск1:
Dim
A As String
A=InputBox(«Введите
текст»)
T
ext1.Text=A
3. Программный код
для кнопки редактирование
текста:
Text1.FontName=»Comic
Sans MS»
Text1.FontSize=16
Text1.FontItalic=True
Text1.FontBold=True
Text1.ForeColor=vbRed
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 5.3
1. Создать новый
проект, показывающий желтую квадратную
форму с нов
ым
заголовком в правом верхнем углу и в
центре экрана при нажатии на управляющую
кнопку. Макет
формы показан на рис. 49.
2. Программный код
для кнопки пуск:
Form1.Top=0
Form1.Left=15360-Form1.Width
‘
15360 – ширина
формы
в
свойстве
«right to left»
Form1.Caption=»new
title»
Form1.BackColor=vbYellow
Form1.Height=Form1.Width
3. Программный код
для кнопки в
центр:
Form1.Left=15360/2-Form1.Width/2
Form1.Top=11520/2-Form1.Height/2
‘
11520 — высота формы в свойстве «right
to
left»
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 5.4
1. Создать новый
проект – простейший интерфейс –
фотоальбом. Макет формы показан на рис.
50. Установить на форме объект Image.
2. Программные
коды для кнопок OptionButton:
Private
Sub Option1_Click()
Image1.Picture=LoadPicture(«C:Documents
and SettingsAll UsersДокументыМои
рисункиОбразцы
рисунковВодяные
лии.jpg»)
End
Sub
Private
Sub Option2_Click()
Image1.Picture=LoadPicture(«C:Documents
and SettingsAll UsersДокументыМои
рисункиОбразцы
рисунковГолубые
холмы.jpg»)
End
Sub
Private
Sub Option3_Click()
Image1.Picture=LoadPicture(«C:Documents
and SettingsAll UsersДокументыМои
рисункиОбразцы
рисунковЗакат.jpg»)
End
Sub
Private
Sub Option4_Click()
Image1.Picture=LoadPicture(«C:Documents
and SettingsAll UsersДокументыМои
рисункиОбразцы
рисунковЗима.jpg»)
End
Sub
В программных
кодах для кнопок OptionButton
должен быть указан истинный путь доступа
к графическим файлам.
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 5.5
1. Создать новый
проект, позволяющий при нажатии одной
кнопки сделать видимой другую для
завершения приложения. Выбрать иконку
для ее отображения на форме. Макет формы
показан на рис. 51.
2
.
Для того, чтобы в заголовке формы
отображалась иконка, нужно свойству
формы Icon
присвоить значение файла с расширением
*.ico.
3. Программный код
для кнопки пуск:
Command2.Enabled=True
4.
Программный
код
для
формы:
Private
Sub Form_Load()
Command2.Enabled=False
End
Sub
5. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 5.6
1
.
Создать новый проект, состоящий из двух
форм. Первая форма (рис. 52) должна
содержать меню для вызова второй формы
(рис. 53). Во второй форме предусмотреть
список с фамилиями 5 студентов группы
и кнопку для возврата в первую форму.
2. Программный код
для меню на форме 1:
Form2.Show
3. Программный код
для кнопки увидеть
список
на форме 2:
Form2.Cls
Dim
Spisok(1 To 5) As String
Dim
x As Integer
Spisok(1)=»Андреева«:
Spisok(2)=»Борисова«
Spisok(3)=»Иванов«:
Spisok(4)=»Петров«
Spisok(5)=»Грекова«
For
x=1 To 5
List1.AddItem
Spisok(x)
Next
x
4. Программный код
для кнопки вернуться
к первой форме
на форме 2:
Form1.Show
5. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и формы.
Практическая работа № 5.7
1. С
оздать
новый проект для решения задачи:
нарисовать 10 квадратов цветами радуги
и подписать их номера. Макет
формы
показан
на
рис.
54.
2. Программный код
для формы:
Private
Sub Form_Load()
Form1.Show
For
i=0 To 9
Line
(1+400*i, 1)-(300+400*i, 300), QBColor(5+i), B
Print
i+1
Next
i
End
Sub
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 5.8
1

.
Создать новый проект и программу,
которая позволит создать список 
слов,
выбрать из списка слова, заканчивающиеся
на заданную букву, определить количество
остальных (не заканчивающихся на букву)
слов. Слова, соответствующие условию
отбора должны выводиться в форму. Если
список слов пуст, программа должно
выводить на экран сообщение. Программа
должна содержать 4 окна: главное и
справочное окна, рабочее окно приложения,
окно сведений о разработчике. Переключение
между окнами должно осуществляться с
помощью меню.
2. Добавить к
проекту 3 формы. Макеты главной формы
и форм –
справочных окон показаны на рис. 55, 56,
57. (см. практ. р. № 5.1) Задать формам
свойства Name:
главной – menu,
разработчик – razrab,
о программе – oprog.
Самостоятельно записать коды для кнопок
закрыть
в справочных окнах.
3. Создать на
главной форме меню в соотв. с рис. 55.
&программа
(name=prog)
нажать кнопки
NEXT
и
&поиск
(name=spisok, index=0) нажать
кнопку
NEXT
&выход
(name=spisok,
index=1)
нажать кнопки
NEXT
и
&справка
(name=spr)
нажать кнопки
NEXT
и
&о
программе (name=spravka,
index=0)
нажать кнопку
NEXT
&разработчик
(name=spravka,
index=1)
Записать для меню
программный код:
Private
Sub spisok_Click(Index As Integer)
Select
Case Index
Case
0
menu.Enabled=False
Load
poisk
poisk.Show
Case
1
End
End
Select
End
Sub
Private
Sub spravka_Click(Index As Integer)
Select
Case Index
Case
0
menu.Enabled=False
Load
razrab
razrab.Show
Case
1
g
lavn.Enabled=False
Load
oprog
oprog.Show
End
Select
End
Sub
4. Оформить 4-ю
форму по образцу (рис. 58). Задать ей
свойство name
– Poisk.
Записать следующие программные коды
для объектов
формы:
Программный
код
для
раздела
General
Declarations:
Dim
slovarr(1 To 50) As String
Dim
slovkol As Integer
Программный
код для кнопки закрыть:
poisk.Hide
Unload
poisk
menu.Enabled=True
menu.Show
Программный
код для кнопки добавить:
spis.AddItem
slovo.Text
slovkol=slovkol+1
slovarr(slovkol)=slovo.Text
slovo.Text=»»
slovo.SetFocus
Программный
код для кнопки найти:
poisk.Cls
If
spis.List(0)=Empty Then
MsgBox
«Заполните список», 16, «Внимание»
Exit
Sub
End
If
Dim
i, sum As Integer
poisk.CurrentX=Lab_pr.Left
poisk.CurrentY=Lab_pr.Top+30
buk.Caption=bukva.Text
For
i=1 To slovkol
If
Right$(slovarr(i), 1)=bukva.Text Then
poisk.Print
slovarr(i)
Else
sum=sum+1
End
If
Next
i
result.Caption=sum
5. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и формы.
Форма отчета:
дискета или иной носитель с файлами
форм и проектов работы № 4; текстовый
файл с изображениями форм и текстами
программных кодов.
Тема 6. Двумерные массивы Практическая работа № 6.1
1. Создать новый
проект и программу, которая позволит
создать матрицу порядка от 2 до 9, который
указывается в поле порядок
матрицы.
Если значение порядка не соответствует
указанному диапазону, программа выдает
стандартное сообщение. Элементы матрицы
вводятся по одному последовательно по
строкам. Заполнение матрицы осуществляется
с помощью поля элемент
матрицы
и кнопки добавить.
Кнопка сумма
предназначена для подсчета суммы
элементов строки матрицы, номер которой
указан в поле суммировать
строку N.
2. Внешний вид
формы показан на рис. 59, свойство Name
формы – Example6_1.
Установить на форме необходимые
объекты, свойства Name
указаны на рисунке рядом с объектами.
Записать самостоятельно программный
код для кнопки Закрыть.

3. Записать следующие
программные коды для формы и объектов:
Программный
код для раздела General
Declarations:
Dim
mtx(1
To
9, 1 To
9) As
Integer
Dim
mtr
As
Integer
Dim
lem
As
Integer
Dim
stn As Integer
Dim
cln As Integer
Программный код
для активации формы:
Private
Sub Form_Activate()
pmx.SetFocus
CurrentX=ln.X1+100
CurrentY=ln.Y1+200
stn=1
End
Sub
Программный код
для кнопки добавить:
lem=lem+1
cln=cln+1
mtx(stn,
cln)=Val(nel.Text)
Print
nel.Text;
CurrentX=CurrentX+500
If
cln=mtr Then
stn=stn+1
cln=0
CurrentY=CurrentY+300
CurrentX=ln.X1+100
End
If
nel.SetFocus
nel.Text=»»
Программный код
для кнопки сумма:
Dim
i
As
Integer
Dim
ism As Integer
For
i=1 To mtr
ism=ism+mtx(Val(rnm.Text),
i)
Next
i
rsm.Caption=ism
Процедура снятия
«фокуса»
с текстового поля:
Private
Sub pmx_LostFocus()
mtr=Val(pmx.Text)
If
mtr>1 And mtr<10 Then
dobav.Enabled=True
nel.SetFocus
Else
MsgBox
«Неверный порядок матрицы», 16,
«Ошибка!»
pmx.SetFocus
pmx.Text=»»
End
If
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и формы.
Практическая работа № 6.2
1. Создать новый
проект, заполняющий матрицу размером
2х4 случайными числами в диапазоне от
–3 до +6. Написать код для управляющей
кнопки, подсчитывающий произведение
положительных элементов для каждого
столбца матрицы. Предусмотреть ответ
«нет», если все элементы столбца меньше
или равны нулю. Макет формы показан на
рис. 60.
2
.
Свойство Name
формы – Example6_2.
Установить на форме необходимые
объекты, свойства Name указаны на рисунке
рядом с объектами. Установить на форме
8 текстовых полей с одинаковым свойством
Name
– Text1,
но различными значениями свойства
Index:
от 0
до 7.
Текстовые поля должны представлять
собой контрольный массив. Нумерация
полей – по строкам.
3. Программный код
для кнопки пуск:
Dim
i, j, n, a(1, 3), b As Integer
Randomize
For
i=0 To 1
For
j=0 To 3
a(i,
j)=-3+Int(10*Rnd)
Text1(i*4+j)=a(i,
j)
Next:
Next
For
j=0 To 3
If
a(0, j)<=0 Or a(1, j)<=0 Then
MsgBox
«в столбце» & j
& «нет положительных элементов»
Else
b=a(0,
j)*a(1,
j)
MsgBox
«в столбце» & j
& «произведение положительных
элементов=» & b
End
If
Next
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 6.3
1
.
Создать новый проект для решения задачи,
рассмотренной в п. 6.2, другим способом.
2. Внешний вид
формы показан на рис. 61, свойство Name
формы – Example6_3.
Установить на форме необходимые
объекты, свойства Name
указаны на рисунке рядом с объектами.
Записать программный код для кнопки
Выход.
3
.
Установить на форме два объекта FlexGrid.
Для этого вызвать контекстное меню на
наборе инструментов General,
выбрать команду Components.
В окне Components
на вкладке Controls
(рис. 62) поставить галочку напротив
позиции Microsoft
FlexGrid Control 6.0 (SP6),
нажать кнопку Применить,
затем кнопку ОК.
В наборе инструментов General
появится кнопка
![]()
объекта FlexGrid.
Свойства Name
объектов FlexGrid
– G1
и G2
(рис. 61). Объект FlexGrid
имеет свойства: свойство Cols
– количество столбцов, установить это
свойство для обоих объектов равным 4;
свойство Rows
– количество строк, установить это
свойство для обоих объектов равным 2.
Содержимое объекта FlexGrid
хранится в его свойстве Text.
4. Записать для
объектов формы следующие программные
коды:
Раздел
General
Declarations:
Dim
m(2, 4), p, i, j, b(4) As Integer
5. Программный код
для кнопки обновить:
G2.Clear
For
i=0 To 1
For
j=0 To 3
m(i,
j)=Int((-3)*Rnd+6)
G1.Col=j
G1.Row=i
G1.Text=m(i,
j)
Next
j
Next
i
For
j=0 To 3
If
m(0, j)>0 And m(1, j)>0 Then
For
i=0 To 1
b(4)=m(0,
j)*m(1, j)
G2.Col=j
G2.Text=b(4)
Next
i
Else
MsgBox
«в столбце» & j
& «нет положительных элементов»
End
If
Next
j
6. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 6.4
1
.
Создать новый проект для решения вывода
на форму символьного массива из 5 слов
по 5 букв и определить слово: а) составленное
из букв, расположенных на главной
диагонали символьного массива; б)
определить слово, составленное из букв,
расположенных на обратной диагонали
символьного массива; в) определить
слово, составленное из букв, расположенных
в начале каждого слова; г) определить
слово, составленное из букв, расположенных
в заданном столбце символьного массива;
д) определить слово, составленное из
последних букв каждого слова. Макет
формы показан на рис. 63.
2. Программный код
для кнопки пуск:
Dim
A(1 To 5, 1 To 5) As String*1
Dim
X As Integer, Y As Integer, B As Integer
For
X=1
To
5
MsgBox
«введение слова по буквам «, 64
For
Y=1 To 5
A(X,
Y)=InputBox(«введите
букву»)
Print
A(X, Y);
Next
Y
Next
X
Text1.Text=A(1,
1)+A(2, 2)+A(3, 3)+A(4, 4)+A(5, 5)
Text2.Text=A(1,
5)+A(2, 4)+A(3, 3)+A(4, 2)+A(5, 1)
Text3.Text=A(1,
1)+A(2, 1)+A(3, 1)+A(4, 1)+A(5, 1)
B=InputBox(«введите
номер столбца»)
Text4.Text=A(1,
B)+A(2, B)+A(3, B)+A(4, B)+A(5, B)
Text5.Text=A(1,
5)+A(2, 5)+A(3, 5)+A(4, 5)+A(5, 5)
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 6.5
1. Создать новый
проект, заполняющий матрицу размером
4х4 случайным
и
целыми числами в диапазоне от 0 до +20.
Написать код для управляющей кнопки,
определяющий из элементов, расположенных
по главной
диагонали
максимальное
или минимальное значение. Макет формы
показан на рис. 64.
2. Установить на
форме 16 текстовых полей с одинаковым
свойством Name
– Text1,
но различными значениями свойства
Index:
от 0
до 15.
Текстовые поля должны представлять
собой контрольный массив. Нумерация
полей – по строкам.
3. Программный код
для кнопки начать:
Dim
a(3, 3), i, min, max, j As Integer
Randomize
For
i=0 To 3
For
j=0 To 3
a(i,
j)=Int(21*Rnd)
Text1(i*4+j)=a(i,
j)
Next:
Next
If
Option1.Value Then
min=a(0,
0)
For
i=1 To 3
If
a(i, i)<min Then min=a(i, i)
Next
MsgBox
«min=» & min
End
If
If
Option2.Value Then
max=a(0,
0)
For
i=1 To 3
If
a(i, i)>max Then max=a(i, i)
Next
MsgBox
«max=» & max
End
If
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 6.6
1
.
Создать новый проект – двумерный массив
7х7 и найти максимальный элемент каждого
столбца. Макет
формы показан на рис. 65.
2. Записать для
объектов формы следующие программные
коды:
Раздел
General
Declarations:
Dim
M(7, 7) As Integer
Private
Function MAX(Y As Integer) As Integer
Dim
s As Integer
s=M(0,
Y)
For
i=0 To 6
If
M(i, Y)>s Then s=M(i, Y)
Next
i
MAX=s
End
Function
3. Программный код
для кнопки очистить:
For
j=0 To 6
MSFlexGrid2.Col=j
MSFlexGrid2.Text=»»
Next
j
4.
Процедура
загрузки
формы:
With
MSFlexGrid1
For
i=0 To 6
For
j=0 To 6
M(i,
j)=Int(Sin(i)*3-Cos(j)*7)
.Row=i:
.Col=j: .Text=Str(M(i, j))
Next
j
Next
i
End
With
5.
Процедура
для объекта
MSFlexGrid1:
Private
Sub MSFlexGrid1_Click()
Dim
Y As Integer
Y=MSFlexGrid1.Col
MSFlexGrid2.Col=Y
MSFlexGrid2.Text=MAX(Y)
End
Sub
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 6.7
1
.
Создать новый проект – двумерный массив
7х7 и найти
произведение
ненулевых элементов обратной диагонали.
Макет формы показан на рис. 66. Записать
для объектов формы следующие программные
коды.
2. Раздел
General
Declarations:
Dim
M(7, 7) As Integer
Private
Function MyProg() As Integer
Dim
P As Integer
P=1
For
i=0 To 6
For
j=0 To 6
If
i+j=6 And M(i, j)<>0 Then
P=P*M(i,
j)
End
If
Next
j
Next
i
MyProg=P
End
Function
3.
Процедура
загрузки
формы:
With
MSFlexGrid1
For
i=0 To 6
For
j=0 To 6
M(i,
j)=Int(Sin(i)*3-Cos(j)*7)
.Row=i:
.Col=j: .Text=Str(M(i, j))
Next
j
Next
i
End
With
4. Программный код
для кнопки очистить:
Label4.Caption=»»
5. Программный код
для кнопки вычислить:
Label4.Caption=MyProg
6. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 6.8
1. Создать новый
проект – двумерный массив 7х7 и среднее
арифметическое положительных элементов
каждой строки. Макет формы показан на
рис. 67. Записать для объектов и формы
следующие программные коды.
2
.
Раздел
General
Declarations:
Dim
M(7, 7) As Integer
Private
Function Avr(Y As Integer) As Single
Dim
s As Integer
For
j=0 To 6
If
M(Y, j)>0 Then s=s+M(Y, j)
Next
j
Avr=s/j
End
Function
3.
Процедура
загрузки
формы:
With
MSFlexGrid1
For
i=0 To 6
For
j=0 To 6
M(i,
j)=Int(Sin(i)*3-Cos(j)*7)
.Row=i:
.Col=j: .Text=Str(M(i, j))
Next
j
Next
i
End
With
4. Программный код
для кнопки очистить:
For
j=0 To 6
MSFlexGrid2.Row=j
MSFlexGrid2.Text=»»
Next
j
5. Процедура для
объекта MSFlexGrid1:
Private
Sub MSFlexGrid1_Click()
Dim
Y As Integer
Y=MSFlexGrid1.Row
MSFlexGrid2.Row=Y
MSFlexGrid2.Text=Str(Format(Avr(Y),
«##.##»))
End
Sub
6. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 6.9
1. С
оздать
новый проект – двумерный массив
7х7 и вывести
на экран количество слов, длина которых
больше 5 символов. Макет формы показан
на рис. 68.
2. Записать для
объектов и формы следующие программные
коды.
Раздел
General
Declarations:
Dim
M(7, 7) As String
Private
Function MyFun()
Dim
Sum As Integer
For
i=0 To 6
For
j=0 To 6
If
Len(M(i, j))>5 Then Sum=Sum+1
Next
j
Next
i
MyFun=Sum
End
Function
Private
Sub Gen()
Dim
S As String
For
i=0 To 6
For
j=0 To 6
S=»»
For
k=1 To Int(Rnd*7)
L=Chr(65+Int(Rnd*5))
S=S+L
Next
k
M(i,
j)=S
MSFlexGrid1.Col=j
MSFlexGrid1.Row=i
MSFlexGrid1.Text=M(i,
j)
Next
j
Next
i
End
Sub
3. Программный код
для кнопки обновить
массив:
Gen
Label4.Caption=MyFun
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 6.10
1. Создать новый
проект для вывода на экран слова,
находящегося на диагонали символьного
массива с помощью процедуры–подпрограммы.
Макет формы показан на рис. 69.
2. Записать для
объектов и формы следующие программные
коды.
Раздел
General
Declarations:
Dim
M(5, 5) As String
Private
Sub MyProc()
D
im
S As String
For
i=0 To 4
For
j=0 To 4
If
i=j Then S=S +M(i, j)
Next
j
Next
i
Label3.Caption=S
End
Sub
3. Программный код
для кнопки обновить
массив:
For
i=0 To 4
For
j=0 To 4
M(i,
j)=Chr(65+Int(Rnd*10))
MSFlexGrid1.Col=j
MSFlexGrid1.Row=i
MSFlexGrid1.Text=M(i,
j)
Next
j
Next
i
MyProc
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Практическая работа № 6.11
1
.
Создать новый проект – двумерный массив
7х7 и отсортировать по возрастанию
каждый столбец. Макет формы показан на
рис. 70.
2. Записать для
объектов и формы следующие программные
коды.
Раздел
General
Declarations:
Dim
M(7, 7) As Single
Private
Sub SORT(Y As Integer)
Dim
A, B, C As Single
For
i=0 To 6
A=M(i,
Y)
For
s=i To 6
B=M(s,
Y)
If
B<A Then
C=A
M(i,
Y)=B
M(s,
Y)=C
A=B
End
If
Next
s
MSFlexGrid2.Row=i
MSFlexGrid2.Text=M(i,
Y)
Next
i
End
Sub
3.
Процедура
загрузки
формы:
With
MSFlexGrid1
For
i=0 To 6
For
j=0 To 6
M(i,
j)=Int(Sin(i)*3-Cos(j)*7)
.Row=i:
.Col=j: .Text=Str(M(i, j))
Next
j
Next
i
End
With
4. Программный код
для кнопки очистить:
For
i=0 To 6
MSFlexGrid2.Row=i
MSFlexGrid2.Text=»»
Next
i
5.
Процедура
для
объекта
MSFlexGrid1:
With
MSFlexGrid1
Y=.Col
SORT
(Y)
End
With
6. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Форма отчета:
дискета или иной носитель с файлами
форм и проектов работы № 6; текстовый
файл с изображениями форм и текстами
программных кодов.
Тема 7. Разработка базы данных Практическая работа № 7.1
1
.
Программа создает базу данных по учету
кадров предприятия. Заполнение базы
данных осуществляется с помощью команды
запись
из меню файл,
это же меню содержит команды просмотр
и выход.
Команда просмотр
предназначена для пролистывания
содержимого базы данных. Содержимое
базы данных и количество записей в ней
отображается в главном окне приложения.
Меню правка
содержит команды изменить
и удалить,
предназначенные для редактирования
содержимого базы данных. Приложение
также содержит справочное окно и
инструкцию для пользователя.
Для создания и
работы с базой данных необходимо
использование специальных средств,
имеющихся в Visual
Basic
6.0 и
называемых Data
Manager. Эти
средства создают объект Data,
а также
другие объекты, ассоциируемые с базой
данных, для работы с ней. Но для простых
случаев использование этих средств
может оказаться более громоздким, чем
создание базы данных с помощью
структурного типа данных или массива.
Для создания
структуры базы данных в простой программе
можно описать некоторый структурный
тип, который будет иметь все необходимые
поля таблицы базы данных. Затем должен
быть описан одномерный массив этого
типа. А также создана заготовка базы
данных и другие объекты для работы с
ней, которые могут быть выполнены с
помощью общих средств языка Visual
Basic 6.0
(операторов присваивания, объектов
текстового поля и др.). Т.к. база данных
должна быть доступна для многих
событийных процедур, разных форм, в
т.ч. и для главной формы, то описание
структуры, типа и массива этого типа
необходимо поместить в раздел general
declarations.
Это стандартный модуль файла с расширением
*.bas,
который добавляется к проекту командой
Add Module
из меню Project.
2. Открыть
новый проект. Внешний вид главной формы
показан на рис. 71. Задать свойство name
формы – glav.
Установить необходимые значения
основных свойств формы по образцу.
Создать на форме операционное меню
приложения согласно рис. 71. (См. пр. р. №
5.1) Свойства name
выпадающих меню указаны на рис. 71 в
рамках меню. Установить на форме 7 меток
и 1 список. Свойства name
указаны на рисунке рядом с объектами.
3
.
Добавить к проекту модуль командой Add
Module из
меню Project.
Задать свойство name
модуля – basa
(рис. 72).
При описании структуры типа базы данных,
необходимо чтобы в ней были указаны
поля, которые соответствуют графам
таблицы базы данных (см. табл. 3):
Табл. 3
|
Графы |
Свойство |
Тип |
Описание |
|
фамилия |
famnum |
Текстовый |
String*10 |
|
должность |
dolnum |
Текстовый |
String*15 |
|
оклад |
oklnum |
Текстовый |
String*10 |
Записать в раздел
general
declarations
модуля basa
приложения «УЧЕТ КАДРОВ»:
Type
kadrrec
famnum
As String*10
dolnum
As String*15
oklnum
As String*10
End
Type
Затем описать в
этом же разделе модуля массив базы
данных:
Public
basa(1
To
10) As
kadrrec
‘база
данных не более 10 записей
4. Для работы с
базой данных потребуются различные
текущие признаки, которые будут
характеризовать текущее состояние
базы данных. Эти признаки обычно
присваивают глобальным целым переменным
и описывают там же, где и структура, тип
и массив базы данных. Добавить в модуль
описания этих переменных:
Public
currec
As
Integer
‘текущая
запись
Public
recquant
As
Integer
‘количество
записей в базе
5. Список в главном
окне приложения может показывать всю
базу данных, но при этом может и не
показывать все ее поля. Список необходимых
для показа полей определяется
программистом исходя из требований,
предъявляемых к приложению. Для того,
чтобы в списке в главном окне программы
данные полей располагались в виде
«правильных»
столбцов, необходимо установить для
этого списка непропорциональный шрифт,
например: Courier
или Courier
New, в
котором на каждый символ отводится
одинаковое по ширине место.
Открыть главную
форму проекта. Установить для объекта
список свойство Font
– Courier
или Courier
New, размер
шрифта следует подобрать самостоятельно
исходя из размеров объекта список.
5. Открыть окно
редактора кодов программы для команды
меню файл
и записать следующий программный код:
Private
Sub fm1_Click(Index As Integer)
Select
Case Index
Case
1
glav.Enabled=False
sod.Show
Case
2
glav.Enabled=False
zapys.Show
Case
3
End
End
Select
End
Sub
6
.
Добавить к проекту форму. Задать свойство
name
формы – zapys.
Внешний вид формы показан на рис. 73.
Оформить форму по образцу, установить
необходимые значения свойств объектов
формы согласно рис. 73.
7. Команда запись
из меню файл
проекта «УЧЕТ КАДРОВ» должна добавлять
новую запись в конец базы данных, т.е.
в очередной элемент массива, данные
этой новой записи, которые вводятся в
окне названой команды. Кроме этого, эта
команда должна добавлять часть или все
введенные данные к списку в главном
окне приложения, который специально
предназначен для просмотра базы. Имена
текстовых полей в окне команды запись
не должны (!) совпадать с именами полей
базы данных, описанных оператором type.
Кнопки ЗАПИСАТЬ
и ЗАКРЫТЬ
выполняют почти одинаковые действия:
кнопка ЗАПИСАТЬ
– добавляет данные в базу данных, а
кнопка ЗАКРЫТЬ
– добавляет данные и закрывает окно.
Таким образом, в событийных процедурах
этих 2–х кнопок должен быть практически
одинаковый текст. Для того, чтобы не
дублировать этот текст в 2–х событийных
процедурах, он оформляется в виде одной
структурной единицы программы: процедуры
addrecinput.
При этом в указанных событийных
процедурах для кнопок имеются лишь
строки вызова этой общей процедуры.
Общая процедура записывается в модуль
проекта.
Открыть окно
редактора кодов для кнопок ЗАПИСАТЬ
и ЗАКРЫТЬ
и ввести следующий программный код:
Private
Sub zap_Click()
nomer.Caption=recquant+1
Call
addrecinput
End
Sub
Private
Sub zakr_Click()
nomer.Caption=recquant+1
Call
addrecinput
Unload
zapys
glav.Enabled=True
glav.SetFocus
End
Sub
8. Открыть окно
редактора кодов модуля basa
и записать описание процедуры:
Public
Sub addrecinput()
Dim
strvar As String
recquant=Val(glav.vsego.Caption)+1
If
recquant<>11 Then
zapys.nomer.Caption=recquant
basa(recquant).famnum=zapys.fam.Text
strvar=basa(recquant).famnum
& «»
basa(recquant).dolnum=zapys.dol.Text
strvar=strvar+basa(recquant).dolnum
& «»
basa(recquant).oklnum=zapys.okl.Text
strvar=strvar+basa(recquant).oklnum
glav.spisok.AddItem
strvar
zapys.fam.Text=»»
zapys.dol.Text=»»
zapys.okl.Text=»»
zapys.fam.SetFocus
glav.vsego.Caption=recquant
Else
MsgBox
«база заполнена», 16, «нет места»
Unload
zapys
glav.Enabled=True
glav.SetFocus
Exit
Sub
End
If
End
Sub
9. Вернуться в
форму Запись.
Записать программные коды для событий:
загрузка формы и изменение состояния
объекта fam
(текстовое поле):
Private
Sub fam_Change()
nomer.Caption=recquant+1
End
Sub
Private
Sub Form_Load()
recquant=Val(glav.vsego.Caption)
End
Sub
10. Вернуться в
главную форму проекта. Команда удалить
из меню правка
должна удалять текущую запись базы
данных. Для того, чтобы запись стала
текущей, нужно выделить ее (щелкнуть
по ней мышью) в списке в главном окне
программы. При щелчке номер строки
передается в свойство ListIndex
списка. Команда удалить
должна также удалять запись из базы
данных, а все последующие записи после
удаляемой переписывать на позицию
выше. Будьте
внимательны!
Записи в базе данных нумеруются от 0 до
9, но пользователю на экране отображается
нумерация от 1 до 10. Следует этот момент
учитывать при реализации событийных
процедур для команд запись
и удалить,
а также при написании других кодов
программы, где предполагается вывод
содержимого базы данных на экран.
Открыть окно
редактора кодов для команды операционного
меню правка
и записать следующий программный код:
Private
Sub pm1_Click(Index As Integer)
Dim
i As Integer
Select
Case Index
Case
1
glav.Enabled=False
izmen.Show
Case
2 ‘процедура
команды «удалить»
If
recquant=0 Then
MsgBox
«база пуста», 16, «удаление
невозможно»
Exit
Sub
End
If
glav.Enabled=True
glav.SetFocus
If
recquant<>0 Then
For
i=currec+1 To recquant+1
basa.basa(i-1)=basa.basa(i)
basa.basa(i).famnum=»
«
basa.basa(i).dolnum=»
«
basa.basa(i).oklnum=»
«
Next
i
spisok.RemoveItem
currec-1
recquant=Val(vsego.Caption)-1
vsego.Caption=recquant
currec.Caption=»
«
End
If
End
Select
End
Sub
Записать программные
коды для событий: загрузка
формы и щелчок
по строке в объекте spisok
(ListBox)
Private
Sub Form_Load()
recquant=Val(vsego.Caption)
End
Sub
Private
Sub spisok_Click()
currec=spisok.ListIndex+1
currec.Caption=currec
End
Sub
11. Добавить к
проекту форму. Задать свойство name формы
– izmen.
Внешний вид формы показан на рис. 74.
Оформить форму по образцу, установить
необходимые значения свойств объектов
формы согласно рис. 74.
Команда изменить
показывает окно с теми данными базы,
которые надо изменить. Таким образом,
данные должны быть показаны в текстовых
полях. После изменения новые данные
должны попасть на то же место в базе
данных и на ту же строку в список в
главном окне приложения, но не в конец(!)
списка и/или базы данных.
Открыть окно
редактора и записать следующие
программные коды для объектов формы
izmen:
Private
Sub pred_Click()
Dim
a As Integer
a=recquant-1
If
a<=0
Then
MsgBox
«вы просмотрели базу до начала»,
48, «СТОП»
Exit
Sub
End
If
recquant=recquant-1
izmen.fam.Text=basa.basa(recquant).famnum
izmen.dol.Text=basa.basa(recquant).dolnum
izmen.okl.Text=basa.basa(recquant).oklnum
izmen.nomer.Caption=recquant
End
Sub
Private
Sub sled_Click()
Dim
a As Integer
a=recquant+1
If
a>=11 Then
MsgBox
«вы просмотрели базу до конца»,
48, «СТОП»
Exit
Sub
End
If
recquant=recquant+1
izmen.fam.Text=basa.basa(recquant).famnum
izmen.dol.Text=basa.basa(recquant).dolnum
izmen.okl.Text=basa.basa(recquant).oklnum
izmen.nomer.Caption=recquant
End
Sub
Private
Sub zakr_Click()
Unload
izmen
glav.Enabled=True
glav.SetFocus
End
Sub
12. Поскольку
действия, выполняемые кнопкой ОК
практически аналогичны действиям,
выполняемым кнопкой записать
в окне запись,
то добавим в модуль проекта еще одну
процедуру izmrecinput:
Public
Sub izmrecinput ()
Dim
strvar As String
recquant=izmen.nomer.Caption
glav.spisok.RemoveItem
recquant-1
basa(recquant).famnum=izmen.fam.Text
strvar=basa(recquant).famnum
& «»
basa(recquant).dolnum=izmen.dol.Text
strvar=strvar+basa(recquant).dolnum
& «»
basa(recquant).oklnum=izmen.okl.Text
strvar=strvar+basa(recquant).oklnum
glav.spisok.AddItem
strvar, recquant-1
End
Sub
В событийную
процедуру для кнопки ОК
запишем строку вызова процедуры
izmrecinput:
Private
Sub okbut_Click()
Call
izmrecinput
End
Sub
13. Добавить к
проекту форму. Задать свойство name
формы – sod.
Внешний вид формы показан на рис. 75.
Оформить форму по образцу, уст
ановить
необходимые значения свойств объектов
формы согласно рис. 75. Просмотр содержимого
базы данных осуществляется с помощью
кнопок предыдущий
и следующий,
событийные проце-дуры которых аналогичны
процедурам одноименных кнопок в окне
команды изменить.
Кнопка ОК
выгружает окно просмотра и возвращает
пользователя в главное окно проекта.
Запишите событийные
процедуры для кнопок предыдущий
и следующий,
изменив в кодах свойство name
формы, а также свойства объектов,
отображающих содержание полей базы
данных (см. п. 11).
Private
Sub pred_Click()
Dim
a As Integer
a=recquant-1
If
a<=0 Then
MsgBox
«вы просмотрели базу до начала»,
48, «СТОП»
Exit
Sub
End
If
recquant=recquant-1
sod.fam.Caption=basa.basa(recquant).famnum
sod.dol.Caption=basa.basa(recquant).dolnum
sod.okl.Caption=basa.basa(recquant).oklnum
sod.nomer.Caption=recquant
End
Sub
Private
Sub sled_Click()
Dim
a As Integer
a=recquant+1
If
a>=11 Then
MsgBox
«вы просмотрели базу до конца»,
48, «СТОП»
Exit
Sub
End
If
recquant=recquant+1
sod.fam.Caption=basa.basa(recquant).famnum
sod.dol.Caption=basa.basa(recquant).dolnum
sod.okl.Caption=basa.basa(recquant).oklnum
sod.nomer.Caption=recquant
End
Sub
Запишите событийную
процедуру для кнопки ОК.
Private
Sub okbut_Click()
Unload
sod
glav.Enabled=True
glav.SetFocus
End
Sub
1
4.
Добавить к
проекту 2 формы, которые должны выполнять
функции справочных
диалоговых окон. Задать
свойства name
форм – opisanie
и spravka.
Внешний вид форм показан на рис. 76.
Оформить формы по образцу. Окно описание
программы
содержит краткую инструкцию для
пользователя. Окно справка
содержит инфор-мацию о самой программе
и сведения о разработчике. Запишите
для этих форм программные коды для
кнопок ОК
и закрыть.
Private
Sub okbut_Click()
Unload
opisanie
glav.Enabled=True
glav.SetFocus
End
Sub
Private
Sub zakr_Click()
Unload
spravka
glav.Enabled=True
glav.SetFocus
End
Sub
15. В главной форме
проекта запишите программный код для
команд операционного меню справка.
Private
Sub sp1_Click(Index As Integer)
Select
Case Index
Case
1
glav.Enabled=False
opisanie.Show
Case
2
glav.Enabled=False
spravka.Show
End
Select
End
Sub
Private
Sub okbut_Click()
Unload
opisanie
glav.Enabled=True
glav.SetFocus
End
Sub
Private
Sub zakr_Click()
Unload
spravka
glav.Enabled=True
glav.SetFocus
End
Sub
1
6.
Запустить программу и убедиться в
правильности ее работы, при необходимости
исправить ошибки, а затем сохранить на
дискете проект, формы и модуль с именами
(см. рис. 77): basa.vbp,
glav.frm,
zapys.frm,
izmen.frm,
sod.frm,
opisanie.frm,
spravka.frm,
basa.bas
соответствующими
командами из меню file.
Форма
отчета:
дискета или иной носитель с файлами
модуля, форм и проектов работы № 7;
текстовый файл с изображениями форм и
текстами программных кодов.
Тема 8. Решение задач в среде Visual Basic 6.0 Задача № 8.1
1. Создать новый
проект и программу для
вычисления
значения функции:
Значения А и Х
задать с помощью элемента HScrollBar.
Окно работающег
о
приложения показано на рис. 78. Установить
на форме два объекта HScrollBar.
2. Записать для
объектов HScrollBar
программные
коды:
Private
Sub HScroll1_Change()
My
‘вызов
процедуры
End
Sub
Private
Sub HScroll2_Change()
My
‘вызов
процедуры
End
Sub
3. Записать
программный код для процедуры загрузки
формы:
Form1.Show
Label1.Caption=»Вычислить
функцию
Y=»+Chr(10)+Chr(13)+
«X/sqr(X^2-A),
если
A<3″+Chr(10)+Chr(13)+»X/sin(X+A), если A>=3″
4. Записать
программный код для раздела General
Declaartions:
Dim
X, A As Integer
Dim
Y As Single
Private
Sub My()
X=HScroll1.Value
A=HScroll2.Value
Label4.Caption=X
Label5.Caption=A
If
A<3 Then
If
(X<-Sqr(Abs(A))) Or (X>Sqr(Abs(A))) Then
Y=X/Sqr(X^2-A)
Label6.Caption=»A<3.
Вычисляется
значение Y=X/sqr(X^2-A)=
«+Str(Y)
Else
MsgBox
«X должно
быть
в
диапазоне«+Chr(10)+Chr(13)+»X<-Sqr(Abs(A))
And X>Sqr(Abs(A))»
End
If
Else
If
Sin(X+A)<>0 Then
Y=X/Sin(X+A)^2
Label6.Caption=»A>3.
Вычисляется
значение Y=X/Sin(X+A)^2
=»+Str(Y)
Else
MsgBox
«X должно
быть
в
диапазоне«+Chr(10)+Chr(13)+»X<-Sqr(Abs(A))
And X>Sqr(Abs(A))»
End
If
End
If
End
Sub
5. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Задача № 8.2
1
.
Создать новый проект и программу для
расчета времени, за которое возрасты
наблюдателей на Земле и в космическом
пространстве сравняются согласно
теории А. Эйнштейна.
Окно работающего
приложения показано на рис. 79.
2. Записать для
кнопки Расчет
программный
код:
Private
Sub Command2_Click()
Const
C As Long=300000
Dim
Ts, Tr, T, V As Long
Ts=Val(Text1.Text):
Tr=Val(Text2.Text): V=Val(Text3.Text)
If
V>0 And V<=C Then
T=(Tr-Ts)/(1-Sqr(1-(V/C)*(V/C)))
Label6.Caption=Format(T,
«###.##»)
Else
Text3.Text=»»
Text3.SetFocus
MsgBox
«скорость корабля должна быть в
пределах»+Chr(10)+
Chr(13)+Chr(9)+»0<V<300000″
End
If
End
Sub
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Задача № 8.3
1. Создать новый
проект и программу для построения
графика функции Y=A*x2+B*x+C.
Значения коэффициентов задать с помощью
объекта Slider.
2. Окно работающего
приложения показано на рис. 80. Построение
графика осуществляется с помощью
объекта PictureBox.
Установить на форме три объекта Slider
с помощью команды Components
из контекстное меню, вызванного на
наборе инструментов General
(см. пр. р. № 6.3, п. 3).
3. Записать
программный код для процедуры загрузки
формы:
Form1.Show
Picture1.DrawWidth=1
Picture1.Scale
(-10, 10)-(10, -10)
Picture1.Line
(-10, 0)-(10, 0), vbcian
Picture1.Print
«X»
Picture1.Line
(0, 10)-(0, -10), vbcian
Picture1.Print
«Y»
For
i=-10 To 10
Picture1.PSet
(i, 0), QBColor(0)
Picture1.Print
i
Next
i
4. Записать для
объектов Slider
программные коды:
Private
Sub Slider1_Change()
My
End
Sub
Private
Sub Slider2_Change()
M
y
End
Sub
Private
Sub Slider3_Change()
My
End
Sub
5. Записать
программный код для раздела General
Declaartions:
Private
Sub My()
Dim
a, b, c As Integer
a=Slider1.Value
b
= Slider2.Value
c
= Slider3.Value
Label5.Caption=»a=
«+ Str(a): Label6.Caption= «b= » + Str(b):
Label7.Caption=»C= «+ Str(c)
Picture1.Cls
Picture1.Scale
(-10, 10)-(10, -10)
Picture1.Line
(-10, 0)-(10, 0), vbcian
Picture1.Print
«X»
Picture1.Line
(0, 10)-(0, -10), vbcian
Picture1.Print
«Y»
For
i=-10 To 10
Picture1.PSet
(i, 0), QBColor(0)
Picture1.Print
i
Next
i
For
i=-10 To 10 Step 0.02
x=i
y=a*x^2+b*x+c
Picture1.PSet
(x, y)
Next
i
End
Sub
6. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Задача № 8.4
1. Создать новый
проект и программу для вычисления
наименьшего общего кратного 2-х
произвольных чисел.
Окно работающего
приложения показано на рис. 81.

2. Записать для
кнопки Вычислить
программный
код:
Dim
n1, n2, Nok, M As Double
If
Val(Text1.Text)<>0 Or Val(Text2.Text)<>0 Then
n1=Abs(Val(Text1.Text))
n2=Abs(Val(Text2.Text))
M=n1*n2
Do
q=n1
Mod n2
n1=n2:
n2=q
Loop
While q<>0
Nok=n1
Text3.Text=M/Nok
Else
MsgBox
«Следует ввести числа, отличные от
нуля!»
Text1.Text=»»
Text2.Text=»»
Text1.SetFocus
End
If
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект и форму.
Задача № 8.5
1. Создать новый
проект и программу для вычисления
наибольшего
общего делителя 2-х произвольных чисел.
Окно работающего
приложения показано на рис. 82.
2
.
Записать для кнопки Вычислить
программный
код:
If
Nod(Val(Text1.Text), Val(Text2.Text))<>0 Then
Text3.Text=
Nod(Val(Text1.Text), Val(Text2.Text))
Else
Text3.Text=»»
End
If
3. Записать
программный код для раздела General
Declaartions:
Function
Nod(ByVal n1 As Double, ByVal n2 As Double) As Double
n1=Abs(n1):
n2=Abs(n2)
If
n1*n2=0 Then
MsgBox
(«ошибка ввода»)
Text1.Text=»»
Text1.SetFocus
Text2.Text=»»
Exit
Function
End
If
Do
q=n1
Mod n2
n1=n2:
n2=q
Loop
While q<>0
Nod=n1
End
Function
4. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект.
Задача № 8.6
1. Создать новое
приложение, позволяющее нарисовать на
форме прямоугольник, у которого длина
одной стороны задается с помощью
элемента Slider,
а длина другой вычисляется по формуле
золотого сечения. Окно работающего
приложения показано на рис. 83.

2. Записать для
элемента Slider
программный код:
Dim
a, b As Integer
DrawWidth=5
Form1.Cls
a=Slider1.Value:
Label2.Caption=a
b=(a*(Sqr(5)-1))/2
Label6.Caption=b
Line
(2000, 3000)-(2000 + a, 3000), vbRed
Line
(2000, 3000)-(2000, 3000 + b), vbBlue
Line
(2000, 3000 + b)-(2000 + a, 3000 + b), vbYellow
Line
(2000 + a, 3000)-(2000 + a, 3000 + b), vbMagenta
3. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект.
Задача № 8.7
1
.
Создать новое приложение, позволяющее
нарисовать на форме правильный
треугольник с высотой, заданной с
помощью элемента Slider.
Окно работающего
приложения показано на рис. 84.
2. Записать для
элемента Slider
программный код:
Dim
h As Integer
Slider1.Text
= «H= «+Str(Slider1.Value)
Form113.Cls
Text1.Text=Slider1.Value
h=Slider1.Value
Call
My(h)
3. Записать
программный код для раздела General
Declaartions:
Private
Sub My(x As Integer)
DrawWidth=3
Line
(3300, 2000)-(3300-x * Sin(3.14/3), 2000+x), vbRed
Line
(3300, 2000)-(3300+x * Sin(3.14/3), 2000+x), vbGreen
Line
((3300-x*Sin(3.14/3)), 2000+x)-(3300+x*Sin(3.14/ 3), 2000+x),
vbYellow
DrawWidth=1
Line
(3300, 2000)-(3300, 2000+x), vbMagenta
End
Sub
4. Записать
программный код для процедуры загрузки
формы:
Me.Show
Text1.Text=Slider1.Value
5. Запустить
программу и убедиться в правильности
ее работы, при необходимости исправить
ошибки, а затем сохранить на дискете
проект.
Форма отчета:
дискета или иной носитель с файлами
форм и проектов задач; текстовый файл
с изображениями форм и текстами
программных кодов.
90
-
#1
I’m getting the error in the title of the thread and VBA highlights the time_lastcell2 as the culprit.
Code:
Dim first_cell As Integer
Dim time2 As Worksheet
Set time2 = ActiveWorkbook.Sheets("time")
Dim lastday As Date, lastday_time As Date
time_lastcell2 As Integer
With time2
time_lastcell2 = .Range("e65000").End(xlUp).Row
End With
lastday_time = time2.Range("e" & time_lastcell).Address
'Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
With ActiveSheet
first_cell = .Range("c65000").End(xlUp).Row
lastday = .Range("b" & first_cell).Address
[more code]
Save Often
If you start asking yourself if now is a good time to save your Excel workbook, the answer is Yes
-
#2
kylefoley76,
Missing Dim….
Dim time_lastcell2 As Integer
-
#3
Missing Dim….
Dim time_lastcell2 As Integer
Also, since it will hold a row number, I would suggest declaring it as a Long instead of as an Integer…
Dim time_lastcell2 As Long
-
#4
Thanks that did it. Also Rick, about the fact that I thought you didn’t like one-liners expressing gratitude. I thought I read that on excelfox but I went back to look for it and I couldn’t find it.
У меня есть приведенный ниже код, который объединяет/объединяет все повторяющиеся строки с одним и тем же текстом в столбцах 1-4 и суммирует значение в столбце 5.
Код работал правильно в течение некоторого времени, но внезапно перестал работать, и я столкнулся с приведенным ниже сообщением об ошибке:
Ошибка компиляции:
Statement invalid outside type block
Любая помощь в решении этого вопроса будет высоко оценена
Sub nSum()
Dim Rng As Range, Dn As Range, n As Long, Txt As String, Ac As Long
Set Rng = Range(Range("A1"), Range("A" & Rows.Count).End(xlUp))
ray(1 To Rng.Count, 1 To 4) 'Column count ''***ERROR LINE***************
With CreateObject("scripting.dictionary")
.CompareMode = vbTextCompare
For Each Dn In Rng
Txt = Join(Application.Transpose(Application.Transpose(Dn.Resize(, 3))), ",")
If Not .Exists(Txt) Then
n = n + 1
For Ac = 1 To 4: ray(n, Ac) = Dn.Offset(, Ac - 1): Next Ac
.Add Txt, n
Else
ray(.Item(Txt), 4) = ray(.Item(Txt), 4) + Dn.Offset(, 3)
End If
Next
n = .Count
End With
With Sheets("Sheet2").Range("A1").Resize(n, 4)
.Value = ray
.Borders.Weight = 2
.Columns.AutoFit
End With
End Sub'


