Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
FraHcy3
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 4
1

Определить максимальное число и его порядковый номер. Построить гистограмму

11.06.2011, 18:55. Просмотров 3006. Ответов 8
Метки нет (Все метки)

Привет всем!! Есть 3 задания:
1. Сгенерировать массив из n целых случайных чисел в диапазоне [a;b]. Определить максимальное число и его порядковый номер. Построить гистограмму.
2. Сгенерировать массив из n целых случайных чисел в диапазоне [a;b]. Отсортировать массив, используя соответствующий метод объекта Range.
3. Сгенерировать массив из n целых случайных чисел в диапазоне [a;b]. Определить, сколько раз первое число встречается в полученном массиве.
Если можно нужно заняться всеми) ну так вот, начал с первого.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub qq3()
Dim a(1 To 20) As Integer, i As Integer, min As Integer, max As Integer
'Берем случайные значения
Randomize
'Задаем 20 значений [-20;20]
For i = 1 To 20
a(i) = Int(41 * Rnd() - 20)
'Выводим в А столбец
Cells(i, "A") = a(i)
Next
'Ищем максимум и минимум через формулы Excel
max = Application.max([i:A])
min = Application.min([i:A])
'Один фиг
max = Application.WorksheetFunction.max(Range("i:A"))
min = Application.WorksheetFunction.min(Range("i:A"))
Cells(i + 2, 2) = max & " : Максимальное число "
Cells(i + 3, 3) = min & " : Минимальное число"
'строим график
    Range("A1:A20").Select
    Range("A20").Activate
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("Лист1!$A$1:$A$20")
    ActiveChart.ChartType = xlLine
    Range("J3").Select
End Sub
Как сделать Максимальное число через цикл?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
For i = 1 To 20
min = Cells(i, 1): max = Cells(i, 1)
If min >= Cells(i, 1) Then
min = Cells(i + 2, 1)
End If
If max <= Cells(i, 1) Then
max = Cells(i + 3, 1)
End If
Next
Cells(i + 2, 2) = max & " - Максимальное число "
Cells(i + 3, 3) = min & " - Минимальное число"
Пробовал делать так не хочет выводит все по 0, знаю уже эти задачи по 500 штук тут прорешали) я не нашел) ламер).

И как определить порядковый номер макс и мин числа? хм) Надеюсь поможете, день ломаю голову не знаю как.

Пока буду решать след. задачи. Если что рассчитываю на вашу помощь!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2011, 18:55
Ответы с готовыми решениями:

Максимальное, минимальное значение и порядковый номер последовательности
водится последовательность чисел, нужно найти макс. и мин. значение и порядковый номер(не считаются...

Найти наименьшее из всех чисел, меньших 15, и его порядковый номер
Вводится последовательность ненулевых чисел, 0 – конец последовательности. Найти наименьшее из всех...

Определить максимальное четное число и его порядковый номер в последовательности
в последовательности целых положительных чисел определить максимальное четное число и его...

Осуществить ввод последовательности целых чисел,определить максимальное четное число,его порядковый номер и подсчитать сумму его цифр. C#
Осуществить ввод последовательности целых чисел,определить максимальное четное число,его порядковый...

В последовательности целых положительных чисел определить максимальное четное число и его порядковый номер.
Вот задача В последовательности целых положительных чисел определить максимальное четное число и...

8
afternoon
22 / 22 / 1
Регистрация: 11.06.2011
Сообщений: 67
12.06.2011, 10:01 2
Visual Basic
1
2
3
4
5
6
7
8
max=a(1,1)
for i=1 to n 
 for j=1 to m 
   if a(i,j)>max then
     max=a(i,j)
   end if
 next
next
Нахождение максимума в массиве, минимум находится также.
1
pincet
1382 / 966 / 130
Регистрация: 23.07.2010
Сообщений: 5,229
12.06.2011, 12:59 3
Цитата Сообщение от FraHcy3 Посмотреть сообщение
2. Сгенерировать массив из n целых случайных чисел в диапазоне [a;b]. Отсортировать массив, используя соответствующий метод объекта Range.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub msort()
N = 7
Dim r As Range
Set r = Range(Range("a1").Cells(1, 1), Range("a1").Cells(1, N))
r.sort _
   Key1:=Range("A1"), _
   Order1:=xlAscending, _
   Header:=xlGuess, _
   OrderCustom:=1, _
   MatchCase:=False, _
   Orientation:=xlLeftToRight, _
   DataOption1:=xlSortNormal
End Sub
1
FraHcy3
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 4
13.06.2011, 11:52  [ТС] 4
Цитата Сообщение от afternoon Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
8
max=a(1,1)
for i=1 to n 
 for j=1 to m 
   if a(i,j)>max then
     max=a(i,j)
   end if
 next
next
Нахождение максимума в массиве, минимум находится также.
Ну скажем преобразовал и сделал так, ты лишь идею подкинул) уже неплохо.
vb.net
1
2
3
4
5
6
7
8
For i = 1 To 20
   If Cells(i, 1) >= max Then
         max = Cells(i, 1)
   End If
   If Cells(i, 1) <= min Then
 min = Cells(i, 1)
   End If
 Next
Как определить порядковый номер максимального числа?

Добавлено через 14 минут
Если сделать что то типа,
vb.net
1
2
3
4
5
6
For i = 1 To 20
   If Cells(i, 1) >= max Then
         max = Cells(i, 1)
   End If
MsgBox (i)
next
То выдаем фигню

Добавлено через 12 минут
Лан замутил))
vb.net
1
If max = Cells(i, 1) Then Cells(24, 2) = i & " - Порядковый номер"
Добавлено через 47 минут
Собственно 2 задание сделал. Легко.
Мысли есть по поводу 3?
0
Ципихович Эндрю
1412 / 322 / 28
Регистрация: 10.04.2009
Сообщений: 5,072
13.06.2011, 12:11 5
ну если второе сделали, то в чём проблема с третьим??
Какое первое число в полученном массиве - что проблемы?
сколько раз первое число встречается в полученном массиве - идите шагами по циклу и сверяйте
а если во втором задании Вы его отсортировали и умеете делать то по всему циклу шагать не надо где надо сделайте выход из цикла
0
FraHcy3
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 4
13.06.2011, 12:22  [ТС] 6
Второе там все просто, обычная сортировка же:
vb.net
1
2
3
Range("B1:B20").Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
Да да , ну к примеру в массиве у меня первое число 5.
Мысль просто не идет:
vb.net
1
2
For i = 1 To 20
   If Cells(1, 1) = Cells(i, 1) Then
не знаю как дальше додумать хм...

Добавлено через 8 минут
Если задавать что то как в 1
Visual Basic
1
2
3
4
For i = 1 To 20
   If Cells(1, 1) = Cells(i, 1) Then
         Cells(22, 1) = i
   End If
Он выдает порядковое число встречающегося, а не сколько раз встречается...
0
afternoon
22 / 22 / 1
Регистрация: 11.06.2011
Сообщений: 67
13.06.2011, 12:30 7
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub qq3()
Dim a(1 To 20) As Integer, i As Integer, k As Integer
Randomize
For i = 1 To 20
a(i) = Int(41 * Rnd() - 20)
Cells(i, "A") = a(i)
Next
For i = 1 To 20
    If Cells(1, 1) = Cells(i, 1) Then k = k + 1
Next
Worksheets("Лист2").Select
Cells(1, 1) = k
End Sub
к это сколько раз встречается
1
FraHcy3
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 4
13.06.2011, 12:35  [ТС] 8
Офигеть)) я только думал на счет k=k+1 ваще)) спс , бесит когда не могу додуматься до таких элементарных вещей, порой сложные и то легче идут)
0
Ципихович Эндрю
1412 / 322 / 28
Регистрация: 10.04.2009
Сообщений: 5,072
13.06.2011, 14:16 9
Цитата Сообщение от FraHcy3 Посмотреть сообщение
порой сложные и то легче идут
ну давайте менятся ))
1
13.06.2011, 14:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2011, 14:16

В последовательности целых положительных чисел определить максимальное четное число и его порядковый номер.
кто если знает как сделать это, напишите пожайлуста!!=) задействовать оператор цикла с преусловием

Найти максимальное двузначное число и его порядковый номер
Задача 4: Найти максимальное двузначное число и его порядковый номер, в случае отсутствия...

В последовательности целых положительных чисел опреде- лить максимальное четное число и его порядковый номер.
Ребят, у меня есть наброски, но я не знаю точно , подскажите кто что знает program/// var i, s,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru