- •Содержание
- •17.2.2. Свойства 130
- •17.6.2. Свойства 133
- •17.7.2. Свойства 134
- •18. Меню 139
- •Основные понятия ооп
- •Объекты
- •Классы объектов
- •Свойства
- •События
- •Три основных принципа ооп
- •Инкапсуляция
- •Наследование
- •Полиморфизм (имеющий много форм)
- •Визуальное проектирование интерфейса
- •Событийно-управляемое программирование
- •Процесс создания приложений
- •Интегрированная среда разработки (иср) visual basic
- •Общая организация программы в vb
- •Структура проекта vb
- •Структура событийной процедуры
- •Общее описание среды vb
- •Краткая характеристика элементов управления, используемых при создании простых приложений
- •Основные свойства, методы и события объектов vb
- •Основные элементы языка Vb
- •Типы данных
- •Переменные
- •Объявление переменных
- •Explicit-объявление
- •Константы
- •Выражения и операции
- •Стандартные подпрограммы
- •Математические функции vb
- •Функции преобразования данных vb
- •Операторы
- •Простые операторы
- •Оператор присваивания
- •Операторы вызова процедур
- •Оператор безусловного перехода
- •Системные диалоговые окна
- •Диалоговое окно ввода информации InputBox
- •InputBox(Приглашение,Заголовок,НачЗначение),
- •Окно сообщения MsgBox
- •Ввод и вывод данных в vb
- •Ввод данных
- •Вывод результатов
- •Функция Format
- •Структурные операторы
- •Условные операторы
- •Оператор выбора Select … Case
- •Операторы повтора
- •Циклы с параметром
- •Элемент управления Slider
- •Циклы с условием
- •Использование рекуррентной формулы для вычисления суммы ряда
- •Использование функции Timer
- •Подпрограммы пользователя
- •Пользовательские процедуры
- •Способ передачи аргументов
- •Функции пользователя
- •Массивы
- •Оператор Option Base
- •Динамические массивы
- •Функции lBound и uBound
- •Функция Rnd
- •Оператор Erase
- •Типовые задачи на обработку одномерных массивов
- •Формирование массива с помощью функции Split
- •Линейная сортировка массива
- •Уплотнение массива
- •Вставка элемента в массив
- •Изменение положения элементов на некотором отрезке
- •Кольцевой сдвиг элементов массива
- •Двумерные массивы
- •Ввод и вывод двумерных массивов
- •Формирование двумерного массива с помощью диалогового окна InputBox и функции Split
- •Вывод двумерного массива с помощью элемента управления msFlexGrid
- •Типовые задачи на обработку двумерных массивов
- •Преобразование двумерных массивов
- •Типовые задачи с квадратными матрицами
- •Массивы в качестве формальных параметров в процедурах и функциях пользователя
- •Данные строкового типа
- •Операции над строками
- •Функции, предназначенные для работы со строками
- •Функция Split
- •Функция Join
- •Оператор Mid
- •Типовые задачи на обработку строк
- •Анализ символьных строк
- •Изменение строк (замена, удаление, вставка символов)
- •Функции и операторы для работы с файлами
- •Открытие файлов
- •Закрытие файлов
- •Работа с файлами последовательного доступа
- •Чтение данных
- •Запись данных
- •Элемент управления CommonDialog
- •Графика в vb
- •Методы графики в vb
- •Задание цвета
- •Свойства объектов, влияющих на графические методы:
- •Применение метода Scale
- •Построение графика функции
- •Некоторые дополнительные элементы управления, которые часто используются в проектах.
- •Объект управления Shape (Фигура)
- •Свойства
- •Объект управления Timer
- •События
- •Свойства
- •Окна общего диалога
- •Создание меню
- •Свойства
- •Работа с несколькими формами
-
Типовые задачи на обработку двумерных массивов
К типовым задачам с двумерными массивами относятся задачи на вычисление суммы, произведения, количества, среднего арифметического, максимума, минимума элементов каждой строки или каждого столбца, заданной строки или заданного столбца и др.
Вычисления подобного рода осуществляются при помощи стандартных приемов, особенность которых заключается в организации вложенных циклов при обработке массивов:
For i := a1 To b1 For j := a2 To b2 . . . . . . Next j Next i
Цикл, который содержит другой цикл называют внешним циклом, а цикл, содержащийся в теле другого цикла, называют внутренним. Все операторы внутреннего цикла должны полностью располагаться в теле внешнего цикла.
Всякий раз, когда внутренний цикл завершается, внешний цикл увеличивает значение своего счетчика на 1, и внутренний цикл выполняется вновь.
Поэтому, если за счетчик внешнего цикла взять индекс строки, а за счетчик внутреннего – номер столбца, то обработка двумерного массива будет идти по строкам, а если наоборот, то по столбцам.
Пример 1. Заполнить двухмерный массив размерностью n * m случайными целыми числами из диапазона [-40,40]. Определить:
-
сумму элементов каждой строки;
-
максимальные значения для каждого столбца;
-
произведение элементов k-ой строки, значения которых лежат в диапазоне от 20 до 40.
Фрагмент программного кода:
Dim i As Integer,j As Integer,s As Integer
Dim max As Integer,k As Integer,p As Integer
Dim flag As Boolean
Dim a(1 To 30, 1 To 30) As Integer
'Очистка текстовых окон
Edit4.Text="": Edit5.Text="": Edit6.Text=""
'Вычисление сумм элементов в каждой строке
For i=1 To n 'Цикл по строкам
s=0;
For j=1 To m
s=s+a(i,j); 'Суммирование элементов i-ой строки
Next J
Edit4.Text= Edit4.Text+Str(s)+ " " 'Вывод суммы i-ой строки
Next i
'Вычисление максимальных элементов в каждом столбце
For j=1 To m 'Цикл по строкам
max=a(1,j) 'Установка начального максимума по первому элементу
'в j-ом столбце
For i=1 To n 'Цикл по строкам
If a(i,j) > max Then max=a(i,j)
Next i
'Вывод максимального элемента j-го столбца
Edit5.Text= Edit5.Text+Str(max)+ " "
Next j
'Вычисление произведения элементов k-ой строки, попавших в диапазон [20,40]
k=Val(Edit3.Text) 'Ввод номера строки
p=1
flag=false 'Предполагаем, что нет элементов, попавших в диапазон [20,40]
For j=1 To m 'Цикл по столбцам
If (a(k,j)>20) and (a(k,j)<40)Then 'Проверка условия попадания
'в диапазон [20,40]
p=p*a(k,j): flag=True
End if
Next j
'Если есть элементы из промежутка [20,40], то выводится их произведение, иначе
'выводится сообщение
If flag Then
Edit6.Text = Str(p)
Else
Edit6.Text = "Таких элементов нет"
End if
