Вопрос № 152752: Здравствуйте, Эксперты! Помогите, пожалуйста, с решением задачи: По условию дан одномерный массив. Нужно подсчитать сколько чисел, больших среднего арифметического всех членов массива, а также удалить из последовательности нулевые элементы. <b...
Вопрос № 152775: Здравствуйте!Помогите, пожалуйста, с задачей:"Дан двумерный массив.Нужно определить в каком из столбцов число перемен знака наибольшее".Возникают
сложности с составлением условия....
Вопрос № 152.752
Здравствуйте, Эксперты! Помогите, пожалуйста, с решением задачи: По условию дан одномерный массив. Нужно подсчитать сколько чисел, больших среднего арифметического всех членов массива, а также удалить из последовательности нулевые элементы.
Код:
Sub Ex11() Dim A(1 To 20) As
Integer, m() As Integer Dim i As Integer, j As Integer, B As Integer, S As Integer, l As Integer, p As Integer, sum As Integer, ñðåäíÿÿ As Integer Worksheets("Лист1").Select
Randomize For i = 1 To 20 A(i) = Int(Rnd * 100 - 50): Cells(5, i) = A(i) Next i
sum = 0 For i = 1 To 20 sum = sum + A(i) Next i For i = 1 To 20 средняя = sum / 20 Next i Cells(7, 1) = "Среднее арифметич
еское всех чисел массива=" & средняя For i = 1 To 20 If A(i) > средняя Then p = p + 1 Next i Cells(8, 1) = "Количество чисел больших среднего арифметического=" & p S = 0 For i = 1 To 20 If A(i) = 0 Then S = S + 1 Next i l = 20 - S ReDim m(1 To l) j = 1 For i = 1 To 20 If A(i) <> 0 Then m(j) = A(i) j = j + 1 End If Next i For i = 1 To 20 Cells(10, i) = m(i) Next i
Вопрос такой: как можно сделать так,
чтобы датчик случайных чисел выдавал хотя бы 2 нулевых элемента? Если вводить с клавиатуры командой Input, то все хорошо получается, но нужно использовать датчик случайных чисел...
Отправлен: 03.12.2008, 13:49
Вопрос задала: Amidala (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: 6a3uJI
Здравствуйте, Amidala!
Sub Ex11() Dim A(1 To 20) As Integer, m() As Integer Dim i, j, B, S, l, p, sum As Integer Dim SrAr As Double Worksheets("Лист1").Select Cells.Select Selection.ClearContents
Randomize SrAr = 0 S = 0 For i = 1 To 20 A(i) = Int(Rnd * 10) Cells(5, i) = A(i) SrAr = SrAr + A(i) If A(i) = 0 Then S = S + 1 Next i SrAr = SrAr / 20 sum = 0
Cells(7, 1) = "Среднее арифметическое=" & SrAr p = 0 For
i = 1 To 20 If A(i) > SrAr Then p = p + 1 Next i Cells(8, 1) = "Кол-во чисел больших среднего арифметического=" & p
l = 20 - S ReDim m(1 To l) j = 1 For i = 1 To 20 If A(i) <> 0 Then m(j) = A(i) j = j + 1 End If Next i For i = 1 To l Cells(10, i) = m(i) Next i End Sub
Ответ отправил: 6a3uJI (статус: 6-й класс)
Ответ отправлен: 03.12.2008, 14:11
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 237497 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо!)
Вопрос № 152.775
Здравствуйте!Помогите, пожалуйста, с задачей:"Дан двумерный массив.Нужно определить в каком из столбцов число перемен знака наибольшее".Возникают сложности с составлением условия.
Приложение:
Отправлен: 03.12.2008, 15:24
Вопрос задал: Kirill11 (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: 6a3uJI
Здравствуйте, Kirill11! Вот код, начало твое:
Sub e2() Dim x() As Integer, n As Byte, m As Byte, i As Byte, j As Byte, t As Byte Dim znak As Boolean ' true - плюс, false - минус Dim max_el, max_st As Integer Do n = Application.InputBox("число строк:", Type:=1) Loop Until n > 0 Do m = Application.InputBox("-число столбцов:", Type:=1) Loop Until m > 0 ReDim x(1 To n, 1 To m) Randomize Cells.Clear For i = 1 To n For j = 1 To m x(i,
j) = 50 * Rnd - 10: Cells(i, j) = x(i, j) Next j Next i
max_el = 0 max_st = 0
For j = 1 To m t = 0: znak = False If x(1, j) >= 0 Then zhak = True t = 1
For i = 2 To n If (x(i, j) >= 0) <> zhak Then t = t + 1: If znak = True Then znak = False Else: znak = True End If Next i If max_el < t Then max_el = t: max_st = j: End If Next j
#thank 237535 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Kirill11! подсчет количества переходов через 0 в двумерном массиве можно выполнить следующим кодом:
Код:
Sub countChange() Dim x() As Integer, n As Byte, i As Byte, j As Byte, t As Byte Const m As Byte = 2, s0$ = "первый второй" + vbCrLf Do: n = Application.InputBox(s0,
Type:=1): Loop Until n > 0 ReDim x(1 To n + 1, 1 To m) Randomize Cells.Clear For i = 1 To n For j = 1 To 2 'm x(i, j) = 50 * Rnd - 10: Cells(i, j) = x(i, j) If i > 1 Then If Not x(i, j) * x(i - 1, j) = Abs(x(i, j) * x(i - 1, j)) Then _ x(n + 1, j) = x(n + 1, j) + 1 End If Next Next MsgBox s0 & Space(3) & x(n + 1, 1) & Space(1
5) & x(n + 1, 2) End Sub
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.