Страница: 1 | 2 |
Вопрос: 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
Print
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
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 24.12.10 10:03
Думаю, тебе сперва нужно взять все минимальные элементы, занести их в отдельный массив, а затем пройтись по ентому массиму и вычислить среднее арифм.
Номер ответа: 2
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #2
Добавлено: 24.12.10 14:09
Номер ответа: 3
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #3
Добавлено: 24.12.10 14:10
21 строчка - ReDim B(k) As Single. А чему равно k?
Номер ответа: 4
Автор ответа:
VβÐUηìt
Вопросов: 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
Автор ответа:
Winand
Вопросов: 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
Print
Next i
End Sub
но препод сказала что это безобразие..если будет до массив 1000...то не будешь же писать каждый...
короче с массивом с не знаю что делать..
помогите!
нельзя же писать
фор и=8 ту 1??
Номер ответа: 9
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #9
Добавлено: 24.12.10 22:52
Ошибка была в том что вы не поняли суть ReDim y(i) наверное
i=0, соответственно в массиве y получается всего 1 элемент y(0).
при обращении в цикле к другим возникает ошибка
Номер ответа: 10
Автор ответа:
Winand
Вопросов: 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
Автор ответа:
Winand
Вопросов: 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
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #13
Добавлено: 25.12.10 13:50
Номер ответа: 14
Автор ответа:
Юлия
Вопросов: 1
Ответов: 8
Профиль | | #14
Добавлено: 18.02.11 09:20
1Пользователем вводится текст, слова отделяются одним и более пробелами, удалить из него лишние пробелы, оставив по одному.
2Пользователем вводится текст, определить, какие гласные буквы русского алфавита в нем встречаются и сколько раз.
3Зашифровать введенный пользователем текст записью наоборот.
??????????
Номер ответа: 15
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #15
Добавлено: 19.02.11 21:08