Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 09.02.2010
Сообщений: 16
1

Вывод матрицы в файл

09.10.2010, 10:13. Показов 2305. Ответов 3
Метки нет (Все метки)

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

Задание программы:

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

Код программы:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Private Sub lab2()
Dim MAX, Cmax
Dim NB, Cnb
Dim MIN
Open "D:\TESTFILE.TXT" For Output As #1
Print #1, "Матрица"
MsgBox "Здравствуйте! Давайте начнем!", vbCritical, "Приветствие"
 
Cells.ClearContents
S = 0
 
metka:
 
n = InputBox("Введите количество столбцов и строк матрицы", "Ввод", 10)
 
If n > 10 Then
    MsgBox "Количество столбцов более 10 не обрабатываю!", 48, "Ошибка!"
    GoTo metka
End If
 
ReDim matr(1 To n, 1 To n)
 Randomize
 
For i = 1 To n
     For j = 1 To n
          matr(i, j) = Int(100 * Rnd + 10)
               
               Лист1.Cells(i + 1, j).Value = matr(i, j)
               Print #1, Tab, matr(i, j);
                  S = S + matr(i, j)
    Next j
    Print #1,
Next i
 
SA = S / n / n
MsgBox SA, 64, "Среднее арифметическое"
 
MAX = matr(1, 1)
Cmax = 1
NB = matr(1, 1)
Cnb = 1
MIN = Abs(matr(1, 1) - SA)
 
For i = 1 To n
     For j = 1 To n
     
     
     If MAX < matr(i, j) Then MAX = matr(i, j): Cmax = j
     
     If MIN > Abs(matr(i, j) - SA) Then NB = matr(i, j): Cnb = j: MIN = Abs(matr(i, j) - SA)
     
     Next j
Next i
Print #1, "Новая матрица"
For j = 1 To n
 
 
      For i = 1 To n
      
      Select Case j
      
      Case Cmax
      Лист1.Cells(i + n + 2, Cnb).Value = matr(i, j)
   
      
      Case Cnb
      Лист1.Cells(i + n + 2, Cmax).Value = matr(i, j)
      
      Case Else
      Лист1.Cells(i + n + 2, j).Value = matr(i, j)
      End Select
      Print #1, Tab, matr(i, j);
      Next i
      Print #1,
Next j
SA = "Максимальный элемент матрицы  " & MAX & vbCrLf _
& "находился в столбце № " & Cmax & vbCrLf _
& "Среднее арифметическое матрицы " & SA & vbCrLf _
& "Наиболее приближённый к среднему элемент  " & NB & vbCrLf _
& "находился в столбце № " & Cnb
 
MsgBox SA, 64, "Полученные результаты"
MsgBox "До свидания!", vbCritical, "Прощание"
Close #1
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2010, 10:13
Ответы с готовыми решениями:

Вывод матрицы в файл
Добрый день. Есть массив 64х48. Нужно вывести его в текстовый файл в виде матрицы. Почему-то у меня...

Вывод матрицы в файл
Здравствуйте. Помоги пожалуйста решить проблему вывода в текстовый файл матрицы. using System;...

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

Вывод матрицы в текстовый файл
Здравствуйте! Помогите, пожалуйста, красиво записать матрицу 2х2 в текстовый файл. Матрица...

3
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
09.10.2010, 17:19 2
Посмотри внимательно на циклы и вывод в файл:

1.
Visual Basic
1
2
3
For i = 1 To n
     For j = 1 To n
Print #1, Tab, matr(i, j);
2.
Visual Basic
1
2
3
For j = 1 To n
       For i = 1 To n
Print #1, Tab, matr(i, j);
Мабудь треба додати ще один цикл
0
0 / 0 / 0
Регистрация: 09.02.2010
Сообщений: 16
10.10.2010, 13:00  [ТС] 3
Уже все способы были перепробованы,но все-равно не могу понять, что еще нужно добавить. Очень Вас прошу,пожалуйста, помогите,подскажите,какой цикл добавить. Заранее спасибо!
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
10.10.2010, 14:28 4
Цитата Сообщение от Wastyp Посмотреть сообщение
Уже все способы были перепробованы

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Private Sub lab2()
Dim MAX, Cmax
Dim NB, Cnb
Dim MIN
Dim T
Open "D:\TESTFILE.TXT" For Output As #1
Print #1, "Матрица"
MsgBox "Здравствуйте! Давайте начнем!", vbCritical, "Приветствие"
Cells.ClearContents
S = 0
metka:
n = InputBox("Введите количество столбцов и строк матрицы", "Ввод", 10)
If n > 10 Then
    MsgBox "Количество столбцов более 10 не обрабатываю!", 48, "Ошибка!"
    GoTo metka
End If
ReDim matr(1 To n, 1 To n)
 Randomize
 
For I = 1 To n
     For J = 1 To n
         matr(I, J) = Int(90 * Rnd + 10)
               Лист1.Cells(I + 1, J).Value = matr(I, J)
               Print #1, matr(I, J);
                  S = S + matr(I, J)
    Next J
    Print #1,
Next I
SA = S / n / n
MsgBox SA, 64, "Среднее арифметическое"
MAX = matr(1, 1)
Cmax = 1
NB = matr(1, 1)
Cnb = 1
MIN = Abs(matr(1, 1) - SA)
 For I = 1 To n
     For J = 1 To n
     If MAX < matr(I, J) Then MAX = matr(I, J): Cmax = J
     If MIN > Abs(matr(I, J) - SA) Then NB = matr(I, J): Cnb = J: MIN = Abs(matr(I, J) - SA)
     Next J
Next I
Print #1, "Новая матрица"
For I = 1 To n
       For J = 1 To n
       K = J
       Select Case J
       Case Cmax
           K = Cnb
       Case Cnb
           K = Cmax
       End Select
      Лист1.Cells(I + n + 2, J).Value = matr(I, K)
     
      Print #1, matr(I, K);
      Next J
      Print #1,
Next I
SA = "Максимальный элемент матрицы  " & MAX & vbCrLf _
& "находился в столбце № " & Cmax & vbCrLf _
& "Среднее арифметическое матрицы " & SA & vbCrLf _
& "Наиболее приближённый к среднему элемент  " & NB & vbCrLf _
& "находился в столбце № " & Cnb
MsgBox SA, 64, "Полученные результаты"
MsgBox "До свидания!", vbCritical, "Прощание"
Close #1
End Sub
0
10.10.2010, 14:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2010, 14:28
Помогаю со студенческими работами здесь

Вывод матрицы на экран/в файл
Здравствуйте. Прошу помочь с выводом матрицы на экран\в файл, перепробывал много вариантов но всё...

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

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

Неправильно работает вывод матрицы в файл
Программа должна возвести матрицу заданного размера в заданную степень. Степень и размерность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru