Страница: 1 |
Вопрос: матрица. | Добавлено: 08.05.10 19:55 |
Автор вопроса: ![]() |
Приветствую уважаемые форумчане. Помогите пожалуйста решить одну лабораторную работу. Язык програмирования
visual basic 6. Создать матрицу A(N*N) элементов где N вводится по запросу программы. С помощью подпрограмм: 1.упорядочить строки матрицы по возрастанию вторых элементов каждой строки 2.Найти максимальный элемент матрицы делимый без остатка на 5. Переставляя строки и столбцы матрицы, поместить этот элемент на место первого элемента в первой строке матрицы. 3.Найти две строки с максимальной разностью элементов стоящих на побочной диагонали. Исходную матрицу и результаты записать в Файл в основной программе. Информацию из файла выводить на экран с пояснениями. Понимаю задача трудная и наверняка такие делают не за бесплатно. Но студент человек бедный и если у кого получится помочь в качестве бонуса пополню счёт вашего мобильника на сумму 4$ =) |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 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 ![]() 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 + 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 4 |
Профиль | Цитата | #2 | Добавлено: 08.05.10 22:23 |
Спасибо вам большое за помощь побочная диагональ квадратной матрицы проходит через ее правый верхний и левый нижний угол |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 80 Ответов: 476 |
Профиль | Цитата | #3 | Добавлено: 08.05.10 22:27 |
блин) чтото я с сортировкой намудрил( |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 4 |
Профиль | Цитата | #4 | Добавлено: 08.05.10 22:36 |
Если у вас получится доделать напишите номер своего мобильного мне в личку и я как обещал пополню ваш счёт в знак благодарности) |
Страница: 1 |
|