2. Усовершенствуйте программу так, чтобы формировалась полная матрица по тому же принципу, т.е. каждый элемент матрицы является суммой его индексов.
3. Измените программу так, чтобы формировалась верхняя треугольная матрица, т.е. заполнялись значениями элементы над главной диагональю.
Учебное задание 11.2
Написать программу, которая читает содержимое файла последовательного доступа и формирует две целочисленные квадратные матрицы одинакового размера. Затем складывает полученные матрицы и формирует выходной файл Summa.txt в рабочем каталоге. В выходном файле должны быть выведены обе исходные матрицы и матрица, полученная в результате суммирования.
Технология выполнения учебного задания 11.2
1. Создайте новый проект File, New Project (Файл, Новый проект) или при открытии Visual Basic выберите значок Standard.exe и щелкните по кнопке Открыть.
2. Задайте свойству Name формы значение frmSummajmatrics, а свойству Caption формы — значение Операция сложения матриц.
3. Разместите в нижней части формы кнопки Read, Summa и Record. Задайте свойствам Name значения cmdRead, cmdSumma и cmdRecord. Щелчок по кнопке Read будет приводить к чтению данных из файла и формированию двух матриц заданного пользователем размера. Кнопка Summa предназначена для выполнения операции сложения двух матриц, а кнопка Record - для записи матриц в файл. Разместите также на форме стандартный элемент Microsoft Common Dialog 6.0. Задайте свойству Name значение comFiles.
4. Матрицы A(nxn), B(nxn) и C(nxn) должны быть объявлены как глобальные массивы в секции (General)(Declarations) формы. Но так как размерность матриц пользователь должен задавать в процессе выполнения программы, массивы нужно объявить динамическим:
Option Explicit
Private A(), B(), C() As Integer
Private intN As Integer
5. Запрограммируем событие Click для элемента cmdRead.
Private Sub cmdRead_Click() Dim i, j filenol As Integer Dim strPath As String
' Используя метод ShowOpen для элемента comFiles определим полное имя ' файла с исходными данными comFiles. ShowOpen strPath = comFiles.FileName
intN = Уа1(1при1Вох("Введите размерность массивов", "Размер массивов")) ' Переопределить размерность массивов
ReDim A(l To intN, I To intN), B(l TojntN, I To intN), C(l To intN, I To intN)
filenol = FrceFile
For i = 1 To intN
For j = 1 To intN
Input #filenol, A(i, j)
Next j
Next i
frmSumma_matrics.Print "Формирование первой матрицы завершено." For i = 1 То intN For j = 1 To intN
Input #filenol, B(i, j) Nextj Next i
frmSumma_matrics.Print "Формирование второй матрицы завершено." Close #filenol End Sub
6. Запрограммируем
событие Click для элемента cmdSumma.
Private Sub cmdSumma_Click()
Dim i, j As Integer For i = 1 To intN Forj = l To intN
C(i,j) = A(i,j) + B(i,j) Nextj Nexti
frmSumma_matrics.Print "Формирование результирующей матрицы завершено." End Sub
7. Опишем процедуру обработки события Click для элемента cmdRecord.
Private Sub cmdRecord_Click() Dim i, j, fileno2 As Integer Dim strPath As String fileno2 = FrccFile
comFilcs.ShowSave
Open comFilcs.FilcName For Output As fileno2
Print #filcno2, "Первая матрица:"
For i = 1 To intN
Forj = 1 To intN
Print # fileno2, A(i, j);
Next j Print #fileno2, Nexti
Print #fileno2, "Вторая матрица:" For i = 1 To intN
Forj = lTointN
Print #fileno2,B(i,j);
Nextj Print #fileno2, Next i
Print #fileno2, "Результирующая матрица:" For i = 1 To intN
Forj = 1 To intN
Print #fileno2, C(i, j);
Next j Print #fileno2, Next i
Close #fileno2
frmSumma_matrics.Print "Матрица результата выведена в файл." End Sub
Файл с исходными данными обязательно должен быть заранее подготовлен! Данных в файле должно быть по крайней мере не меньше, чем требуется для формирования двух матриц. Располагаться данные в файле могут произвольно - таблично(повторяя матричную структуру) или единой строкой. Разделителями могут быть пробелы или запятые.
Контрольные вопросы
1. Что означает оператор Private A() As Integer ?
2.
Что происходит в строке программы ReDim A(l To intN, I To intN) ? Почему
необходим такой оператор в программе?
3. В чем разница между статическим и динамическим массивами?
4.
Для чего предназначен элемент Microsoft Common Dialog 6.0? Какие методы
инкапсулированы в этот элемент?
Контрольные упражнения
1.
Усовершенствуйте программу дополнительной
проверкой правильности
выполнения операции сложения матриц. Допишите
процедуру вычитания из
результирующей матрицы любой из исходных.
2.
Измените программу так, чтобы можно было
обойтись без использования
динамических массивов.
3. Усовершенствуйте
программу так, чтобы осуществлялась корректная проверка
на случай «недостаточности данных».
Самостоятельное задание 1
Напишите программу, реализующую операцию умножения прямоугольной матрицы на число. Исходную матрицу сформировать чтением из файла. Размер матрицы должен задавать пользователь в процессе выполнения программы. Результирующую матрицу вывести в этот же файл.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.