Вопрос: vb 6.0 задача. универ. | Добавлено: 23.12.10 22:56 |
Автор вопроса: ![]() |
задача.
дана матрица м на н найти среднее арифметическое минимальных элементов строк матрицы. вот написала...он выдает ошибки. и помоему не правильно сделала минимумы..то есть ..значения не сбрасываются наверно от строки к строке... Dim m As Integer Dim n As Integer Dim k As Integer Dim i As Integer Dim j As Integer Dim A() As Single Dim B() As Single Dim C As Single Private Sub Command1_click() m = Val(InputBox("введите число")) n = Val(InputBox("введите число")) ReDim A(m, n) As Single For i = 1 To m For j = 1 To n A(i, j) = Val(InputBox("введите эл-т", "")) Print A(i, j); Next j Next i Min = A(1, 1) ReDim B(k) As Single k = 1 For i = 1 To m For j = 1 To n If A(i, j) < Min Then Min = A(i, j): A(i, j) = B(k): k = k + 1 Next j Min = A(2, 1) Next i C = 0 k = 1 For i = 1 To m For j = 1 To n For k = 1 To m C = C + B(k) Next k Next j Next i SR = C / m Print "SR="; SR End Sub исправьте срочно пожалуйста помогите) |
Ответы | Всего ответов: 22 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #1 | Добавлено: 24.12.10 10:03 |
Думаю, тебе сперва нужно взять все минимальные элементы, занести их в отдельный массив, а затем пройтись по ентому массиму и вычислить среднее арифм. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 24.12.10 14:09 |
|
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 24.12.10 14:10 |
21 строчка - ReDim B(k) As Single. А чему равно k? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 24.12.10 14:20 |
|
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 8 |
Профиль | Цитата | #5 | Добавлено: 24.12.10 19:38 |
вот вы долго))
я вчера кое как сделала это) сначала написала что каждый первый элемент строки является ее минимумом а потом через одномерный массив искала)) вот.. мне б еще вот додуматься.. y=x^10+2x^9+...+9x^2+ 10x^1 я решила так.. Dim x, a, k, c As Integer Dim y() As Single Private Sub Command1_Click() x = Val(InputBox("Введите х", "" ![]() a = 1 k = 10 ReDim y(i) For i = 1 To 10 y(i) = a * (x ^ k) k = k - 1 a = a + 1 Next i c = 0 For i = 1 To 10 c = c + y(i) Next i Print c End Sub но бейсик почему то не принимает строку y(i) = a * (x ^ k) желтым выделяет..почему??) |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 24.12.10 20:23 |
тип того
|
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 8 |
Профиль | Цитата | #7 | Добавлено: 24.12.10 20:31 |
оо..точно) спасибо огромное) можноо без других переменных жее)
вроде работает) а не знаете в чем ошибка была так как я делала?))) |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 8 |
Профиль | Цитата | #8 | Добавлено: 24.12.10 21:51 |
еще задача..((
построить и вывести на форму матрицу 1 8 1 8 1 8 1 8 2 7 2 7 2 7 2 7 3 6 3 6 3 6 3 6 4 5 4 5 4 5 4 5 5 4 5 4 5 4 5 4 6 3 6 3 6 3 6 3 7 2 7 2 7 2 7 2 8 1 8 1 8 1 8 1 я сделала вот Dim a(8, 8) As Integer Dim c(8) As Integer Dim i As Integer Dim j As Integer Private Sub Command1_Click() For j = 1 To 8 Step 2 For i = 1 To 8 a(i, j) = i Next i Next j c(1) = 8 c(2) = 7 c(3) = 6 c(4) = 5 c(5) = 4 c(6) = 3 c(7) = 2 c(8) = 1 For j = 2 To 8 Step 2 For i = 1 To 8 a(i, j) = c(i) Next i Next j For i = 1 To 8 For j = 1 To 8 Print a(i, j); Next j Next i End Sub но препод сказала что это безобразие..если будет до массив 1000...то не будешь же писать каждый... короче с массивом с не знаю что делать.. помогите! нельзя же писать фор и=8 ту 1?? |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 24.12.10 22:52 |
Ошибка была в том что вы не поняли суть ReDim y(i) наверное![]() i=0, соответственно в массиве y получается всего 1 элемент y(0). при обращении в цикле к другим возникает ошибка |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 24.12.10 22:54 |
во первых. Это безобразие.
во-вторых. for i=8 to 1 step -1 писать можно в-третьих можно делать так как я показал в предыдущем примере: i * x ^ (11 - i) Т.е. i идет от 1 до 10, а (11-i) - от 10 до 1 |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 8 |
Профиль | Цитата | #11 | Добавлено: 24.12.10 23:05 |
почему y=0?
у меня же должно как бы в память занестись что при x=1 например.. а(1)=a*x^k=1 a(2)=2*x^9=2 .. если редим убрать тоже запоминать не будет?) 2)вот. я переделала..только не на форму.. Dim a(8, 8) As Integer Dim i As Integer Dim j As Integer Private Sub Command1_Click() Text1.Text = "" For i = 1 To 8 For j = 1 To 8 If j Mod 2 = 0 Then a(i, j) = (9 - i) Else a(i, j) = i Text1 = Text1 + " " + Str(a(i, j)) Next j Text1 = Text1 + Chr$(13) Text1 = Text1 + Chr$(10) Next i End Sub |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 25.12.10 02:16 |
Так. ReDim изменяет размерность массива. То есть redim y(i) при i=0 создаёт массив y c ячейками от нуля до нуля. Т.е. с одной едиственной.
Поэтому чтобы заполнить в цикле ячейки от 1 до 10 нужно предварительно сделать ReDim y(1 to 10), если сделать ReDim y(9) то получится массив от 0 до 9. И т.п. вместо
можно писать Text1.text = Text1.text & vbnewline .text в принципе не обязательно, но + лучше все же изменить на &. Как никак строки соединяем, а не числа складываем. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 25.12.10 13:50 |
|
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 8 |
Профиль | Цитата | #14 | Добавлено: 18.02.11 09:20 |
1Пользователем вводится текст, слова отделяются одним и более пробелами, удалить из него лишние пробелы, оставив по одному.
2Пользователем вводится текст, определить, какие гласные буквы русского алфавита в нем встречаются и сколько раз. 3Зашифровать введенный пользователем текст записью наоборот. ?????????? |
Номер ответа: 15 Автор ответа: ![]() ![]() ICQ: 357911808 Вопросов: 118 Ответов: 1340 |
Web-сайт: Профиль | Цитата | #15 | Добавлено: 19.02.11 21:08 |
|
|