Основные приемы построения классов и разработка программного интерфейса для работы с базами данных с помощью языка Visual Basic 6,0, страница 3

Самостоятельное задание 2

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

Самостоятельное задание 3

Напишите программу, реализующую операцию транспонирования квадратной матрицы. Транспонированной матрицей является матрица, в которой столбцы и строки меняются местами, т.е. осуществляется поворот вокруг главной диагонали.


УРОК 2. Методы сортировки массивов

Основные цели:

-  познакомиться с алгоритмами сортировки массивов;

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

Краткая справка

Сортировка выбором. Дана последовательность чисел a1, a2, ..., аn Требуется переставить элементы так, чтобы они были расположены по убыванию. Для этого в массиве, начиная с первого выбирается наибольший элемент и ставится на первое место, а первый - на место наибольшего. Затем, начиная со второго, эта процедура повторяется.

Сортировка обменами. Дана последовательность чисел a1, a2, ..., аn Требуется переставить   элементы   в   порядке   возрастания.   Для   этого   сравниваются   два соседних числа aj и aj+1. Если aj > aj+1, то делается перестановка. Так продолжается до тех пор, пока все элементы не станут расположены в порядке возрастания.

Сортировка вставками. Дана последовательность чисел a1, a2, ..., аn Требуется переставить элементы в порядке возрастания. Делается это следующим образом. Пусть a1, a2, ..., аn - упорядоченная последовательность, т.е. a1 <= a2 <=...<= a3.

Берется следующее число aj+1, и вставляется в последовательность так, чтобы не нарушать упорядоченность.


Учебное задание 3

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

Исходный массив считать из файла. Исходный массив и оба отсортированных массива должны быть выведены в файл результата.

Технология выполнения учебного задания 11.3

1.  Создайте новый проект File, New Project   (Файл, Новый проект) или при открытии Visual Basic выберите значок Standard.exe и щелкните по кнопке Открыть.

2.  Задайте свойству Name формы значение frmMethods_sort, а свойству Caption формы — значение Методы сортировки.

3.  Разместите    в    нижней    части    формы    кнопки   Read,    Exchange Method, Select Method,    Write Exchange,    Write Select.    Задайте    свойствам    Name значения       cmdRead,       cmdSelect       и       cmdExchange,       cmdWrSelect, cmdWrExchange соответственно. Щелчок по кнопке Read будет приводить к чтению данных из файла и формированию массива чисел. Кнопка Write Select запрограммирована под реализацию алгоритма сортировки методом выбора, кнопка Exchange Method - под метод обмена. Запись отсортированных двумя методами массивов осуществляется по щелчку по кнопкам cmdWrSelect, и cmdWrExchange соответственно. Причем, для наглядности алгоритмов предполагается вывод в файл этапов сортировки. Разместите также на форме стандартный элемент Microsoft Common Dialog 6.0. Задайте свойству Name значение comFiles.

4.   Для того, чтобы исходный массив А() был доступен для всего модуля объявим массив А() и его размер intN в секции (General)(Declarations) формы. Но так как   размерность   массива,   который   будет  считываться   из   файла,   заранее неизвестен и будет определяться в процессе выполнения программы, массив нужно    объявить   динамическим.    Размерность    массива   тоже    во    время выполнения программы меняться не будет и должна быть доступна на всем модуле. Программа будет работать с одним и тем же файлом, поэтому его полное  имя,  однажды определенное,  нужно  сделать прозрачным  на всем модуле.

Option Explicit Private A() As Integer Private intN As Integer

5.   Запрограммируем событие Click для элемента cmdRead.
Private Sub cmdRead_Click()

Dim i, Tem, filenol As Integer Dim

strPath As String

fileno1 = FreeFile

comFiles.ShowOpen strPath = comFiles.FileName

Open strPath For Input As filenol

'определение длины массива - в i накапливается кол-во считанных из файла значений.

 i = 0

Do Until EOF(fileno1)

i = i + l

Input #filenol, Tem Loop

Close #fileno1

intN = i

frmMethodssort.Print "Из файла считано "; intN; " чисел." ' вывод информационного сообщения на форму о количестве считанных значений ReDim A(intN) fileno1 = FreeFile Open strPath For Input As fileno1 'формирование массива. For i = 1 To intN

Input #l,A(i) Next i

frmMethods_sort.Print "Сформирован массив из "; intN; " элементов." Close #filenol End Sub

•  Цикл Do Until EOF(fileno1)... Loop не является циклом формирования массива.
Он предназначен только для определения количества данных в файле, т.е.
для нахождения длины массива.

•  Файл исходных данных после цикла Do Until EOF(fileno1) ... Loop необходимо
закрыть, чтобы восстановить указатель файла вновь на начало.

6. Запрограммируем событие Click для элемента cmdSelect.