Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Программування мовою Visul Bsic ЗА КУРСОМ ВИКОРИСТАННЯ ЕОМ У ІНЖЕНЕРНІЙ ПРАКТИЦІ для студентів спеціаль

Работа добавлена на сайт samzan.net: 2016-06-09

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.5.2024

PAGE  1

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ОДЕСЬКИЙ НАЦІОНАЛЬНИЙ

ПОЛІТЕХНІЧНИЙ УНІВЕРСИТЕТ

МЕТОДИЧНІ ВКАЗІВКИ

ДО ЛАБОРАТОРНИХ РОБІТ ЗА ТЕМОЮ

«Программування мовою Visul Basic»

ЗА КУРСОМ «ВИКОРИСТАННЯ ЕОМ У ІНЖЕНЕРНІЙ ПРАКТИЦІ»

для студентів спеціальності 6.050501, 6.050503

Одесса: ОНПУ, 2009

МІНЕСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ОДЕСЬКИЙ НАЦІОНАЛЬНИЙ

ПОЛІТЕХНІЧНИЙ УНІВЕРСИТЕТ

МЕТОДИЧНІ ВКАЗІВКИ

ДО ЛАБОРАТОРНИХ РОБІТ ЗА ТЕМОЮ

«Программування мовою Visul Basic»

ЗА КУРСОМ «ВИКОРИСТАННЯ ЕОМ У ІНЖЕНЕРНІЙ ПРАКТИЦІ»

для студентів спеціальності 6.050501, 6.050503

Затверджено

на засіданні кафедри ІММЗІС

протокол №2 від 29 вересня 2009р.

Одесса: ОНПУ, 2009

Методічні вказівки до лабораторних робіт за темою «Використання ЕОМ у інженерній практиці» за курсом «Інформатика та комп'ютерна техніка» для студентів спеціальності 6.050501, 6.050503 / Укл. О.В. Ніколаєнко - Одеса: ОНПУ, 2009 — 31 с.

Укладач: О.В. Ніколаєнко

ЗМІСТ

[1] Введение

[2] Теоретическая часть

[3] Последовательность выполнения работы

[3.1] Основные положения

[3.2] Задание к лабораторной работе

[3.3] Основные положения

[3.4] Элементы формы.

[4] ToolTipText

[4.1] Задание к лабораторной работе    

[4.2] Теоретические сведения

[4.3] Задание к лабораторной работе

[5] Лабораторная работа   № 4

[5.1] Теоретические сведения

[5.2] Общие положения

Введение

в «Программирование в среде Visual Basic»

Тема: "Знакомство с интегрированной средой редактора Visual Basic"

Цель: ознакомиться со структурой окон редактора, командами, панелью инструментов, приобрести навыки работы в среде - создания форм и элементов управления, модулей и процедур.

Теоретическая часть

Большинство приложений, созданных в Visual Basic, работают в интерактивном режиме, т.е. на экран выводится информация, предназначенная для пользователя программы, и ожидается его ответная реакция в виде ввода данных или команд. Интерактивное приложение в Visual Basic создается на базе формы, являющейся, как правило, основным окном интерфейса, с элементами управления, позволяющими осуществлять взаимодействие с пользователями. 

Запуск Visual Basic: Пуск Программы  Visual Studio  Visual Basic6.0  

На экране появляется диалоговое окно New Project (Новый проект), используя которое можно выбрать шаблон для нового проекта, запустить мастера создания проекта или открыть ранее созданный проект Existing (Существующий) или Recent (Недавно созданный) — содержит список проектов, открывавшихся недавно. 

Рис. 1.1. Окно New Project для выбора типа создаваемого проекта

Создание любого приложения в Visual Basic начинается с создания проекта. Проектом является совокупность файлов, входящих в приложение и хранящих информацию о его компонентах.

После выбора типа проекта переходим непосредственно в инструментальную среду проектирования Visual Basic 6. 

Окно среды состоит из нескольких окон (добавить их можно с помощью команды View (Вид) или соответствующих кнопок Панели инструментов).

Главное меню окна содержит следующие основные команды: File (Файл), Edit (Правка), View (Вид), Project (Проект), Format (Формат), Debug (Отладка), Run (Запуск), Query (Запрос), Diagram (Диаграмма), Tools (Сервис), Add-Ins (Надстройки), Window (Окно), Help (Справка).

Рис. 1.2. Главное меню и Панель инструментов Visual Basic 6

Стандартная Панель инструментов расположена под главным меню. Если эта панель отсутствует в главном окне программы, для ее отображения в меню View (Вид) àToolbars (Панели инструментов) àStandard (Стандартная). На стандартной панели инструментов расположены кнопки для вызова наиболее часто употребляемых команд меню.

Рис. 1.3. Окно среды  Visual Basic 6

  •  Панель элементов управления (ToolBox) .
  •  Окно Проекта (Project Explorer)  .
  •  Окно Свойств (Properties Window) .
  •  Окно макета Формы  (Form Layout)  для просмотра общего вида  .
  •  Окно Отладки (Проверки) (Immediate Window)  .
  •  Окно Формы  (Object)  .
  •  Окно Программы (Редактора кода) (Code)  .

Окно Проекта содержит перечень файлов, входящих в проект. Элементы проекта Форма и Модуль могут вызываться из окна Проекта путем двойного щелчка мыши.

Для каждого выделенного элемента управления существует свое окно Свойств. В окне Свойств можно изменять свойства объектов: тип и размер шрифта, названия и т.д.  

Окно Форм является основным рабочим окном, в котором выполняется визуальное проектирование проекта. Вызвать это окно можно View (Вид) à Object (Объект). 

С помощью панели Элементов управления  на форму перетаскиваются необходимые элементы (Кнопки, Надписи и.т.д.). Затем устанавливаются свойства элементов и формы, на пример, имя элемента: окно Свойств à Captionà новое имя. (У элементов с надписями можно изменить свойство Font (Шрифт: стиль, размер,цвет и т.д.)).

Для работы с формой, т.е. для ввода и вывода данных с помощью формы, назначают кнопкам формы процедуры-события. Для этого необходимо дважды щелкнуть на элементе и ввести текст соответствующей программы.

Управляющие элементы, которые помещают на форму являются объектами. Как любые объекты они обладают свойствами, методами и событиями. При ссылке на свойства/методы элементов имя и имя свойства /метода разделяют точкой.

Окно Программы – окно встроенного редактора с удобными средствами ввода исходного кода программы View (Вид) àCode (Код). Для быстрого открытия окна достаточно дважды щелкнуть левой кнопкой мыши, установив указатель на форме приложения. Окна Программы имеет свою панель инструментов: в  левом списке можно выбрать элемент управления, а в правом – тип события, для реагирования на которое планируется написать подпрограмму.

В окне Отладки отображаются результаты выполнения расчетов, для чего используется конструкция Debug.Print.

Результаты выполнения программ можно получать также в диалоговых окнах, на формах и непосредственно в документах и листах.

Для создания Нового проекта выбираем вкладка New à Standard EXE (или можно выбрать один из типов шаблона проекта) à Открыть или через главное меню File (Файл) àNew Project (Новый проект), а открыть уже существующий -  File (Файл) à Open Project (Открыть проект) или одноименной кнопки на стандартной Панели инструментов.

В результате открывается окно Project Form1, содержащее новую форму, с которой можно начинать работать: изменять установленные по умолчанию свойства, помещать в нее элементы управления, используя для этого панель элементов управления, являющуюся основным рабочим инструментом при разработке форм приложения.

Запуск формы осуществляется командой Run (Запуск) либо кнопками на панели инструментов 4.

Каждый объект проекта или весь можно сохранять, удалять и добавлять. Для этого в окне Проекта выделить объект

Сохранить  File  à  Save. При этом образуются несколько файлов проекта формы  Form1.frm  и  кода проекта Project1.vbp.

Удалить выделенный компонент  Project (ПК) àRemove.

Добавить  - Project (ПК)  Add ….       

Последовательность выполнения работы

  1.  Запустите редактор Visual Basic 6.
    1.  Откройте (если нет) окно Проекта, окно Свойств, окно Программы (или Кода) и окно Отладки.
    2.  Ознакомьтесь с командной строкой. Ознакомьтесь с панелью инструментов.
    3.  Создайте проект для расчета арифметического выражения  y = sinx2+cos2x для x=2 .
    4.  В появившемся окне Формы добавте элементы управления. С панели Элементов управления (если ее нет , то включите с помощью ) перетащите на форму следующие элементы: два элемента Надпись (Label), два элемента Поле (TextBox), два элемента Кнопка (CommandButton).
    5.  Измените названия элементов. Окно Свойств à Captionà новое имя

Элемент

Свойство

Значение

Form1

Caption

Решение уравнения

Label1

Caption

X

Label2

Caption

Y

Text1

Text

Пусто

Text2

Text

Пусто

Command1

Caption

Вычислить

Command2

Caption

Выход

  1.  Назначте кнопкам процедуры-события. Кнопке Вычислить процедуру-событие запуска программы расчета, для этого дважды щелкнуть на элементе и ввести текст программы

Private Sub Command1_Click()

x% = Text1.Text

y! = Sin(x% ^ 2)+Cos(x%) ^ 2

Text2.Text = y!          ' Можно и так     Label1.Caption = y

End Sub

Кнопке Выход - Оканчание работы с формой.

Private Sub Command2_Click()

End

End Sub                  

  1.  Запустите форму на выполнение. Запуск (Run) à (П.И.)

  1.  Сохраните проект. Предварительно создайте папку с названием группы, в ней папку с вашей фамилией , а в ней файл с именем  Lab1-1.
    1.  Измените код для кнопки Вычислить следующим образом:

Private Sub Command1_Click()

Dim x As Integer,  y As Single                  :Rem      Описание типов данных

x = Text1.Text

y = Sin(x ^ 2) + Cos(x) ^ 2

Text2.Text = y         

Debug.Print y           ' Вывод в окно Отладки

End Sub

  1.  Запустите на выполнение, дополнительно вывод результата появляется  в окне Отладки.  
    1.  Измените код для кнопки Вычислить следующим образом, чтобы данные вводились и выводились в диалоговых окнах:

Private Sub Command1_Click()

Dim x As Integer,  y As Single                  

x=Val(InputBox("Введите значение x", "Окно ввода данных"))

x = Text1.Text

y = Sin(x ^ 2)+Cos(x) ^ 2

Text2.Text = y          

Debug.Print y          

MsgBox "Проверка", vbInformation, "Окно сообщения"

MsgBox "x=" &  x  &  Chr(13)  &  "y="  &   y,  , "Окно вывода"

End Sub

  1.  Запустить на выполнение. 

                  

 

  1.  Сохраните проект. Завершите работу.


Лабораторная работа № 1

Тема "Программы линейной структуры".

Цель: приобретение навыков создания программ вычислений простых арифметических выражений, изучение типов данных, функциий их ввода и вывода и способов их описания.

Изучить:

  •  Типы данных и их объявление (операторы Dim, Option Explicit) ,
  •  арифметические действия в языке,
  •  математические функции языка,
  •  функции ввода и вывода данных (InputBox, MsgBox),
  •  конструкцию вывода (Debug.Print),
  •  функции преобразования: кода символа в символ Chr(код), цифровых строк в числа Val(), числа в строку Str().
  •  Элементы формы  (Надпись (Label),  Поле (TextBox),  Кнопка (CommandButton));
  •  свойства элементов формы (Name, Caption, Text);
  •  метод Show;       событие Click.

Основные положения

Правила написания программ. В каждой строке располагается один или несколько,  разделенных :  операторов.

Для переноса продолжения строки на другую ставится пробел и знак подчеркивания.  

В вещественных числах целыая часть от дробной разделяется точкой.  

Комментарии - не выполняемые редактором тексты, строка комментария начинается  с  '  текст  или   Rem  текст.

В VB все данные относятся к определенному типу, основные из них

Тип данных

Размер

(байт)

Описание

Символы описания типов

Integer 

2

Целые числа

%

Long     

4

Длинные целые числа

&

Single  

4

Вещественные одинарной точности

!

Double  

8

Вещественные двойной точности

#

String    

10 байт + длина строки

Строки символов переменной длины

$

String  * 

1байт/символ

Строки символов постоянной длины

$

Boolean  

2

Логмческие (булевые )

Currency

8

Числа в денежном формате

@

Date        

8

Знгачения даты и времени

Byte        

1

Целые числа (0-255)

Object      

4

Объекты (ссылки на объекты)

Variant    

16

Тип определяется содержимым

Описание типов данных. Для описания типов переменных используется оператор

Dim имя As  тип [, имя As  тип], . . .

где имя – имя переменной, набор символов не более 255 символов, должны начинаться с буквы, не может содержать пробел, . ! @  &  $  #; не допускается использование повторяющихся имен на одном уровне области определения,

     тип - тип переменной (Integer, Long, Currency, Single, Double, Date, String, String*, Object, Variant). По умолчанию переменная получает тип Variant.

Оператор требования обязательного описания переменных, устанавливается в начале процедуры

Option Explicit

Данные могут изменяться в ходе программы (переменные) и не изменяться (константы). Строковые константы беруться в кавычки. По умолчанию численная переменная равна 0, строковая – пустая строка.

Операции VB

Арифметические операции

Операции сравнения

Логические операции

^

Возведение в степень

=

Равно

Not

Логическое отрицание

*  /

Умножение, деление

<>

Не равно

And

Логическое «И»

\

Целочисленное деление

<

Меньше

Or

Логическое «ИЛИ»

Mod

Деление по модулю

>

Больше

Eqv

Эквивалентность

+  -

Сложение, вычитание

<=

Меньше или равно

Результат логических операций:

False (Ложь) или True (Истина)

>=

Больше или равно

& или +   

Объединение строк

Функции преобразования

Val(строка)

преобразует строку цифровых символов (до первого нецифрового символа) в число

Str(число)

преобразует число в строку

Chr(код символа)

преобразует код символа в символ

Арифметические функции

Математическое описание

Программное описание

cosx, sinx, tgx, arctgx,  

Cos(x), Sin(x), Tan(x), Atn(x)

ex, lnx, Öx

Exp(x), Log(x), Sqr(x)

Вычисление по модулю |x|

Abs(x)

Генерация слачайных чисел
от 0 до 1

Randomize, Rnd

Определение знака

Sgn(x)

Выделение целой части

Fix(x), Int(x)

Оператор присваивания. Оператор вычисляет выражение и присваивает его переменной

Имя переменной = выражение

Ввод данных осуществляется при помощи функции InputBox, которая выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователем или нажатия кнопки, а затем возвращает значение типа String, содержащее текст, введенный в поле.

Вывод данных на экран осуществляется при помощи функции MsgBox, которая выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа Integer, указывающее, какая кнопка была нажата

InputBox(сообщение[, заголовок окна])

MsgBox(сообщение[, значки и кнопки][, заголовок окна]),

где  сообщение - строковое выражение, отображаемое в диалоговом окне, может содержать нескольких физических строк, для разделения которых допускается использование символа возврата каретки (Chr(13)), символа перевода строки (Chr(10)) или комбинацию этих символов (Chr(13) & Chr(10));

заголовок окна- строковое выражение, отображаемое в строке заголовка диалогового окна, если этот аргумент опущен, в строку заголовка помещается имя приложения;

значки и кнопки  - числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку.

Организации вывода данных в окно Отладки

Debug.Print [{Spc(n) | Tab(n)} выражение]

где Print – метод;   

     Spc(n) - указывает количество пробелов n, вставляемых в выводимый текст, Tab(n)- помещает курсор в экранный столбец с номером n;  

     выражение - переменные, константы числовые или строковые, функции, разделяемые запятыми, точками с запятыми или  пробел&пробел. Если этот аргумент опущен, выводится пустая строка.

Элементы управления:

Элемент

Название и назначение

Label

Надпись.      Надпись на элементе.

TextBox

Поле ввода.  Служит для ввода текста пользователем.

CommandBox

Кнопка.        Для выполнения действий: вычислений, запуск форм

Некоторые свойства и методы элементов управления:

Элемент

Свойство

Описание

Значение

Form1

Name

Имя элемента

Form1

Caption

Надпись на элементе

Лабораторная  работа 1

Label1

Name

Label1

Caption

Решить y=sinx2+cos2x

Label2

Name

Label2

Caption

Ввести X=

Label3

Name

Label3

Caption

Вывести Y=

TextBox1

Name

Text1

Text

Введенный текст

Пусто

TextBox2

Name

Text1

Text

Пусто

CommandButton1

Name

Command1

Caption

Вычислить

CommandButton2

Name

Command2

Caption

Выход

Метод

Show

Отображает форму на экране

Form1.Show

Работа строится на основе реакции объекта на какое-либо событие. Любому событию может быть назначена процедура обработки этого события. Источником события чаще всего является пользователь, который вводит данные с клавиатуры, нажимает на кнопки мыши. Автоматическое создание процедуры-обработки события: выбрать объект (на пример, Кнопка) à дважды щелкнуть по объекту появиться заготовка процедуры.

Событие

Click

Нажатие на кнопку мыши либо на элементе либо при выборезначения для элемента   

Процедура-событие

Sub Command1_Click

End sub

Задание к лабораторной работе 

Создать программу вычисления арифметического выражения согласно варианта в виде формы.

Примеры программы см. в  лабораторной работе №1.

В программе необходимо: объявить типы данных (согласно варианту), для ввода и вывода переменных использовать функции InputBox, MsgBox,  конструкцию Debug.Print.


Лабораторная работа №2

Тема"Программа разветвляющейся структуры".  

Цель: приобретение навыков создания программ разветвляющейся структуры, операторов и функций для ее реализации.

Изучить:

Операторы:

  •  If…,
  •  If…End If,
  •  Select Case…End Select.

Элементы управления:   Переключатель (OptionButton);    Рисунок (Image).

Метод:   SetFocus.

Процедуры-события:      сброс  данных;            работа переключателя.

(Новые свойства приведены ниже в таблице, выделены жирным шрифтом).

Основные положения

Для управления процессом выполнения программы существует множество разного рода управляющих структур, с помощью которых можно организовать ветвление по  условию, выбор из нескольких вариантов и т.д.

Условные операторы линейные и блочные - обеспечивает выполнение одного или нескольких операторов, в зависимости от истинности или ложности заданного условия.

Линейный или простой

If  условие  Then  операторы  [Else операторы ]

Условный блочный

If  условие1 Then

блок операторов1

          [ElseIf   условие2 Then

                          блок операторов2

                   .    .    .        ]

          [Else

          блок операторовn]

End If

где условие - одно или несколько выражений, принимающее значения True (Истина)  или False (Ложь),  в условие используют операции сравнения (< > =) и логические операции (And, Or);

      операторы - один или несколько операторов, разделяемых двоеточиями, выполняются, если условие имеет значение True.

Оператор выбора Select Case - выполняет одну из нескольких групп операторов в зависимости от значения выражения выбора

Select Case выражение выбора

          Case список проверок1

                           блок операторов1

      [Case список проверок2

                           блок операторов2

                                    .   .   .            ]

          [Case Else

                           блок операторов]

End Select

где выражение выбора - любое числовое или строковое выражение;

     список проверок  - cписок с разделителями, состоящий из одной или нескольких форм следующего вида:

  •  выражение1, выражение2,
  •  выражение1 To выражение2,
  •  Is операторСравнения выражение,  

ключевое слово To задает диапазон значений. Ключевое слово Is с операторами сравнения задает диапазон значений. В каждом предложении Case допускается использование нескольких выражений или диапазонов;  

     блок операторов - один или несколько операторов.

Вывод результатов вычисления по формату, т.е. отформатированные согласно инструкциям, заданным в описании формата функция

Format(выражение, формат)

где выражение – переменная, выражение;

     формат    - символы, определяющие формат.

Форматы:

0 Выводит цифру или нуль.  

# Выводит цифру или не выводит ничего.  

. Десятичный разделитель указывает, сколько цифр следует вывести в целой и дробной части форматируемого числа, т.е. слева и справа от десятичного разделителя  В  качестве десятичного разделителя используется запятая.

E- E+ e- e+ Экспоненциальный формат.  Если строка формата содержит хотя бы один прототип цифры (0 или #) справа от символов "E-", "E+", "e-" или "e+", то число выводится в экспоненциальном формате, а между числом и показателем степени помещаются символы "E" или "e".  Число цифр в показателе степени определяется числом символов вывода цифры справа от символа экспоненциального формата.  

- + $ ( ) Вывод указанного символа.

Пример: Заданы коэффициенты а и в, вычислить функцию  y, если

Public Sub lab2()

Dim  x  As Single

Dim  y As Single

Const a As Integer = 3, b As Integer = 2

x = Val(InputBox("x="))

If x < -1 Then

   y = abs(x)

  MsgBox "|x|=" & y

      ElseIf -1 <= x And x <= 1 Then

           y = a * x

          MsgBox "a*x=" & y

      Else

            y = x ^ b

           MsgBox "x^b=" & y

End If

MsgBox “x=” & Format(x,”##.##”) & _

             "y=" & Format(y,”0.0000”) &  y

End Sub

Public Sub lab2()

Dim x As Single: Dim y As Single

Const a As Integer = 3, b As Integer = 2

x = Val(InputBox("x="))

Select Case x

  Case Is < -1

       y = Abs(x)

      MsgBox "|x|=" & y

           Case -1 To 1

                y = a * x

              MsgBox "a*x=" & y

                   Case Else

                       y = x ^ b

                      MsgBox "x^b=" & y

End Select

Debug.Print "x=" & Format(x, " 0.0")

Debug.Print "y=", Format(y, "##.###")

End Sub

Элементы формы.

Элемент Переключатель (OptionButton) -  имеет два состояния включено и выключено.

Элемент Рисунок (Image) - используется для отображения рисунка на форме.

Пример: Создать форму для задания (см.выше), используя новые элементы и их свойства.  Предусмотреть, чтобы при появлении в поле вывода результата, рядом появлялась надпись одного из  уравнений системы по которому вычисляется результат.

Элемент

Свойства

Описание

Значение

Form1

Name

Frm1

Caption

Лабораторная  …

Icon

Выбор иконки в заголовке  формы

*.icon, *cur

Label1

Name

LblX

Caption

Ввести х

Autosize

Приведение в соответствие  размера элемента к длине надписи

True

Label2

Name

LblY

Caption

Пусто

TextBox1

Name

TxtX

ToolTipText

Добавить всплывающее примечание

Введите Х от -5 до 5

TextBox2

Name

TxtY

Locked

Не доступность ввода

True

CommandButton1

Name

Cmd1

Caption

Вычислить

CommandButton2

Name

Cmd2

Caption

Сброс

CommandButton3

Name

Cmd3

Caption

Выход

OptionButton1

Name

Opt1

Caption

Есть картинка

Value

Состояние переключателя

True

OptionButton2

Name

Opt2

Caption

Нет картинки

Value

False

Image

Name

Img1

Visible

Видимость 

True

Picture

Выбор картинки

Имя граф. файла

Stretch

Приведение в соответствие размеров картинки и элемента

True

Метод

SetFocus

Помещает фокус клавиатуры на данный объект

Процедура-событие нажатия кнопки Вычислить:

Private Sub Cmd1_Click()

Dim x As Single, y As Single

Const a As Single = 3, b As Single = 2

x = Val(TxtX.Text)

Select Case x

Case Is < -1

   y = a * x

   LblY.Caption = "y=a*x"

Case -1 To 1

       y = Abs(x)

       LblY.Caption = "y=|x|"

Case Else

   y = x ^ b

   LblY.Caption = "y=x^b"

End Select

TxtY.Text = y

End Sub

Процедура кнопки Сброса, очищает поля ввода Х и вывода Y и надпись с уравнением, а также активизирует поле ввода Х:

Private Sub Cmd2_Click()

TxtX.Text = ""

TxtY.Text = ""

LblY.Caption = ""

TxtX.SetFocus

End Sub

Процедура нажатия на Переключатель, делает видимой/невидимой картинку:

Private Sub Opt1_Click()

if Opt1.Value = True Then Img1.Visible = True

End Sub

Private Sub Opt2_Click()

if Opt2.Value = True Then Img1.Visible = False

End Sub

Задание к лабораторной работе    

Составить программу решения сложной функции (см. варианты задания, колонки "Функция" и "Условие") для различных значений аргумента при следующих условиях:

Вариант

Реализация разветвляющей структуры

Вывод результата

Нечетные

оператор IF... блочный   

в окно Отладки

Четные

оператор Select...              

в диалоговое окно

(Результаты вывести отформатированными).


Лабораторная работа   № 3

Тема "Программа  циклической структуры"

Цель: приобретение навыков создания алгоритмов и программ циклической структуры и изучение необходимых для этого операторов и функций .

Теоретические сведения

Изучить: 

Общий вид записи и назначение операторов:

  •  цикла с известным числом повторений (For...Next) ;
  •  для создания итерационных циклов (Do...Loop, While...Wend);
  •  вывода по заданному формату (функция Format),
  •  элементами формы: Флажок (CheckBox);   Рамка (Frame),
  •  свойства MultiLine, ScrolBars, TablIndex (новые свойства приведены ниже в таблице, выделены жирным шрифтом).

Оператор  цикла с известным числом повторений For...Next повторяет выполнение группы операторов указанное число раз:

For счетчик = начало To конец [Step шаг]

блок операторов

[Exit For]

[блок операторов]

Next [счетчик]

где счетчик - числовая переменная, используемая в качестве счетчика цикла;

     начало - начальное значение переменной счетчик;

     конец - конечное значение переменной счетчик;

     шаг - значение, на которое изменяется счетчик при каждом выполнении тела цикла,  если это значение не задано, по умолчанию шаг равен единице, может быть как положительным, так и отрицательным;

     блок операторов  - одтн или несколько операторов между For и Next, которые выполняются указанное число раз.

Оператор итерационный Do...Loop повторяет выполнение набора инструкций, пока условие имеет значение истина:

Do [{While | Until} условие]

блок операторов

[Exit Do]

[блок операторов]

Loop[{While | Until} условие]

где условие - числовое выражение или строковое выражение, которое имеет значение True или False, предворяется  одним из ключевых слов While или Until;

      блок операторов - один или несколько операторов, выполнение которых повторяется, пока условие имеет значение True или пока оно не приобретет значение True.

Альтернативный способ выхода из цикла предоставляет инструкции Exit For и Exit For. В любых местах цикла может размещаться любое число таких инструкций.   

Пример:

Написать программу решения задачи лаб.№2 при изменении х в диапазоне [0;2] с шагом 0,2.

1.Ввод значений границ диапазона и шага реализовать с помощью функции ввода. Найти минимальное и максимальное значение функции. Результаты  поместить в окно Immediat.

Используя конструкцию

For...Next

Используя конструкцию Do...Loop

Public Sub lab3()                                                                   

Dim x As Single, xn As Single, xk As Single, dx As Single

Dim  y As Single , min As Single, max As Single                                        

newline = Chr(13)

'ввод данных

xn = Val(InputBox("Хначальное"))

xk = Val(InputBox("Хконечное"))

dx = Val(InputBox("шаг"))

'начальные значения мин и мах

 min = 10000:      max =  0

'вывод заголовка таблицы

Debug.Print "  X  " & "  " & "  Y  "

'начало цикла                                                                                

For x = xn To xk Step dx                                                               

  Select Case x

       Case Is < -1

        y = a * x

       Case -1 To 1

        y = Abs(x)

       Case Else

        y = x ^ b

   End Select

   'нахождение мин и мах

  If min > y Then min = y

  If max < y Then max = y

   Debug.Print Format(x, " 0.0") & _

  "  " & Format(y, " #.##")

Next                                                                                             

'вывод мин и мах                                                                        

Debug.Print "min=" + Str(min) + newline + "max=" + Str(max)

End Sub

‘   х = xn

‘  Do While x  ≤  xk

‘   x = x + dx

‘   Loop

2.Создать форму для решения вышеприведенной задачи. Результат табулирования вывести в многостроковое поле (TextBox). Предусмотреть возможность кроме вывода результатов нахождение и вывод в окно сообщения (функция MsgBox) минимального и максимального значений функции. Эту возможность задать с помощью  флажков (CheckBox), размещенных в рамке (Frame).

Таблица элементов создаваемой  формы  и их  свойств:

Элемент

Свойства

Описание

Значение

Form1

Name

Form1

Caption

Лабораторная …

Label1

Name

Lbl1

Caption

Левая граница

Label2

Name

Lbl2

Caption

Правая граница

Label3

Name

Lbl3

Caption

Шаг

Label4

Name

Lbl4

Caption

Задайте границы диапазона Х

TextBox1

Name

Txt1

MultiLine

Поле содержит более одной строки

True

ScrollBars

Наличие в поле линий прокруток

2

3

TextBox2

Name

Txt2

Text

Значение левой границы

0

TablIndex

Порядок выбора объектов

1

TextBox3

Name

Txt3

Text

Значение правой границы

2

TablIndex

2

TextBox4

Name

Txt4

Text

Значение шага

0,2

TablIndex

3

CommandButton1

Name

Cmd1

Caption

Вычислить

CommandButton2

Name

Cmd2

Caption

Сброс

CommandButton3

Name

Cmd3

Caption

Выход

Frame

Name

Frm1

Caption

Вывод:

CheckBox1

Name

Chk1

Value

Есть флажок

1

Caption

Числа

CheckBox2

Name

Chk2

Value

Флажок серый

2

Caption

Мин и мах

Процедур нажатия кнопки Вывод (процедуры для кнопок Сброс и Выход см. Лаб.№3):

Private Sub Cmd1_Click()

Dim x As Single, y As Single

Dim min As Single, max As Single

Dim newline As String, space As String

newline = Chr(13) + Chr(10)

'начальные значения мин и мах

   min = 1000:       max =0

'вывод заголовка таблицы

Txt4.Text = "  X  " & "  " & "  Y  " & newline

'начало цикла

x =  Val(Txt1.Text)

Do While x <= Val(Txt2.Text)

  Select Case x

       Case Is < -1

        y = a * x

       Case -1 To 1

        y = Abs(x)

       Case Else

        y = x ^ b

   End Select

'нахождение мин и мах

    If min > y Then min = y

    If max < y Then max = y

'Вывод значений X  и Y на форму

    If Chk1.Value = 1 Then

    Txt4.Text = Txt4.Text & Format(x, " 0.0") &   "  " & Format(y, " 0.00") & newline

    End If

'изменение Х

x = x + Val(Txt3.Text)

Loop

'вывод мин и мах в окно сообщения

If Chk2.Value = 1 Then

MsgBox "min=" & Format(min, "0.00") & newline & _

"max=" & Format(max, "#.##"), vbOKCancel + vbInformation, "Сообщение"

End If

End Sub

 

Задание к лабораторной работе 

Модифицировать программу лабораторной работы №2 таким образом, чтобы вычислялось многократно значение  функции при изменении аргумента в указанном диапазоне и с заданным шагом  (см. таблицу вариантов).

Реализовать циклическую структуру  с помощью:

  •  оператора  Do...  -  для  нечетных вариантов;
  •  оператора For... -  для четные вариантов.

(в программе предусмотреть выод результатов вычислений в виде таблицы: аргумент и  соответствующее значение  функции).

Лабораторная работа   № 4 

Тема "Одномерный массив"

Цель: приобретение навыков создания программ обработки одномерных массивов.

Теоретические сведения

Массив – это последовательный, упорядоченный набор однотипных элементов с общим именем. Каждый элемент массива имеет индекс – уникальный номер, который заключается в скобки. Массивы в зависимости от количества индексов, могут быть одномерные и многомерные. Как и другие переменные, массивы обязательно объявляются в начале программы с помощью оператора Dim, с указыванием размерности массива. Массивы могут быть динамические и статические, с фиксированной размерностью – статические,- динамические – размерность которых определяется во время выполнения программы.

Описание массивов

Dim имя (индекс1[,индекс2]) [As тип], …

где имя - имя массива, удовлетворяющее стандартным правилам именования переменных;

     индекс1, индекс2 - размерности переменной массива; допускается описание до 60 размерностей;  индексы записывается следующим образом:

[нижний1 To] верхний1 [,[нижний2 To] верхний2] ,

если нижний индекс не задан явно, нижняя граница массива определяется оператором Option Base, если отсутствует Option Base, нижняя граница массива равняется нулю;

     тип  - тип данных массива (Integer, Long, Single, Double, String и т.д.).

Для описания динамических массивов инструкцию Dim записывают с пустыми скобками. После ввода или расчета размерности массива, массив переопределяется оператором ReDim  

ReDim имя (индекс1[,индекс2])

Оператор Option Base применяется для задания нижней границы индексов массива

Option Base {0 | 1}                                                              По умолчанию используется значение 0.

Оператор Option Base располагается в модуле перед процедурой и должна предшествовать описаниям массивов, включающих размерности.

Оператор цикла  For Each...Next повторяет выполнение блока операторов для каждого элемента массива или семейства.

For Each элемент In группа

Блок операторов

[Exit For]

Next [элемент]

где элемент - переменная, используемая для выполнения итераций по элементам семейства или массива, для массива она может быть только переменной типа Variant;

      группа - имя семейства объектов или массива (за исключением массивов с определяемыми пользователем типами);

     блок операторов - один или несколько операторов, которые выполняются над каждым элементом группы.

При работе с массивами данных возникает необходимость использования вложенных циклов (один цикл For...Next или DoLoop или  For...Each...Next  располагается внутри другого):

For I = 1 To 10

For J = 1 To 10

 For K = 1 To 10

  ...

 Next K

Next J

Next I

Однако, в случае For...Next счетчик каждого цикла должен иметь уникальное имя,  For...Each...Next - каждый элемент цикла должен быть уникальным.

Пример:

Задан одномерный числовой массив Х(n), определить произведение всех чисел массива, минимальное значение, первый отрицательный, его значение и индекс, отсортировать массив по возрастанию.Предусмотреть ввод и вывод элементов массива и результатов расчета.

Option Base 1                                          ‘задание нижней границі массива =1

Sub lab5()

‘Объвление типов переменных

Dim n AsInteger, st AsIinteger, i As Integer,  Min  As Single, P As Single, S As Single

Dim mas As String

Dim x() As Single                                      ‘объявление динамического массива Х

newline = Chr(13)

n = Val(InputBox("Введите к-во элементов в массиве",  "Задание размерности массива"))

ReDim x(n)                                               ‘Переопределение размерности массива X

'Ввод элементов массива _______________________________________________________

For i = 1 To n

‘из диалогового окна

                                                                   '  генератор случайных чисел

x(i) = Val(InputBox("Ввод " & i & "-го _   элемента", "Ввод элементов массива"))

‘ x(i) = Int(n * Rnd - n / 2)

' вывод элементов массива в окно Отладки

Debug.Print "X("; i; ")= "; x(i)

Next i

'Расчет  произведения_________________________________________________________

P = 1                                                         ‘начальное значение произведения P=1, суммы=0

For i = 1 To n

P = P * x(i)

Next i 

‘Вывод результата в окно Отладки

Debug.Print  “Произведение” + P

'  Использование оператора For Each…     Next  

‘для расчета суммы

‘обязательно оператор Option Base 1,

For Each element In x

‘      s = s + element

Next

'Поиск минимального элемента _________________________________________________

Min = x(1)                                               ‘Присвоить первоначальное значение = 1-ому элементу

For i = 1 To n

     If Min > x(i) Then Min = x(i)  

Next i

Поиск первого отрицательного элемента______________________________

For i = 1 To n

     If  x(i)<0  Then

         xotr = x(i )                                       ‘ значение 1-го отрицательного

         iotr = I                                             ‘индекс 1-го отрицательного

         Exit For                                           ‘досрочный выход из цикла

     End If    

Next I

‘Вывод в окно Отладки 1-го отрицательного и его индекса

Debug.Print “1-ое отрицательное”, xotr, “индекс 1-го отрицательного”, iotr 

 'Вывод элементов массива, минимума и произведения  в диалоговое окно ____________

mas = "Введенные числа:"

For i = 1 To n

     mas =mas  &  "  " &  Str(x(i))

Next i

MsgBox mas, vbOKOnly + vbExclamation, "Элементы массива"

MsgBox "min=" + Str(Min)   &  newline  &  "Произведение=" & P, vbInformation, _   "Результаты"

‘Сортировка массива по возрастанию _________________________

For i = 1 To n - 1

 flag = 0                              ‘флаг, отмечающий, были ли перестановки

For j = 1 To n – 1

‘Если следующий элемент меньше текущего, тогда меняем местами

If  x(j + 1) < x(j) Then

 pr = x(j): x(j) = x(j + 1): x(j + 1) = pr            ‘перестановка элементов       

 flag = 1                                ‘была перестановка  

End If

Next j

‘если перестановок больше нет, то - досрочный выход из цикла  

If flag = 0 Then Exit For

Next i

Debug.Print          ‘Вывод пустой строки или переход на другую строку

‘вывод  отсортированного массива в окно Отладки

For i = 1 To n

Debug.Print x(i);            ‘ в строку 

Next

End Sub

Пример для формы:

Задан одномерный числовой массив Х(n), найти сумму и произведение всех чисел массива, а также минимальное и максимальное значения. Создать форму для этой задачи.

В программе предусмотреть возможность ввода размерности массива, а также ввод элементов массива с помощью окон сообщений или генератора случайных чисел. Вывод массива и результатов вычислений предусмотреть либо в окно сообщений либо в окно Просмотра.

Таблица новых свойств элементов создаваемой формы

Элемент

Свойство

Описание

Значение

CommandButton1

Enabled

Доступность элемента к действиям

False

Picture

Рисунок на кнопке (если Style=1)

Имя файла

DisablePicture

Рисунок на кнопке, когда она недоступна (если Enabled = False, Style=1)

Имя файла

DownPicture

Рисунок на кнопке, если она нажата (если Style=1)

Имя файла

Style

Стиль кнопки

1 - графический

Label1

BorderStyle

Установление стиля рамки надписи

1

Alignment

Выравнивание текста в границах элемента

Center

WordWrap

Перенос слов (если AutoSize=True )

True

Общие свойства элементов

BackColor

ForeColor

Цвет фона

Цвет выводимой информации

Рис. Форма до и после нажатия на кнопки Ввести массив…

Процедура кнопки Ввести массив…

Ввод элементов массива можно осуществить «вручную» или же с помощью генератора случайных чисел (переключатели «с клавиатуры» и «генератором»).

Нажатия на кнопку Ввести массив… приводит к следующим действиям:

- в диалоговом окне вводится число, определяющее размерность массива, а если выбран «с клавиатуры», то вводятся также  последовательно элементы массива,

- кнопки Вывод массива на форму и Вычислить, которые не действовали до этого (надписи на них – серым цветом) - активизируются,

- на кнопке Ввести массив… меняется надпись на  Массив введен!.

Dim n As Integer, i As Integer

Dim x() As Single

Private Sub CmdVvod_Click()

'Изменение свойств

'кнопкам Проверка ввода и Вычислить

CmdTest.Enabled = True

CmdWork.Enabled = True

n = Val(InputBox("Введите число", "Задание размерности массива"))

ReDim x(n)

If OpbHand.Value = True Then

  For i = 1 To n

    x(i) = Val(InputBox("Ввод " & i & "-го элемента", "Ввод массива"))

  Next i

Else

  For i = 1 To n

    x(i) = Int(n * Rnd - n / 2)

  Next i

End If

CmdVvod.Caption = "Массив введен!"

‘После ввода массива меняется надпись на кнопке Ввести массив…

End Sub

Процедура кнопки Вывод массива на форму:

Ввыводит элементы введенного массива в Поле ввода.

Private Sub CmdTest_Click()

Dim newline As String, elements As String

newline = Chr(13) + Chr(10)

TxtX.Text = "Элементы массива:" + newline

For i = 1 To n

 TxtX.Text = TxtX.Text + Format(x(i), "0.0    ")

Next i

End Sub

Процедура кнопки Вычислить… :

Private Sub CmdWork_Click()

Dim Sum As Single, Product As Single

If ChbSum.Value = 1 Then

  Sum = 0

  For i = 1 To n

     Sum = Sum + x(i)

  Next i

  LblSum.Caption = Sum

Else

  LblSum.Caption = ""

End If

If ChbProduct.Value = 1 Then

  Product = 1

  For i = 1 To n

     Product = Product * x(i)

  Next i

  LblProduct.Caption = Product

Else

  LblProduct.Caption = ""

End If

End Sub

Процедура кнопка Сброс:

производит очистку Поля ввода и Надписей, а также отключение кнопок Вывод массива на форму и Вычислить, возвращает надпись кнопке Ввести массив….:

Private Sub CmdReset_Click()

CmdTest.Enabled = False

CmdWork.Enabled = False

CmdVvod.Caption = "Ввести массив..."

CmdVvod.SetFocus

TxtX.Text = ""

LblSum.Caption = ""

LblProduct.Caption = ""

Sum = 0

Product = 0

For i = 1 To n

 x(i) = 0

Next i

End Sub

Процедура кнопки Выход  при нажатии кнопки появляется на кнопке рисунок.


Лабораторная работа   № 5

Тема "Обработка двумерных массивов"

Цель: приобретение навыков создания  программ обработки многомерных массивов и использование процедур.

Общие положения

В VB есть возможность задать свойства объектов программно с помощью оператора With … End With, который выполняет последовательность операторов над одиночным объектом

With объект

[блок операторов]

End With

где объект -имя объекта;

      блок операторов - один или несколько операторов, выполняемых над объектом или

                                     .элемент управления.свойство=значение.

Процедура типа Sub.

[Private | Public] Sub имя ([список аргументов])

 операторы

End Sub

Обращение к процедуре Sub

Call имя(список аргументов)

или

имя  список аргументов

где Public - указывает, что процедура доступна для всех других процедур во всех модулях,

     Private - доступна для других процедур только того модуля, в котором она описана;

     имя- имя процедуры;

     список аргументов- список переменных, которые передаются в процедуру при ее вызове и разделяются запятыми;

     операторы -  блок операторов, выполняемых в процедуре.

Процедуры Sub, тип которых не указан явно с помощью слов Public или Private, являются общими по умолчанию. Процедура Sub является самостоятельной процедурой,  которая может получать аргументы, выполнять последовательность инструкций и изменять значения своих аргументов, но не может применяться в выражении.

Процедуры Function.

[Public | Private] Function имя([список аргументов]) [As тип]

 операторы

 имя = выражение

End Function

Обращение к процедуре Function осуществляется в выражении по своему имени, за которым следует список аргументов в скобках.  Для возврата значения из функции следует присвоить значение имени функции.  

где имя- имя процедуры Function, удовлетворяющее стандартным правилам именования переменных.

      тип- тип данных значения, возвращаемого процедурой Function, поддерживаются типы или любой определяемый пользователем тип.         

      выражение -возвращаемое значение процедуры Function.

Однако в отличие от процедуры Sub, когда требуется использовать возвращаемое функцией значение, процедура Function может применяться в правой части выражения, как и любая другая встроенная функция, например, Sqr, Cos или Chr.

Видимость процедур

Переменные и константы характеризуются областью видимости – областью, где они «видны», т.е. доступны для программы. За пределами своей области видимости переменная не может быть использована программой. Область видимости опеределяется двумя обстоятельствами: где она объявлена и какое дополнительное слово стоит при ней:

- в области объявлений,  выше начало процедур, то переменная доступна всем процедурам модуля;

- если при этом вместо ключевого слова Dim стоит Public – то переменная доступна для всех модулей и процедур в них.

Пример:

Задан двумерный числовой массив а(n,m), где а - переменная, определяющая имя и элементы массива, n - количество строк массива,  m - количество столбцов (квадратная матрица n=m). Решить следующие задачи:

  1.  В каждой строке массива поменять местами диагональный элемент на первый.
  2.  Сформировать одномерный массив b, состоящий из положительных элементов массива a.
  3.  Подсчитать сумму положительных элементов в каждом столбце, результаты вывести в виде одномерного массива s.
  4.  Найти максимальный элемент массива, его номера строки и столбца.
  5.  Заменить все отрицательные элементы  максимальным.

Sub Form1_Load()                                           Запуск программы при запуске формы  

Dim s() As Integer, b()

Dim a() As Single

n = InputBox("к-во строки:", "Размерность")

m = InputBox("к-во столбцов:", "Размерность")

ReDim a(1 To n, 1 To m)

ReDim s(m), b(n * m)

For i = 1 To n      '__________________Ввод элементов двумерного  массива

For j = 1 To m

a(i, j) = Int(100 * Rnd - 60)                     'генератором

st$ = st$ & Format(a(i, j), "##") & "  "  ‘формирование строки элементов массива

 Debug.Print a(i, j);                     'Вывод двумерного массива в окно Отладки

Next j

st$ = st$ & Chr(13)                       

Debug.Print

Next i

MsgBox "Массив"  & Chr(13) & " " & st$

'Задача 1______________________________________________________________

For i = 1 To n

pr = a(i, 1)

a(i, 1) = a(i, i)

a(i, i) = pr

Next i

Debug.Print "замена диагонального на первый"

For i = 1 To n  '_____________________вывод двумерного массива в окно Отладки

For j = 1 To m

Debug.Print a(i, j);

Next j

Debug.Print

Next i

'Задача 2_______________________________________________________________

k = 0

For i = 1 To n

For j = 1 To m

If a(i, j) > 0 Then k = k + 1: b(k) = a(i, j)

Next j

Next i

Debug.Print "массив положительных"

For i = 1 To k      '___________________вывод одномерного массива

Debug.Print b(i);

Next i

Debug.Print

'Задача 3___________________________________________________________

For j = 1 To m

For i = 1 To n

If a(i,j)>0 Then s(j) = s(j) + a(i, j)

Next i, j

Debug.Print "Суммы в столбцах"

For j = 1 To m '_____________________Вывод одномерного массива

Debug.Print s(j);

Next j

     'Задача 4________________________________________________________________

max = a(1, 1)

For i = 1 To n

For j = 1 To m

If a(i, j) >= max Then max = a(i, j): iMax = i: jMax = j

Next j, i

MsgBox "Максимум " & max  & Chr(13)  &  "№стр. " & iMax & Chr(13) & "№столб. " & jMax

Debug.Print "максимальный" & max, iMax, jMax

     'Задача 5________________________________________________________________

For i = 1 To n

For j = 1 To m

If a(i, j) <0 Then a(i,j)=max

Next j, i

For i = 1 To n        ‘_________________Вывод двумерного массива

For j = 1 To m

st$ = st$ & Format(a(i, j), "##") & "  "

Debug.Print a(i, j);

Next j

st$ = st$ & Chr(13)

Debug.Print

Next i

MsgBox "Массив " & Chr(13) & " " & st$

End Sub

Пример формы:

Задан двумерный массив а(n,m), где а - переменная, определяющая имя и элементы массива, n - количество строк массива,  m - количество столбцов (для одномерного задаеться только один параметр). Решить следующие задачи:

  1.  Найти 1-ый положительный элемент массива  и его номера строки и столбца.
  2.  Заменить все четные элементы на 1-ый положительный.
  3.  Определить среднее арифметическое отрицательных элементов.

Некоторые свойства элементов управления заданы программно с помощью оператора WithEnd With . Программа заупускается при запуске формы:

Option Base 1

'Объявление глобальных переменных,  размерность массива и сам массив

Dim n As Integer, m As Integer

Dim a() As Single                                                                                                        .

Private Sub Form_Load()

With Form1

  .Caption = "Лаб.работа №5"

  .CmdВвод.Caption = "Ввод"

  .CmdСброс.Caption = "Сброс"

  .CmdВыход.Caption = "Выход"

  .CmdВыход.ToolTipText = "Конец работы"

  .Chk1.Caption = "на форму"

  .Chk1.Value = 2

  .Chk2.Caption = "в окно Immediate"

  .Chk2.Value = 2

  .Chk3.Caption = "в окно сообщения"

  .Chk3.Value = 2

  .Opt1.Caption = "в ручную"

  .Opt2.Caption = "генератором"

  .LblУсловие.Caption = ""

  .TxtВвод.Locked = True

  .CmdЗадача1.Caption = "Найти 1-ое положительное в массиве"

  .CmdЗадача2.Caption = "Определить среднеарифметическое отрицательных элементов"

  .CmdЗадача3.Caption = "Поменять четные элементы на 1-ый положительный"

  .LblЗадача2.AutoSize = True

  .LblЗадача2.Caption = ""

  .LblЗадача2.WordWrap = False

  .LblЗадача3.AutoSize = True

  .LblЗадача3.Caption = ""

  .LblЗадача3.WordWrap = False

  .TxtЗадача1.Locked = True

End With

End Sub

Кнопка Ввод, осуществляет ввод размерности массива, его элементов с помощью генератора случайных чисел или с клавиатуры, а также осуществляет выбор способа вывода массива и вывод (в форму, в окно Отладки, в окно сообщения, одновременно или по выбору):

'Ввод и вывод элементов массива

Private Sub CmdВвод_Click()

n = InputBox("Введите количество строк:")

m = InputBox("Введите количество столбцов:")

ReDim a(n, m)

LblУсловие.Caption = "Задан двумерный массив   " & "a(" & n & "," & m & ")"

   Call vvod                                                          Обращение к процедуре ввода массива

'вывод массива на форму

 If Chk1.Value = 1 Then Call vivod_Form          Обращение к процедуре вывода на форму  

'вывод массива в окно Отладки

If Chk2.Value = 1 Then Call vivod_Immediate         ………….                      в окно Отладки               

'Вывод массива в окно сообщения

 If Chk3.Value = 1 Then Call vivod_Msg                   …………..                  в окно сообщения   

End Sub

Процедура ввода массива

Public Sub vvod()

If Opt1.Value = True Then

   'ввод массива в окне сообщения

   For i = 1 To n

   For j = 1 To m

   a(i, j) = InputBox("введите элемент:" & i & "," & j, "Ввод элементов")

   Next j, i

ElseIf Opt2.Value = True Then

   'ввод массива генератором

   For i = 1 To n

   For j = 1 To m

   a(i, j) = Int(100 * Rnd - 60)

   Next j, i

End If

End Sub

Процедуры вывода

Public Sub vivod_Form()

   'вывод массива на форму

   For i = 1 To n

   For j = 1 To m

TxtВвод.Text = TxtВвод.Text & a(i, j) & " "

   Next j

TxtВвод.Text = TxtВвод.Text & Chr(13) + Chr(10)

   Next i

 End Sub

Public Sub vivod_Immediate()

 'вывод массива в окно Отладки

   For i = 1 To n

   For j = 1 To m

   Debug.Print a(i, j);

   Next j

   Debug.Print

   Next i

   End Sub

Public Sub vivod_Msg()

   'Вывод массива в окно сообщения

   For i = 1 To n

   For j = 1 To m

   st$ = st$ & Format(a(i, j), "##") & "  "

   Next j

   st$ = st$ & Chr(13)

   Next i

   MsgBox "Массив" & Chr(13) & " " & st$

End Sub

Кнопки решения Задач 1-3

Private Sub CmdЗадача1_Click()

'Нахождения 1-го положительного в массиве

LblЗадача3.Caption = Pol(i1, j1)                                Функция нахождения 1-го положительного

End Sub

Private Sub CmdЗадача2_Click()

'Нахождение ср.арифметического

'Вывод на форму значения функции Sr

LblЗадача2.Caption = Format(Sr(), "##.###")

End Sub

'замена четных на 1-ый положительный

Private Sub CmdЗадача3_Click()

For i = 1 To m

For j = 1 To n

   If a(i, j) Mod 2 = 0 Then a(i, j) = Pol(i1, j1)

   TxtЗадача1.Text = TxtЗадача1.Text & a(i, j) & " "

   Next j

   TxtЗадача1.Text = TxtЗадача1.Text & Chr(13) + Chr(10)

   Next i

End Sub

Функции

'Функция нахождения1-го положительного

Function Pol(i1, j1)

Dim flag As Integer

For j = 1 To m

flag = 0

For i = 1 To n

   If a(i, j) > 0 Then

   flag = 1

   Pol = a(i, j): i1 = i: j1 = j

   Exit For

   End If

Next i

If flag = 1 Then Exit For

Next j

End Function

'Функция нахождения Sr ср.арифметического

Public Function Sr()

Dim ko As Integer

Dim s As Single

For i = 1 To n

For j = 1 To m

   If a(i, j) < 0 Then s = s + a(i, j): ko = ko + 1

Next j

Next i

Sr = s / ko

End Function

Кнопки Сброс и Выход аналогичны кнопкам в предыдущих лабораторных.




1. Теоретическое исследование моделей программы решающей заданную задачу
2. Проект очистки масло-шламовых сточных вод завода Топливная аппаратура электрохимическим методом
3. І ПОНЯТТЯ ТА ПРАВОВА ОСНОВА ДІЯЛЬНОСТІ МІЛІЦІЇ
4. Очаговый турбекулез легких
5. принцип гражданского законодательства определение условий договора по усмотрению сторон диспозити
6. Диалектика как учение о развитии и способ философствования
7. больные статьи предприятия если таковые имеются и сделать общий вывод о рентабельности убыточностипре
8.  Деякі властивості пов~язані з визначеними інегралами Спочатку нагадаємо означення періодичності функц
9. экономическими процессами а также к анализу и синтезу содержания деятельности и структуры систем управлен
10. оживающая механическая статуя бога Амона
11. ЛАБОРАТОРНАЯ РАБОТА 5 ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ Цель работы- Сформировать навыки по решению задач с и
12. крепостнической формации в недрах которой шел процесс формирования капиталистического уклада
13. Тема Організація обробки вихідних документів Мета- Навчитися здійснювати прийом і обробку документів що в
14. самостійне одержання знань учнями стає все більш цікавим для учителя і учня
15. на дядю Однако реальность так далека от представлений клиентов
16. Взаимопроникновение русского и таджикского языков в разговорной речи населения Душанбе
17. 2014 р. 2О Графік захисту науководослідницьких робіт на II міському етапі Всеукраїнського конкурсузахи
18. Цель PR таким образом обеспечение коммуникации фирмы с ее социальной средой средствами массовой ин
19. Экономико-статистический анализ и выявление резервов повышения рентабельности
20. Вильямс Психоаналитическая диагностика- Понимание структуры личности в клиническом процессе 9