Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: матрица. Добавлено: 08.05.10 19:55  

Автор вопроса:  Yagami Light
Приветствую уважаемые форумчане. Помогите пожалуйста решить одну лабораторную работу. Язык програмирования
visual basic 6.

Создать матрицу A(N*N) элементов где N вводится по запросу программы. С помощью подпрограмм:
1.упорядочить строки матрицы по возрастанию вторых элементов каждой строки
2.Найти максимальный элемент матрицы делимый без остатка на 5. Переставляя строки и столбцы матрицы, поместить этот элемент на место первого элемента в первой строке матрицы.
3.Найти две строки с максимальной разностью элементов стоящих на побочной диагонали.
Исходную матрицу и результаты записать в Файл в основной программе. Информацию из файла выводить на экран с пояснениями.

Понимаю задача трудная и наверняка такие делают не за бесплатно. Но студент человек бедный и если у кого получится помочь в качестве бонуса пополню счёт вашего мобильника на сумму 4$ =)

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 UnDeAdZak



Вопросов: 80
Ответов: 476
 Профиль | | #1 Добавлено: 08.05.10 22:06
Вот решения первых 2 - х, решение третьего, дам ,если обьясниш, что такое "побочные диагонали".
В моём варианте форма, на ней текстбокс, куда вводится N, кнопка старта, 2 лейбла , матрица заполняется случайными елементами от 0, до 100.
Dim n As Integer
Dim mass(0 To 50, 0 To 50) As Integer
Dim mass1(0 To 49) As Integer

Private Sub Command1_Click()
Label1.Caption = ""
Label2.Caption = ""
'считываю N
n = Val(Text1.Text)
'обьявляю переменные
Dim Max As Integer
Dim a As Integer
Max = 0
a = 0
Dim i As Integer
Dim j As Integer
Dim g As Integer
'заполняю массив случайными элементами
For i = 0 To n
For j = 0 To n
Randomize
mass(i, j) = Fix(Rnd * 100)
Next j
Next i
'сортирую, начиная от числа, с индексом "0", если надо по другому разобраться в коже несложно
For i = 0 To n
For j = 0 To n
If mass(i, j) > Max Or mass(i, j) = Max Then
Max = mass(i, j)
For g = 1 To n
If g = j Then

Else
mass1(a) = mass(i, g)
End If
a = a + 1
Next g
a = 0
mass(i, 0) = mass(i, j)
For g = 1 To n
mass(i, g) = mass1(a)
a = a + 1
Next g
End If
Next j
Next i
'Записываю результат в лейбл1
For i = 0 To n
For j = 0 To n
Label1.Caption = Label1.Caption & " " & Str(mass(i, j))
Next j
Label1.Caption = Label1.Caption & vbCrLf
Next i
'ищщу максимальный элемент, делящщийся на 5
Max = 0
For i = 0 To n
For j = 0 To n
If mass(i, j) > Max Then
If mass(i, j) / 5 = Int(mass(i, j) / 5) Then
Max = mass(i, j)
End If
End If
Next j
Next i
'вывожу его во второй лейбл
If Max = 0 Then
Label2.Caption = "нет элементов ,которые делятся на 5"
Else
Label2.Caption = Str(Max)
End If
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Yagami Light



Вопросов: 1
Ответов: 4
 Профиль | | #2 Добавлено: 08.05.10 22:23

Спасибо вам большое за помощь
побочная диагональ квадратной матрицы проходит через ее правый верхний и левый нижний угол

Ответить

Номер ответа: 3
Автор ответа:
 UnDeAdZak



Вопросов: 80
Ответов: 476
 Профиль | | #3 Добавлено: 08.05.10 22:27
блин) чтото я с сортировкой намудрил(

Ответить

Номер ответа: 4
Автор ответа:
 Yagami Light



Вопросов: 1
Ответов: 4
 Профиль | | #4 Добавлено: 08.05.10 22:36
Если у вас получится доделать напишите номер своего мобильного мне в личку и я как обещал пополню ваш счёт в знак благодарности)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам