Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 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
  1. Dim m As Integer
  2. Dim n As Integer
  3. Dim k As Integer
  4. Dim i As Integer
  5. Dim j As Integer
  6. Dim A() As Single
  7. Dim B() As Single
  8. Dim C As Single
  9. Private Sub Command1_click()
  10. m = Val(InputBox("введите число"))
  11. n = Val(InputBox("введите число"))
  12. ReDim A(m, n) As Single
  13. For i = 1 To m
  14. For j = 1 To n
  15. A(i, j) = Val(InputBox("введите эл-т", ""))
  16. Print A(i, j);
  17. Next j
  18. Print
  19. Next i
  20. Min = A(1, 1)
  21. ReDim B(k) As Single
  22. k = 1
  23. For i = 1 To m
  24. For j = 1 To n
  25. If A(i, j) < Min Then Min = A(i, j): A(i, j) = B(k): k = k + 1
  26. Next j
  27. Min = A(2, 1)
  28. Next i
  29. C = 0
  30. k = 1
  31. For i = 1 To m
  32. For j = 1 To n
  33. For k = 1 To m
  34. C = C + B(k)
  35. Next k
  36. Next j
  37. Next i
  38. SR = C / m
  39. Print "SR="; SR
  40. End Sub

Ответить

Номер ответа: 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
  1. m = Val(InputBox("введите число"))
  2. n = Val(InputBox("введите число"))
  3. ReDim A(m, n) As Single
  4. For i = 1 To m
  5. For j = 1 To n
  6. A(i, j) = Val(InputBox("введите эл-т"))
  7. Print A(i, j);
  8. Next j
  9. Print
  10. Next i
  11. ReDim B(1 To m) As Single
  12. k = 0
  13. For i = 1 To m
  14. k = k + 1
  15. B(k) = A(i, 1)
  16. For j = 1 To n
  17. If A(i, j) < B(k) Then B(k) = A(i, j)
  18. Next j
  19. Next i
  20. For i = 1 To k
  21. C = C + B(i)
  22. Next
  23. Sr = C / k
  24. Print "SR="; Sr

Ответить

Номер ответа: 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-сайт: winandfx.narod.ru
 Профиль | | #6
Добавлено: 24.12.10 20:23
тип того
  1. Private Sub Command1_Click()
  2.     Dim x As Long, i As Long, y As Long
  3.     x = Val(InputBox("Введите х", ""))
  4.     For i = 1 To 10
  5.         y = y + i * x ^ (11 - i)
  6.     Next i
  7.     Print y
  8. End Sub

Ответить

Номер ответа: 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-сайт: winandfx.narod.ru
 Профиль | | #9
Добавлено: 24.12.10 22:52
Ошибка была в том что вы не поняли суть ReDim y(i) наверное:)
i=0, соответственно в массиве y получается всего 1 элемент y(0).
при обращении в цикле к другим возникает ошибка

Ответить

Номер ответа: 10
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #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-сайт: winandfx.narod.ru
 Профиль | | #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. И т.п.
вместо
  1.     Text1 = Text1 + Chr$(13)
  2.     Text1 = Text1 + Chr$(10)

можно писать Text1.text = Text1.text & vbnewline
.text в принципе не обязательно, но + лучше все же изменить на &. Как никак строки соединяем, а не числа складываем.

Ответить

Номер ответа: 13
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #13
Добавлено: 25.12.10 13:50
  1. a(i,j) = iif(j mod 2 = 1, i, n - i + 1)

Ответить

Номер ответа: 14
Автор ответа:
 Юлия



Вопросов: 1
Ответов: 8
 Профиль | | #14 Добавлено: 18.02.11 09:20
1Пользователем вводится текст, слова отделяются одним и более пробелами, удалить из него лишние пробелы, оставив по одному.
2Пользователем вводится текст, определить, какие гласные буквы русского алфавита в нем встречаются и сколько раз.
3Зашифровать введенный пользователем текст записью наоборот.
??????????

Ответить

Номер ответа: 15
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #15
Добавлено: 19.02.11 21:08
  1. Function RemoveNeedlessSpaces(ByVal SourceString As String) As String
  2.   Dim s As String
  3.   
  4.   Do
  5.     s = SourceString
  6.     SourceString = Replace(SourceString, "  ", " ")
  7.   Loop Until s = SourceString
  8.  
  9.   RemoveNeedlessSpaces = SourceString
  10. End Function
  11. удаляет лишние пробелы

Ответить

Страница: 1 | 2 |

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



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