Страница: 1 |
Страница: 1 |
Вопрос: помогите разобраться плз!
Добавлено: 08.06.08 11:07
Автор вопроса: BullDozer | Web-сайт:
нужно написать программу,которая создает матрицу с заданным числом строк и столбцов,а затем показывает все элемениы выше главной диагонали.
вот что у меня пока получилось:Option Explicit
Option Base 1
Dim m As Long
Dim n As Long
Dim i As Long
Dim a() As Long
Dim j As Long
Private Sub Command1_Click()
m = Text1.Text
n = Text2.Text
ReDim a(m, n) As Long
For i = 1 To m
For j = 1 To n
a(i, j) = Int(Rnd * 201 - 100)
Print a(i, j)
Next j
Print
Next i
End Sub
так вот,не знаю,как сделать вторую часть программы,понял только то,что надо укзать ,что j > i,а потом все это вывести на экран,вот только никак не получается((
еще хотелось бы узнать,как сделать,что бы это все было в виде матрицы,а не одим столбиком.
все заранее спасибо!
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #1
Добавлено: 09.06.08 19:06
Абалдеть, и никто тебе не помог?!!!
Твой же код, немного правленный, отпечатает тока главную диагональ. Отступы сам выровняешь.
m = Text1.Text
n = Text2.Text
ReDim a(m, n) As Long
For i = 1 To m
For j = i To n
a(i, j) = Int(Rnd * 201 - 100)
Print a(i, j) & " ";
Next j
Print
Next i
End Sub
Номер ответа: 2
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #2
Добавлено: 09.06.08 19:07
в смысле все что выше.
Номер ответа: 3
Автор ответа:
BullDozer
ICQ: ----
Вопросов: 1
Ответов: 5
Web-сайт:
Профиль | | #3
Добавлено: 09.06.08 20:27
s12,спасибо конечно,но я имел ввиду немного другое..
программа генерирует матрицу,выводит её на экран,а затем выводит числа этой матрицы,которые находятся выше диагонали.
желательно,что бы это все было связанно с условием j>i..
я почти сделал,только программа рисует матрицу,где -1 - все числа,находящиеся выше диагонали и 0 - ниже..
Номер ответа: 4
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #4
Добавлено: 10.06.08 00:15
Ну, гм.. приведенный выше пример как раз иллюстрирует условие j>=i
Чтобы это могло значить :?
Номер ответа: 5
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #5
Добавлено: 10.06.08 08:37
Сильно занят был, да и код у него как ты справедливо заметил уже почти готов.
Номер ответа: 6
Автор ответа:
BullDozer
ICQ: ----
Вопросов: 1
Ответов: 5
Web-сайт:
Профиль | | #6
Добавлено: 10.06.08 09:58
s12,спасибо все сделал как надо).
вот что получилось:
Option Base 1
Dim m As Long
Dim n As Long
Dim i As Long
Dim a() As Long
Dim j As Long
Dim b() As Long
Private Sub Command1_Click()
m = Text1.Text
n = Text2.Text
ReDim a(m, n) As Long
For i = 1 To m
For j = 1 To n
a(i, j) = Int(Rnd * 201 - 100)
Print a(i, j) & " ";
Next j
Print
Next i
End Sub
Private Sub Command2_Click()
For i = 1 To m
For j = i To n
a(i, j) = a(i, j)
Print a(i, j) & " ";
Next j
Print
Next i
End Sub
но есть еще пара вопросов:
1.Где же все-таки это условие,j>i ?
2.Как,например сделать,что бы выводилось все тоже самое,исключая главную диагональ,ведь она как раз не удовлетворяет условию j>i?
заранее спасибо,я просто только начал осваивать VB,поэтому у меня такие нубские вопросы :D
Номер ответа: 7
Автор ответа:
BullDozer
ICQ: ----
Вопросов: 1
Ответов: 5
Web-сайт:
Профиль | | #7
Добавлено: 10.06.08 14:27
уф ,вроде разобрался:
For j = 1 To n
If a(i, j) = a(i, j) And j > i Then Print a(i, j), ;
Next j
Print
Next i
End Sub
всем спасибо))!но на счет
Номер ответа: 8
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #8
Добавлено: 10.06.08 15:04
If a(i, j) = a(i, j) And j > i Then
строка должна выглядеть так:
If j > i Then Print a(i, j), ;
вот оно и условие j > i, в чём вопрос?
Номер ответа: 9
Автор ответа:
BullDozer
ICQ: ----
Вопросов: 1
Ответов: 5
Web-сайт:
Профиль | | #9
Добавлено: 10.06.08 15:12
не,тут то все понятно,я имел ввиту,то,что написал s12:
m = Text1.Text
n = Text2.Text
ReDim a(m, n) As Long
For i = 1 To m
For j = i To n
a(i, j) = Int(Rnd * 201 - 100)
Print a(i, j) & " ";
Next j
Print
Next i
End Sub
Номер ответа: 10
Автор ответа:
BullDozer
ICQ: ----
Вопросов: 1
Ответов: 5
Web-сайт:
Профиль | | #10
Добавлено: 10.06.08 15:19
теперь абсолютно все понял :D
спасибо всем!